From e566b09d9825cd7a030f9f6cba729409cd1f6f66 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jun 2019 19:42:28 +0800 Subject: [PATCH] #4305 Apply after-build changes --- dist/vis-graph3d.min.js | 8 +- dist/vis-network.min.js | 8 +- dist/vis-timeline-graph2d.min.js | 8 +- dist/vis.js | 7844 +++++++++++++++--------------- dist/vis.map | 2 +- dist/vis.min.js | 48 +- 6 files changed, 4016 insertions(+), 3902 deletions(-) diff --git a/dist/vis-graph3d.min.js b/dist/vis-graph3d.min.js index 8c9bec8ba..05b8e8872 100644 --- a/dist/vis-graph3d.min.js +++ b/dist/vis-graph3d.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.21.0 - * @date 2017-10-12 + * @version 4.21.0+az.1.0.0 + * @date 2019-06-06 * * @license * Copyright (C) 2011-2017 Almende B.V, http://almende.com @@ -22,9 +22,9 @@ * * Vis.js may be distributed under either license. */ -"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=56)}([function(t,e){var n=t.exports={version:"2.5.1"};"number"==typeof __e&&(__e=n)},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var i=n(28)("wks"),r=n(17),o=n(1).Symbol,s="function"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)("Symbol."+t))}).store=i},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e,n,i){var r=!1;!0===i&&(r=null===e[n]&&void 0!==t[n]),r?delete t[n]:t[n]=e[n]}var o=n(57),s=i(o),a=n(75),u=i(a),h=n(18),l=i(h),c=n(19),d=i(c),f=n(46),p=n(97);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;!0===t.hasChildNodes();)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,n,i){if(e==t)return.5;var r=1/(e-t);return Math.max(0,(i-t)*r)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){if(m.exec(t))return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return p.v4()},e.assignAllKeys=function(t,e){for(var n in t)t.hasOwnProperty(n)&&"object"!==(0,d.default)(t[n])&&(t[n]=e)},e.fillIfDefined=function(t,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var o in t)void 0!==n[o]&&(null===n[o]||"object"!==(0,d.default)(n[o])?r(t,n,o,i):"object"===(0,d.default)(t[o])&&e.fillIfDefined(t[o],n[o],i))},e.extend=function(t,e){for(var n=1;n3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(i))throw new TypeError("Arrays are not supported by deepExtend");for(var s=0;s3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(i))throw new TypeError("Arrays are not supported by deepExtend");for(var s in i)if(i.hasOwnProperty(s)&&-1===t.indexOf(s))if(i[s]&&i[s].constructor===Object)void 0===n[s]&&(n[s]={}),n[s].constructor===Object?e.deepExtend(n[s],i[s]):r(n,i,s,o);else if(Array.isArray(i[s])){n[s]=[];for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var s in n)if(n.hasOwnProperty(s)||!0===i)if(n[s]&&n[s].constructor===Object)void 0===t[s]&&(t[s]={}),t[s].constructor===Object?e.deepExtend(t[s],n[s],i):r(t,n,s,o);else if(Array.isArray(n[s])){t[s]=[];for(var a=0;a=0&&(e="DOMMouseScroll"),t.addEventListener(e,n,i)):t.attachEvent("on"+e,n)},e.removeEventListener=function(t,e,n,i){t.removeEventListener?(void 0===i&&(i=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,n,i)):t.detachEvent("on"+e,n)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,n){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":n||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,n,i){return e+e+n+n+i+i});var n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:null},e.overrideOpacity=function(t,n){var i;return-1!=t.indexOf("rgba")?t:-1!=t.indexOf("rgb")?(i=t.substr(t.indexOf("(")+1).replace(")","").split(","),"rgba("+i[0]+","+i[1]+","+i[2]+","+n+")"):(i=e.hexToRGB(t),null==i?t:"rgba("+i.r+","+i.g+","+i.b+","+n+")")},e.RGBToHex=function(t,e,n){return"#"+((1<<24)+(t<<16)+(e<<8)+n).toString(16).slice(1)},e.parseColor=function(t){var n;if(!0===e.isString(t)){if(!0===e.isValidRGB(t)){var i=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(i[0],i[1],i[2])}if(!0===e.isValidHex(t)){var r=e.hexToHSV(t),o={h:r.h,s:.8*r.s,v:Math.min(1,1.02*r.v)},s={h:r.h,s:Math.min(1,1.25*r.s),v:.8*r.v},a=e.HSVToHex(s.h,s.s,s.v),u=e.HSVToHex(o.h,o.s,o.v);n={background:t,border:a,highlight:{background:u,border:a},hover:{background:u,border:a}}}else n={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else n={},n.background=t.background||void 0,n.border=t.border||void 0,e.isString(t.highlight)?n.highlight={border:t.highlight,background:t.highlight}:(n.highlight={},n.highlight.background=t.highlight&&t.highlight.background||void 0,n.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?n.hover={border:t.hover,background:t.hover}:(n.hover={},n.hover.background=t.hover&&t.hover.background||void 0,n.hover.border=t.hover&&t.hover.border||void 0);return n},e.RGBToHSV=function(t,e,n){t/=255,e/=255,n/=255;var i=Math.min(t,Math.min(e,n)),r=Math.max(t,Math.max(e,n));if(i==r)return{h:0,s:0,v:i};var o=t==i?e-n:n==i?t-e:n-t;return{h:60*((t==i?3:n==i?1:5)-o/(r-i))/360,s:(r-i)/r,v:r}};var v={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var n=t.split(":"),i=n[0].trim(),r=n[1].trim();e[i]=r}}),e},join:function(t){return(0,l.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,n){var i=v.split(t.style.cssText),r=v.split(n),o=e.extend(i,r);t.style.cssText=v.join(o)},e.removeCssText=function(t,e){var n=v.split(t.style.cssText),i=v.split(e);for(var r in i)i.hasOwnProperty(r)&&delete n[r];t.style.cssText=v.join(n)},e.HSVToRGB=function(t,e,n){var i,r,o,s=Math.floor(6*t),a=6*t-s,u=n*(1-e),h=n*(1-a*e),l=n*(1-(1-a)*e);switch(s%6){case 0:i=n,r=l,o=u;break;case 1:i=h,r=n,o=u;break;case 2:i=u,r=n,o=l;break;case 3:i=u,r=h,o=n;break;case 4:i=l,r=u,o=n;break;case 5:i=n,r=u,o=h}return{r:Math.floor(255*i),g:Math.floor(255*r),b:Math.floor(255*o)}},e.HSVToHex=function(t,n,i){var r=e.HSVToRGB(t,n,i);return e.RGBToHex(r.r,r.g,r.b)},e.hexToHSV=function(t){var n=e.hexToRGB(t);return e.RGBToHSV(n.r,n.g,n.b)},e.isValidHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},e.isValidRGB=function(t){return t=t.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t)},e.isValidRGBA=function(t){return t=t.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t)},e.selectiveBridgeObject=function(t,n){if(null!==n&&"object"===(void 0===n?"undefined":(0,d.default)(n))){for(var i=(0,u.default)(n),r=0;r0&&e(i,t[r-1])<0;r--)t[r]=t[r-1];t[r]=i}return t},e.mergeOptions=function(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=function(t){return null!==t&&void 0!==t},o=function(t){return null!==t&&"object"===(void 0===t?"undefined":(0,d.default)(t))};if(!o(t))throw new Error("Parameter mergeTarget must be an object");if(!o(e))throw new Error("Parameter options must be an object");if(!r(n))throw new Error("Parameter option must have a value");if(!o(i))throw new Error("Parameter globalOptions must be an object");var s=e[n],a=o(i)&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(i),h=a?i[n]:void 0,l=h?h.enabled:void 0;if(void 0!==s){if("boolean"==typeof s)return o(t[n])||(t[n]={}),void(t[n].enabled=s);if(null===s&&!o(t[n])){if(!r(h))return;t[n]=(0,u.default)(h)}if(o(s)){var c=!0;void 0!==s.enabled?c=s.enabled:void 0!==l&&(c=h.enabled),function(t,e,n){o(t[n])||(t[n]={});var i=e[n],r=t[n];for(var s in i)i.hasOwnProperty(s)&&(r[s]=i[s])}(t,e,n),t[n].enabled=c}}},e.binarySearchCustom=function(t,e,n,i){for(var r=0,o=0,s=t.length-1;o<=s&&r<1e4;){var a=Math.floor((o+s)/2),u=t[a],h=void 0===i?u[n]:u[n][i],l=e(h);if(0==l)return a;-1==l?o=a+1:s=a-1,r++}return-1},e.binarySearchValue=function(t,e,n,i,r){var o,s,a,u,h=0,l=0,c=t.length-1;for(r=void 0!=r?r:function(t,e){return t==e?0:t0)return"before"==i?Math.max(0,u-1):u;if(r(s,e)<0&&r(a,e)>0)return"before"==i?u:Math.min(t.length-1,u+1);r(s,e)<0?l=u+1:c=u-1,h++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var n=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;return n==i&&(i=e.clientWidth),document.body.removeChild(e),n-i},e.topMost=function(t,e){var n=void 0;Array.isArray(e)||(e=[e]);var i=!0,r=!1,o=void 0;try{for(var a,u=(0,s.default)(t);!(i=(a=u.next()).done);i=!0){var h=a.value;if(h){n=h[e[0]];for(var l=1;ldocument.F=Object<\/script>"),t.close(),u=t.F;i--;)delete u.prototype[o[i]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(a.prototype=i(t),n=new a,a.prototype=null,n[s]=t):n=u(),void 0===e?n:r(n,e)}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(28)("keys"),r=n(17);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(1),r=i["__core-js_shared__"]||(i["__core-js_shared__"]={});t.exports=function(t){return r[t]||(r[t]={})}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var i=n(5).f,r=n(7),o=n(2)("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(22);t.exports=function(t){return Object(i(t))}},function(t,e,n){e.f=n(2)},function(t,e,n){var i=n(1),r=n(0),o=n(23),s=n(32),a=n(5).f;t.exports=function(t){var e=r.Symbol||(r.Symbol=o?{}:i.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:s.f(t)})}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var n=(0,l.default)(this._options.type),i=0,r=n.length;ir?1:is)&&(o=u,s=h)}return o},r.prototype.min=function(t){var e,n,i=this._data,r=(0,l.default)(i),o=null,s=null;for(e=0,n=r.length;eu;)i(a,n=e[u++])&&(~o(h,n)||h.push(n));return h}},function(t,e,n){var i=n(71)(!0);n(39)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){var i=n(43),r=n(29).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},function(t,e,n){t.exports="undefined"!=typeof window&&window.moment||n(94)},function(t,e,n){t.exports={default:n(100),__esModule:!0}},function(t,e,n){function i(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}i.prototype.setOptions=function(t){t&&void 0!==t.delay&&(this.delay=t.delay),t&&void 0!==t.max&&(this.max=t.max),this._flushIfNeeded()},i.extend=function(t,e){var n=new i(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){n.flush()};var r=[{name:"flush",original:void 0}];if(e&&e.replace)for(var o=0;othis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,n){function i(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=i},function(t,e,n){function i(t,e){if(void 0===t)throw new Error("No container element defined");if(this.container=t,this.visible=!e||void 0==e.visible||e.visible,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var n=this;this.frame.slide.onmousedown=function(t){n._onMouseDown(t)},this.frame.prev.onclick=function(t){n.prev(t)},this.frame.play.onclick=function(t){n.togglePlay(t)},this.frame.next.onclick=function(t){n.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var r=n(3);i.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},i.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},i.prototype.setIndex=function(t){if(!(tthis.values.length-1&&(i=this.values.length-1),i},i.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;return t/(this.values.length-1)*e+3},i.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,n=this.startSlideX+e,i=this.leftToIndex(n);this.setIndex(i),r.preventDefault()},i.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",r.removeEventListener(document,"mousemove",this.onmousemove),r.removeEventListener(document,"mouseup",this.onmouseup),r.preventDefault()},t.exports=i},function(t,e,n){function i(t,e,n,i){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,n,i)}i.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},i.prototype.setRange=function(t,e,n,i){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(n))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t||0,this._end=e||0,this.setStep(n,i)},i.prototype.setStep=function(t,e){void 0===t||t<=0||(void 0!==e&&(this.prettyStep=e),!0===this.prettyStep?this._step=i.calculatePrettyStep(t):this._step=t)},i.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},n=Math.pow(10,Math.round(e(t))),i=2*Math.pow(10,Math.round(e(t/2))),r=5*Math.pow(10,Math.round(e(t/5))),o=n;return Math.abs(i-t)<=Math.abs(o-t)&&(o=i),Math.abs(r-t)<=Math.abs(o-t)&&(o=r),o<=0&&(o=1),o},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()this._end},t.exports=i},function(t,e,n){function i(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function r(t){return void 0===t||""===t||"string"!=typeof t?t:t.charAt(0).toUpperCase()+t.slice(1)}function o(t,e){return void 0===t||""===t?e:t+r(e)}function s(t,e,n,i){for(var r,s,a=0;as&&(t=i(t)*s),n(e)>s&&(e=i(e)*s),this.cameraOffset.x=t,this.cameraOffset.y=e,this.calculateCameraOrientation()},i.prototype.getOffset=function(){return this.cameraOffset},i.prototype.setArmLocation=function(t,e,n){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=n,this.calculateCameraOrientation()},i.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},i.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},i.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.setOffset(this.cameraOffset.x,this.cameraOffset.y),this.calculateCameraOrientation())},i.prototype.getArmLength=function(){return this.armLength},i.prototype.getCameraLocation=function(){return this.cameraLocation},i.prototype.getCameraRotation=function(){return this.cameraRotation},i.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal;var t=this.cameraRotation.x,e=this.cameraRotation.z,n=this.cameraOffset.x,i=this.cameraOffset.y,r=Math.sin,o=Math.cos;this.cameraLocation.x=this.cameraLocation.x+n*o(e)+i*-r(e)*o(t),this.cameraLocation.y=this.cameraLocation.y+n*r(e)+i*o(e)*o(t),this.cameraLocation.z=this.cameraLocation.z+i*r(t)},t.exports=i},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.printStyle=void 0;var r=n(47),o=i(r),s=n(19),a=i(s),u=n(18),h=i(u),l=n(111),c=i(l),d=n(112),f=i(d),p=n(3),m=!1,v=void 0,y="background: #FFeeee; color: #dd0000",g=function(){function t(){(0,c.default)(this,t)}return(0,f.default)(t,null,[{key:"validate",value:function(e,n,i){m=!1,v=n;var r=n;return void 0!==i&&(r=n[i]),t.parse(e,r,[]),m}},{key:"parse",value:function(e,n,i){for(var r in e)e.hasOwnProperty(r)&&t.check(r,e,n,i)}},{key:"check",value:function(e,n,i,r){if(void 0===i[e]&&void 0===i.__any__)return void t.getSuggestion(e,i,r);var o=e,s=!0;void 0===i[e]&&void 0!==i.__any__&&(o="__any__",s="object"===t.getType(n[e]));var a=i[o];s&&void 0!==a.__type__&&(a=a.__type__),t.checkFields(e,n,i,o,a,r)}},{key:"checkFields",value:function(e,n,i,r,o,s){var a=function(n){console.log("%c"+n+t.printLocation(s,e),y)},u=t.getType(n[e]),l=o[u];void 0!==l?"array"===t.getType(l)&&-1===l.indexOf(n[e])?(a('Invalid option detected in "'+e+'". Allowed values are:'+t.print(l)+' not "'+n[e]+'". '),m=!0):"object"===u&&"__any__"!==r&&(s=p.copyAndExtendArray(s,e),t.parse(n[e],i[r],s)):void 0===o.any&&(a('Invalid type received for "'+e+'". Expected: '+t.print((0,h.default)(o))+". Received ["+u+'] "'+n[e]+'"'),m=!0)}},{key:"getType",value:function(t){var e=void 0===t?"undefined":(0,a.default)(t);return"object"===e?null===t?"null":t instanceof Boolean?"boolean":t instanceof Number?"number":t instanceof String?"string":Array.isArray(t)?"array":t instanceof Date?"date":void 0!==t.nodeType?"dom":!0===t._isAMomentObject?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,n,i){var r=t.findInOptions(e,n,i,!1),o=t.findInOptions(e,v,[],!0),s=void 0;s=void 0!==r.indexMatch?" in "+t.printLocation(r.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+r.indexMatch+'"?\n\n':o.distance<=4&&r.distance>o.distance?" in "+t.printLocation(r.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(o.path,o.closestMatch,""):r.distance<=8?'. Did you mean "'+r.closestMatch+'"?'+t.printLocation(r.path,e):". Did you mean one of these: "+t.print((0,h.default)(n))+t.printLocation(i,e),console.log('%cUnknown option detected: "'+e+'"'+s,y),m=!0}},{key:"findInOptions",value:function(e,n,i){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=1e9,s="",a=[],u=e.toLowerCase(),h=void 0;for(var l in n){var c=void 0;if(void 0!==n[l].__type__&&!0===r){var d=t.findInOptions(e,n[l],p.copyAndExtendArray(i,l));o>d.distance&&(s=d.closestMatch,a=d.path,o=d.distance,h=d.indexMatch)}else-1!==l.toLowerCase().indexOf(u)&&(h=l),c=t.levenshteinDistance(e,l),o>c&&(s=l,a=p.copyArray(i),o=c)}return{closestMatch:s,path:a,distance:o,indexMatch:h}}},{key:"printLocation",value:function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",i="\n\n"+n+"options = {\n",r=0;r0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,n.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var r=n(36);i.prototype.isLoaded=function(){return this.loaded},i.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},i.prototype.getLabel=function(){return this.graph.filterLabel},i.prototype.getColumn=function(){return this.column},i.prototype.getSelectedValue=function(){if(void 0!==this.index)return this.values[this.index]},i.prototype.getValues=function(){return this.values},i.prototype.getValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");return this.values[t]},i.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var n={};n.column=this.column,n.value=this.values[t];var i=new r(this.dataGroup.getDataSet(),{filter:function(t){return t[n.column]==n.value}}).get();e=this.dataGroup._getDataPoints(i),this.dataPoints[t]=e}return e},i.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},i.prototype.selectValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");this.index=t,this.value=this.values[t]},i.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var i=n(63);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){var i=n(25),r=n(16),o=n(30),s={};n(9)(s,n(2)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var i=n(5),r=n(11),o=n(12);t.exports=n(6)?Object.defineProperties:function(t,e){r(t);for(var n,s=o(e),a=s.length,u=0;a>u;)i.f(t,n=s[u++],e[n]);return t}},function(t,e,n){var i=n(8),r=n(67),o=n(68);t.exports=function(t){return function(e,n,s){var a,u=i(e),h=r(u.length),l=o(s,h);if(t&&n!=n){for(;h>l;)if((a=u[l++])!=a)return!0}else for(;h>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var i=n(26),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(26),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(1).document;t.exports=i&&i.documentElement},function(t,e,n){var i=n(7),r=n(31),o=n(27)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e,n){var i=n(26),r=n(22);t.exports=function(t){return function(e,n){var o,s,a=String(r(e)),u=i(n),h=a.length;return u<0||u>=h?t?"":void 0:(o=a.charCodeAt(u),o<55296||o>56319||u+1===h||(s=a.charCodeAt(u+1))<56320||s>57343?t?a.charAt(u):o:t?a.slice(u,u+2):s-56320+(o-55296<<10)+65536)}}},function(t,e,n){var i=n(11),r=n(73);t.exports=n(0).getIterator=function(t){var e=r(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return i(e.call(t))}},function(t,e,n){var i=n(74),r=n(2)("iterator"),o=n(14);t.exports=n(0).getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||o[i(t)]}},function(t,e,n){var i=n(21),r=n(2)("toStringTag"),o="Arguments"==i(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),r))?n:o?i(e):"Object"==(a=i(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){t.exports={default:n(76),__esModule:!0}},function(t,e,n){n(77);var i=n(0).Object;t.exports=function(t,e){return i.create(t,e)}},function(t,e,n){var i=n(4);i(i.S,"Object",{create:n(25)})},function(t,e,n){n(79),t.exports=n(0).Object.keys},function(t,e,n){var i=n(31),r=n(12);n(80)("keys",function(){return function(t){return r(i(t))}})},function(t,e,n){var i=n(4),r=n(0),o=n(10);t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],s={};s[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",s)}},function(t,e,n){t.exports={default:n(82),__esModule:!0}},function(t,e,n){n(44),n(37),t.exports=n(32).f("iterator")},function(t,e,n){t.exports={default:n(84),__esModule:!0}},function(t,e,n){n(85),n(91),n(92),n(93),t.exports=n(0).Symbol},function(t,e,n){var i=n(1),r=n(7),o=n(6),s=n(4),a=n(42),u=n(86).KEY,h=n(10),l=n(28),c=n(30),d=n(17),f=n(2),p=n(32),m=n(33),v=n(87),y=n(88),g=n(11),_=n(8),w=n(24),b=n(16),x=n(25),S=n(89),M=n(90),T=n(5),D=n(12),k=M.f,O=T.f,E=S.f,C=i.Symbol,P=i.JSON,L=P&&P.stringify,R=f("_hidden"),A=f("toPrimitive"),Y={}.propertyIsEnumerable,I=l("symbol-registry"),z=l("symbols"),N=l("op-symbols"),W=Object.prototype,j="function"==typeof C,F=i.QObject,V=!F||!F.prototype||!F.prototype.findChild,G=o&&h(function(){return 7!=x(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(t,e,n){var i=k(W,e);i&&delete W[e],O(t,e,n),i&&t!==W&&O(W,e,i)}:O,B=function(t){var e=z[t]=x(C.prototype);return e._k=t,e},U=j&&"symbol"==typeof C.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof C},H=function(t,e,n){return t===W&&H(N,e,n),g(t),e=w(e,!0),g(n),r(z,e)?(n.enumerable?(r(t,R)&&t[R][e]&&(t[R][e]=!1),n=x(n,{enumerable:b(0,!1)})):(r(t,R)||O(t,R,b(1,{})),t[R][e]=!0),G(t,e,n)):O(t,e,n)},X=function(t,e){g(t);for(var n,i=v(e=_(e)),r=0,o=i.length;o>r;)H(t,n=i[r++],e[n]);return t},Z=function(t,e){return void 0===e?x(t):X(x(t),e)},q=function(t){var e=Y.call(this,t=w(t,!0));return!(this===W&&r(z,t)&&!r(N,t))&&(!(e||!r(this,t)||!r(z,t)||r(this,R)&&this[R][t])||e)},$=function(t,e){if(t=_(t),e=w(e,!0),t!==W||!r(z,e)||r(N,e)){var n=k(t,e);return!n||!r(z,e)||r(t,R)&&t[R][e]||(n.enumerable=!0),n}},J=function(t){for(var e,n=E(_(t)),i=[],o=0;n.length>o;)r(z,e=n[o++])||e==R||e==u||i.push(e);return i},Q=function(t){for(var e,n=t===W,i=E(n?N:_(t)),o=[],s=0;i.length>s;)!r(z,e=i[s++])||n&&!r(W,e)||o.push(z[e]);return o};j||(C=function(){if(this instanceof C)throw TypeError("Symbol is not a constructor!");var t=d(arguments.length>0?arguments[0]:void 0),e=function(n){this===W&&e.call(N,n),r(this,R)&&r(this[R],t)&&(this[R][t]=!1),G(this,t,b(1,n))};return o&&V&&G(W,t,{configurable:!0,set:e}),B(t)},a(C.prototype,"toString",function(){return this._k}),M.f=$,T.f=H,n(45).f=S.f=J,n(20).f=q,n(34).f=Q,o&&!n(23)&&a(W,"propertyIsEnumerable",q,!0),p.f=function(t){return B(f(t))}),s(s.G+s.W+s.F*!j,{Symbol:C});for(var K="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;K.length>tt;)f(K[tt++]);for(var et=D(f.store),nt=0;et.length>nt;)m(et[nt++]);s(s.S+s.F*!j,"Symbol",{for:function(t){return r(I,t+="")?I[t]:I[t]=C(t)},keyFor:function(t){if(!U(t))throw TypeError(t+" is not a symbol!");for(var e in I)if(I[e]===t)return e},useSetter:function(){V=!0},useSimple:function(){V=!1}}),s(s.S+s.F*!j,"Object",{create:Z,defineProperty:H,defineProperties:X,getOwnPropertyDescriptor:$,getOwnPropertyNames:J,getOwnPropertySymbols:Q}),P&&s(s.S+s.F*(!j||h(function(){var t=C();return"[null]"!=L([t])||"{}"!=L({a:t})||"{}"!=L(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!U(t)){for(var e,n,i=[t],r=1;arguments.length>r;)i.push(arguments[r++]);return e=i[1],"function"==typeof e&&(n=e),!n&&y(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!U(e))return e}),i[1]=e,L.apply(P,i)}}}),C.prototype[A]||n(9)(C.prototype,A,C.prototype.valueOf),c(C,"Symbol"),c(Math,"Math",!0),c(i.JSON,"JSON",!0)},function(t,e,n){var i=n(17)("meta"),r=n(15),o=n(7),s=n(5).f,a=0,u=Object.isExtensible||function(){return!0},h=!n(10)(function(){return u(Object.preventExtensions({}))}),l=function(t){s(t,i,{value:{i:"O"+ ++a,w:{}}})},c=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,i)){if(!u(t))return"F";if(!e)return"E";l(t)}return t[i].i},d=function(t,e){if(!o(t,i)){if(!u(t))return!0;if(!e)return!1;l(t)}return t[i].w},f=function(t){return h&&p.NEED&&u(t)&&!o(t,i)&&l(t),t},p=t.exports={KEY:i,NEED:!1,fastKey:c,getWeak:d,onFreeze:f}},function(t,e,n){var i=n(12),r=n(34),o=n(20);t.exports=function(t){var e=i(t),n=r.f;if(n)for(var s,a=n(t),u=o.f,h=0;a.length>h;)u.call(t,s=a[h++])&&e.push(s);return e}},function(t,e,n){var i=n(21);t.exports=Array.isArray||function(t){return"Array"==i(t)}},function(t,e,n){var i=n(8),r=n(45).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return r(t)}catch(t){return s.slice()}};t.exports.f=function(t){return s&&"[object Window]"==o.call(t)?a(t):r(i(t))}},function(t,e,n){var i=n(20),r=n(16),o=n(8),s=n(24),a=n(7),u=n(40),h=Object.getOwnPropertyDescriptor;e.f=n(6)?h:function(t,e){if(t=o(t),e=s(e,!0),u)try{return h(t,e)}catch(t){}if(a(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e){},function(t,e,n){n(33)("asyncIterator")},function(t,e,n){n(33)("observable")},function(t,e,n){(function(t){!function(e,n){t.exports=n()}(0,function(){function e(){return ki.apply(null,arguments)}function n(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function i(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function r(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function o(t){return void 0===t}function s(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function a(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function u(t,e){var n,i=[];for(n=0;n0)for(n=0;n0?"future":"past"];return T(n)?n(e):n.replace(/%s/i,e)}function Y(t,e){var n=t.toLowerCase();zi[n]=zi[n+"s"]=zi[e]=t}function I(t){return"string"==typeof t?zi[t]||zi[t.toLowerCase()]:void 0}function z(t){var e,n,i={};for(n in t)h(t,n)&&(e=I(n))&&(i[e]=t[n]);return i}function N(t,e){Ni[t]=e}function W(t){var e=[];for(var n in t)e.push({unit:n,priority:Ni[n]});return e.sort(function(t,e){return t.priority-e.priority}),e}function j(t,e,n){var i=""+Math.abs(t),r=e-i.length;return(t>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}function F(t,e,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),t&&(Vi[t]=r),e&&(Vi[e[0]]=function(){return j(r.apply(this,arguments),e[1],e[2])}),n&&(Vi[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function V(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function G(t){var e,n,i=t.match(Wi);for(e=0,n=i.length;e=0&&ji.test(t);)t=t.replace(ji,n),ji.lastIndex=0,i-=1;return t}function H(t,e,n){sr[t]=T(e)?e:function(t,i){return t&&n?n:e}}function X(t,e){return h(sr,t)?sr[t](e._strict,e._locale):new RegExp(Z(t))}function Z(t){return q(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,i,r){return e||n||i||r}))}function q(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function $(t,e){var n,i=e;for("string"==typeof t&&(t=[t]),s(e)&&(i=function(t,n){n[e]=w(t)}),n=0;n=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function wt(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function bt(t,e,n){var i=7+e-n;return-(7+wt(t,0,i).getUTCDay()-e)%7+i-1}function xt(t,e,n,i,r){var o,s,a=(7+n-i)%7,u=bt(t,i,r),h=1+7*(e-1)+a+u;return h<=0?(o=t-1,s=K(o)+h):h>K(t)?(o=t+1,s=h-K(t)):(o=t,s=h),{year:o,dayOfYear:s}}function St(t,e,n){var i,r,o=bt(t.year(),e,n),s=Math.floor((t.dayOfYear()-o-1)/7)+1;return s<1?(r=t.year()-1,i=s+Mt(r,e,n)):s>Mt(t.year(),e,n)?(i=s-Mt(t.year(),e,n),r=t.year()+1):(r=t.year(),i=s),{week:i,year:r}}function Mt(t,e,n){var i=bt(t,e,n),r=bt(t+1,e,n);return(K(t)-i+r)/7}function Tt(t){return St(t,this._week.dow,this._week.doy).week}function Dt(){return this._week.dow}function kt(){return this._week.doy}function Ot(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Et(t){var e=St(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Ct(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Lt(t,e){return t?n(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:n(this._weekdays)?this._weekdays:this._weekdays.standalone}function Rt(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function At(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function Yt(t,e,n){var i,r,o,s=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)o=c([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===e?(r=yr.call(this._weekdaysParse,s),-1!==r?r:null):"ddd"===e?(r=yr.call(this._shortWeekdaysParse,s),-1!==r?r:null):(r=yr.call(this._minWeekdaysParse,s),-1!==r?r:null):"dddd"===e?-1!==(r=yr.call(this._weekdaysParse,s))?r:-1!==(r=yr.call(this._shortWeekdaysParse,s))?r:(r=yr.call(this._minWeekdaysParse,s),-1!==r?r:null):"ddd"===e?-1!==(r=yr.call(this._shortWeekdaysParse,s))?r:-1!==(r=yr.call(this._weekdaysParse,s))?r:(r=yr.call(this._minWeekdaysParse,s),-1!==r?r:null):-1!==(r=yr.call(this._minWeekdaysParse,s))?r:-1!==(r=yr.call(this._weekdaysParse,s))?r:(r=yr.call(this._shortWeekdaysParse,s),-1!==r?r:null)}function It(t,e,n){var i,r,o;if(this._weekdaysParseExact)return Yt.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=c([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}}function zt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Ct(t,this.localeData()),this.add(t-e,"d")):e}function Nt(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Wt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function jt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Gt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=Or),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Ft(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Gt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Er),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Vt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Gt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Cr),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Gt(){function t(t,e){return e.length-t.length}var e,n,i,r,o,s=[],a=[],u=[],h=[];for(e=0;e<7;e++)n=c([2e3,1]).day(e),i=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),o=this.weekdays(n,""),s.push(i),a.push(r),u.push(o),h.push(i),h.push(r),h.push(o);for(s.sort(t),a.sort(t),u.sort(t),h.sort(t),e=0;e<7;e++)a[e]=q(a[e]),u[e]=q(u[e]),h[e]=q(h[e]);this._weekdaysRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Bt(){return this.hours()%12||12}function Ut(){return this.hours()||24}function Ht(t,e){F(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Xt(t,e){return e._meridiemParse}function Zt(t){return"p"===(t+"").toLowerCase().charAt(0)}function qt(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function $t(t){return t?t.toLowerCase().replace("_","-"):t}function Jt(t){for(var e,n,i,r,o=0;o0;){if(i=Qt(r.slice(0,e).join("-")))return i;if(n&&n.length>=e&&b(r,n,!0)>=e-1)break;e--}o++}return null}function Qt(e){var n=null;if(!Yr[e]&&void 0!==t&&t&&t.exports)try{n=Pr._abbr;!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Kt(n)}catch(t){}return Yr[e]}function Kt(t,e){var n;return t&&(n=o(e)?ne(t):te(t,e))&&(Pr=n),Pr._abbr}function te(t,e){if(null!==e){var n=Ar;if(e.abbr=t,null!=Yr[t])M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Yr[t]._config;else if(null!=e.parentLocale){if(null==Yr[e.parentLocale])return Ir[e.parentLocale]||(Ir[e.parentLocale]=[]),Ir[e.parentLocale].push({name:t,config:e}),null;n=Yr[e.parentLocale]._config}return Yr[t]=new O(k(n,e)),Ir[t]&&Ir[t].forEach(function(t){te(t.name,t.config)}),Kt(t),Yr[t]}return delete Yr[t],null}function ee(t,e){if(null!=e){var n,i=Ar;null!=Yr[t]&&(i=Yr[t]._config),e=k(i,e),n=new O(e),n.parentLocale=Yr[t],Yr[t]=n,Kt(t)}else null!=Yr[t]&&(null!=Yr[t].parentLocale?Yr[t]=Yr[t].parentLocale:null!=Yr[t]&&delete Yr[t]);return Yr[t]}function ne(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Pr;if(!n(t)){if(e=Qt(t))return e;t=[t]}return Jt(t)}function ie(){return Li(Yr)}function re(t){var e,n=t._a;return n&&-2===f(t).overflow&&(e=n[hr]<0||n[hr]>11?hr:n[lr]<1||n[lr]>ut(n[ur],n[hr])?lr:n[cr]<0||n[cr]>24||24===n[cr]&&(0!==n[dr]||0!==n[fr]||0!==n[pr])?cr:n[dr]<0||n[dr]>59?dr:n[fr]<0||n[fr]>59?fr:n[pr]<0||n[pr]>999?pr:-1,f(t)._overflowDayOfYear&&(elr)&&(e=lr),f(t)._overflowWeeks&&-1===e&&(e=mr),f(t)._overflowWeekday&&-1===e&&(e=vr),f(t).overflow=e),t}function oe(t,e,n){return null!=t?t:null!=e?e:n}function se(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function ae(t){var e,n,i,r,o=[];if(!t._d){for(i=se(t),t._w&&null==t._a[lr]&&null==t._a[hr]&&ue(t),null!=t._dayOfYear&&(r=oe(t._a[ur],i[ur]),(t._dayOfYear>K(r)||0===t._dayOfYear)&&(f(t)._overflowDayOfYear=!0),n=wt(r,0,t._dayOfYear),t._a[hr]=n.getUTCMonth(),t._a[lr]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=i[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[cr]&&0===t._a[dr]&&0===t._a[fr]&&0===t._a[pr]&&(t._nextDay=!0,t._a[cr]=0),t._d=(t._useUTC?wt:_t).apply(null,o),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[cr]=24),t._w&&void 0!==t._w.d&&t._w.d!==t._d.getDay()&&(f(t).weekdayMismatch=!0)}}function ue(t){var e,n,i,r,o,s,a,u;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)o=1,s=4,n=oe(e.GG,t._a[ur],St(Te(),1,4).year),i=oe(e.W,1),((r=oe(e.E,1))<1||r>7)&&(u=!0);else{o=t._locale._week.dow,s=t._locale._week.doy;var h=St(Te(),o,s);n=oe(e.gg,t._a[ur],h.year),i=oe(e.w,h.week),null!=e.d?((r=e.d)<0||r>6)&&(u=!0):null!=e.e?(r=e.e+o,(e.e<0||e.e>6)&&(u=!0)):r=o}i<1||i>Mt(n,o,s)?f(t)._overflowWeeks=!0:null!=u?f(t)._overflowWeekday=!0:(a=xt(n,i,r,o,s),t._a[ur]=a.year,t._dayOfYear=a.dayOfYear)}function he(t){var e,n,i,r,o,s,a=t._i,u=zr.exec(a)||Nr.exec(a);if(u){for(f(t).iso=!0,e=0,n=jr.length;e0&&f(t).unusedInput.push(s),a=a.slice(a.indexOf(i)+i.length),h+=i.length),Vi[o]?(i?f(t).empty=!1:f(t).unusedTokens.push(o),Q(o,i,t)):t._strict&&!i&&f(t).unusedTokens.push(o);f(t).charsLeftOver=u-h,a.length>0&&f(t).unusedInput.push(a),t._a[cr]<=12&&!0===f(t).bigHour&&t._a[cr]>0&&(f(t).bigHour=void 0),f(t).parsedDateParts=t._a.slice(0),f(t).meridiem=t._meridiem,t._a[cr]=ge(t._locale,t._a[cr],t._meridiem),ae(t),re(t)}function ge(t,e,n){var i;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(i=t.isPM(n),i&&e<12&&(e+=12),i||12!==e||(e=0),e):e}function _e(t){var e,n,i,r,o;if(0===t._f.length)return f(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function He(){if(!o(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=xe(t),t._a){var e=t._isUTC?c(t._a):Te(t._a);this._isDSTShifted=this.isValid()&&b(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Xe(){return!!this.isValid()&&!this._isUTC}function Ze(){return!!this.isValid()&&this._isUTC}function qe(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function $e(t,e){var n,i,r,o=t,a=null;return Re(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:s(t)?(o={},e?o[e]=t:o.milliseconds=t):(a=$r.exec(t))?(n="-"===a[1]?-1:1,o={y:0,d:w(a[lr])*n,h:w(a[cr])*n,m:w(a[dr])*n,s:w(a[fr])*n,ms:w(Ae(1e3*a[pr]))*n}):(a=Jr.exec(t))?(n="-"===a[1]?-1:(a[1],1),o={y:Je(a[2],n),M:Je(a[3],n),w:Je(a[4],n),d:Je(a[5],n),h:Je(a[6],n),m:Je(a[7],n),s:Je(a[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(r=Ke(Te(o.from),Te(o.to)),o={},o.ms=r.milliseconds,o.M=r.months),i=new Le(o),Re(t)&&h(t,"_locale")&&(i._locale=t._locale),i}function Je(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Qe(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function Ke(t,e){var n;return t.isValid()&&e.isValid()?(e=ze(e,t),t.isBefore(e)?n=Qe(t,e):(n=Qe(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function tn(t,e){return function(n,i){var r,o;return null===i||isNaN(+i)||(M(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=n,n=i,i=o),n="string"==typeof n?+n:n,r=$e(n,i),en(this,r,t),this}}function en(t,n,i,r){var o=n._milliseconds,s=Ae(n._days),a=Ae(n._months);t.isValid()&&(r=null==r||r,a&&ft(t,it(t,"Month")+a*i),s&&rt(t,"Date",it(t,"Date")+s*i),o&&t._d.setTime(t._d.valueOf()+o*i),r&&e.updateOffset(t,s||a))}function nn(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function rn(t,n){var i=t||Te(),r=ze(i,this).startOf("day"),o=e.calendarFormat(this,r)||"sameElse",s=n&&(T(n[o])?n[o].call(this,i):n[o]);return this.format(s||this.localeData().calendar(o,this,Te(i)))}function on(){return new y(this)}function sn(t,e){var n=g(t)?t:Te(t);return!(!this.isValid()||!n.isValid())&&(e=I(o(e)?"millisecond":e),"millisecond"===e?this.valueOf()>n.valueOf():n.valueOf()9999?B(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):T(Date.prototype.toISOString)?this.toDate().toISOString():B(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function vn(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r=e+'[")]';return this.format(n+i+"-MM-DD[T]HH:mm:ss.SSS"+r)}function yn(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=B(this,t);return this.localeData().postformat(n)}function gn(t,e){return this.isValid()&&(g(t)&&t.isValid()||Te(t).isValid())?$e({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function _n(t){return this.from(Te(),t)}function wn(t,e){return this.isValid()&&(g(t)&&t.isValid()||Te(t).isValid())?$e({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function bn(t){return this.to(Te(),t)}function xn(t){var e;return void 0===t?this._locale._abbr:(e=ne(t),null!=e&&(this._locale=e),this)}function Sn(){return this._locale}function Mn(t){switch(t=I(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function Tn(t){return void 0===(t=I(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function Dn(){return this._d.valueOf()-6e4*(this._offset||0)}function kn(){return Math.floor(this.valueOf()/1e3)}function On(){return new Date(this.valueOf())}function En(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Cn(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Pn(){return this.isValid()?this.toISOString():null}function Ln(){return p(this)}function Rn(){return l({},f(this))}function An(){return f(this).overflow}function Yn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function In(t,e){F(0,[t,t.length],0,e)}function zn(t){return Fn.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Nn(t){return Fn.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Wn(){return Mt(this.year(),1,4)}function jn(){var t=this.localeData()._week;return Mt(this.year(),t.dow,t.doy)}function Fn(t,e,n,i,r){var o;return null==t?St(this,i,r).year:(o=Mt(t,i,r),e>o&&(e=o),Vn.call(this,t,e,n,i,r))}function Vn(t,e,n,i,r){var o=xt(t,e,n,i,r),s=wt(o.year,0,o.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}function Gn(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Bn(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Un(t,e){e[pr]=w(1e3*("0."+t))}function Hn(){return this._isUTC?"UTC":""}function Xn(){return this._isUTC?"Coordinated Universal Time":""}function Zn(t){return Te(1e3*t)}function qn(){return Te.apply(null,arguments).parseZone()}function $n(t){return t}function Jn(t,e,n,i){var r=ne(),o=c().set(i,e);return r[n](o,t)}function Qn(t,e,n){if(s(t)&&(e=t,t=void 0),t=t||"",null!=e)return Jn(t,e,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=Jn(t,i,n,"month");return r}function Kn(t,e,n,i){"boolean"==typeof t?(s(e)&&(n=e,e=void 0),e=e||""):(e=t,n=e,t=!1,s(e)&&(n=e,e=void 0),e=e||"");var r=ne(),o=t?r._week.dow:0;if(null!=n)return Jn(e,(n+o)%7,i,"day");var a,u=[];for(a=0;a<7;a++)u[a]=Jn(e,(a+o)%7,i,"day");return u}function ti(t,e){return Qn(t,e,"months")}function ei(t,e){return Qn(t,e,"monthsShort")}function ni(t,e,n){return Kn(t,e,n,"weekdays")}function ii(t,e,n){return Kn(t,e,n,"weekdaysShort")}function ri(t,e,n){return Kn(t,e,n,"weekdaysMin")}function oi(){var t=this._data;return this._milliseconds=uo(this._milliseconds),this._days=uo(this._days),this._months=uo(this._months),t.milliseconds=uo(t.milliseconds),t.seconds=uo(t.seconds),t.minutes=uo(t.minutes),t.hours=uo(t.hours),t.months=uo(t.months),t.years=uo(t.years),this}function si(t,e,n,i){var r=$e(e,n);return t._milliseconds+=i*r._milliseconds,t._days+=i*r._days,t._months+=i*r._months,t._bubble()}function ai(t,e){return si(this,t,e,1)}function ui(t,e){return si(this,t,e,-1)}function hi(t){return t<0?Math.floor(t):Math.ceil(t)}function li(){var t,e,n,i,r,o=this._milliseconds,s=this._days,a=this._months,u=this._data;return o>=0&&s>=0&&a>=0||o<=0&&s<=0&&a<=0||(o+=864e5*hi(di(a)+s),s=0,a=0),u.milliseconds=o%1e3,t=_(o/1e3),u.seconds=t%60,e=_(t/60),u.minutes=e%60,n=_(e/60),u.hours=n%24,s+=_(n/24),r=_(ci(s)),a+=r,s-=hi(di(r)),i=_(a/12),a%=12,u.days=s,u.months=a,u.years=i,this}function ci(t){return 4800*t/146097}function di(t){return 146097*t/4800}function fi(t){if(!this.isValid())return NaN;var e,n,i=this._milliseconds;if("month"===(t=I(t))||"year"===t)return e=this._days+i/864e5,n=this._months+ci(e),"month"===t?n:n/12;switch(e=this._days+Math.round(di(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}}function pi(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN}function mi(t){return function(){return this.as(t)}}function vi(){return $e(this)}function yi(t){return t=I(t),this.isValid()?this[t+"s"]():NaN}function gi(t){return function(){return this.isValid()?this._data[t]:NaN}}function _i(){return _(this.days()/7)}function wi(t,e,n,i,r){return r.relativeTime(e||1,!!n,t,i)}function bi(t,e,n){var i=$e(t).abs(),r=To(i.as("s")),o=To(i.as("m")),s=To(i.as("h")),a=To(i.as("d")),u=To(i.as("M")),h=To(i.as("y")),l=r<=Do.ss&&["s",r]||r0,l[4]=n,wi.apply(null,l)}function xi(t){return void 0===t?To:"function"==typeof t&&(To=t,!0)}function Si(t,e){return void 0!==Do[t]&&(void 0===e?Do[t]:(Do[t]=e,"s"===t&&(Do.ss=e-1),!0))}function Mi(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=bi(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function Ti(t){return(t>0)-(t<0)||+t}function Di(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n,i=ko(this._milliseconds)/1e3,r=ko(this._days),o=ko(this._months);t=_(i/60),e=_(t/60),i%=60,t%=60,n=_(o/12),o%=12;var s=n,a=o,u=r,h=e,l=t,c=i?i.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var f=d<0?"-":"",p=Ti(this._months)!==Ti(d)?"-":"",m=Ti(this._days)!==Ti(d)?"-":"",v=Ti(this._milliseconds)!==Ti(d)?"-":"";return f+"P"+(s?p+s+"Y":"")+(a?p+a+"M":"")+(u?m+u+"D":"")+(h||l||c?"T":"")+(h?v+h+"H":"")+(l?v+l+"M":"")+(c?v+c+"S":"")}var ki,Oi;Oi=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,i=0;i68?1900:2e3)};var yr,gr=nt("FullYear",!0);yr=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;ethis?this:t:m()}),Xr=function(){return Date.now?Date.now():+new Date},Zr=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ye("Z",":"),Ye("ZZ",""),H("Z",ir),H("ZZ",ir),$(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Ie(ir,t)});var qr=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var $r=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Jr=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;$e.fn=Le.prototype,$e.invalid=Pe;var Qr=tn(1,"add"),Kr=tn(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var to=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});F(0,["gg",2],0,function(){return this.weekYear()%100}),F(0,["GG",2],0,function(){return this.isoWeekYear()%100}),In("gggg","weekYear"),In("ggggg","weekYear"),In("GGGG","isoWeekYear"),In("GGGGG","isoWeekYear"),Y("weekYear","gg"),Y("isoWeekYear","GG"),N("weekYear",1),N("isoWeekYear",1),H("G",er),H("g",er),H("GG",Zi,Bi),H("gg",Zi,Bi),H("GGGG",Qi,Hi),H("gggg",Qi,Hi),H("GGGGG",Ki,Xi),H("ggggg",Ki,Xi),J(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=w(t)}),J(["gg","GG"],function(t,n,i,r){n[r]=e.parseTwoDigitYear(t)}),F("Q",0,"Qo","quarter"),Y("quarter","Q"),N("quarter",7),H("Q",Gi),$("Q",function(t,e){e[hr]=3*(w(t)-1)}),F("D",["DD",2],"Do","date"),Y("date","D"),N("date",9),H("D",Zi),H("DD",Zi,Bi),H("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),$(["D","DD"],lr),$("Do",function(t,e){e[lr]=w(t.match(Zi)[0],10)});var eo=nt("Date",!0);F("DDD",["DDDD",3],"DDDo","dayOfYear"),Y("dayOfYear","DDD"),N("dayOfYear",4),H("DDD",Ji),H("DDDD",Ui),$(["DDD","DDDD"],function(t,e,n){n._dayOfYear=w(t)}),F("m",["mm",2],0,"minute"),Y("minute","m"),N("minute",14),H("m",Zi),H("mm",Zi,Bi),$(["m","mm"],dr);var no=nt("Minutes",!1);F("s",["ss",2],0,"second"),Y("second","s"),N("second",15),H("s",Zi),H("ss",Zi,Bi),$(["s","ss"],fr);var io=nt("Seconds",!1);F("S",0,0,function(){return~~(this.millisecond()/100)}),F(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),F(0,["SSS",3],0,"millisecond"),F(0,["SSSS",4],0,function(){return 10*this.millisecond()}),F(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),F(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),F(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),F(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),F(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),Y("millisecond","ms"),N("millisecond",16),H("S",Ji,Gi),H("SS",Ji,Bi),H("SSS",Ji,Ui);var ro;for(ro="SSSS";ro.length<=9;ro+="S")H(ro,tr);for(ro="S";ro.length<=9;ro+="S")$(ro,Un);var oo=nt("Milliseconds",!1);F("z",0,0,"zoneAbbr"),F("zz",0,0,"zoneName");var so=y.prototype;so.add=Qr,so.calendar=rn,so.clone=on,so.diff=dn,so.endOf=Tn,so.format=yn,so.from=gn,so.fromNow=_n,so.to=wn,so.toNow=bn,so.get=ot,so.invalidAt=An,so.isAfter=sn,so.isBefore=an,so.isBetween=un,so.isSame=hn,so.isSameOrAfter=ln,so.isSameOrBefore=cn,so.isValid=Ln,so.lang=to,so.locale=xn,so.localeData=Sn,so.max=Hr,so.min=Ur,so.parsingFlags=Rn,so.set=st,so.startOf=Mn,so.subtract=Kr,so.toArray=En,so.toObject=Cn,so.toDate=On,so.toISOString=mn,so.inspect=vn,so.toJSON=Pn,so.toString=pn,so.unix=kn,so.valueOf=Dn,so.creationData=Yn,so.year=gr,so.isLeapYear=et,so.weekYear=zn,so.isoWeekYear=Nn,so.quarter=so.quarters=Gn,so.month=pt,so.daysInMonth=mt,so.week=so.weeks=Ot,so.isoWeek=so.isoWeeks=Et,so.weeksInYear=jn,so.isoWeeksInYear=Wn,so.date=eo,so.day=so.days=zt,so.weekday=Nt,so.isoWeekday=Wt,so.dayOfYear=Bn,so.hour=so.hours=Rr,so.minute=so.minutes=no,so.second=so.seconds=io,so.millisecond=so.milliseconds=oo,so.utcOffset=We,so.utc=Fe,so.local=Ve,so.parseZone=Ge,so.hasAlignedHourOffset=Be,so.isDST=Ue,so.isLocal=Xe,so.isUtcOffset=Ze,so.isUtc=qe,so.isUTC=qe,so.zoneAbbr=Hn,so.zoneName=Xn,so.dates=S("dates accessor is deprecated. Use date instead.",eo),so.months=S("months accessor is deprecated. Use month instead",pt),so.years=S("years accessor is deprecated. Use year instead",gr),so.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",je),so.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",He);var ao=O.prototype;ao.calendar=E,ao.longDateFormat=C,ao.invalidDate=P,ao.ordinal=L,ao.preparse=$n,ao.postformat=$n,ao.relativeTime=R,ao.pastFuture=A,ao.set=D,ao.months=ht,ao.monthsShort=lt,ao.monthsParse=dt,ao.monthsRegex=yt,ao.monthsShortRegex=vt,ao.week=Tt,ao.firstDayOfYear=kt,ao.firstDayOfWeek=Dt,ao.weekdays=Lt,ao.weekdaysMin=At,ao.weekdaysShort=Rt,ao.weekdaysParse=It,ao.weekdaysRegex=jt,ao.weekdaysShortRegex=Ft,ao.weekdaysMinRegex=Vt,ao.isPM=Zt,ao.meridiem=qt,Kt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===w(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),e.lang=S("moment.lang is deprecated. Use moment.locale instead.",Kt),e.langData=S("moment.langData is deprecated. Use moment.localeData instead.",ne);var uo=Math.abs,ho=mi("ms"),lo=mi("s"),co=mi("m"),fo=mi("h"),po=mi("d"),mo=mi("w"),vo=mi("M"),yo=mi("y"),go=gi("milliseconds"),_o=gi("seconds"),wo=gi("minutes"),bo=gi("hours"),xo=gi("days"),So=gi("months"),Mo=gi("years"),To=Math.round,Do={ss:44,s:45,m:45,h:22,d:26,M:11},ko=Math.abs,Oo=Le.prototype;return Oo.isValid=Ce,Oo.abs=oi,Oo.add=ai,Oo.subtract=ui,Oo.as=fi,Oo.asMilliseconds=ho,Oo.asSeconds=lo,Oo.asMinutes=co,Oo.asHours=fo,Oo.asDays=po,Oo.asWeeks=mo,Oo.asMonths=vo,Oo.asYears=yo,Oo.valueOf=pi,Oo._bubble=li,Oo.clone=vi,Oo.get=yi,Oo.milliseconds=go,Oo.seconds=_o,Oo.minutes=wo,Oo.hours=bo,Oo.days=xo,Oo.weeks=_i,Oo.months=So,Oo.years=Mo,Oo.humanize=Mi,Oo.toISOString=Di,Oo.toString=Di,Oo.toJSON=Di,Oo.locale=xn,Oo.localeData=Sn,Oo.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Di),Oo.lang=to,F("X",0,0,"unix"),F("x",0,0,"valueOf"),H("x",er),H("X",rr),$("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),$("x",function(t,e,n){n._d=new Date(w(t))}),e.version="2.19.1",function(t){ki=t}(Te),e.fn=so,e.min=ke,e.max=Oe,e.now=Xr,e.utc=c,e.unix=Zn,e.months=ti,e.isDate=a,e.locale=Kt,e.invalid=m,e.duration=$e,e.isMoment=g,e.weekdays=ni,e.parseZone=qn,e.localeData=ne,e.isDuration=Re,e.monthsShort=ei,e.weekdaysMin=ri,e.defineLocale=te,e.updateLocale=ee,e.locales=ie,e.weekdaysShort=ii,e.normalizeUnits=I,e.relativeTimeRounding=xi,e.relativeTimeThreshold=Si,e.calendarFormat=nn,e.prototype=so,e})}).call(e,n(95)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){function n(t){throw new Error("Cannot find module '"+t+"'.")}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=96},function(t,e,n){(function(e){function n(t,e,n){var i=e&&n||0,r=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){r<16&&(e[i+r++]=c[t])});r<16;)e[i+r++]=0;return e}function i(t,e){var n=e||0,i=l;return i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]}function r(t,e,n){var r=e&&n||0,o=e||[];t=t||{};var s=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),u=void 0!==t.nsecs?t.nsecs:y+1,h=a-v+(u-y)/1e4;if(h<0&&void 0===t.clockseq&&(s=s+1&16383),(h<0||a>v)&&void 0===t.nsecs&&(u=0),u>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,y=u,m=s,a+=122192928e5;var l=(1e4*(268435455&a)+u)%4294967296;o[r++]=l>>>24&255,o[r++]=l>>>16&255,o[r++]=l>>>8&255,o[r++]=255&l;var c=a/4294967296*1e4&268435455;o[r++]=c>>>8&255,o[r++]=255&c,o[r++]=c>>>24&15|16,o[r++]=c>>>16&255,o[r++]=s>>>8|128,o[r++]=255&s;for(var d=t.node||p,f=0;f<6;f++)o[r+f]=d[f];return e||i(o)}function o(t,e,n){var r=e&&n||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var o=t.random||(t.rng||s)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,e)for(var a=0;a<16;a++)e[r+a]=o[a];return e||i(o)}var s,a="undefined"!=typeof window?window:void 0!==e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var u=new Uint8Array(16);s=function(){return crypto.getRandomValues(u),u}}if(!s){var h=new Array(16);s=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),h[e]=t>>>((3&e)<<3)&255;return h}}for(var l=[],c={},d=0;d<256;d++)l[d]=(d+256).toString(16).substr(1),c[l[d]]=d;var f=s(),p=[1|f[0],f[1],f[2],f[3],f[4],f[5]],m=16383&(f[6]<<8|f[7]),v=0,y=0,g=o;g.v1=r,g.v4=o,g.parse=n,g.unparse=i,t.exports=g}).call(e,n(98))},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var n=0;n0?(i=e[t].redundant[0],e[t].redundant.shift()):(i=document.createElementNS("http://www.w3.org/2000/svg",t),n.appendChild(i)):(i=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},n.appendChild(i)),e[t].used.push(i),i},e.getDOMElement=function(t,e,n,i){var r;return e.hasOwnProperty(t)?e[t].redundant.length>0?(r=e[t].redundant[0],e[t].redundant.shift()):(r=document.createElement(t),void 0!==i?n.insertBefore(r,i):n.appendChild(r)):(r=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==i?n.insertBefore(r,i):n.appendChild(r)),e[t].used.push(r),r},e.drawPoint=function(t,n,i,r,o,s){var a;if("circle"==i.style?(a=e.getSVGElement("circle",r,o),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",n),a.setAttributeNS(null,"r",.5*i.size)):(a=e.getSVGElement("rect",r,o),a.setAttributeNS(null,"x",t-.5*i.size),a.setAttributeNS(null,"y",n-.5*i.size),a.setAttributeNS(null,"width",i.size),a.setAttributeNS(null,"height",i.size)),void 0!==i.styles&&a.setAttributeNS(null,"style",i.styles),a.setAttributeNS(null,"class",i.className+" vis-point"),s){var u=e.getSVGElement("text",r,o);s.xOffset&&(t+=s.xOffset),s.yOffset&&(n+=s.yOffset),s.content&&(u.textContent=s.content),s.className&&u.setAttributeNS(null,"class",s.className+" vis-label"),u.setAttributeNS(null,"x",t),u.setAttributeNS(null,"y",n)}return a},e.drawBar=function(t,n,i,r,o,s,a,u){if(0!=r){r<0&&(r*=-1,n-=r);var h=e.getSVGElement("rect",s,a);h.setAttributeNS(null,"x",t-.5*i),h.setAttributeNS(null,"y",n),h.setAttributeNS(null,"width",i),h.setAttributeNS(null,"height",r),h.setAttributeNS(null,"class",o),u&&h.setAttributeNS(null,"style",u)}}},function(t,e,n){var i=n(0),r=i.JSON||(i.JSON={stringify:JSON.stringify});t.exports=function(t){return r.stringify.apply(r,arguments)}},function(t,e,n){function i(t,e,n){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.dataGroup=new w,this.dataPoints=null,this.create(),p.setDefaults(i.DEFAULTS,this),this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.setOptions(n),this.setData(e)}function r(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function o(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var s=n(102),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=n(106),h=n(3),l=n(13),c=n(49),d=n(50),f=n(51),p=n(52),m=n(54).default,v=n(54),y=v.printStyle,g=n(116),_=g.allOptions,w=n(117);i.STYLE=p.STYLE;i.DEFAULTS={width:"400px",height:"400px",filterLabel:"time",legendLabel:"value",xLabel:"x",yLabel:"y",zLabel:"z",xValueLabel:function(t){return t},yValueLabel:function(t){return t},zValueLabel:function(t){return t},showXAxis:!0,showYAxis:!0,showZAxis:!0,showGrid:!0,showPerspective:!0,showShadow:!1,keepAspectRatio:!0,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:void 0,animationInterval:1e3,animationPreload:!1,animationAutoStart:void 0,axisColor:"#4D4D4D",gridColor:"#D3D3D3",xCenter:"55%",yCenter:"50%",style:i.STYLE.DOT,tooltip:!1,tooltipStyle:{content:{padding:"10px",border:"1px solid #4d4d4d",color:"#1a1a1a",background:"rgba(255,255,255,0.7)",borderRadius:"2px",boxShadow:"5px 5px 10px rgba(128,128,128,0.5)"},line:{height:"40px",width:"0",borderLeft:"1px solid #4d4d4d"},dot:{height:"0",width:"0",border:"5px solid #4d4d4d",borderRadius:"5px"}},dataColor:{fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:void 0,backgroundColor:void 0,xBarWidth:void 0,yBarWidth:void 0,valueMin:void 0,valueMax:void 0,xMin:void 0,xMax:void 0,xStep:void 0,yMin:void 0,yMax:void 0,yStep:void 0,zMin:void 0,zMax:void 0,zStep:void 0},u(i.prototype),i.prototype._setScale=function(){this.scale=new l(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range()),this.keepAspectRatio&&(this.scale.x0&&(s[r-1].pointNext=s[r]);return s},i.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t),this.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,n=function(t){e._onMouseDown(t)},i=function(t){e._onTouchStart(t)},r=function(t){e._onWheel(t)},o=function(t){e._onTooltip(t)},s=function(t){e._onClick(t)};h.addEventListener(this.frame.canvas,"mousedown",n),h.addEventListener(this.frame.canvas,"touchstart",i),h.addEventListener(this.frame.canvas,"mousewheel",r),h.addEventListener(this.frame.canvas,"mousemove",o),h.addEventListener(this.frame.canvas,"click",s),this.containerElement.appendChild(this.frame)},i.prototype._setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},i.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},i.prototype.animationStart=function(){if(this.animationAutoStart&&this.dataGroup.dataFilter){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()}},i.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},i.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},i.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},i.prototype._readData=function(t){this.dataPoints=this.dataGroup.initializeData(this,t,this.style),this._initializeRanges(),this._redrawFilter()},i.prototype.setData=function(t){void 0!==t&&null!==t&&(this._readData(t),this.redraw(),this.animationStart())},i.prototype.setOptions=function(t){if(void 0!==t){!0===m.validate(t,_)&&console.log("%cErrors have been found in the supplied options object.",y),this.animationStop(),p.setOptions(t,this),this.setPointDrawingMethod(),this._setSize(this.width,this.height),this.setData(this.dataGroup.getDataTable()),this.animationStart()}},i.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case i.STYLE.BAR:t=i.prototype._redrawBarGraphPoint;break;case i.STYLE.BARCOLOR:t=i.prototype._redrawBarColorGraphPoint;break;case i.STYLE.BARSIZE:t=i.prototype._redrawBarSizeGraphPoint;break;case i.STYLE.DOT:t=i.prototype._redrawDotGraphPoint;break;case i.STYLE.DOTLINE:t=i.prototype._redrawDotLineGraphPoint;break;case i.STYLE.DOTCOLOR:t=i.prototype._redrawDotColorGraphPoint;break;case i.STYLE.DOTSIZE:t=i.prototype._redrawDotSizeGraphPoint;break;case i.STYLE.SURFACE:t=i.prototype._redrawSurfaceGraphPoint;break;case i.STYLE.GRID:t=i.prototype._redrawGridGraphPoint;break;case i.STYLE.LINE:t=i.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},i.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},i.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},i.prototype._redrawClear=function(){var t=this.frame.canvas;t.getContext("2d").clearRect(0,0,t.width,t.height)},i.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},i.prototype._getLegendWidth=function(){var t;if(this.style===i.STYLE.DOTSIZE){t=this._dotSize()*this.dotSizeMaxFraction}else t=this.style===i.STYLE.BARSIZE?this.xBarWidth:20;return t},i.prototype._redrawLegend=function(){if(!0===this.showLegend&&this.style!==i.STYLE.LINE&&this.style!==i.STYLE.BARSIZE){var t=this.style===i.STYLE.BARSIZE||this.style===i.STYLE.DOTSIZE,e=this.style===i.STYLE.DOTSIZE||this.style===i.STYLE.DOTCOLOR||this.style===i.STYLE.BARCOLOR,n=Math.max(.25*this.frame.clientHeight,100),r=this.margin,o=this._getLegendWidth(),s=this.frame.clientWidth-this.margin,a=s-o,u=r+n,h=this._getContext();if(h.lineWidth=1,h.font="14px arial",!1===t){var l,d=n;for(l=0;l0?(t.textAlign="center",t.textBaseline="top",o.y+=r):Math.sin(2*i)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(n,o.x,o.y)},i.prototype.drawAxisLabelY=function(t,e,n,i,r){void 0===r&&(r=0);var o=this._convert3Dto2D(e);Math.cos(2*i)<0?(t.textAlign="center",t.textBaseline="top",o.y+=r):Math.sin(2*i)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(n,o.x,o.y)},i.prototype.drawAxisLabelZ=function(t,e,n,i){void 0===i&&(i=0);var r=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(n,r.x-i,r.y)},i.prototype._line3d=function(t,e,n,i){var r=this._convert3Dto2D(e),o=this._convert3Dto2D(n);this._line(t,r,o,i)},i.prototype._redrawAxis=function(){var t,e,n,i,r,o,s,a,u,h,d,p=this._getContext();p.font=24/this.camera.getArmLength()+"px arial";var m,v=.025/this.scale.x,y=.025/this.scale.y,g=5/this.camera.getArmLength(),_=this.camera.getArmRotation().horizontal,w=new c(Math.cos(_),Math.sin(_)),b=this.xRange,x=this.yRange,S=this.zRange;for(p.lineWidth=1,i=void 0===this.defaultXStep,n=new f(b.min,b.max,this.xStep,i),n.start(!0);!n.end();){var M=n.getCurrent();if(this.showGrid?(t=new l(M,x.min,S.min),e=new l(M,x.max,S.min),this._line3d(p,t,e,this.gridColor)):this.showXAxis&&(t=new l(M,x.min,S.min),e=new l(M,x.min+v,S.min),this._line3d(p,t,e,this.axisColor),t=new l(M,x.max,S.min),e=new l(M,x.max-v,S.min),this._line3d(p,t,e,this.axisColor)),this.showXAxis){s=w.x>0?x.min:x.max,m=new l(M,s,S.min);var T=" "+this.xValueLabel(M)+" ";this.drawAxisLabelX(p,m,T,_,g)}n.next()}for(p.lineWidth=1,i=void 0===this.defaultYStep,n=new f(x.min,x.max,this.yStep,i),n.start(!0);!n.end();){var D=n.getCurrent();if(this.showGrid?(t=new l(b.min,D,S.min),e=new l(b.max,D,S.min),this._line3d(p,t,e,this.gridColor)):this.showYAxis&&(t=new l(b.min,D,S.min),e=new l(b.min+y,D,S.min),this._line3d(p,t,e,this.axisColor),t=new l(b.max,D,S.min),e=new l(b.max-y,D,S.min),this._line3d(p,t,e,this.axisColor)),this.showYAxis){o=w.y>0?b.min:b.max,m=new l(o,D,S.min);var k=" "+this.yValueLabel(D)+" ";this.drawAxisLabelY(p,m,k,_,g)}n.next()}if(this.showZAxis){for(p.lineWidth=1,i=void 0===this.defaultZStep,n=new f(S.min,S.max,this.zStep,i),n.start(!0),o=w.x>0?b.min:b.max,s=w.y<0?x.min:x.max;!n.end();){var O=n.getCurrent(),E=new l(o,s,O),C=this._convert3Dto2D(E);e=new c(C.x-g,C.y),this._line(p,C,e,this.axisColor);var P=this.zValueLabel(O)+" ";this.drawAxisLabelZ(p,E,P,5),n.next()}p.lineWidth=1,t=new l(o,s,S.min),e=new l(o,s,S.max),this._line3d(p,t,e,this.axisColor)}if(this.showXAxis){var L,R;p.lineWidth=1,L=new l(b.min,x.min,S.min),R=new l(b.max,x.min,S.min),this._line3d(p,L,R,this.axisColor),L=new l(b.min,x.max,S.min),R=new l(b.max,x.max,S.min),this._line3d(p,L,R,this.axisColor)}this.showYAxis&&(p.lineWidth=1,t=new l(b.min,x.min,S.min),e=new l(b.min,x.max,S.min),this._line3d(p,t,e,this.axisColor),t=new l(b.max,x.min,S.min),e=new l(b.max,x.max,S.min),this._line3d(p,t,e,this.axisColor));var A=this.xLabel;A.length>0&&this.showXAxis&&(d=.1/this.scale.y,o=(b.max+3*b.min)/4,s=w.x>0?x.min-d:x.max+d,r=new l(o,s,S.min),this.drawAxisLabelX(p,r,A,_));var Y=this.yLabel;Y.length>0&&this.showYAxis&&(h=.1/this.scale.x,o=w.y>0?b.min-h:b.max+h,s=(x.max+3*x.min)/4,r=new l(o,s,S.min),this.drawAxisLabelY(p,r,Y,_));var I=this.zLabel;I.length>0&&this.showZAxis&&(u=30,o=w.x>0?b.min:b.max,s=w.y<0?x.min:x.max,a=(S.max+3*S.min)/4,r=new l(o,s,a),this.drawAxisLabelZ(p,r,I,u))},i.prototype._hsv2rgb=function(t,e,n){var i,r,o,s,a,u;switch(s=n*e,a=Math.floor(t/60),u=s*(1-Math.abs(t/60%2-1)),a){case 0:i=s,r=u,o=0;break;case 1:i=u,r=s,o=0;break;case 2:i=0,r=s,o=u;break;case 3:i=0,r=u,o=s;break;case 4:i=u,r=0,o=s;break;case 5:i=s,r=0,o=u;break;default:i=0,r=0,o=0}return"RGB("+parseInt(255*i)+","+parseInt(255*r)+","+parseInt(255*o)+")"},i.prototype._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-this.eye.z/this.camera.getArmLength()*this.dataColor.strokeWidth:this.dataColor.strokeWidth},i.prototype._redrawBar=function(t,e,n,i,r,o){var s,a=this,u=e.point,h=this.zRange.min,c=[{point:new l(u.x-n,u.y-i,u.z)},{point:new l(u.x+n,u.y-i,u.z)},{point:new l(u.x+n,u.y+i,u.z)},{point:new l(u.x-n,u.y+i,u.z)}],d=[{point:new l(u.x-n,u.y-i,h)},{point:new l(u.x+n,u.y-i,h)},{point:new l(u.x+n,u.y+i,h)},{point:new l(u.x-n,u.y+i,h)}];c.forEach(function(t){t.screen=a._convert3Dto2D(t.point)}),d.forEach(function(t){t.screen=a._convert3Dto2D(t.point)});var f=[{corners:c,center:l.avg(d[0].point,d[2].point)},{corners:[c[0],c[1],d[1],d[0]],center:l.avg(d[1].point,d[0].point)},{corners:[c[1],c[2],d[2],d[1]],center:l.avg(d[2].point,d[1].point)},{corners:[c[2],c[3],d[3],d[2]],center:l.avg(d[3].point,d[2].point)},{corners:[c[3],c[0],d[0],d[3]],center:l.avg(d[0].point,d[3].point)}];e.surfaces=f;for(var p=0;p0}if(a){var f,p=(e.point.z+n.point.z+i.point.z+r.point.z)/4,m=240*(1-(p-this.zRange.min)*this.scale.z/this.verticalRatio);this.showShadow?(f=Math.min(1+c.x/d/2,1),o=this._hsv2rgb(m,1,f),s=o):(f=1,o=this._hsv2rgb(m,1,f),s=this.axisColor)}else o="gray",s=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var v=[e,n,r,i];this._polygon(t,v,o,s)}},i.prototype._drawGridLine=function(t,e,n){if(void 0!==e&&void 0!==n){var i=(e.point.z+n.point.z)/2,r=240*(1-(i-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(r,1,1),this._line(t,e.screen,n.screen)}},i.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},i.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},i.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t0?1:t<0?-1:0}var i=e[0],r=e[1],o=e[2],s=n((r.x-i.x)*(t.y-i.y)-(r.y-i.y)*(t.x-i.x)),a=n((o.x-r.x)*(t.y-r.y)-(o.y-r.y)*(t.x-r.x)),u=n((i.x-o.x)*(t.y-o.y)-(i.y-o.y)*(t.x-o.x));return!(0!=s&&0!=a&&s!=a||0!=a&&0!=u&&a!=u||0!=s&&0!=u&&s!=u)},i.prototype._dataPointFromXY=function(t,e){var n,r=null,o=null,s=null,a=new c(t,e);if(this.style===i.STYLE.BAR||this.style===i.STYLE.BARCOLOR||this.style===i.STYLE.BARSIZE)for(n=this.dataPoints.length-1;n>=0;n--){r=this.dataPoints[n];var u=r.surfaces;if(u)for(var h=u.length-1;h>=0;h--){var l=u[h],d=l.corners,f=[d[0].screen,d[1].screen,d[2].screen],p=[d[2].screen,d[3].screen,d[0].screen];if(this._insideTriangle(a,f)||this._insideTriangle(a,p))return r}}else for(n=0;n"+this.xLabel+":"+t.point.x+""+this.yLabel+":"+t.point.y+""+this.zLabel+":"+t.point.z+"",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(n),this.frame.appendChild(i);var r=e.offsetWidth,o=e.offsetHeight,s=n.offsetHeight,u=i.offsetWidth,h=i.offsetHeight,l=t.screen.x-r/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-r),n.style.left=t.screen.x+"px",n.style.top=t.screen.y-s+"px",e.style.left=l+"px",e.style.top=t.screen.y-s-o+"px",i.style.left=t.screen.x-u/2+"px",i.style.top=t.screen.y-h/2+"px"},i.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},i.prototype.setCameraPosition=function(t){p.setCameraPosition(t,this),this.redraw()},i.prototype.setSize=function(t,e){this._setSize(t,e),this.redraw()},t.exports=i},function(t,e,n){t.exports={default:n(103),__esModule:!0}},function(t,e,n){n(104),t.exports=n(0).Object.assign},function(t,e,n){var i=n(4);i(i.S+i.F,"Object",{assign:n(105)})},function(t,e,n){var i=n(12),r=n(34),o=n(20),s=n(31),a=n(38),u=Object.assign;t.exports=!u||n(10)(function(){var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach(function(t){e[t]=t}),7!=u({},t)[n]||Object.keys(u({},e)).join("")!=i})?function(t,e){for(var n=s(t),u=arguments.length,h=1,l=r.f,c=o.f;u>h;)for(var d,f=a(arguments[h++]),p=l?i(f).concat(l(f)):i(f),m=p.length,v=0;m>v;)c.call(f,d=p[v++])&&(n[d]=f[d]);return n}:u},function(t,e){function n(t){if(t)return i(t)}function i(t){for(var e in n.prototype)t[e]=n.prototype[e];return t}t.exports=n,n.prototype.on=n.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},n.prototype.once=function(t,e){function n(){i.off(t,n),e.apply(this,arguments)}var i=this;return this._callbacks=this._callbacks||{},n.fn=e,this.on(t,n),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[t];if(!n)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var i,r=0;ro)&&(i=o)}return i},i.prototype.getColumnRange=function(t,e){for(var n=new s,i=0;i0&&(e[n-1].pointNext=e[n]);return e},i.prototype._checkValueField=function(t){if(this.style===u.STYLE.BARCOLOR||this.style===u.STYLE.BARSIZE||this.style===u.STYLE.DOTCOLOR||this.style===u.STYLE.DOTSIZE){if(void 0===this.colValue)throw new Error("Expected data to have field 'style' for graph style '"+this.style+"'");if(void 0===t[0][this.colValue])throw new Error("Expected data to have field '"+this.colValue+"' for graph style '"+this.style+"'")}},t.exports=i},function(t,e,n){function i(){this.min=void 0,this.max=void 0}i.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.maxn)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=n}},i.prototype.range=function(){return this.max-this.min},i.prototype.center=function(){return(this.min+this.max)/2},t.exports=i},function(t,e,n){function i(){var t=function(){};return{on:t,off:t,destroy:t,emit:t,get:function(e){return{set:t}}}}if("undefined"!=typeof window){var r=n(120),o=window.Hammer||n(121);t.exports=r(o,{preventDefault:"mouse"})}else t.exports=function(){return i()}},function(t,e,n){var i,r,o;!function(n){r=[],i=n,void 0!==(o="function"==typeof i?i.apply(e,r):i)&&(t.exports=o)}(function(){var t=null;return function e(n,i){function r(t){return t.match(/[^ ]+/g)}function o(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var n=!1;e.stopPropagation=function(){n=!0};var i=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof i&&(e.srcEvent.stopPropagation=function(){i(),e.stopPropagation()}),e.firstTarget=t;for(var r=t;r&&!n;){var o=r.hammer;if(o)for(var s,a=0;a0?h._handlers[t]=i:(n.off(t,o),delete h._handlers[t]))}),h},h.emit=function(e,i){t=i.target,n.emit(e,i)},h.destroy=function(){var t=n.element.hammer,e=t.indexOf(h);-1!==e&&t.splice(e,1),t.length||delete n.element.hammer,h._handlers={},n.destroy()},h}})},function(t,e,n){var i;/*! Hammer.JS - v2.0.7 - 2016-04-22 +"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}("undefined"!=typeof self?self:this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=56)}([function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){t.exports=!n(10)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){var i=n(29)("wks"),r=n(18),o=n(1).Symbol,s="function"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)("Symbol."+t))}).store=i},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e,n,i){var r=!1;!0===i&&(r=null===e[n]&&void 0!==t[n]),r?delete t[n]:t[n]=e[n]}var o=n(57),s=i(o),a=n(75),u=i(a),h=n(20),l=i(h),c=n(21),d=i(c),f=n(46),p=n(97);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;!0===t.hasChildNodes();)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,n,i){if(e==t)return.5;var r=1/(e-t);return Math.max(0,(i-t)*r)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){if(m.exec(t))return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return p.v4()},e.assignAllKeys=function(t,e){for(var n in t)t.hasOwnProperty(n)&&"object"!==(0,d.default)(t[n])&&(t[n]=e)},e.fillIfDefined=function(t,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var o in t)void 0!==n[o]&&(null===n[o]||"object"!==(0,d.default)(n[o])?r(t,n,o,i):"object"===(0,d.default)(t[o])&&e.fillIfDefined(t[o],n[o],i))},e.extend=function(t,e){for(var n=1;n3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(i))throw new TypeError("Arrays are not supported by deepExtend");for(var s=0;s3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(i))throw new TypeError("Arrays are not supported by deepExtend");for(var s in i)if(i.hasOwnProperty(s)&&-1===t.indexOf(s))if(i[s]&&i[s].constructor===Object)void 0===n[s]&&(n[s]={}),n[s].constructor===Object?e.deepExtend(n[s],i[s]):r(n,i,s,o);else if(Array.isArray(i[s])){n[s]=[];for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var s in n)if(n.hasOwnProperty(s)||!0===i)if(n[s]&&n[s].constructor===Object)void 0===t[s]&&(t[s]={}),t[s].constructor===Object?e.deepExtend(t[s],n[s],i):r(t,n,s,o);else if(Array.isArray(n[s])){t[s]=[];for(var a=0;a=0&&(e="DOMMouseScroll"),t.addEventListener(e,n,i)):t.attachEvent("on"+e,n)},e.removeEventListener=function(t,e,n,i){t.removeEventListener?(void 0===i&&(i=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,n,i)):t.detachEvent("on"+e,n)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,n){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":n||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,n,i){return e+e+n+n+i+i});var n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:null},e.overrideOpacity=function(t,n){var i;return-1!=t.indexOf("rgba")?t:-1!=t.indexOf("rgb")?(i=t.substr(t.indexOf("(")+1).replace(")","").split(","),"rgba("+i[0]+","+i[1]+","+i[2]+","+n+")"):(i=e.hexToRGB(t),null==i?t:"rgba("+i.r+","+i.g+","+i.b+","+n+")")},e.RGBToHex=function(t,e,n){return"#"+((1<<24)+(t<<16)+(e<<8)+n).toString(16).slice(1)},e.parseColor=function(t){var n;if(!0===e.isString(t)){if(!0===e.isValidRGB(t)){var i=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(i[0],i[1],i[2])}if(!0===e.isValidHex(t)){var r=e.hexToHSV(t),o={h:r.h,s:.8*r.s,v:Math.min(1,1.02*r.v)},s={h:r.h,s:Math.min(1,1.25*r.s),v:.8*r.v},a=e.HSVToHex(s.h,s.s,s.v),u=e.HSVToHex(o.h,o.s,o.v);n={background:t,border:a,highlight:{background:u,border:a},hover:{background:u,border:a}}}else n={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else n={},n.background=t.background||void 0,n.border=t.border||void 0,e.isString(t.highlight)?n.highlight={border:t.highlight,background:t.highlight}:(n.highlight={},n.highlight.background=t.highlight&&t.highlight.background||void 0,n.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?n.hover={border:t.hover,background:t.hover}:(n.hover={},n.hover.background=t.hover&&t.hover.background||void 0,n.hover.border=t.hover&&t.hover.border||void 0);return n},e.RGBToHSV=function(t,e,n){t/=255,e/=255,n/=255;var i=Math.min(t,Math.min(e,n)),r=Math.max(t,Math.max(e,n));if(i==r)return{h:0,s:0,v:i};var o=t==i?e-n:n==i?t-e:n-t;return{h:60*((t==i?3:n==i?1:5)-o/(r-i))/360,s:(r-i)/r,v:r}};var v={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var n=t.split(":"),i=n[0].trim(),r=n[1].trim();e[i]=r}}),e},join:function(t){return(0,l.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,n){var i=v.split(t.style.cssText),r=v.split(n),o=e.extend(i,r);t.style.cssText=v.join(o)},e.removeCssText=function(t,e){var n=v.split(t.style.cssText),i=v.split(e);for(var r in i)i.hasOwnProperty(r)&&delete n[r];t.style.cssText=v.join(n)},e.HSVToRGB=function(t,e,n){var i,r,o,s=Math.floor(6*t),a=6*t-s,u=n*(1-e),h=n*(1-a*e),l=n*(1-(1-a)*e);switch(s%6){case 0:i=n,r=l,o=u;break;case 1:i=h,r=n,o=u;break;case 2:i=u,r=n,o=l;break;case 3:i=u,r=h,o=n;break;case 4:i=l,r=u,o=n;break;case 5:i=n,r=u,o=h}return{r:Math.floor(255*i),g:Math.floor(255*r),b:Math.floor(255*o)}},e.HSVToHex=function(t,n,i){var r=e.HSVToRGB(t,n,i);return e.RGBToHex(r.r,r.g,r.b)},e.hexToHSV=function(t){var n=e.hexToRGB(t);return e.RGBToHSV(n.r,n.g,n.b)},e.isValidHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},e.isValidRGB=function(t){return t=t.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t)},e.isValidRGBA=function(t){return t=t.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t)},e.selectiveBridgeObject=function(t,n){if(null!==n&&"object"===(void 0===n?"undefined":(0,d.default)(n))){for(var i=(0,u.default)(n),r=0;r0&&e(i,t[r-1])<0;r--)t[r]=t[r-1];t[r]=i}return t},e.mergeOptions=function(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=function(t){return null!==t&&void 0!==t},o=function(t){return null!==t&&"object"===(void 0===t?"undefined":(0,d.default)(t))};if(!o(t))throw new Error("Parameter mergeTarget must be an object");if(!o(e))throw new Error("Parameter options must be an object");if(!r(n))throw new Error("Parameter option must have a value");if(!o(i))throw new Error("Parameter globalOptions must be an object");var s=e[n],a=o(i)&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(i),h=a?i[n]:void 0,l=h?h.enabled:void 0;if(void 0!==s){if("boolean"==typeof s)return o(t[n])||(t[n]={}),void(t[n].enabled=s);if(null===s&&!o(t[n])){if(!r(h))return;t[n]=(0,u.default)(h)}if(o(s)){var c=!0;void 0!==s.enabled?c=s.enabled:void 0!==l&&(c=h.enabled),function(t,e,n){o(t[n])||(t[n]={});var i=e[n],r=t[n];for(var s in i)i.hasOwnProperty(s)&&(r[s]=i[s])}(t,e,n),t[n].enabled=c}}},e.binarySearchCustom=function(t,e,n,i){for(var r=0,o=0,s=t.length-1;o<=s&&r<1e4;){var a=Math.floor((o+s)/2),u=t[a],h=void 0===i?u[n]:u[n][i],l=e(h);if(0==l)return a;-1==l?o=a+1:s=a-1,r++}return-1},e.binarySearchValue=function(t,e,n,i,r){var o,s,a,u,h=0,l=0,c=t.length-1;for(r=void 0!=r?r:function(t,e){return t==e?0:t0)return"before"==i?Math.max(0,u-1):u;if(r(s,e)<0&&r(a,e)>0)return"before"==i?u:Math.min(t.length-1,u+1);r(s,e)<0?l=u+1:c=u-1,h++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var n=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;return n==i&&(i=e.clientWidth),document.body.removeChild(e),n-i},e.topMost=function(t,e){var n=void 0;Array.isArray(e)||(e=[e]);var i=!0,r=!1,o=void 0;try{for(var a,u=(0,s.default)(t);!(i=(a=u.next()).done);i=!0){var h=a.value;if(h){n=h[e[0]];for(var l=1;ldocument.F=Object<\/script>"),t.close(),u=t.F;i--;)delete u.prototype[o[i]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(a.prototype=i(t),n=new a,a.prototype=null,n[s]=t):n=u(),void 0===e?n:r(n,e)}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(29)("keys"),r=n(18);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(0),r=n(1),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:i.version,mode:n(16)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var i=n(6).f,r=n(7),o=n(3)("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){e.f=n(3)},function(t,e,n){var i=n(1),r=n(0),o=n(16),s=n(32),a=n(6).f;t.exports=function(t){var e=r.Symbol||(r.Symbol=o?{}:i.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:s.f(t)})}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var n=(0,l.default)(this._options.type),i=0,r=n.length;ir?1:is)&&(o=u,s=h)}return o},r.prototype.min=function(t){var e,n,i=this._data,r=(0,l.default)(i),o=null,s=null;for(e=0,n=r.length;eu;)i(a,n=e[u++])&&(~o(h,n)||h.push(n));return h}},function(t,e,n){var i=n(71)(!0);n(39)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){var i=n(43),r=n(30).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},function(t,e,n){t.exports="undefined"!=typeof window&&window.moment||n(94)},function(t,e,n){t.exports={default:n(100),__esModule:!0}},function(t,e,n){function i(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}i.prototype.setOptions=function(t){t&&void 0!==t.delay&&(this.delay=t.delay),t&&void 0!==t.max&&(this.max=t.max),this._flushIfNeeded()},i.extend=function(t,e){var n=new i(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){n.flush()};var r=[{name:"flush",original:void 0}];if(e&&e.replace)for(var o=0;othis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,n){function i(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=i},function(t,e,n){function i(t,e){if(void 0===t)throw new Error("No container element defined");if(this.container=t,this.visible=!e||void 0==e.visible||e.visible,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var n=this;this.frame.slide.onmousedown=function(t){n._onMouseDown(t)},this.frame.prev.onclick=function(t){n.prev(t)},this.frame.play.onclick=function(t){n.togglePlay(t)},this.frame.next.onclick=function(t){n.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var r=n(4);i.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},i.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},i.prototype.setIndex=function(t){if(!(tthis.values.length-1&&(i=this.values.length-1),i},i.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;return t/(this.values.length-1)*e+3},i.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,n=this.startSlideX+e,i=this.leftToIndex(n);this.setIndex(i),r.preventDefault()},i.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",r.removeEventListener(document,"mousemove",this.onmousemove),r.removeEventListener(document,"mouseup",this.onmouseup),r.preventDefault()},t.exports=i},function(t,e,n){function i(t,e,n,i){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,n,i)}i.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},i.prototype.setRange=function(t,e,n,i){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(n))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t||0,this._end=e||0,this.setStep(n,i)},i.prototype.setStep=function(t,e){void 0===t||t<=0||(void 0!==e&&(this.prettyStep=e),!0===this.prettyStep?this._step=i.calculatePrettyStep(t):this._step=t)},i.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},n=Math.pow(10,Math.round(e(t))),i=2*Math.pow(10,Math.round(e(t/2))),r=5*Math.pow(10,Math.round(e(t/5))),o=n;return Math.abs(i-t)<=Math.abs(o-t)&&(o=i),Math.abs(r-t)<=Math.abs(o-t)&&(o=r),o<=0&&(o=1),o},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()this._end},t.exports=i},function(t,e,n){function i(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function r(t){return void 0===t||""===t||"string"!=typeof t?t:t.charAt(0).toUpperCase()+t.slice(1)}function o(t,e){return void 0===t||""===t?e:t+r(e)}function s(t,e,n,i){for(var r,s,a=0;as&&(t=i(t)*s),n(e)>s&&(e=i(e)*s),this.cameraOffset.x=t,this.cameraOffset.y=e,this.calculateCameraOrientation()},i.prototype.getOffset=function(){return this.cameraOffset},i.prototype.setArmLocation=function(t,e,n){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=n,this.calculateCameraOrientation()},i.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},i.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},i.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.setOffset(this.cameraOffset.x,this.cameraOffset.y),this.calculateCameraOrientation())},i.prototype.getArmLength=function(){return this.armLength},i.prototype.getCameraLocation=function(){return this.cameraLocation},i.prototype.getCameraRotation=function(){return this.cameraRotation},i.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal;var t=this.cameraRotation.x,e=this.cameraRotation.z,n=this.cameraOffset.x,i=this.cameraOffset.y,r=Math.sin,o=Math.cos;this.cameraLocation.x=this.cameraLocation.x+n*o(e)+i*-r(e)*o(t),this.cameraLocation.y=this.cameraLocation.y+n*r(e)+i*o(e)*o(t),this.cameraLocation.z=this.cameraLocation.z+i*r(t)},t.exports=i},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.printStyle=void 0;var r=n(47),o=i(r),s=n(21),a=i(s),u=n(20),h=i(u),l=n(111),c=i(l),d=n(112),f=i(d),p=n(4),m=!1,v=void 0,y="background: #FFeeee; color: #dd0000",g=function(){function t(){(0,c.default)(this,t)}return(0,f.default)(t,null,[{key:"validate",value:function(e,n,i){m=!1,v=n;var r=n;return void 0!==i&&(r=n[i]),t.parse(e,r,[]),m}},{key:"parse",value:function(e,n,i){for(var r in e)e.hasOwnProperty(r)&&t.check(r,e,n,i)}},{key:"check",value:function(e,n,i,r){if(void 0===i[e]&&void 0===i.__any__)return void t.getSuggestion(e,i,r);var o=e,s=!0;void 0===i[e]&&void 0!==i.__any__&&(o="__any__",s="object"===t.getType(n[e]));var a=i[o];s&&void 0!==a.__type__&&(a=a.__type__),t.checkFields(e,n,i,o,a,r)}},{key:"checkFields",value:function(e,n,i,r,o,s){var a=function(n){console.log("%c"+n+t.printLocation(s,e),y)},u=t.getType(n[e]),l=o[u];void 0!==l?"array"===t.getType(l)&&-1===l.indexOf(n[e])?(a('Invalid option detected in "'+e+'". Allowed values are:'+t.print(l)+' not "'+n[e]+'". '),m=!0):"object"===u&&"__any__"!==r&&(s=p.copyAndExtendArray(s,e),t.parse(n[e],i[r],s)):void 0===o.any&&(a('Invalid type received for "'+e+'". Expected: '+t.print((0,h.default)(o))+". Received ["+u+'] "'+n[e]+'"'),m=!0)}},{key:"getType",value:function(t){var e=void 0===t?"undefined":(0,a.default)(t);return"object"===e?null===t?"null":t instanceof Boolean?"boolean":t instanceof Number?"number":t instanceof String?"string":Array.isArray(t)?"array":t instanceof Date?"date":void 0!==t.nodeType?"dom":!0===t._isAMomentObject?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,n,i){var r=t.findInOptions(e,n,i,!1),o=t.findInOptions(e,v,[],!0),s=void 0;s=void 0!==r.indexMatch?" in "+t.printLocation(r.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+r.indexMatch+'"?\n\n':o.distance<=4&&r.distance>o.distance?" in "+t.printLocation(r.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(o.path,o.closestMatch,""):r.distance<=8?'. Did you mean "'+r.closestMatch+'"?'+t.printLocation(r.path,e):". Did you mean one of these: "+t.print((0,h.default)(n))+t.printLocation(i,e),console.log('%cUnknown option detected: "'+e+'"'+s,y),m=!0}},{key:"findInOptions",value:function(e,n,i){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=1e9,s="",a=[],u=e.toLowerCase(),h=void 0;for(var l in n){var c=void 0;if(void 0!==n[l].__type__&&!0===r){var d=t.findInOptions(e,n[l],p.copyAndExtendArray(i,l));o>d.distance&&(s=d.closestMatch,a=d.path,o=d.distance,h=d.indexMatch)}else-1!==l.toLowerCase().indexOf(u)&&(h=l),c=t.levenshteinDistance(e,l),o>c&&(s=l,a=p.copyArray(i),o=c)}return{closestMatch:s,path:a,distance:o,indexMatch:h}}},{key:"printLocation",value:function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",i="\n\n"+n+"options = {\n",r=0;r0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,n.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var r=n(36);i.prototype.isLoaded=function(){return this.loaded},i.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},i.prototype.getLabel=function(){return this.graph.filterLabel},i.prototype.getColumn=function(){return this.column},i.prototype.getSelectedValue=function(){if(void 0!==this.index)return this.values[this.index]},i.prototype.getValues=function(){return this.values},i.prototype.getValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");return this.values[t]},i.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var n={};n.column=this.column,n.value=this.values[t];var i=new r(this.dataGroup.getDataSet(),{filter:function(t){return t[n.column]==n.value}}).get();e=this.dataGroup._getDataPoints(i),this.dataPoints[t]=e}return e},i.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},i.prototype.selectValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");this.index=t,this.value=this.values[t]},i.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var i=n(63);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){var i=n(26),r=n(17),o=n(31),s={};n(9)(s,n(3)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var i=n(6),r=n(11),o=n(13);t.exports=n(2)?Object.defineProperties:function(t,e){r(t);for(var n,s=o(e),a=s.length,u=0;a>u;)i.f(t,n=s[u++],e[n]);return t}},function(t,e,n){var i=n(8),r=n(67),o=n(68);t.exports=function(t){return function(e,n,s){var a,u=i(e),h=r(u.length),l=o(s,h);if(t&&n!=n){for(;h>l;)if((a=u[l++])!=a)return!0}else for(;h>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var i=n(27),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(27),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(1).document;t.exports=i&&i.documentElement},function(t,e,n){var i=n(7),r=n(19),o=n(28)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e,n){var i=n(27),r=n(24);t.exports=function(t){return function(e,n){var o,s,a=String(r(e)),u=i(n),h=a.length;return u<0||u>=h?t?"":void 0:(o=a.charCodeAt(u),o<55296||o>56319||u+1===h||(s=a.charCodeAt(u+1))<56320||s>57343?t?a.charAt(u):o:t?a.slice(u,u+2):s-56320+(o-55296<<10)+65536)}}},function(t,e,n){var i=n(11),r=n(73);t.exports=n(0).getIterator=function(t){var e=r(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return i(e.call(t))}},function(t,e,n){var i=n(74),r=n(3)("iterator"),o=n(15);t.exports=n(0).getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||o[i(t)]}},function(t,e,n){var i=n(23),r=n(3)("toStringTag"),o="Arguments"==i(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),r))?n:o?i(e):"Object"==(a=i(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){t.exports={default:n(76),__esModule:!0}},function(t,e,n){n(77);var i=n(0).Object;t.exports=function(t,e){return i.create(t,e)}},function(t,e,n){var i=n(5);i(i.S,"Object",{create:n(26)})},function(t,e,n){n(79),t.exports=n(0).Object.keys},function(t,e,n){var i=n(19),r=n(13);n(80)("keys",function(){return function(t){return r(i(t))}})},function(t,e,n){var i=n(5),r=n(0),o=n(10);t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],s={};s[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",s)}},function(t,e,n){t.exports={default:n(82),__esModule:!0}},function(t,e,n){n(44),n(37),t.exports=n(32).f("iterator")},function(t,e,n){t.exports={default:n(84),__esModule:!0}},function(t,e,n){n(85),n(91),n(92),n(93),t.exports=n(0).Symbol},function(t,e,n){var i=n(1),r=n(7),o=n(2),s=n(5),a=n(42),u=n(86).KEY,h=n(10),l=n(29),c=n(31),d=n(18),f=n(3),p=n(32),m=n(33),v=n(87),y=n(88),g=n(11),_=n(12),w=n(19),b=n(8),x=n(25),S=n(17),T=n(26),M=n(89),D=n(90),k=n(34),O=n(6),E=n(13),C=D.f,P=O.f,L=M.f,Y=i.Symbol,A=i.JSON,R=A&&A.stringify,I=f("_hidden"),N=f("toPrimitive"),z={}.propertyIsEnumerable,W=l("symbol-registry"),F=l("symbols"),j=l("op-symbols"),V=Object.prototype,G="function"==typeof Y&&!!k.f,H=i.QObject,U=!H||!H.prototype||!H.prototype.findChild,B=o&&h(function(){return 7!=T(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(t,e,n){var i=C(V,e);i&&delete V[e],P(t,e,n),i&&t!==V&&P(V,e,i)}:P,Z=function(t){var e=F[t]=T(Y.prototype);return e._k=t,e},X=G&&"symbol"==typeof Y.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof Y},q=function(t,e,n){return t===V&&q(j,e,n),g(t),e=x(e,!0),g(n),r(F,e)?(n.enumerable?(r(t,I)&&t[I][e]&&(t[I][e]=!1),n=T(n,{enumerable:S(0,!1)})):(r(t,I)||P(t,I,S(1,{})),t[I][e]=!0),B(t,e,n)):P(t,e,n)},$=function(t,e){g(t);for(var n,i=v(e=b(e)),r=0,o=i.length;o>r;)q(t,n=i[r++],e[n]);return t},J=function(t,e){return void 0===e?T(t):$(T(t),e)},Q=function(t){var e=z.call(this,t=x(t,!0));return!(this===V&&r(F,t)&&!r(j,t))&&(!(e||!r(this,t)||!r(F,t)||r(this,I)&&this[I][t])||e)},K=function(t,e){if(t=b(t),e=x(e,!0),t!==V||!r(F,e)||r(j,e)){var n=C(t,e);return!n||!r(F,e)||r(t,I)&&t[I][e]||(n.enumerable=!0),n}},tt=function(t){for(var e,n=L(b(t)),i=[],o=0;n.length>o;)r(F,e=n[o++])||e==I||e==u||i.push(e);return i},et=function(t){for(var e,n=t===V,i=L(n?j:b(t)),o=[],s=0;i.length>s;)!r(F,e=i[s++])||n&&!r(V,e)||o.push(F[e]);return o};G||(Y=function(){if(this instanceof Y)throw TypeError("Symbol is not a constructor!");var t=d(arguments.length>0?arguments[0]:void 0),e=function(n){this===V&&e.call(j,n),r(this,I)&&r(this[I],t)&&(this[I][t]=!1),B(this,t,S(1,n))};return o&&U&&B(V,t,{configurable:!0,set:e}),Z(t)},a(Y.prototype,"toString",function(){return this._k}),D.f=K,O.f=q,n(45).f=M.f=tt,n(22).f=Q,k.f=et,o&&!n(16)&&a(V,"propertyIsEnumerable",Q,!0),p.f=function(t){return Z(f(t))}),s(s.G+s.W+s.F*!G,{Symbol:Y});for(var nt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),it=0;nt.length>it;)f(nt[it++]);for(var rt=E(f.store),ot=0;rt.length>ot;)m(rt[ot++]);s(s.S+s.F*!G,"Symbol",{for:function(t){return r(W,t+="")?W[t]:W[t]=Y(t)},keyFor:function(t){if(!X(t))throw TypeError(t+" is not a symbol!");for(var e in W)if(W[e]===t)return e},useSetter:function(){U=!0},useSimple:function(){U=!1}}),s(s.S+s.F*!G,"Object",{create:J,defineProperty:q,defineProperties:$,getOwnPropertyDescriptor:K,getOwnPropertyNames:tt,getOwnPropertySymbols:et});var st=h(function(){k.f(1)});s(s.S+s.F*st,"Object",{getOwnPropertySymbols:function(t){return k.f(w(t))}}),A&&s(s.S+s.F*(!G||h(function(){var t=Y();return"[null]"!=R([t])||"{}"!=R({a:t})||"{}"!=R(Object(t))})),"JSON",{stringify:function(t){for(var e,n,i=[t],r=1;arguments.length>r;)i.push(arguments[r++]);if(n=e=i[1],(_(e)||void 0!==t)&&!X(t))return y(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!X(e))return e}),i[1]=e,R.apply(A,i)}}),Y.prototype[N]||n(9)(Y.prototype,N,Y.prototype.valueOf),c(Y,"Symbol"),c(Math,"Math",!0),c(i.JSON,"JSON",!0)},function(t,e,n){var i=n(18)("meta"),r=n(12),o=n(7),s=n(6).f,a=0,u=Object.isExtensible||function(){return!0},h=!n(10)(function(){return u(Object.preventExtensions({}))}),l=function(t){s(t,i,{value:{i:"O"+ ++a,w:{}}})},c=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,i)){if(!u(t))return"F";if(!e)return"E";l(t)}return t[i].i},d=function(t,e){if(!o(t,i)){if(!u(t))return!0;if(!e)return!1;l(t)}return t[i].w},f=function(t){return h&&p.NEED&&u(t)&&!o(t,i)&&l(t),t},p=t.exports={KEY:i,NEED:!1,fastKey:c,getWeak:d,onFreeze:f}},function(t,e,n){var i=n(13),r=n(34),o=n(22);t.exports=function(t){var e=i(t),n=r.f;if(n)for(var s,a=n(t),u=o.f,h=0;a.length>h;)u.call(t,s=a[h++])&&e.push(s);return e}},function(t,e,n){var i=n(23);t.exports=Array.isArray||function(t){return"Array"==i(t)}},function(t,e,n){var i=n(8),r=n(45).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return r(t)}catch(t){return s.slice()}};t.exports.f=function(t){return s&&"[object Window]"==o.call(t)?a(t):r(i(t))}},function(t,e,n){var i=n(22),r=n(17),o=n(8),s=n(25),a=n(7),u=n(40),h=Object.getOwnPropertyDescriptor;e.f=n(2)?h:function(t,e){if(t=o(t),e=s(e,!0),u)try{return h(t,e)}catch(t){}if(a(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e){},function(t,e,n){n(33)("asyncIterator")},function(t,e,n){n(33)("observable")},function(t,e,n){(function(t){!function(e,n){t.exports=n()}(0,function(){function e(){return Pi.apply(null,arguments)}function n(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function i(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function r(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function o(t){return void 0===t}function s(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function a(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function u(t,e){var n,i=[];for(n=0;n0)for(n=0;n0?"future":"past"];return M(n)?n(e):n.replace(/%s/i,e)}function R(t,e){var n=t.toLowerCase();ji[n]=ji[n+"s"]=ji[e]=t}function I(t){return"string"==typeof t?ji[t]||ji[t.toLowerCase()]:void 0}function N(t){var e,n,i={};for(n in t)h(t,n)&&(e=I(n))&&(i[e]=t[n]);return i}function z(t,e){Vi[t]=e}function W(t){var e=[];for(var n in t)e.push({unit:n,priority:Vi[n]});return e.sort(function(t,e){return t.priority-e.priority}),e}function F(t,e,n){var i=""+Math.abs(t),r=e-i.length;return(t>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}function j(t,e,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),t&&(Bi[t]=r),e&&(Bi[e[0]]=function(){return F(r.apply(this,arguments),e[1],e[2])}),n&&(Bi[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function V(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function G(t){var e,n,i=t.match(Gi);for(e=0,n=i.length;e=0&&Hi.test(t);)t=t.replace(Hi,n),Hi.lastIndex=0,i-=1;return t}function B(t,e,n){lr[t]=M(e)?e:function(t,i){return t&&n?n:e}}function Z(t,e){return h(lr,t)?lr[t](e._strict,e._locale):new RegExp(X(t))}function X(t){return q(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,i,r){return e||n||i||r}))}function q(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function $(t,e){var n,i=e;for("string"==typeof t&&(t=[t]),s(e)&&(i=function(t,n){n[e]=w(t)}),n=0;n=0?(a=new Date(t+400,e,n,i,r,o,s),isFinite(a.getFullYear())&&a.setFullYear(t)):a=new Date(t,e,n,i,r,o,s),a}function wt(t){var e;if(t<100&&t>=0){var n=Array.prototype.slice.call(arguments);n[0]=t+400,e=new Date(Date.UTC.apply(null,n)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function bt(t,e,n){var i=7+e-n;return-(7+wt(t,0,i).getUTCDay()-e)%7+i-1}function xt(t,e,n,i,r){var o,s,a=(7+n-i)%7,u=bt(t,i,r),h=1+7*(e-1)+a+u;return h<=0?(o=t-1,s=K(o)+h):h>K(t)?(o=t+1,s=h-K(t)):(o=t,s=h),{year:o,dayOfYear:s}}function St(t,e,n){var i,r,o=bt(t.year(),e,n),s=Math.floor((t.dayOfYear()-o-1)/7)+1;return s<1?(r=t.year()-1,i=s+Tt(r,e,n)):s>Tt(t.year(),e,n)?(i=s-Tt(t.year(),e,n),r=t.year()+1):(r=t.year(),i=s),{week:i,year:r}}function Tt(t,e,n){var i=bt(t,e,n),r=bt(t+1,e,n);return(K(t)-i+r)/7}function Mt(t){return St(t,this._week.dow,this._week.doy).week}function Dt(){return this._week.dow}function kt(){return this._week.doy}function Ot(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Et(t){var e=St(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Ct(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Lt(t,e){return t.slice(e,7).concat(t.slice(0,e))}function Yt(t,e){var i=n(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Lt(i,this._week.dow):t?i[t.day()]:i}function At(t){return!0===t?Lt(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Rt(t){return!0===t?Lt(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin}function It(t,e,n){var i,r,o,s=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)o=c([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===e?(r=br.call(this._weekdaysParse,s),-1!==r?r:null):"ddd"===e?(r=br.call(this._shortWeekdaysParse,s),-1!==r?r:null):(r=br.call(this._minWeekdaysParse,s),-1!==r?r:null):"dddd"===e?-1!==(r=br.call(this._weekdaysParse,s))?r:-1!==(r=br.call(this._shortWeekdaysParse,s))?r:(r=br.call(this._minWeekdaysParse,s),-1!==r?r:null):"ddd"===e?-1!==(r=br.call(this._shortWeekdaysParse,s))?r:-1!==(r=br.call(this._weekdaysParse,s))?r:(r=br.call(this._minWeekdaysParse,s),-1!==r?r:null):-1!==(r=br.call(this._minWeekdaysParse,s))?r:-1!==(r=br.call(this._weekdaysParse,s))?r:(r=br.call(this._shortWeekdaysParse,s),-1!==r?r:null)}function Nt(t,e,n){var i,r,o;if(this._weekdaysParseExact)return It.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=c([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}}function zt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Ct(t,this.localeData()),this.add(t-e,"d")):e}function Wt(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Ft(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function jt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ht.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=Lr),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Vt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ht.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Yr),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Gt(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ht.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ar),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ht(){function t(t,e){return e.length-t.length}var e,n,i,r,o,s=[],a=[],u=[],h=[];for(e=0;e<7;e++)n=c([2e3,1]).day(e),i=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),o=this.weekdays(n,""),s.push(i),a.push(r),u.push(o),h.push(i),h.push(r),h.push(o);for(s.sort(t),a.sort(t),u.sort(t),h.sort(t),e=0;e<7;e++)a[e]=q(a[e]),u[e]=q(u[e]),h[e]=q(h[e]);this._weekdaysRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Ut(){return this.hours()%12||12}function Bt(){return this.hours()||24}function Zt(t,e){j(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Xt(t,e){return e._meridiemParse}function qt(t){return"p"===(t+"").toLowerCase().charAt(0)}function $t(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function Jt(t){return t?t.toLowerCase().replace("_","-"):t}function Qt(t){for(var e,n,i,r,o=0;o0;){if(i=Kt(r.slice(0,e).join("-")))return i;if(n&&n.length>=e&&b(r,n,!0)>=e-1)break;e--}o++}return Rr}function Kt(e){var n=null;if(!Wr[e]&&void 0!==t&&t&&t.exports)try{n=Rr._abbr;!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),te(n)}catch(t){}return Wr[e]}function te(t,e){var n;return t&&(n=o(e)?ie(t):ee(t,e),n?Rr=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Rr._abbr}function ee(t,e){if(null!==e){var n,i=zr;if(e.abbr=t,null!=Wr[t])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=Wr[t]._config;else if(null!=e.parentLocale)if(null!=Wr[e.parentLocale])i=Wr[e.parentLocale]._config;else{if(null==(n=Kt(e.parentLocale)))return Fr[e.parentLocale]||(Fr[e.parentLocale]=[]),Fr[e.parentLocale].push({name:t,config:e}),null;i=n._config}return Wr[t]=new O(k(i,e)),Fr[t]&&Fr[t].forEach(function(t){ee(t.name,t.config)}),te(t),Wr[t]}return delete Wr[t],null}function ne(t,e){if(null!=e){var n,i,r=zr;i=Kt(t),null!=i&&(r=i._config),e=k(r,e),n=new O(e),n.parentLocale=Wr[t],Wr[t]=n,te(t)}else null!=Wr[t]&&(null!=Wr[t].parentLocale?Wr[t]=Wr[t].parentLocale:null!=Wr[t]&&delete Wr[t]);return Wr[t]}function ie(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Rr;if(!n(t)){if(e=Kt(t))return e;t=[t]}return Qt(t)}function re(){return Ii(Wr)}function oe(t){var e,n=t._a;return n&&-2===f(t).overflow&&(e=n[fr]<0||n[fr]>11?fr:n[pr]<1||n[pr]>ut(n[dr],n[fr])?pr:n[mr]<0||n[mr]>24||24===n[mr]&&(0!==n[vr]||0!==n[yr]||0!==n[gr])?mr:n[vr]<0||n[vr]>59?vr:n[yr]<0||n[yr]>59?yr:n[gr]<0||n[gr]>999?gr:-1,f(t)._overflowDayOfYear&&(epr)&&(e=pr),f(t)._overflowWeeks&&-1===e&&(e=_r),f(t)._overflowWeekday&&-1===e&&(e=wr),f(t).overflow=e),t}function se(t,e,n){return null!=t?t:null!=e?e:n}function ae(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function ue(t){var e,n,i,r,o,s=[];if(!t._d){for(i=ae(t),t._w&&null==t._a[pr]&&null==t._a[fr]&&he(t),null!=t._dayOfYear&&(o=se(t._a[dr],i[dr]),(t._dayOfYear>K(o)||0===t._dayOfYear)&&(f(t)._overflowDayOfYear=!0),n=wt(o,0,t._dayOfYear),t._a[fr]=n.getUTCMonth(),t._a[pr]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=i[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[mr]&&0===t._a[vr]&&0===t._a[yr]&&0===t._a[gr]&&(t._nextDay=!0,t._a[mr]=0),t._d=(t._useUTC?wt:_t).apply(null,s),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[mr]=24),t._w&&void 0!==t._w.d&&t._w.d!==r&&(f(t).weekdayMismatch=!0)}}function he(t){var e,n,i,r,o,s,a,u;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)o=1,s=4,n=se(e.GG,t._a[dr],St(De(),1,4).year),i=se(e.W,1),((r=se(e.E,1))<1||r>7)&&(u=!0);else{o=t._locale._week.dow,s=t._locale._week.doy;var h=St(De(),o,s);n=se(e.gg,t._a[dr],h.year),i=se(e.w,h.week),null!=e.d?((r=e.d)<0||r>6)&&(u=!0):null!=e.e?(r=e.e+o,(e.e<0||e.e>6)&&(u=!0)):r=o}i<1||i>Tt(n,o,s)?f(t)._overflowWeeks=!0:null!=u?f(t)._overflowWeekday=!0:(a=xt(n,i,r,o,s),t._a[dr]=a.year,t._dayOfYear=a.dayOfYear)}function le(t){var e,n,i,r,o,s,a=t._i,u=jr.exec(a)||Vr.exec(a);if(u){for(f(t).iso=!0,e=0,n=Hr.length;e0&&f(t).unusedInput.push(s),a=a.slice(a.indexOf(i)+i.length),h+=i.length),Bi[o]?(i?f(t).empty=!1:f(t).unusedTokens.push(o),Q(o,i,t)):t._strict&&!i&&f(t).unusedTokens.push(o);f(t).charsLeftOver=u-h,a.length>0&&f(t).unusedInput.push(a),t._a[mr]<=12&&!0===f(t).bigHour&&t._a[mr]>0&&(f(t).bigHour=void 0),f(t).parsedDateParts=t._a.slice(0),f(t).meridiem=t._meridiem,t._a[mr]=_e(t._locale,t._a[mr],t._meridiem),ue(t),oe(t)}function _e(t,e,n){var i;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(i=t.isPM(n),i&&e<12&&(e+=12),i||12!==e||(e=0),e):e}function we(t){var e,n,i,r,o;if(0===t._f.length)return f(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ze(){if(!o(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=Se(t),t._a){var e=t._isUTC?c(t._a):De(t._a);this._isDSTShifted=this.isValid()&&b(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Xe(){return!!this.isValid()&&!this._isUTC}function qe(){return!!this.isValid()&&this._isUTC}function $e(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Je(t,e){var n,i,r,o=t,a=null;return Ae(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:s(t)?(o={},e?o[e]=t:o.milliseconds=t):(a=to.exec(t))?(n="-"===a[1]?-1:1,o={y:0,d:w(a[pr])*n,h:w(a[mr])*n,m:w(a[vr])*n,s:w(a[yr])*n,ms:w(Re(1e3*a[gr]))*n}):(a=eo.exec(t))?(n="-"===a[1]?-1:1,o={y:Qe(a[2],n),M:Qe(a[3],n),w:Qe(a[4],n),d:Qe(a[5],n),h:Qe(a[6],n),m:Qe(a[7],n),s:Qe(a[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(r=tn(De(o.from),De(o.to)),o={},o.ms=r.milliseconds,o.M=r.months),i=new Ye(o),Ae(t)&&h(t,"_locale")&&(i._locale=t._locale),i}function Qe(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Ke(t,e){var n={};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function tn(t,e){var n;return t.isValid()&&e.isValid()?(e=ze(e,t),t.isBefore(e)?n=Ke(t,e):(n=Ke(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function en(t,e){return function(n,i){var r,o;return null===i||isNaN(+i)||(T(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=n,n=i,i=o),n="string"==typeof n?+n:n,r=Je(n,i),nn(this,r,t),this}}function nn(t,n,i,r){var o=n._milliseconds,s=Re(n._days),a=Re(n._months);t.isValid()&&(r=null==r||r,a&&ft(t,it(t,"Month")+a*i),s&&rt(t,"Date",it(t,"Date")+s*i),o&&t._d.setTime(t._d.valueOf()+o*i),r&&e.updateOffset(t,s||a))}function rn(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function on(t,n){var i=t||De(),r=ze(i,this).startOf("day"),o=e.calendarFormat(this,r)||"sameElse",s=n&&(M(n[o])?n[o].call(this,i):n[o]);return this.format(s||this.localeData().calendar(o,this,De(i)))}function sn(){return new y(this)}function an(t,e){var n=g(t)?t:De(t);return!(!this.isValid()||!n.isValid())&&(e=I(e)||"millisecond","millisecond"===e?this.valueOf()>n.valueOf():n.valueOf()9999?H(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):M(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",H(n,"Z")):H(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function yn(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r=e+'[")]';return this.format(n+i+"-MM-DD[T]HH:mm:ss.SSS"+r)}function gn(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=H(this,t);return this.localeData().postformat(n)}function _n(t,e){return this.isValid()&&(g(t)&&t.isValid()||De(t).isValid())?Je({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function wn(t){return this.from(De(),t)}function bn(t,e){return this.isValid()&&(g(t)&&t.isValid()||De(t).isValid())?Je({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function xn(t){return this.to(De(),t)}function Sn(t){var e;return void 0===t?this._locale._abbr:(e=ie(t),null!=e&&(this._locale=e),this)}function Tn(){return this._locale}function Mn(t,e){return(t%e+e)%e}function Dn(t,e,n){return t<100&&t>=0?new Date(t+400,e,n)-uo:new Date(t,e,n).valueOf()}function kn(t,e,n){return t<100&&t>=0?Date.UTC(t+400,e,n)-uo:Date.UTC(t,e,n)}function On(t){var n;if(void 0===(t=I(t))||"millisecond"===t||!this.isValid())return this;var i=this._isUTC?kn:Dn;switch(t){case"year":n=i(this.year(),0,1);break;case"quarter":n=i(this.year(),this.month()-this.month()%3,1);break;case"month":n=i(this.year(),this.month(),1);break;case"week":n=i(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":n=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":n=i(this.year(),this.month(),this.date());break;case"hour":n=this._d.valueOf(),n-=Mn(n+(this._isUTC?0:this.utcOffset()*so),ao);break;case"minute":n=this._d.valueOf(),n-=Mn(n,so);break;case"second":n=this._d.valueOf(),n-=Mn(n,oo)}return this._d.setTime(n),e.updateOffset(this,!0),this}function En(t){var n;if(void 0===(t=I(t))||"millisecond"===t||!this.isValid())return this;var i=this._isUTC?kn:Dn;switch(t){case"year":n=i(this.year()+1,0,1)-1;break;case"quarter":n=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":n=i(this.year(),this.month()+1,1)-1;break;case"week":n=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":n=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":n=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":n=this._d.valueOf(),n+=ao-Mn(n+(this._isUTC?0:this.utcOffset()*so),ao)-1;break;case"minute":n=this._d.valueOf(),n+=so-Mn(n,so)-1;break;case"second":n=this._d.valueOf(),n+=oo-Mn(n,oo)-1}return this._d.setTime(n),e.updateOffset(this,!0),this}function Cn(){return this._d.valueOf()-6e4*(this._offset||0)}function Pn(){return Math.floor(this.valueOf()/1e3)}function Ln(){return new Date(this.valueOf())}function Yn(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function An(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Rn(){return this.isValid()?this.toISOString():null}function In(){return p(this)}function Nn(){return l({},f(this))}function zn(){return f(this).overflow}function Wn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Fn(t,e){j(0,[t,t.length],0,e)}function jn(t){return Un.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Vn(t){return Un.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Gn(){return Tt(this.year(),1,4)}function Hn(){var t=this.localeData()._week;return Tt(this.year(),t.dow,t.doy)}function Un(t,e,n,i,r){var o;return null==t?St(this,i,r).year:(o=Tt(t,i,r),e>o&&(e=o),Bn.call(this,t,e,n,i,r))}function Bn(t,e,n,i,r){var o=xt(t,e,n,i,r),s=wt(o.year,0,o.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}function Zn(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Xn(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function qn(t,e){e[gr]=w(1e3*("0."+t))}function $n(){return this._isUTC?"UTC":""}function Jn(){return this._isUTC?"Coordinated Universal Time":""}function Qn(t){return De(1e3*t)}function Kn(){return De.apply(null,arguments).parseZone()}function ti(t){return t}function ei(t,e,n,i){var r=ie(),o=c().set(i,e);return r[n](o,t)}function ni(t,e,n){if(s(t)&&(e=t,t=void 0),t=t||"",null!=e)return ei(t,e,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=ei(t,i,n,"month");return r}function ii(t,e,n,i){"boolean"==typeof t?(s(e)&&(n=e,e=void 0),e=e||""):(e=t,n=e,t=!1,s(e)&&(n=e,e=void 0),e=e||"");var r=ie(),o=t?r._week.dow:0;if(null!=n)return ei(e,(n+o)%7,i,"day");var a,u=[];for(a=0;a<7;a++)u[a]=ei(e,(a+o)%7,i,"day");return u}function ri(t,e){return ni(t,e,"months")}function oi(t,e){return ni(t,e,"monthsShort")}function si(t,e,n){return ii(t,e,n,"weekdays")}function ai(t,e,n){return ii(t,e,n,"weekdaysShort")}function ui(t,e,n){return ii(t,e,n,"weekdaysMin")}function hi(){var t=this._data;return this._milliseconds=yo(this._milliseconds),this._days=yo(this._days),this._months=yo(this._months),t.milliseconds=yo(t.milliseconds),t.seconds=yo(t.seconds),t.minutes=yo(t.minutes),t.hours=yo(t.hours),t.months=yo(t.months),t.years=yo(t.years),this}function li(t,e,n,i){var r=Je(e,n);return t._milliseconds+=i*r._milliseconds,t._days+=i*r._days,t._months+=i*r._months,t._bubble()}function ci(t,e){return li(this,t,e,1)}function di(t,e){return li(this,t,e,-1)}function fi(t){return t<0?Math.floor(t):Math.ceil(t)}function pi(){var t,e,n,i,r,o=this._milliseconds,s=this._days,a=this._months,u=this._data;return o>=0&&s>=0&&a>=0||o<=0&&s<=0&&a<=0||(o+=864e5*fi(vi(a)+s),s=0,a=0),u.milliseconds=o%1e3,t=_(o/1e3),u.seconds=t%60,e=_(t/60),u.minutes=e%60,n=_(e/60),u.hours=n%24,s+=_(n/24),r=_(mi(s)),a+=r,s-=fi(vi(r)),i=_(a/12),a%=12,u.days=s,u.months=a,u.years=i,this}function mi(t){return 4800*t/146097}function vi(t){return 146097*t/4800}function yi(t){if(!this.isValid())return NaN;var e,n,i=this._milliseconds;if("month"===(t=I(t))||"quarter"===t||"year"===t)switch(e=this._days+i/864e5,n=this._months+mi(e),t){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(e=this._days+Math.round(vi(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}}function gi(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN}function _i(t){return function(){return this.as(t)}}function wi(){return Je(this)}function bi(t){return t=I(t),this.isValid()?this[t+"s"]():NaN}function xi(t){return function(){return this.isValid()?this._data[t]:NaN}}function Si(){return _(this.days()/7)}function Ti(t,e,n,i,r){return r.relativeTime(e||1,!!n,t,i)}function Mi(t,e,n){var i=Je(t).abs(),r=Ao(i.as("s")),o=Ao(i.as("m")),s=Ao(i.as("h")),a=Ao(i.as("d")),u=Ao(i.as("M")),h=Ao(i.as("y")),l=r<=Ro.ss&&["s",r]||r0,l[4]=n,Ti.apply(null,l)}function Di(t){return void 0===t?Ao:"function"==typeof t&&(Ao=t,!0)}function ki(t,e){return void 0!==Ro[t]&&(void 0===e?Ro[t]:(Ro[t]=e,"s"===t&&(Ro.ss=e-1),!0))}function Oi(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=Mi(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function Ei(t){return(t>0)-(t<0)||+t}function Ci(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n,i=Io(this._milliseconds)/1e3,r=Io(this._days),o=Io(this._months);t=_(i/60),e=_(t/60),i%=60,t%=60,n=_(o/12),o%=12;var s=n,a=o,u=r,h=e,l=t,c=i?i.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var f=d<0?"-":"",p=Ei(this._months)!==Ei(d)?"-":"",m=Ei(this._days)!==Ei(d)?"-":"",v=Ei(this._milliseconds)!==Ei(d)?"-":"";return f+"P"+(s?p+s+"Y":"")+(a?p+a+"M":"")+(u?m+u+"D":"")+(h||l||c?"T":"")+(h?v+h+"H":"")+(l?v+l+"M":"")+(c?v+c+"S":"")}var Pi,Li;Li=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,i=0;i68?1900:2e3)};var br,xr=nt("FullYear",!0);br=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;ethis?this:t:m()}),Jr=function(){return Date.now?Date.now():+new Date},Qr=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ie("Z",":"),Ie("ZZ",""),B("Z",ar),B("ZZ",ar),$(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Ne(ar,t)});var Kr=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var to=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,eo=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Je.fn=Ye.prototype,Je.invalid=Le;var no=en(1,"add"),io=en(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ro=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)}),oo=1e3,so=60*oo,ao=60*so,uo=3506328*ao;j(0,["gg",2],0,function(){return this.weekYear()%100}),j(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Fn("gggg","weekYear"),Fn("ggggg","weekYear"),Fn("GGGG","isoWeekYear"),Fn("GGGGG","isoWeekYear"),R("weekYear","gg"),R("isoWeekYear","GG"),z("weekYear",1),z("isoWeekYear",1),B("G",or),B("g",or),B("GG",Qi,Xi),B("gg",Qi,Xi),B("GGGG",nr,$i),B("gggg",nr,$i),B("GGGGG",ir,Ji),B("ggggg",ir,Ji),J(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=w(t)}),J(["gg","GG"],function(t,n,i,r){n[r]=e.parseTwoDigitYear(t)}),j("Q",0,"Qo","quarter"),R("quarter","Q"),z("quarter",7),B("Q",Zi),$("Q",function(t,e){e[fr]=3*(w(t)-1)}),j("D",["DD",2],"Do","date"),R("date","D"),z("date",9),B("D",Qi),B("DD",Qi,Xi),B("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),$(["D","DD"],pr),$("Do",function(t,e){e[pr]=w(t.match(Qi)[0])});var ho=nt("Date",!0);j("DDD",["DDDD",3],"DDDo","dayOfYear"),R("dayOfYear","DDD"),z("dayOfYear",4),B("DDD",er),B("DDDD",qi),$(["DDD","DDDD"],function(t,e,n){n._dayOfYear=w(t)}),j("m",["mm",2],0,"minute"),R("minute","m"),z("minute",14),B("m",Qi),B("mm",Qi,Xi),$(["m","mm"],vr);var lo=nt("Minutes",!1);j("s",["ss",2],0,"second"),R("second","s"),z("second",15),B("s",Qi),B("ss",Qi,Xi),$(["s","ss"],yr);var co=nt("Seconds",!1);j("S",0,0,function(){return~~(this.millisecond()/100)}),j(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),j(0,["SSS",3],0,"millisecond"),j(0,["SSSS",4],0,function(){return 10*this.millisecond()}),j(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),j(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),j(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),j(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),j(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),R("millisecond","ms"),z("millisecond",16),B("S",er,Zi),B("SS",er,Xi),B("SSS",er,qi);var fo;for(fo="SSSS";fo.length<=9;fo+="S")B(fo,rr);for(fo="S";fo.length<=9;fo+="S")$(fo,qn);var po=nt("Milliseconds",!1);j("z",0,0,"zoneAbbr"),j("zz",0,0,"zoneName");var mo=y.prototype;mo.add=no,mo.calendar=on,mo.clone=sn,mo.diff=fn,mo.endOf=En,mo.format=gn,mo.from=_n,mo.fromNow=wn,mo.to=bn,mo.toNow=xn,mo.get=ot,mo.invalidAt=zn,mo.isAfter=an,mo.isBefore=un,mo.isBetween=hn,mo.isSame=ln,mo.isSameOrAfter=cn,mo.isSameOrBefore=dn,mo.isValid=In,mo.lang=ro,mo.locale=Sn,mo.localeData=Tn,mo.max=$r,mo.min=qr,mo.parsingFlags=Nn,mo.set=st,mo.startOf=On,mo.subtract=io,mo.toArray=Yn,mo.toObject=An,mo.toDate=Ln,mo.toISOString=vn,mo.inspect=yn,mo.toJSON=Rn,mo.toString=mn,mo.unix=Pn,mo.valueOf=Cn,mo.creationData=Wn,mo.year=xr,mo.isLeapYear=et,mo.weekYear=jn,mo.isoWeekYear=Vn,mo.quarter=mo.quarters=Zn,mo.month=pt,mo.daysInMonth=mt,mo.week=mo.weeks=Ot,mo.isoWeek=mo.isoWeeks=Et,mo.weeksInYear=Hn,mo.isoWeeksInYear=Gn,mo.date=ho,mo.day=mo.days=zt,mo.weekday=Wt,mo.isoWeekday=Ft,mo.dayOfYear=Xn,mo.hour=mo.hours=Nr,mo.minute=mo.minutes=lo,mo.second=mo.seconds=co,mo.millisecond=mo.milliseconds=po,mo.utcOffset=Fe,mo.utc=Ve,mo.local=Ge,mo.parseZone=He,mo.hasAlignedHourOffset=Ue,mo.isDST=Be,mo.isLocal=Xe,mo.isUtcOffset=qe,mo.isUtc=$e,mo.isUTC=$e,mo.zoneAbbr=$n,mo.zoneName=Jn,mo.dates=S("dates accessor is deprecated. Use date instead.",ho),mo.months=S("months accessor is deprecated. Use month instead",pt),mo.years=S("years accessor is deprecated. Use year instead",xr),mo.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",je),mo.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ze);var vo=O.prototype;vo.calendar=E,vo.longDateFormat=C,vo.invalidDate=P,vo.ordinal=L,vo.preparse=ti,vo.postformat=ti,vo.relativeTime=Y,vo.pastFuture=A,vo.set=D,vo.months=ht,vo.monthsShort=lt,vo.monthsParse=dt,vo.monthsRegex=yt,vo.monthsShortRegex=vt,vo.week=Mt,vo.firstDayOfYear=kt,vo.firstDayOfWeek=Dt,vo.weekdays=Yt,vo.weekdaysMin=Rt,vo.weekdaysShort=At,vo.weekdaysParse=Nt,vo.weekdaysRegex=jt,vo.weekdaysShortRegex=Vt,vo.weekdaysMinRegex=Gt,vo.isPM=qt,vo.meridiem=$t,te("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===w(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),e.lang=S("moment.lang is deprecated. Use moment.locale instead.",te),e.langData=S("moment.langData is deprecated. Use moment.localeData instead.",ie);var yo=Math.abs,go=_i("ms"),_o=_i("s"),wo=_i("m"),bo=_i("h"),xo=_i("d"),So=_i("w"),To=_i("M"),Mo=_i("Q"),Do=_i("y"),ko=xi("milliseconds"),Oo=xi("seconds"),Eo=xi("minutes"),Co=xi("hours"),Po=xi("days"),Lo=xi("months"),Yo=xi("years"),Ao=Math.round,Ro={ss:44,s:45,m:45,h:22,d:26,M:11},Io=Math.abs,No=Ye.prototype;return No.isValid=Pe,No.abs=hi,No.add=ci,No.subtract=di,No.as=yi,No.asMilliseconds=go,No.asSeconds=_o,No.asMinutes=wo,No.asHours=bo,No.asDays=xo,No.asWeeks=So,No.asMonths=To,No.asQuarters=Mo,No.asYears=Do,No.valueOf=gi,No._bubble=pi,No.clone=wi,No.get=bi,No.milliseconds=ko,No.seconds=Oo,No.minutes=Eo,No.hours=Co,No.days=Po,No.weeks=Si,No.months=Lo,No.years=Yo,No.humanize=Oi,No.toISOString=Ci,No.toString=Ci,No.toJSON=Ci,No.locale=Sn,No.localeData=Tn,No.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ci),No.lang=ro,j("X",0,0,"unix"),j("x",0,0,"valueOf"),B("x",or),B("X",ur),$("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),$("x",function(t,e,n){n._d=new Date(w(t))}),e.version="2.24.0",function(t){Pi=t}(De),e.fn=mo,e.min=Oe,e.max=Ee,e.now=Jr,e.utc=c,e.unix=Qn,e.months=ri,e.isDate=a,e.locale=te,e.invalid=m,e.duration=Je,e.isMoment=g,e.weekdays=si,e.parseZone=Kn,e.localeData=ie,e.isDuration=Ae,e.monthsShort=oi,e.weekdaysMin=ui,e.defineLocale=ee,e.updateLocale=ne,e.locales=re,e.weekdaysShort=ai,e.normalizeUnits=I,e.relativeTimeRounding=Di,e.relativeTimeThreshold=ki,e.calendarFormat=rn,e.prototype=mo,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},e})}).call(e,n(95)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){function n(t){throw new Error("Cannot find module '"+t+"'.")}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=96},function(t,e,n){(function(e){function n(t,e,n){var i=e&&n||0,r=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){r<16&&(e[i+r++]=c[t])});r<16;)e[i+r++]=0;return e}function i(t,e){var n=e||0,i=l;return i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]}function r(t,e,n){var r=e&&n||0,o=e||[];t=t||{};var s=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),u=void 0!==t.nsecs?t.nsecs:y+1,h=a-v+(u-y)/1e4;if(h<0&&void 0===t.clockseq&&(s=s+1&16383),(h<0||a>v)&&void 0===t.nsecs&&(u=0),u>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,y=u,m=s,a+=122192928e5;var l=(1e4*(268435455&a)+u)%4294967296;o[r++]=l>>>24&255,o[r++]=l>>>16&255,o[r++]=l>>>8&255,o[r++]=255&l;var c=a/4294967296*1e4&268435455;o[r++]=c>>>8&255,o[r++]=255&c,o[r++]=c>>>24&15|16,o[r++]=c>>>16&255,o[r++]=s>>>8|128,o[r++]=255&s;for(var d=t.node||p,f=0;f<6;f++)o[r+f]=d[f];return e||i(o)}function o(t,e,n){var r=e&&n||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var o=t.random||(t.rng||s)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,e)for(var a=0;a<16;a++)e[r+a]=o[a];return e||i(o)}var s,a="undefined"!=typeof window?window:void 0!==e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var u=new Uint8Array(16);s=function(){return crypto.getRandomValues(u),u}}if(!s){var h=new Array(16);s=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),h[e]=t>>>((3&e)<<3)&255;return h}}for(var l=[],c={},d=0;d<256;d++)l[d]=(d+256).toString(16).substr(1),c[l[d]]=d;var f=s(),p=[1|f[0],f[1],f[2],f[3],f[4],f[5]],m=16383&(f[6]<<8|f[7]),v=0,y=0,g=o;g.v1=r,g.v4=o,g.parse=n,g.unparse=i,t.exports=g}).call(e,n(98))},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var n=0;n0?(i=e[t].redundant[0],e[t].redundant.shift()):(i=document.createElementNS("http://www.w3.org/2000/svg",t),n.appendChild(i)):(i=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},n.appendChild(i)),e[t].used.push(i),i},e.getDOMElement=function(t,e,n,i){var r;return e.hasOwnProperty(t)?e[t].redundant.length>0?(r=e[t].redundant[0],e[t].redundant.shift()):(r=document.createElement(t),void 0!==i?n.insertBefore(r,i):n.appendChild(r)):(r=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==i?n.insertBefore(r,i):n.appendChild(r)),e[t].used.push(r),r},e.drawPoint=function(t,n,i,r,o,s){var a;if("circle"==i.style?(a=e.getSVGElement("circle",r,o),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",n),a.setAttributeNS(null,"r",.5*i.size)):(a=e.getSVGElement("rect",r,o),a.setAttributeNS(null,"x",t-.5*i.size),a.setAttributeNS(null,"y",n-.5*i.size),a.setAttributeNS(null,"width",i.size),a.setAttributeNS(null,"height",i.size)),void 0!==i.styles&&a.setAttributeNS(null,"style",i.styles),a.setAttributeNS(null,"class",i.className+" vis-point"),s){var u=e.getSVGElement("text",r,o);s.xOffset&&(t+=s.xOffset),s.yOffset&&(n+=s.yOffset),s.content&&(u.textContent=s.content),s.className&&u.setAttributeNS(null,"class",s.className+" vis-label"),u.setAttributeNS(null,"x",t),u.setAttributeNS(null,"y",n)}return a},e.drawBar=function(t,n,i,r,o,s,a,u){if(0!=r){r<0&&(r*=-1,n-=r);var h=e.getSVGElement("rect",s,a);h.setAttributeNS(null,"x",t-.5*i),h.setAttributeNS(null,"y",n),h.setAttributeNS(null,"width",i),h.setAttributeNS(null,"height",r),h.setAttributeNS(null,"class",o),u&&h.setAttributeNS(null,"style",u)}}},function(t,e,n){var i=n(0),r=i.JSON||(i.JSON={stringify:JSON.stringify});t.exports=function(t){return r.stringify.apply(r,arguments)}},function(t,e,n){function i(t,e,n){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.dataGroup=new w,this.dataPoints=null,this.create(),p.setDefaults(i.DEFAULTS,this),this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.setOptions(n),this.setData(e)}function r(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function o(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var s=n(102),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=n(106),h=n(4),l=n(14),c=n(49),d=n(50),f=n(51),p=n(52),m=n(54).default,v=n(54),y=v.printStyle,g=n(116),_=g.allOptions,w=n(117);i.STYLE=p.STYLE;i.DEFAULTS={width:"400px",height:"400px",filterLabel:"time",legendLabel:"value",xLabel:"x",yLabel:"y",zLabel:"z",xValueLabel:function(t){return t},yValueLabel:function(t){return t},zValueLabel:function(t){return t},showXAxis:!0,showYAxis:!0,showZAxis:!0,showGrid:!0,showPerspective:!0,showShadow:!1,keepAspectRatio:!0,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:void 0,animationInterval:1e3,animationPreload:!1,animationAutoStart:void 0,axisColor:"#4D4D4D",gridColor:"#D3D3D3",xCenter:"55%",yCenter:"50%",style:i.STYLE.DOT,tooltip:!1,tooltipStyle:{content:{padding:"10px",border:"1px solid #4d4d4d",color:"#1a1a1a",background:"rgba(255,255,255,0.7)",borderRadius:"2px",boxShadow:"5px 5px 10px rgba(128,128,128,0.5)"},line:{height:"40px",width:"0",borderLeft:"1px solid #4d4d4d"},dot:{height:"0",width:"0",border:"5px solid #4d4d4d",borderRadius:"5px"}},dataColor:{fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:void 0,backgroundColor:void 0,xBarWidth:void 0,yBarWidth:void 0,valueMin:void 0,valueMax:void 0,xMin:void 0,xMax:void 0,xStep:void 0,yMin:void 0,yMax:void 0,yStep:void 0,zMin:void 0,zMax:void 0,zStep:void 0},u(i.prototype),i.prototype._setScale=function(){this.scale=new l(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range()),this.keepAspectRatio&&(this.scale.x0&&(s[r-1].pointNext=s[r]);return s},i.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t),this.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,n=function(t){e._onMouseDown(t)},i=function(t){e._onTouchStart(t)},r=function(t){e._onWheel(t)},o=function(t){e._onTooltip(t)},s=function(t){e._onClick(t)};h.addEventListener(this.frame.canvas,"mousedown",n),h.addEventListener(this.frame.canvas,"touchstart",i),h.addEventListener(this.frame.canvas,"mousewheel",r),h.addEventListener(this.frame.canvas,"mousemove",o),h.addEventListener(this.frame.canvas,"click",s),this.containerElement.appendChild(this.frame)},i.prototype._setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},i.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},i.prototype.animationStart=function(){if(this.animationAutoStart&&this.dataGroup.dataFilter){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()}},i.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},i.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},i.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},i.prototype._readData=function(t){this.dataPoints=this.dataGroup.initializeData(this,t,this.style),this._initializeRanges(),this._redrawFilter()},i.prototype.setData=function(t){void 0!==t&&null!==t&&(this._readData(t),this.redraw(),this.animationStart())},i.prototype.setOptions=function(t){if(void 0!==t){!0===m.validate(t,_)&&console.log("%cErrors have been found in the supplied options object.",y),this.animationStop(),p.setOptions(t,this),this.setPointDrawingMethod(),this._setSize(this.width,this.height),this.setData(this.dataGroup.getDataTable()),this.animationStart()}},i.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case i.STYLE.BAR:t=i.prototype._redrawBarGraphPoint;break;case i.STYLE.BARCOLOR:t=i.prototype._redrawBarColorGraphPoint;break;case i.STYLE.BARSIZE:t=i.prototype._redrawBarSizeGraphPoint;break;case i.STYLE.DOT:t=i.prototype._redrawDotGraphPoint;break;case i.STYLE.DOTLINE:t=i.prototype._redrawDotLineGraphPoint;break;case i.STYLE.DOTCOLOR:t=i.prototype._redrawDotColorGraphPoint;break;case i.STYLE.DOTSIZE:t=i.prototype._redrawDotSizeGraphPoint;break;case i.STYLE.SURFACE:t=i.prototype._redrawSurfaceGraphPoint;break;case i.STYLE.GRID:t=i.prototype._redrawGridGraphPoint;break;case i.STYLE.LINE:t=i.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},i.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},i.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},i.prototype._redrawClear=function(){var t=this.frame.canvas;t.getContext("2d").clearRect(0,0,t.width,t.height)},i.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},i.prototype._getLegendWidth=function(){var t;if(this.style===i.STYLE.DOTSIZE){t=this._dotSize()*this.dotSizeMaxFraction}else t=this.style===i.STYLE.BARSIZE?this.xBarWidth:20;return t},i.prototype._redrawLegend=function(){if(!0===this.showLegend&&this.style!==i.STYLE.LINE&&this.style!==i.STYLE.BARSIZE){var t=this.style===i.STYLE.BARSIZE||this.style===i.STYLE.DOTSIZE,e=this.style===i.STYLE.DOTSIZE||this.style===i.STYLE.DOTCOLOR||this.style===i.STYLE.BARCOLOR,n=Math.max(.25*this.frame.clientHeight,100),r=this.margin,o=this._getLegendWidth(),s=this.frame.clientWidth-this.margin,a=s-o,u=r+n,h=this._getContext();if(h.lineWidth=1,h.font="14px arial",!1===t){var l,d=n;for(l=0;l0?(t.textAlign="center",t.textBaseline="top",o.y+=r):Math.sin(2*i)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(n,o.x,o.y)},i.prototype.drawAxisLabelY=function(t,e,n,i,r){void 0===r&&(r=0);var o=this._convert3Dto2D(e);Math.cos(2*i)<0?(t.textAlign="center",t.textBaseline="top",o.y+=r):Math.sin(2*i)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(n,o.x,o.y)},i.prototype.drawAxisLabelZ=function(t,e,n,i){void 0===i&&(i=0);var r=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(n,r.x-i,r.y)},i.prototype._line3d=function(t,e,n,i){var r=this._convert3Dto2D(e),o=this._convert3Dto2D(n);this._line(t,r,o,i)},i.prototype._redrawAxis=function(){var t,e,n,i,r,o,s,a,u,h,d,p=this._getContext();p.font=24/this.camera.getArmLength()+"px arial";var m,v=.025/this.scale.x,y=.025/this.scale.y,g=5/this.camera.getArmLength(),_=this.camera.getArmRotation().horizontal,w=new c(Math.cos(_),Math.sin(_)),b=this.xRange,x=this.yRange,S=this.zRange;for(p.lineWidth=1,i=void 0===this.defaultXStep,n=new f(b.min,b.max,this.xStep,i),n.start(!0);!n.end();){var T=n.getCurrent();if(this.showGrid?(t=new l(T,x.min,S.min),e=new l(T,x.max,S.min),this._line3d(p,t,e,this.gridColor)):this.showXAxis&&(t=new l(T,x.min,S.min),e=new l(T,x.min+v,S.min),this._line3d(p,t,e,this.axisColor),t=new l(T,x.max,S.min),e=new l(T,x.max-v,S.min),this._line3d(p,t,e,this.axisColor)),this.showXAxis){s=w.x>0?x.min:x.max,m=new l(T,s,S.min);var M=" "+this.xValueLabel(T)+" ";this.drawAxisLabelX(p,m,M,_,g)}n.next()}for(p.lineWidth=1,i=void 0===this.defaultYStep,n=new f(x.min,x.max,this.yStep,i),n.start(!0);!n.end();){var D=n.getCurrent();if(this.showGrid?(t=new l(b.min,D,S.min),e=new l(b.max,D,S.min),this._line3d(p,t,e,this.gridColor)):this.showYAxis&&(t=new l(b.min,D,S.min),e=new l(b.min+y,D,S.min),this._line3d(p,t,e,this.axisColor),t=new l(b.max,D,S.min),e=new l(b.max-y,D,S.min),this._line3d(p,t,e,this.axisColor)),this.showYAxis){o=w.y>0?b.min:b.max,m=new l(o,D,S.min);var k=" "+this.yValueLabel(D)+" ";this.drawAxisLabelY(p,m,k,_,g)}n.next()}if(this.showZAxis){for(p.lineWidth=1,i=void 0===this.defaultZStep,n=new f(S.min,S.max,this.zStep,i),n.start(!0),o=w.x>0?b.min:b.max,s=w.y<0?x.min:x.max;!n.end();){var O=n.getCurrent(),E=new l(o,s,O),C=this._convert3Dto2D(E);e=new c(C.x-g,C.y),this._line(p,C,e,this.axisColor);var P=this.zValueLabel(O)+" ";this.drawAxisLabelZ(p,E,P,5),n.next()}p.lineWidth=1,t=new l(o,s,S.min),e=new l(o,s,S.max),this._line3d(p,t,e,this.axisColor)}if(this.showXAxis){var L,Y;p.lineWidth=1,L=new l(b.min,x.min,S.min),Y=new l(b.max,x.min,S.min),this._line3d(p,L,Y,this.axisColor),L=new l(b.min,x.max,S.min),Y=new l(b.max,x.max,S.min),this._line3d(p,L,Y,this.axisColor)}this.showYAxis&&(p.lineWidth=1,t=new l(b.min,x.min,S.min),e=new l(b.min,x.max,S.min),this._line3d(p,t,e,this.axisColor),t=new l(b.max,x.min,S.min),e=new l(b.max,x.max,S.min),this._line3d(p,t,e,this.axisColor));var A=this.xLabel;A.length>0&&this.showXAxis&&(d=.1/this.scale.y,o=(b.max+3*b.min)/4,s=w.x>0?x.min-d:x.max+d,r=new l(o,s,S.min),this.drawAxisLabelX(p,r,A,_));var R=this.yLabel;R.length>0&&this.showYAxis&&(h=.1/this.scale.x,o=w.y>0?b.min-h:b.max+h,s=(x.max+3*x.min)/4,r=new l(o,s,S.min),this.drawAxisLabelY(p,r,R,_));var I=this.zLabel;I.length>0&&this.showZAxis&&(u=30,o=w.x>0?b.min:b.max,s=w.y<0?x.min:x.max,a=(S.max+3*S.min)/4,r=new l(o,s,a),this.drawAxisLabelZ(p,r,I,u))},i.prototype._hsv2rgb=function(t,e,n){var i,r,o,s,a,u;switch(s=n*e,a=Math.floor(t/60),u=s*(1-Math.abs(t/60%2-1)),a){case 0:i=s,r=u,o=0;break;case 1:i=u,r=s,o=0;break;case 2:i=0,r=s,o=u;break;case 3:i=0,r=u,o=s;break;case 4:i=u,r=0,o=s;break;case 5:i=s,r=0,o=u;break;default:i=0,r=0,o=0}return"RGB("+parseInt(255*i)+","+parseInt(255*r)+","+parseInt(255*o)+")"},i.prototype._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-this.eye.z/this.camera.getArmLength()*this.dataColor.strokeWidth:this.dataColor.strokeWidth},i.prototype._redrawBar=function(t,e,n,i,r,o){var s,a=this,u=e.point,h=this.zRange.min,c=[{point:new l(u.x-n,u.y-i,u.z)},{point:new l(u.x+n,u.y-i,u.z)},{point:new l(u.x+n,u.y+i,u.z)},{point:new l(u.x-n,u.y+i,u.z)}],d=[{point:new l(u.x-n,u.y-i,h)},{point:new l(u.x+n,u.y-i,h)},{point:new l(u.x+n,u.y+i,h)},{point:new l(u.x-n,u.y+i,h)}];c.forEach(function(t){t.screen=a._convert3Dto2D(t.point)}),d.forEach(function(t){t.screen=a._convert3Dto2D(t.point)});var f=[{corners:c,center:l.avg(d[0].point,d[2].point)},{corners:[c[0],c[1],d[1],d[0]],center:l.avg(d[1].point,d[0].point)},{corners:[c[1],c[2],d[2],d[1]],center:l.avg(d[2].point,d[1].point)},{corners:[c[2],c[3],d[3],d[2]],center:l.avg(d[3].point,d[2].point)},{corners:[c[3],c[0],d[0],d[3]],center:l.avg(d[0].point,d[3].point)}];e.surfaces=f;for(var p=0;p0}if(a){var f,p=(e.point.z+n.point.z+i.point.z+r.point.z)/4,m=240*(1-(p-this.zRange.min)*this.scale.z/this.verticalRatio);this.showShadow?(f=Math.min(1+c.x/d/2,1),o=this._hsv2rgb(m,1,f),s=o):(f=1,o=this._hsv2rgb(m,1,f),s=this.axisColor)}else o="gray",s=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var v=[e,n,r,i];this._polygon(t,v,o,s)}},i.prototype._drawGridLine=function(t,e,n){if(void 0!==e&&void 0!==n){var i=(e.point.z+n.point.z)/2,r=240*(1-(i-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(r,1,1),this._line(t,e.screen,n.screen)}},i.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},i.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},i.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t0?1:t<0?-1:0}var i=e[0],r=e[1],o=e[2],s=n((r.x-i.x)*(t.y-i.y)-(r.y-i.y)*(t.x-i.x)),a=n((o.x-r.x)*(t.y-r.y)-(o.y-r.y)*(t.x-r.x)),u=n((i.x-o.x)*(t.y-o.y)-(i.y-o.y)*(t.x-o.x));return!(0!=s&&0!=a&&s!=a||0!=a&&0!=u&&a!=u||0!=s&&0!=u&&s!=u)},i.prototype._dataPointFromXY=function(t,e){var n,r=null,o=null,s=null,a=new c(t,e);if(this.style===i.STYLE.BAR||this.style===i.STYLE.BARCOLOR||this.style===i.STYLE.BARSIZE)for(n=this.dataPoints.length-1;n>=0;n--){r=this.dataPoints[n];var u=r.surfaces;if(u)for(var h=u.length-1;h>=0;h--){var l=u[h],d=l.corners,f=[d[0].screen,d[1].screen,d[2].screen],p=[d[2].screen,d[3].screen,d[0].screen];if(this._insideTriangle(a,f)||this._insideTriangle(a,p))return r}}else for(n=0;n"+this.xLabel+":"+t.point.x+""+this.yLabel+":"+t.point.y+""+this.zLabel+":"+t.point.z+"",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(n),this.frame.appendChild(i);var r=e.offsetWidth,o=e.offsetHeight,s=n.offsetHeight,u=i.offsetWidth,h=i.offsetHeight,l=t.screen.x-r/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-r),n.style.left=t.screen.x+"px",n.style.top=t.screen.y-s+"px",e.style.left=l+"px",e.style.top=t.screen.y-s-o+"px",i.style.left=t.screen.x-u/2+"px",i.style.top=t.screen.y-h/2+"px"},i.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},i.prototype.setCameraPosition=function(t){p.setCameraPosition(t,this),this.redraw()},i.prototype.setSize=function(t,e){this._setSize(t,e),this.redraw()},t.exports=i},function(t,e,n){t.exports={default:n(103),__esModule:!0}},function(t,e,n){n(104),t.exports=n(0).Object.assign},function(t,e,n){var i=n(5);i(i.S+i.F,"Object",{assign:n(105)})},function(t,e,n){var i=n(2),r=n(13),o=n(34),s=n(22),a=n(19),u=n(38),h=Object.assign;t.exports=!h||n(10)(function(){var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach(function(t){e[t]=t}),7!=h({},t)[n]||Object.keys(h({},e)).join("")!=i})?function(t,e){for(var n=a(t),h=arguments.length,l=1,c=o.f,d=s.f;h>l;)for(var f,p=u(arguments[l++]),m=c?r(p).concat(c(p)):r(p),v=m.length,y=0;v>y;)f=m[y++],i&&!d.call(p,f)||(n[f]=p[f]);return n}:h},function(t,e){function n(t){if(t)return i(t)}function i(t){for(var e in n.prototype)t[e]=n.prototype[e];return t}t.exports=n,n.prototype.on=n.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},n.prototype.once=function(t,e){function n(){i.off(t,n),e.apply(this,arguments)}var i=this;return this._callbacks=this._callbacks||{},n.fn=e,this.on(t,n),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[t];if(!n)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var i,r=0;ro)&&(i=o)}return i},i.prototype.getColumnRange=function(t,e){for(var n=new s,i=0;i0&&(e[n-1].pointNext=e[n]);return e},i.prototype._checkValueField=function(t){if(this.style===u.STYLE.BARCOLOR||this.style===u.STYLE.BARSIZE||this.style===u.STYLE.DOTCOLOR||this.style===u.STYLE.DOTSIZE){if(void 0===this.colValue)throw new Error("Expected data to have field 'style' for graph style '"+this.style+"'");if(void 0===t[0][this.colValue])throw new Error("Expected data to have field '"+this.colValue+"' for graph style '"+this.style+"'")}},t.exports=i},function(t,e,n){function i(){this.min=void 0,this.max=void 0}i.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.maxn)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=n}},i.prototype.range=function(){return this.max-this.min},i.prototype.center=function(){return(this.min+this.max)/2},t.exports=i},function(t,e,n){function i(){var t=function(){};return{on:t,off:t,destroy:t,emit:t,get:function(e){return{set:t}}}}if("undefined"!=typeof window){var r=n(120),o=window.Hammer||n(121);t.exports=r(o,{preventDefault:"mouse"})}else t.exports=function(){return i()}},function(t,e,n){var i,r,o;!function(n){r=[],i=n,void 0!==(o="function"==typeof i?i.apply(e,r):i)&&(t.exports=o)}(function(){var t=null;return function e(n,i){function r(t){return t.match(/[^ ]+/g)}function o(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var n=!1;e.stopPropagation=function(){n=!0};var i=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof i&&(e.srcEvent.stopPropagation=function(){i(),e.stopPropagation()}),e.firstTarget=t;for(var r=t;r&&!n;){var o=r.hammer;if(o)for(var s,a=0;a0?h._handlers[t]=i:(n.off(t,o),delete h._handlers[t]))}),h},h.emit=function(e,i){t=i.target,n.emit(e,i)},h.destroy=function(){var t=n.element.hammer,e=t.indexOf(h);-1!==e&&t.splice(e,1),t.length||delete n.element.hammer,h._handlers={},n.destroy()},h}})},function(t,e,n){var i;/*! Hammer.JS - v2.0.7 - 2016-04-22 * http://hammerjs.github.io/ * * Copyright (c) 2016 Jorik Tangelder; * Licensed under the MIT license */ -!function(r,o,s,a){function u(t,e,n){return setTimeout(f(t,n),e)}function h(t,e,n){return!!Array.isArray(t)&&(l(t,n[e],n),!0)}function l(t,e,n){var i;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==a)for(i=0;i\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=r.console&&(r.console.warn||r.console.log);return o&&o.call(r.console,i,n),t.apply(this,arguments)}}function d(t,e,n){var i,r=e.prototype;i=t.prototype=Object.create(r),i.constructor=t,i._super=r,n&&pt(i,n)}function f(t,e){return function(){return t.apply(e,arguments)}}function p(t,e){return typeof t==yt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,n){l(w(e),function(e){t.addEventListener(e,n,!1)})}function y(t,e,n){l(w(e),function(e){t.removeEventListener(e,n,!1)})}function g(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function _(t,e){return t.indexOf(e)>-1}function w(t){return t.trim().split(/\s+/g)}function b(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var i=0;in[e]}):i.sort()),i}function M(t,e){for(var n,i,r=e[0].toUpperCase()+e.slice(1),o=0;o1&&!n.firstMultiple?n.firstMultiple=R(e):1===r&&(n.firstMultiple=!1);var o=n.firstInput,s=n.firstMultiple,a=s?s.center:o.center,u=e.center=A(i);e.timeStamp=wt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=N(a,u),e.distance=z(a,u),P(n,e),e.offsetDirection=I(e.deltaX,e.deltaY);var h=Y(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=h.x,e.overallVelocityY=h.y,e.overallVelocity=_t(h.x)>_t(h.y)?h.x:h.y,e.scale=s?j(s.pointers,i):1,e.rotation=s?W(s.pointers,i):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,L(n,e);var l=t.element;g(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var n=e.center,i=t.offsetDelta||{},r=t.prevDelta||{},o=t.prevInput||{};e.eventType!==Et&&o.eventType!==Pt||(r=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},i=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=r.x+(n.x-i.x),e.deltaY=r.y+(n.y-i.y)}function L(t,e){var n,i,r,o,s=t.lastInterval||e,u=e.timeStamp-s.timeStamp;if(e.eventType!=Lt&&(u>Ot||s.velocity===a)){var h=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,c=Y(u,h,l);i=c.x,r=c.y,n=_t(c.x)>_t(c.y)?c.x:c.y,o=I(h,l),t.lastInterval=e}else n=s.velocity,i=s.velocityX,r=s.velocityY,o=s.direction;e.velocity=n,e.velocityX=i,e.velocityY=r,e.direction=o}function R(t){for(var e=[],n=0;n=_t(e)?t<0?At:Yt:e<0?It:zt}function z(t,e,n){n||(n=Ft);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return Math.sqrt(i*i+r*r)}function N(t,e,n){n||(n=Ft);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return 180*Math.atan2(r,i)/Math.PI}function W(t,e){return N(e[1],e[0],Vt)+N(t[1],t[0],Vt)}function j(t,e){return z(e[0],e[1],Vt)/z(t[0],t[1],Vt)}function F(){this.evEl=Bt,this.evWin=Ut,this.pressed=!1,k.apply(this,arguments)}function V(){this.evEl=Zt,this.evWin=qt,k.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function G(){this.evTarget=Jt,this.evWin=Qt,this.started=!1,k.apply(this,arguments)}function B(t,e){var n=x(t.touches),i=x(t.changedTouches);return e&(Pt|Lt)&&(n=S(n.concat(i),"identifier",!0)),[n,i]}function U(){this.evTarget=te,this.targetIds={},k.apply(this,arguments)}function H(t,e){var n=x(t.touches),i=this.targetIds;if(e&(Et|Ct)&&1===n.length)return i[n[0].identifier]=!0,[n,n];var r,o,s=x(t.changedTouches),a=[],u=this.target;if(o=n.filter(function(t){return g(t.target,u)}),e===Et)for(r=0;r-1&&i.splice(t,1)};setTimeout(r,ee)}}function $(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,i=0;i-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){n.manager.emit(e,t)}var n=this,i=this.state;i=pe&&e(n.options.event+tt(i))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&r&e.direction},attrTest:function(t){return it.prototype.attrTest.call(this,t)&&(this.state&de||!(this.state&de)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),d(ot,it,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&de)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),d(st,K,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[oe]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distancee.time;if(this._input=t,!i||!n||t.eventType&(Pt|Lt)&&!r)this.reset();else if(t.eventType&Et)this.reset(),this._timer=u(function(){this.state=me,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return me;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===me&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=wt(),this.manager.emit(this.options.event,this._input)))}}),d(at,it,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&de)}}),d(ut,it,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Nt|Wt,pointers:1},getTouchAction:function(){return rt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(Nt|Wt)?e=t.overallVelocity:n&Nt?e=t.overallVelocityX:n&Wt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&_t(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),d(ht,K,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[se]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distance\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=r.console&&(r.console.warn||r.console.log);return o&&o.call(r.console,i,n),t.apply(this,arguments)}}function d(t,e,n){var i,r=e.prototype;i=t.prototype=Object.create(r),i.constructor=t,i._super=r,n&&pt(i,n)}function f(t,e){return function(){return t.apply(e,arguments)}}function p(t,e){return typeof t==yt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,n){l(w(e),function(e){t.addEventListener(e,n,!1)})}function y(t,e,n){l(w(e),function(e){t.removeEventListener(e,n,!1)})}function g(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function _(t,e){return t.indexOf(e)>-1}function w(t){return t.trim().split(/\s+/g)}function b(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var i=0;in[e]}):i.sort()),i}function T(t,e){for(var n,i,r=e[0].toUpperCase()+e.slice(1),o=0;o1&&!n.firstMultiple?n.firstMultiple=Y(e):1===r&&(n.firstMultiple=!1);var o=n.firstInput,s=n.firstMultiple,a=s?s.center:o.center,u=e.center=A(i);e.timeStamp=wt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=z(a,u),e.distance=N(a,u),P(n,e),e.offsetDirection=I(e.deltaX,e.deltaY);var h=R(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=h.x,e.overallVelocityY=h.y,e.overallVelocity=_t(h.x)>_t(h.y)?h.x:h.y,e.scale=s?F(s.pointers,i):1,e.rotation=s?W(s.pointers,i):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,L(n,e);var l=t.element;g(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var n=e.center,i=t.offsetDelta||{},r=t.prevDelta||{},o=t.prevInput||{};e.eventType!==Et&&o.eventType!==Pt||(r=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},i=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=r.x+(n.x-i.x),e.deltaY=r.y+(n.y-i.y)}function L(t,e){var n,i,r,o,s=t.lastInterval||e,u=e.timeStamp-s.timeStamp;if(e.eventType!=Lt&&(u>Ot||s.velocity===a)){var h=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,c=R(u,h,l);i=c.x,r=c.y,n=_t(c.x)>_t(c.y)?c.x:c.y,o=I(h,l),t.lastInterval=e}else n=s.velocity,i=s.velocityX,r=s.velocityY,o=s.direction;e.velocity=n,e.velocityX=i,e.velocityY=r,e.direction=o}function Y(t){for(var e=[],n=0;n=_t(e)?t<0?At:Rt:e<0?It:Nt}function N(t,e,n){n||(n=jt);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return Math.sqrt(i*i+r*r)}function z(t,e,n){n||(n=jt);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return 180*Math.atan2(r,i)/Math.PI}function W(t,e){return z(e[1],e[0],Vt)+z(t[1],t[0],Vt)}function F(t,e){return N(e[0],e[1],Vt)/N(t[0],t[1],Vt)}function j(){this.evEl=Ht,this.evWin=Ut,this.pressed=!1,k.apply(this,arguments)}function V(){this.evEl=Xt,this.evWin=qt,k.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function G(){this.evTarget=Jt,this.evWin=Qt,this.started=!1,k.apply(this,arguments)}function H(t,e){var n=x(t.touches),i=x(t.changedTouches);return e&(Pt|Lt)&&(n=S(n.concat(i),"identifier",!0)),[n,i]}function U(){this.evTarget=te,this.targetIds={},k.apply(this,arguments)}function B(t,e){var n=x(t.touches),i=this.targetIds;if(e&(Et|Ct)&&1===n.length)return i[n[0].identifier]=!0,[n,n];var r,o,s=x(t.changedTouches),a=[],u=this.target;if(o=n.filter(function(t){return g(t.target,u)}),e===Et)for(r=0;r-1&&i.splice(t,1)};setTimeout(r,ee)}}function $(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,i=0;i-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){n.manager.emit(e,t)}var n=this,i=this.state;i=pe&&e(n.options.event+tt(i))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&r&e.direction},attrTest:function(t){return it.prototype.attrTest.call(this,t)&&(this.state&de||!(this.state&de)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),d(ot,it,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&de)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),d(st,K,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[oe]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distancee.time;if(this._input=t,!i||!n||t.eventType&(Pt|Lt)&&!r)this.reset();else if(t.eventType&Et)this.reset(),this._timer=u(function(){this.state=me,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return me;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===me&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=wt(),this.manager.emit(this.options.event,this._input)))}}),d(at,it,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&de)}}),d(ut,it,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:zt|Wt,pointers:1},getTouchAction:function(){return rt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(zt|Wt)?e=t.overallVelocity:n&zt?e=t.overallVelocityX:n&Wt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&_t(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),d(ht,K,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[se]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distance2&&void 0!==arguments[2]&&arguments[2];for(var s in e)void 0!==i[s]&&(null===i[s]||"object"!==(0,c.default)(i[s])?o(e,i,s,n):"object"===(0,c.default)(e[s])&&t.fillIfDefined(e[s],i[s],n))},t.extend=function(e,t){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(n))throw new TypeError("Arrays are not supported by deepExtend");for(var r=0;r3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(n))throw new TypeError("Arrays are not supported by deepExtend");for(var r in n)if(n.hasOwnProperty(r)&&-1===e.indexOf(r))if(n[r]&&n[r].constructor===Object)void 0===i[r]&&(i[r]={}),i[r].constructor===Object?t.deepExtend(i[r],n[r]):o(i,n,r,s);else if(Array.isArray(n[r])){i[r]=[];for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var r in i)if(i.hasOwnProperty(r)||!0===n)if(i[r]&&i[r].constructor===Object)void 0===e[r]&&(e[r]={}),e[r].constructor===Object?t.deepExtend(e[r],i[r],n):o(e,i,r,s);else if(Array.isArray(i[r])){e[r]=[];for(var a=0;a=0&&(t="DOMMouseScroll"),e.addEventListener(t,i,n)):e.attachEvent("on"+t,i)},t.removeEventListener=function(e,t,i,n){e.removeEventListener?(void 0===n&&(n=!1),"mousewheel"===t&&navigator.userAgent.indexOf("Firefox")>=0&&(t="DOMMouseScroll"),e.removeEventListener(t,i,n)):e.detachEvent("on"+t,i)},t.preventDefault=function(e){e||(e=window.event),e.preventDefault?e.preventDefault():e.returnValue=!1},t.getTarget=function(e){e||(e=window.event);var t;return e.target?t=e.target:e.srcElement&&(t=e.srcElement),void 0!=t.nodeType&&3==t.nodeType&&(t=t.parentNode),t},t.hasParent=function(e,t){for(var i=e;i;){if(i===t)return!0;i=i.parentNode}return!1},t.option={},t.option.asBoolean=function(e,t){return"function"==typeof e&&(e=e()),null!=e?0!=e:t||null},t.option.asNumber=function(e,t){return"function"==typeof e&&(e=e()),null!=e?Number(e)||t||null:t||null},t.option.asString=function(e,t){return"function"==typeof e&&(e=e()),null!=e?String(e):t||null},t.option.asSize=function(e,i){return"function"==typeof e&&(e=e()),t.isString(e)?e:t.isNumber(e)?e+"px":i||null},t.option.asElement=function(e,t){return"function"==typeof e&&(e=e()),e||t||null},t.hexToRGB=function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(t,function(e,t,i,n){return t+t+i+i+n+n});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},t.overrideOpacity=function(e,i){var n;return-1!=e.indexOf("rgba")?e:-1!=e.indexOf("rgb")?(n=e.substr(e.indexOf("(")+1).replace(")","").split(","),"rgba("+n[0]+","+n[1]+","+n[2]+","+i+")"):(n=t.hexToRGB(e),null==n?e:"rgba("+n.r+","+n.g+","+n.b+","+i+")")},t.RGBToHex=function(e,t,i){return"#"+((1<<24)+(e<<16)+(t<<8)+i).toString(16).slice(1)},t.parseColor=function(e){var i;if(!0===t.isString(e)){if(!0===t.isValidRGB(e)){var n=e.substr(4).substr(0,e.length-5).split(",").map(function(e){return parseInt(e)});e=t.RGBToHex(n[0],n[1],n[2])}if(!0===t.isValidHex(e)){var o=t.hexToHSV(e),s={h:o.h,s:.8*o.s,v:Math.min(1,1.02*o.v)},r={h:o.h,s:Math.min(1,1.25*o.s),v:.8*o.v},a=t.HSVToHex(r.h,r.s,r.v),d=t.HSVToHex(s.h,s.s,s.v);i={background:e,border:a,highlight:{background:d,border:a},hover:{background:d,border:a}}}else i={background:e,border:e,highlight:{background:e,border:e},hover:{background:e,border:e}}}else i={},i.background=e.background||void 0,i.border=e.border||void 0,t.isString(e.highlight)?i.highlight={border:e.highlight,background:e.highlight}:(i.highlight={},i.highlight.background=e.highlight&&e.highlight.background||void 0,i.highlight.border=e.highlight&&e.highlight.border||void 0),t.isString(e.hover)?i.hover={border:e.hover,background:e.hover}:(i.hover={},i.hover.background=e.hover&&e.hover.background||void 0,i.hover.border=e.hover&&e.hover.border||void 0);return i},t.RGBToHSV=function(e,t,i){e/=255,t/=255,i/=255;var n=Math.min(e,Math.min(t,i)),o=Math.max(e,Math.max(t,i));if(n==o)return{h:0,s:0,v:n};var s=e==n?t-i:i==n?e-t:i-e;return{h:60*((e==n?3:i==n?1:5)-s/(o-n))/360,s:(o-n)/o,v:o}};var g={split:function(e){var t={};return e.split(";").forEach(function(e){if(""!=e.trim()){var i=e.split(":"),n=i[0].trim(),o=i[1].trim();t[n]=o}}),t},join:function(e){return(0,l.default)(e).map(function(t){return t+": "+e[t]}).join("; ")}};t.addCssText=function(e,i){var n=g.split(e.style.cssText),o=g.split(i),s=t.extend(n,o);e.style.cssText=g.join(s)},t.removeCssText=function(e,t){var i=g.split(e.style.cssText),n=g.split(t);for(var o in n)n.hasOwnProperty(o)&&delete i[o];e.style.cssText=g.join(i)},t.HSVToRGB=function(e,t,i){var n,o,s,r=Math.floor(6*e),a=6*e-r,d=i*(1-t),h=i*(1-a*t),l=i*(1-(1-a)*t);switch(r%6){case 0:n=i,o=l,s=d;break;case 1:n=h,o=i,s=d;break;case 2:n=d,o=i,s=l;break;case 3:n=d,o=h,s=i;break;case 4:n=l,o=d,s=i;break;case 5:n=i,o=d,s=h}return{r:Math.floor(255*n),g:Math.floor(255*o),b:Math.floor(255*s)}},t.HSVToHex=function(e,i,n){var o=t.HSVToRGB(e,i,n);return t.RGBToHex(o.r,o.g,o.b)},t.hexToHSV=function(e){var i=t.hexToRGB(e);return t.RGBToHSV(i.r,i.g,i.b)},t.isValidHex=function(e){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e)},t.isValidRGB=function(e){return e=e.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(e)},t.isValidRGBA=function(e){return e=e.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(e)},t.selectiveBridgeObject=function(e,i){if(null!==i&&"object"===(void 0===i?"undefined":(0,c.default)(i))){for(var n=(0,d.default)(i),o=0;o0&&t(n,e[o-1])<0;o--)e[o]=e[o-1];e[o]=n}return e},t.mergeOptions=function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=function(e){return null!==e&&void 0!==e},s=function(e){return null!==e&&"object"===(void 0===e?"undefined":(0,c.default)(e))};if(!s(e))throw new Error("Parameter mergeTarget must be an object");if(!s(t))throw new Error("Parameter options must be an object");if(!o(i))throw new Error("Parameter option must have a value");if(!s(n))throw new Error("Parameter globalOptions must be an object");var r=t[i],a=s(n)&&!function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}(n),h=a?n[i]:void 0,l=h?h.enabled:void 0;if(void 0!==r){if("boolean"==typeof r)return s(e[i])||(e[i]={}),void(e[i].enabled=r);if(null===r&&!s(e[i])){if(!o(h))return;e[i]=(0,d.default)(h)}if(s(r)){var u=!0;void 0!==r.enabled?u=r.enabled:void 0!==l&&(u=h.enabled),function(e,t,i){s(e[i])||(e[i]={});var n=t[i],o=e[i];for(var r in n)n.hasOwnProperty(r)&&(o[r]=n[r])}(e,t,i),e[i].enabled=u}}},t.binarySearchCustom=function(e,t,i,n){for(var o=0,s=0,r=e.length-1;s<=r&&o<1e4;){var a=Math.floor((s+r)/2),d=e[a],h=void 0===n?d[i]:d[i][n],l=t(h);if(0==l)return a;-1==l?s=a+1:r=a-1,o++}return-1},t.binarySearchValue=function(e,t,i,n,o){var s,r,a,d,h=0,l=0,u=e.length-1;for(o=void 0!=o?o:function(e,t){return e==t?0:e0)return"before"==n?Math.max(0,d-1):d;if(o(r,t)<0&&o(a,t)>0)return"before"==n?d:Math.min(e.length-1,d+1);o(r,t)<0?l=d+1:u=d-1,h++}return-1},t.easingFunctions={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return--e*e*e+1},easeInOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1- --e*e*e*e},easeInOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1+--e*e*e*e*e},easeInOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}},t.getScrollBarWidth=function(){var e=document.createElement("p");e.style.width="100%",e.style.height="200px";var t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);var i=e.offsetWidth;t.style.overflow="scroll";var n=e.offsetWidth;return i==n&&(n=t.clientWidth),document.body.removeChild(t),i-n},t.topMost=function(e,t){var i=void 0;Array.isArray(t)||(t=[t]);var n=!0,o=!1,s=void 0;try{for(var a,d=(0,r.default)(e);!(n=(a=d.next()).done);n=!0){var h=a.value;if(h){i=h[t[0]];for(var l=1;l0&&(this.enableBorderDashes(e,t),e.stroke(),this.disableBorderDashes(e,t)),e.restore()}},{key:"performFill",value:function(e,t){this.enableShadow(e,t),e.fill(),this.disableShadow(e,t),this.performStroke(e,t)}},{key:"_addBoundingBoxMargin",value:function(e){this.boundingBox.left-=e,this.boundingBox.top-=e,this.boundingBox.bottom+=e,this.boundingBox.right+=e}},{key:"_updateBoundingBox",value:function(e,t,i,n,o){void 0!==i&&this.resize(i,n,o),this.left=e-this.width/2,this.top=t-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"updateBoundingBox",value:function(e,t,i,n,o){this._updateBoundingBox(e,t,i,n,o)}},{key:"getDimensionsFromLabel",value:function(e,t,i){this.textSize=this.labelModule.getTextSize(e,t,i);var n=this.textSize.width,o=this.textSize.height;return 0===n&&(n=14,o=14),{width:n,height:o}}}]),e}();t.default=l},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{size:this.options.size};if(this.needsRefresh(t,i)){this.labelModule.getTextSize(e,t,i);var o=2*n.size;this.width=o,this.height=o,this.radius=.5*this.width}}},{key:"_drawShape",value:function(e,t,i,n,o,s,r,a){if(this.resize(e,s,r,a),this.left=n-this.width/2,this.top=o-this.height/2,this.initContextForDraw(e,a),e[t](n,o,a.size),this.performFill(e,a),void 0!==this.options.label){this.labelModule.calculateLabelSize(e,s,r,n,o,"hanging");var d=o+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(e,n,d,s,r,"hanging")}this.updateBoundingBox(n,o)}},{key:"updateBoundingBox",value:function(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}]),t}(v.default);t.default=g},function(e,t,i){var n=i(59),o=i(38);e.exports=function(e){return n(o(e))}},function(e,t,i){var n=i(12),o=i(27);e.exports=i(13)?function(e,t,i){return n.f(e,t,o(1,i))}:function(e,t,i){return e[t]=i,e}},function(e,t,i){var n=i(25);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,i){e.exports={default:i(120),__esModule:!0}},function(e,t,i){function n(){var e=function(){};return{on:e,off:e,destroy:e,emit:e,get:function(t){return{set:e}}}}if("undefined"!=typeof window){var o=i(124),s=window.Hammer||i(125);e.exports=o(s,{preventDefault:"mouse"})}else e.exports=function(){return n()}},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=i(133),s=n(o),r=i(58),a=n(r);t.default=function(){function e(e,t){var i=[],n=!0,o=!1,s=void 0;try{for(var r,d=(0,a.default)(e);!(n=(r=d.next()).done)&&(i.push(r.value),!t||i.length!==t);n=!0);}catch(e){o=!0,s=e}finally{try{!n&&d.return&&d.return()}finally{if(o)throw s}}return i}return function(t,i){if(Array.isArray(t))return t;if((0,s.default)(Object(t)))return e(t,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(e,t){e.exports={}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,i){var n=i(65),o=i(45);e.exports=Object.keys||function(e){return n(e,o)}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){var i=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++i+n).toString(36))}},function(e,t,i){var n=i(38);e.exports=function(e){return Object(n(e))}},function(e,t,i){e.exports={default:i(98),__esModule:!0}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(e&&!Array.isArray(e)&&(t=e,e=null),this._options=t||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=(0,l.default)(this._options.type),n=0,o=i.length;no?1:nr)&&(s=d,r=h)}return s},o.prototype.min=function(e){var t,i,n=this._data,o=(0,l.default)(n),s=null,r=null;for(t=0,i=o.length;te.left&&this.shape.tope.top}},{key:"isBoundingBoxOverlappingWith",value:function(e){return this.shape.boundingBox.lefte.left&&this.shape.boundingBox.tope.top}}],[{key:"updateGroupOptions",value:function(e,t,i){if(void 0!==i){var n=e.group;if(void 0!==t&&void 0!==t.group&&n!==t.group)throw new Error("updateGroupOptions: group values in options don't match.");if("number"==typeof n||"string"==typeof n&&""!=n){var o=i.get(n);d.selectiveNotDeepExtend(["font"],e,o),e.color=d.parseColor(e.color)}}}},{key:"parseOptions",value:function(t,i){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments[4],r=["color","fixed","shadow"];if(d.selectiveNotDeepExtend(r,t,i,n),e.checkMass(i),d.mergeOptions(t,i,"shadow",o),void 0!==i.color&&null!==i.color){var a=d.parseColor(i.color);d.fillIfDefined(t.color,a)}else!0===n&&null===i.color&&(t.color=d.bridgeObject(o.color));void 0!==i.fixed&&null!==i.fixed&&("boolean"==typeof i.fixed?(t.fixed.x=i.fixed,t.fixed.y=i.fixed):(void 0!==i.fixed.x&&"boolean"==typeof i.fixed.x&&(t.fixed.x=i.fixed.x),void 0!==i.fixed.y&&"boolean"==typeof i.fixed.y&&(t.fixed.y=i.fixed.y))),!0===n&&null===i.font&&(t.font=d.bridgeObject(o.font)),e.updateGroupOptions(t,i,s),void 0!==i.scaling&&d.mergeOptions(t.scaling,i.scaling,"label",o.scaling)}},{key:"checkMass",value:function(e,t){if(void 0!==e.mass&&e.mass<=0){var i="";void 0!==t&&(i=" in node id: "+t),console.log("%cNegative or zero mass disallowed"+i+", setting mass to 1.",S),e.mass=1}}}]),e}();t.default=D},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(7),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(5),u=function(){function e(){(0,a.default)(this,e)}return(0,h.default)(e,null,[{key:"choosify",value:function(e,t){var i=["node","edge","label"],n=!0,o=l.topMost(t,"chosen");if("boolean"==typeof o)n=o;else if("object"===(void 0===o?"undefined":(0,s.default)(o))){if(-1===i.indexOf(e))throw new Error("choosify: subOption '"+e+"' should be one of '"+i.join("', '")+"'");var r=l.topMost(t,["chosen",e]);"boolean"!=typeof r&&"function"!=typeof r||(n=r)}return n}},{key:"pointInRect",value:function(e,t,i){if(e.width<=0||e.height<=0)return!1;if(void 0!==i){var n={x:t.x-i.x,y:t.y-i.y};if(0!==i.angle){var o=-i.angle;t={x:Math.cos(o)*n.x-Math.sin(o)*n.y,y:Math.sin(o)*n.x+Math.cos(o)*n.y}}else t=n}var s=e.x+e.width,r=e.y+e.width;return e.leftt.x&&e.topt.y}},{key:"isValidLabel",value:function(e){return"string"==typeof e&&""!==e}}]),e}();t.default=u},function(e,t,i){t.onTouch=function(e,t){t.inputHandler=function(e){e.isFirst&&t(e)},e.on("hammer.input",t.inputHandler)},t.onRelease=function(e,t){return t.inputHandler=function(e){e.isFinal&&t(e)},e.on("hammer.input",t.inputHandler)},t.offTouch=function(e,t){e.off("hammer.input",t.inputHandler)},t.offRelease=t.offTouch,t.disablePreventDefaultVertically=function(e){return e.getTouchAction=function(){return["pan-y"]},e}},function(e,t,i){i(85);for(var n=i(9),o=i(18),s=i(24),r=i(8)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),d=0;ddocument.F=Object<\/script>"),e.close(),d=e.F;n--;)delete d.prototype[s[n]];return d()};e.exports=Object.create||function(e,t){var i;return null!==e?(a.prototype=n(e),i=new a,a.prototype=null,i[r]=e):i=d(),void 0===t?i:o(i,t)}},function(e,t){var i=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:i)(e)}},function(e,t,i){var n=i(44)("keys"),o=i(28);e.exports=function(e){return n[e]||(n[e]=o(e))}},function(e,t,i){var n=i(9),o=n["__core-js_shared__"]||(n["__core-js_shared__"]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,i){var n=i(12).f,o=i(14),s=i(8)("toStringTag");e.exports=function(e,t,i){e&&!o(e=i?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e,t,i){var n=i(95)(!0);i(60)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,i=this._i;return i>=t.length?{value:void 0,done:!0}:(e=n(t,i),this._i+=e.length,{value:e,done:!1})})},function(e,t,i){t.f=i(8)},function(e,t,i){var n=i(9),o=i(6),s=i(39),r=i(48),a=i(12).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:r.f(e)})}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,i){function n(e,t){this._data=null,this._ids={},this.length=0,this._options=t||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(e)}var o=i(10),s=function(e){return e&&e.__esModule?e:{default:e}}(o),r=i(5),a=i(32);n.prototype.setData=function(e){var t,i,n,o,s;if(this._data){for(this._data.off&&this._data.off("*",this.listener),t=this._data.getIds({filter:this._options&&this._options.filter}),s=[],n=0,o=t.length;nthis.imageObj.height?i=this.imageObj.width/this.imageObj.height:n=this.imageObj.height/this.imageObj.width),e=2*this.options.size*i,t=2*this.options.size*n}else e=this.imageObj.width,t=this.imageObj.height;this.width=e,this.height=t,this.radius=.5*this.width}},{key:"_drawRawCircle",value:function(e,t,i,n){this.initContextForDraw(e,n),e.circle(t,i,n.size),this.performFill(e,n)}},{key:"_drawImageAtPosition",value:function(e,t){if(0!=this.imageObj.width){e.globalAlpha=1,this.enableShadow(e,t);var i=1;!0===this.options.shapeProperties.interpolation&&(i=this.imageObj.width/this.width/this.body.view.scale),this.imageObj.drawImageAtPosition(e,i,this.left,this.top,this.width,this.height),this.disableShadow(e,t)}}},{key:"_drawImageLabel",value:function(e,t,i,n,o){var s,r=0;if(void 0!==this.height){r=.5*this.height;var a=this.labelModule.getTextSize(e,n,o);a.lineCount>=1&&(r+=a.height/2)}s=i+r,this.options.label&&(this.labelOffset=r),this.labelModule.draw(e,t,s,n,o,"hanging")}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.printStyle=void 0;var o=i(21),s=n(o),r=i(7),a=n(r),d=i(10),h=n(d),l=i(0),u=n(l),c=i(1),f=n(c),p=i(5),v=!1,g=void 0,y="background: #FFeeee; color: #dd0000",m=function(){function e(){(0,u.default)(this,e)}return(0,f.default)(e,null,[{key:"validate",value:function(t,i,n){v=!1,g=i;var o=i;return void 0!==n&&(o=i[n]),e.parse(t,o,[]),v}},{key:"parse",value:function(t,i,n){for(var o in t)t.hasOwnProperty(o)&&e.check(o,t,i,n)}},{key:"check",value:function(t,i,n,o){if(void 0===n[t]&&void 0===n.__any__)return void e.getSuggestion(t,n,o);var s=t,r=!0;void 0===n[t]&&void 0!==n.__any__&&(s="__any__",r="object"===e.getType(i[t]));var a=n[s];r&&void 0!==a.__type__&&(a=a.__type__),e.checkFields(t,i,n,s,a,o)}},{key:"checkFields",value:function(t,i,n,o,s,r){var a=function(i){console.log("%c"+i+e.printLocation(r,t),y)},d=e.getType(i[t]),l=s[d];void 0!==l?"array"===e.getType(l)&&-1===l.indexOf(i[t])?(a('Invalid option detected in "'+t+'". Allowed values are:'+e.print(l)+' not "'+i[t]+'". '),v=!0):"object"===d&&"__any__"!==o&&(r=p.copyAndExtendArray(r,t),e.parse(i[t],n[o],r)):void 0===s.any&&(a('Invalid type received for "'+t+'". Expected: '+e.print((0,h.default)(s))+". Received ["+d+'] "'+i[t]+'"'),v=!0)}},{key:"getType",value:function(e){var t=void 0===e?"undefined":(0,a.default)(e);return"object"===t?null===e?"null":e instanceof Boolean?"boolean":e instanceof Number?"number":e instanceof String?"string":Array.isArray(e)?"array":e instanceof Date?"date":void 0!==e.nodeType?"dom":!0===e._isAMomentObject?"moment":"object":"number"===t?"number":"boolean"===t?"boolean":"string"===t?"string":void 0===t?"undefined":t}},{key:"getSuggestion",value:function(t,i,n){var o=e.findInOptions(t,i,n,!1),s=e.findInOptions(t,g,[],!0),r=void 0;r=void 0!==o.indexMatch?" in "+e.printLocation(o.path,t,"")+'Perhaps it was incomplete? Did you mean: "'+o.indexMatch+'"?\n\n':s.distance<=4&&o.distance>s.distance?" in "+e.printLocation(o.path,t,"")+"Perhaps it was misplaced? Matching option found at: "+e.printLocation(s.path,s.closestMatch,""):o.distance<=8?'. Did you mean "'+o.closestMatch+'"?'+e.printLocation(o.path,t):". Did you mean one of these: "+e.print((0,h.default)(i))+e.printLocation(n,t),console.log('%cUnknown option detected: "'+t+'"'+r,y),v=!0}},{key:"findInOptions",value:function(t,i,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],d=t.toLowerCase(),h=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&!0===o){var c=e.findInOptions(t,i[l],p.copyAndExtendArray(n,l));s>c.distance&&(r=c.closestMatch,a=c.path,s=c.distance,h=c.indexMatch)}else-1!==l.toLowerCase().indexOf(d)&&(h=l),u=e.levenshteinDistance(t,l),s>u&&(r=l,a=p.copyArray(n),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:h}}},{key:"printLocation",value:function(e,t){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",n="\n\n"+i+"options = {\n",o=0;oi.shape.height?(r=i.x+.5*i.shape.width,a=i.y-d):(r=i.x+d,a=i.y-.5*i.shape.height),o=this._pointOnCircle(r,a,d,.125),this.labelModule.draw(e,o.x,o.y,this.selected,this.hover)}}}},{key:"getItemsOnPoint",value:function(e){var t=[];if(this.labelModule.visible()){var i=this._getRotation();g.pointInRect(this.labelModule.getSize(),e,i)&&t.push({edgeId:this.id,labelId:0})}var n={left:e.x,top:e.y};return this.isOverlappingWith(n)&&t.push({edgeId:this.id}),t}},{key:"isOverlappingWith",value:function(e){if(this.connected){var t=this.from.x,i=this.from.y,n=this.to.x,o=this.to.y,s=e.left,r=e.top;return this.edgeType.getDistanceToEdge(t,i,n,o,s,r)<10}return!1}},{key:"_getRotation",value:function(e){var t=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,t);void 0!==e&&this.labelModule.calculateLabelSize(e,this.selected,this.hover,i.x,i.y);var n={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible())return n;if("horizontal"===this.options.font.align)return n;var o=this.from.y-this.to.y,s=this.from.x-this.to.x,r=Math.atan2(o,s);return(r<-1&&s<0||r>0&&s<0)&&(r+=Math.PI),n.angle=r,n}},{key:"_pointOnCircle",value:function(e,t,i,n){var o=2*n*Math.PI;return{x:e+i*Math.cos(o),y:t-i*Math.sin(o)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}},{key:"remove",value:function(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}},{key:"endPointsValid",value:function(){return void 0!==this.body.nodes[this.fromId]&&void 0!==this.body.nodes[this.toId]}}],[{key:"parseOptions",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=["arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width","font","chosen","widthConstraint"];if(p.selectiveDeepExtend(r,e,t,i),g.isValidLabel(t.label)?e.label=t.label:e.label=void 0,p.mergeOptions(e,t,"smooth",n),p.mergeOptions(e,t,"shadow",n),void 0!==t.dashes&&null!==t.dashes?e.dashes=t.dashes:!0===i&&null===t.dashes&&(e.dashes=(0,h.default)(n.dashes)),void 0!==t.scaling&&null!==t.scaling?(void 0!==t.scaling.min&&(e.scaling.min=t.scaling.min),void 0!==t.scaling.max&&(e.scaling.max=t.scaling.max),p.mergeOptions(e.scaling,t.scaling,"label",n.scaling)):!0===i&&null===t.scaling&&(e.scaling=(0,h.default)(n.scaling)),void 0!==t.arrows&&null!==t.arrows)if("string"==typeof t.arrows){var d=t.arrows.toLowerCase();e.arrows.to.enabled=-1!=d.indexOf("to"),e.arrows.middle.enabled=-1!=d.indexOf("middle"),e.arrows.from.enabled=-1!=d.indexOf("from")}else{if("object"!==(0,a.default)(t.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+(0,s.default)(t.arrows));p.mergeOptions(e.arrows,t.arrows,"to",n.arrows),p.mergeOptions(e.arrows,t.arrows,"middle",n.arrows),p.mergeOptions(e.arrows,t.arrows,"from",n.arrows)}else!0===i&&null===t.arrows&&(e.arrows=(0,h.default)(n.arrows));if(void 0!==t.color&&null!==t.color){var l=t.color,u=e.color;if(o)p.deepExtend(u,n.color,!1,i);else for(var c in u)u.hasOwnProperty(c)&&delete u[c];if(p.isString(u))u.color=u,u.highlight=u,u.hover=u,u.inherit=!1,void 0===l.opacity&&(u.opacity=1);else{var f=!1;void 0!==l.color&&(u.color=l.color,f=!0),void 0!==l.highlight&&(u.highlight=l.highlight,f=!0),void 0!==l.hover&&(u.hover=l.hover,f=!0),void 0!==l.inherit&&(u.inherit=l.inherit),void 0!==l.opacity&&(u.opacity=Math.min(1,Math.max(0,l.opacity))),!0===f?u.inherit=!1:void 0===u.inherit&&(u.inherit="from")}}else!0===i&&null===t.color&&(e.color=p.bridgeObject(n.color));!0===i&&null===t.font&&(e.font=p.bridgeObject(n.font))}}]),e}();t.default=w},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(78),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"_findBorderPositionBezier",value:function(e,t){var i,n,o,s,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),d=0,h=0,l=1,u=this.to,c=!1;for(e.id===this.from.id&&(u=this.from,c=!0);h<=l&&d<10;){var f=.5*(h+l);if(i=this.getPoint(f,a),n=Math.atan2(u.y-i.y,u.x-i.x),o=u.distanceToBorder(t,n),s=Math.sqrt(Math.pow(i.x-u.x,2)+Math.pow(i.y-u.y,2)),r=o-s,Math.abs(r)<.2)break;r<0?!1===c?h=f:l=f:!1===c?l=f:h=f,d++}return i.t=f,i}},{key:"_getDistanceToBezierEdge",value:function(e,t,i,n,o,s,r){var a=1e9,d=void 0,h=void 0,l=void 0,u=void 0,c=void 0,f=e,p=t;for(h=1;h<10;h++)l=.1*h,u=Math.pow(1-l,2)*e+2*l*(1-l)*r.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*t+2*l*(1-l)*r.y+Math.pow(l,2)*n,h>0&&(d=this._getDistanceToLine(f,p,u,c,o,s),a=d1&&void 0!==arguments[1]?arguments[1]:[],n=1e9,o=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;at.shape.boundingBox.left&&(s=t.shape.boundingBox.left),rt.shape.boundingBox.top&&(n=t.shape.boundingBox.top),o1&&void 0!==arguments[1]?arguments[1]:[],n=1e9,o=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;at.x&&(s=t.x),rt.y&&(n=t.y),od;)n(a,i=t[d++])&&(~s(h,i)||h.push(i));return h}},function(e,t,i){var n=i(14),o=i(29),s=i(43)("IE_PROTO"),r=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?r:null}},function(e,t,i){var n=i(37),o=i(8)("toStringTag"),s="Arguments"==n(function(){return arguments}()),r=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,i,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=r(t=Object(e),o))?i:s?n(t):"Object"==(a=n(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,i){var n=i(11),o=i(6),s=i(20);e.exports=function(e,t){var i=(o.Object||{})[e]||Object[e],r={};r[e]=t(i),n(n.S+n.F*s(function(){i(1)}),"Object",r)}},function(e,t,i){var n=i(65),o=i(45).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},function(e,t,i){var n=i(31),o=i(27),s=i(17),r=i(40),a=i(14),d=i(62),h=Object.getOwnPropertyDescriptor;t.f=i(13)?h:function(e,t){if(e=s(e),t=r(t,!0),d)try{return h(e,t)}catch(e){}if(a(e,t))return o(!n.f.call(e,t),e[t])}},function(e,t,i){e.exports="undefined"!=typeof window&&window.moment||i(114)},function(e,t,i){function n(e){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(e)}n.prototype.setOptions=function(e){e&&void 0!==e.delay&&(this.delay=e.delay),e&&void 0!==e.max&&(this.max=e.max),this._flushIfNeeded()},n.extend=function(e,t){var i=new n(t);if(void 0!==e.flush)throw new Error("Target object already has a property flush");e.flush=function(){i.flush()};var o=[{name:"flush",original:void 0}];if(t&&t.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var e=this;this._timeout=setTimeout(function(){e.flush()},this.delay)}},n.prototype.flush=function(){for(;this._queue.length>0;){var e=this._queue.shift();e.fn.apply(e.context||e.fn,e.args||[])}},e.exports=n},function(e,t){function i(e){if(e)return n(e)}function n(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},i.prototype.once=function(e,t){function i(){n.off(e,i),t.apply(this,arguments)}var n=this;return this._callbacks=this._callbacks||{},i.fn=t,this.on(e,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[e];if(!i)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var n,o=0;o=0;i--){var a=s[i];a.nodes||(a.nodes=[]),-1===a.nodes.indexOf(o)&&a.nodes.push(o)}t.attr&&(o.attr=d(o.attr,t.attr))}function u(e,t){if(e.edges||(e.edges=[]),e.edges.push(t),e.edge){var i=d({},e.edge);t.attr=d(i,t.attr)}}function c(e,t,i,n,o){var s={from:t,to:i,type:n};return e.edge&&(s.attr=d({},e.edge)),s.attr=d(s.attr||{},o),s}function f(){for(A=I.NULL,R="";" "===z||"\t"===z||"\n"===z||"\r"===z;)s();do{var e=!1;if("#"===z){for(var t=B-1;" "===N.charAt(t)||"\t"===N.charAt(t);)t--;if("\n"===N.charAt(t)||""===N.charAt(t)){for(;""!=z&&"\n"!=z;)s();e=!0}}if("/"===z&&"/"===r()){for(;""!=z&&"\n"!=z;)s();e=!0}if("/"===z&&"*"===r()){for(;""!=z;){if("*"===z&&"/"===r()){s(),s();break}s()}e=!0}for(;" "===z||"\t"===z||"\n"===z||"\r"===z;)s()}while(e);if(""===z)return void(A=I.DELIMITER);var i=z+r();if(F[i])return A=I.DELIMITER,R=i,s(),void s();if(F[z])return A=I.DELIMITER,R=z,void s();if(a(z)||"-"===z){for(R+=z,s();a(z);)R+=z,s();return"false"===R?R=!1:"true"===R?R=!0:isNaN(Number(R))||(R=Number(R)),void(A=I.IDENTIFIER)}if('"'===z){for(s();""!=z&&('"'!=z||'"'===z&&'"'===r());)'"'===z?(R+=z,s()):"\\"===z&&"n"===r()?(R+="\n",s()):R+=z,s();if('"'!=z)throw k('End of string " expected');return s(),void(A=I.IDENTIFIER)}for(A=I.UNKNOWN;""!=z;)R+=z,s();throw new SyntaxError('Syntax error in part "'+x(R,30)+'"')}function p(){var e={};if(o(),f(),"strict"===R&&(e.strict=!0,f()),"graph"!==R&&"digraph"!==R||(e.type=R,f()),A===I.IDENTIFIER&&(e.id=R,f()),"{"!=R)throw k("Angle bracket { expected");if(f(),v(e),"}"!=R)throw k("Angle bracket } expected");if(f(),""!==R)throw k("End of file expected");return f(),delete e.node,delete e.edge,delete e.graph,e}function v(e){for(;""!==R&&"}"!=R;)g(e),";"===R&&f()}function g(e){var t=y(e);if(t)return void _(e,t);if(!m(e)){if(A!=I.IDENTIFIER)throw k("Identifier expected");var i=R;if(f(),"="===R){if(f(),A!=I.IDENTIFIER)throw k("Identifier expected");e[i]=R,f()}else b(e,i)}}function y(e){var t=null;if("subgraph"===R&&(t={},t.type="subgraph",f(),A===I.IDENTIFIER&&(t.id=R,f())),"{"===R){if(f(),t||(t={}),t.parent=e,t.node=e.node,t.edge=e.edge,t.graph=e.graph,v(t),"}"!=R)throw k("Angle bracket } expected");f(),delete t.node,delete t.edge,delete t.graph,delete t.parent,e.subgraphs||(e.subgraphs=[]),e.subgraphs.push(t)}return t}function m(e){return"node"===R?(f(),e.node=w(),"node"):"edge"===R?(f(),e.edge=w(),"edge"):"graph"===R?(f(),e.graph=w(),"graph"):null}function b(e,t){var i={id:t},n=w();n&&(i.attr=n),l(e,i),_(e,t)}function _(e,t){for(;"->"===R||"--"===R;){var i,n=R;f();var o=y(e);if(o)i=o;else{if(A!=I.IDENTIFIER)throw k("Identifier or subgraph expected");i=R,l(e,{id:i}),f()}u(e,c(e,t,i,n,w())),t=i}}function w(){for(var e=null,t={dashed:!0,solid:!1,dotted:[1,5]};"["===R;){for(f(),e={};""!==R&&"]"!=R;){if(A!=I.IDENTIFIER)throw k("Attribute name expected");var i=R;if(f(),"="!=R)throw k("Equal sign = expected");if(f(),A!=I.IDENTIFIER)throw k("Attribute value expected");var n=R;"style"===i&&(n=t[n]),h(e,i,n),f(),","==R&&f()}if("]"!=R)throw k("Bracket ] expected");f()}return e}function k(e){return new SyntaxError(e+', got "'+x(R,30)+'" (char '+B+")")}function x(e,t){return e.length<=t?e:e.substr(0,27)+"..."}function O(e,t,i){Array.isArray(e)?e.forEach(function(e){Array.isArray(t)?t.forEach(function(t){i(e,t)}):i(e,t)}):Array.isArray(t)?t.forEach(function(t){i(e,t)}):i(e,t)}function M(e,t,i){for(var n=t.split("."),o=n.pop(),s=e,r=0;r":!0,"--":!0},N="",B=0,z="",R="",A=I.NULL,j=/[a-zA-Z_0-9.:#]/;t.parseDOT=n,t.DOTToGraph=S},function(e,t,i){function n(e,t){var i=[],n=[],o={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==t&&(void 0!==t.fixed&&(o.nodes.fixed=t.fixed),void 0!==t.parseColor&&(o.nodes.parseColor=t.parseColor),void 0!==t.inheritColor&&(o.edges.inheritColor=t.inheritColor));for(var s=e.edges,r=e.nodes,a=0;a2&&void 0!==arguments[2]&&arguments[2];(0,h.default)(this,e),this.body=t,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=n}return(0,u.default)(e,[{key:"setOptions",value:function(e){if(this.elementOptions=e,this.initFontOptions(e.font),f.isValidLabel(e.label)?this.labelDirty=!0:e.label="",void 0!==e.font&&null!==e.font)if("string"==typeof e.font)this.baseSize=this.fontOptions.size;else if("object"===(0,a.default)(e.font)){var t=e.font.size;void 0!==t&&(this.baseSize=t)}}},{key:"initFontOptions",value:function(t){var i=this;if(c.forEach(v,function(e){i.fontOptions[e]={}}),e.parseFontString(this.fontOptions,t))return void(this.fontOptions.vadjust=0);c.forEach(t,function(e,t){void 0!==e&&null!==e&&"object"!==(void 0===e?"undefined":(0,a.default)(e))&&(i.fontOptions[t]=e)})}},{key:"constrain",value:function(e){var t={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=c.topMost(e,"widthConstraint");if("number"==typeof i)t.maxWdt=Number(i),t.minWdt=Number(i);else if("object"===(void 0===i?"undefined":(0,a.default)(i))){var n=c.topMost(e,["widthConstraint","maximum"]);"number"==typeof n&&(t.maxWdt=Number(n));var o=c.topMost(e,["widthConstraint","minimum"]);"number"==typeof o&&(t.minWdt=Number(o))}var s=c.topMost(e,"heightConstraint");if("number"==typeof s)t.minHgt=Number(s);else if("object"===(void 0===s?"undefined":(0,a.default)(s))){var r=c.topMost(e,["heightConstraint","minimum"]);"number"==typeof r&&(t.minHgt=Number(r));var d=c.topMost(e,["heightConstraint","valign"]);"string"==typeof d&&("top"!==d&&"bottom"!==d||(t.valign=d))}return t}},{key:"update",value:function(e,t){this.setOptions(e,!0),this.propagateFonts(t),c.deepExtend(this.fontOptions,this.constrain(t)),this.fontOptions.chooser=f.choosify("label",t)}},{key:"adjustSizes",value:function(e){var t=e?e.right+e.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=t,this.fontOptions.minWdt-=t);var i=e?e.top+e.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}},{key:"addFontOptionsToPile",value:function(e,t){for(var i=0;i5&&void 0!==arguments[5]?arguments[5]:"middle";if(void 0!==this.elementOptions.label){var r=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&r=this.elementOptions.scaling.label.maxVisible&&(r=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(e,n,o,t,i,s),this._drawBackground(e),this._drawText(e,t,this.size.yLine,s,r))}}},{key:"_drawBackground",value:function(e){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){e.fillStyle=this.fontOptions.background;var t=this.getSize();e.fillRect(t.left,t.top,t.width,t.height)}}},{key:"_drawText",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"middle",o=arguments[4],r=this._setAlignment(e,t,i,n),a=(0,s.default)(r,2);t=a[0],i=a[1],e.textAlign="left",t-=this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&("top"===this.fontOptions.valign&&(i-=(this.size.height-this.size.labelHeight)/2),"bottom"===this.fontOptions.valign&&(i+=(this.size.height-this.size.labelHeight)/2));for(var d=0;d0&&(e.lineWidth=c.strokeWidth,e.strokeStyle=g,e.lineJoin="round"),e.fillStyle=v,c.strokeWidth>0&&e.strokeText(c.text,t+l,i+c.vadjust),e.fillText(c.text,t+l,i+c.vadjust),l+=c.width}i+=h.height}}}},{key:"_setAlignment",value:function(e,t,i,n){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&!1===this.pointToSelf){t=0,i=0;"top"===this.fontOptions.align?(e.textBaseline="alphabetic",i-=4):"bottom"===this.fontOptions.align?(e.textBaseline="hanging",i+=4):e.textBaseline="middle"}else e.textBaseline=n;return[t,i]}},{key:"_getColor",value:function(e,t,i){var n=e||"#000000",o=i||"#ffffff";if(t<=this.elementOptions.scaling.label.drawThreshold){var s=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-t)));n=c.overrideOpacity(n,s),o=c.overrideOpacity(o,s)}return[n,o]}},{key:"getTextSize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this._processLabel(e,t,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:"getSize",value:function(){var e=this.size.left,t=this.size.top-1;if(this.isEdgeLabel){var i=.5*-this.size.width;switch(this.fontOptions.align){case"middle":e=i,t=.5*-this.size.height;break;case"top":e=i,t=-(this.size.height+2);break;case"bottom":e=i,t=2}}return{left:e,top:t,width:this.size.width,height:this.size.height}}},{key:"calculateLabelSize",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"middle";this._processLabel(e,t,i),this.size.left=n-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===s&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}},{key:"getFormattingValues",value:function(e,t,i,n){var o=function(e,t,i){return"normal"===t?"mod"===i?"":e[i]:void 0!==e[t][i]?e[t][i]:e[i]},s={color:o(this.fontOptions,n,"color"),size:o(this.fontOptions,n,"size"),face:o(this.fontOptions,n,"face"),mod:o(this.fontOptions,n,"mod"),vadjust:o(this.fontOptions,n,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(t||i)&&("normal"===n&&!0===this.fontOptions.chooser&&this.elementOptions.labelHighlightBold?s.mod="bold":"function"==typeof this.fontOptions.chooser&&this.fontOptions.chooser(s,this.elementOptions.id,t,i));var r="";return void 0!==s.mod&&""!==s.mod&&(r+=s.mod+" "),r+=s.size+"px "+s.face,e.font=r.replace(/"/g,""),s.font=e.font,s.height=s.size,s}},{key:"differentState",value:function(e,t){return e!==this.selectedState||t!==this.hoverState}},{key:"_processLabelText",value:function(e,t,i,n){return new p(e,this,t,i).process(n)}},{key:"_processLabel",value:function(e,t,i){if(!1!==this.labelDirty||this.differentState(t,i)){var n=this._processLabelText(e,t,i,this.elementOptions.label);this.fontOptions.minWdt>0&&n.width0&&n.heightn.shape.height?(t=n.x+.5*n.shape.width,i=n.y-o):(t=n.x+o,i=n.y-.5*n.shape.height),[t,i,o]}},{key:"_pointOnCircle",value:function(e,t,i,n){var o=2*n*Math.PI;return{x:e+i*Math.cos(o),y:t-i*Math.sin(o)}}},{key:"_findBorderPositionCircle",value:function(e,t,i){for(var n=i.x,o=i.y,s=i.low,r=i.high,a=i.direction,d=0,h=this.options.selfReferenceSize,l=void 0,u=void 0,c=void 0,f=void 0,p=void 0,v=.5*(s+r);s<=r&&d<10&&(v=.5*(s+r),l=this._pointOnCircle(n,o,h,v),u=Math.atan2(e.y-l.y,e.x-l.x),c=e.distanceToBorder(t,u),f=Math.sqrt(Math.pow(l.x-e.x,2)+Math.pow(l.y-e.y,2)),p=c-f,!(Math.abs(p)<.05));)p>0?a>0?s=v:r=v:a>0?r=v:s=v,d++;return l.t=v,l}},{key:"getLineWidth",value:function(e,t){return!0===e?Math.max(this.selectionWidth,.3/this.body.view.scale):!0===t?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(e,t,i,n){if(!1!==t.inheritsColor){if("both"===t.inheritsColor&&this.from.id!==this.to.id){var o=e.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,r=void 0;return s=this.from.options.color.highlight.border,r=this.to.options.color.highlight.border,!1===this.from.selected&&!1===this.to.selected?(s=l.overrideOpacity(this.from.options.color.border,t.opacity),r=l.overrideOpacity(this.to.options.color.border,t.opacity)):!0===this.from.selected&&!1===this.to.selected?r=this.to.options.color.border:!1===this.from.selected&&!0===this.to.selected&&(s=this.from.options.color.border),o.addColorStop(0,s),o.addColorStop(1,r),o}return"to"===t.inheritsColor?l.overrideOpacity(this.to.options.color.border,t.opacity):l.overrideOpacity(this.from.options.color.border,t.opacity)}return l.overrideOpacity(t.color,t.opacity)}},{key:"_circle",value:function(e,t,i,n,o){this.enableShadow(e,t),e.beginPath(),e.arc(i,n,o,0,2*Math.PI,!1),e.stroke(),this.disableShadow(e,t)}},{key:"getDistanceToEdge",value:function(e,t,i,n,o,r,a,d){var h=0;if(this.from!=this.to)h=this._getDistanceToEdge(e,t,i,n,o,r,a);else{var l=this._getCircleData(void 0),u=(0,s.default)(l,3),c=u[0],f=u[1],p=u[2],v=c-o,g=f-r;h=Math.abs(Math.sqrt(v*v+g*g)-p)}return h}},{key:"_getDistanceToLine",value:function(e,t,i,n,o,s){var r=i-e,a=n-t,d=r*r+a*a,h=((o-e)*r+(s-t)*a)/d;h>1?h=1:h<0&&(h=0);var l=e+h*r,u=t+h*a,c=l-o,f=u-s;return Math.sqrt(c*c+f*f)}},{key:"getArrowData",value:function(e,t,i,n,o,r){var a=void 0,d=void 0,h=void 0,l=void 0,u=void 0,c=void 0,f=void 0,p=r.width;if("from"===t?(h=this.from,l=this.to,u=.1,c=r.fromArrowScale,f=r.fromArrowType):"to"===t?(h=this.to,l=this.from,u=-.1,c=r.toArrowScale,f=r.toArrowType):(h=this.to,l=this.from,c=r.middleArrowScale,f=r.middleArrowType),h!=l)if("middle"!==t)if(!0===this.options.smooth.enabled){d=this.findBorderPosition(h,e,{via:i});var v=this.getPoint(Math.max(0,Math.min(1,d.t+u)),i);a=Math.atan2(d.y-v.y,d.x-v.x)}else a=Math.atan2(h.y-l.y,h.x-l.x),d=this.findBorderPosition(h,e);else a=Math.atan2(h.y-l.y,h.x-l.x),d=this.getPoint(.5,i);else{var g=this._getCircleData(e),y=(0,s.default)(g,3),m=y[0],b=y[1],_=y[2];"from"===t?(d=this.findBorderPosition(this.from,e,{x:m,y:b,low:.25,high:.6,direction:-1}),a=-2*d.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===t?(d=this.findBorderPosition(this.from,e,{x:m,y:b,low:.6,high:1,direction:1}),a=-2*d.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(d=this._pointOnCircle(m,b,_,.175),a=3.9269908169872414)}"middle"===t&&c<0&&(p*=-1);var w=15*c+3*p;return{point:d,core:{x:d.x-.9*w*Math.cos(a),y:d.y-.9*w*Math.sin(a)},angle:a,length:w,type:f}}},{key:"drawArrowHead",value:function(e,t,i,n,o){e.strokeStyle=this.getColor(e,t,i,n),e.fillStyle=e.strokeStyle,e.lineWidth=t.width,u.draw(e,o),this.enableShadow(e,t),e.fill(),this.disableShadow(e,t)}},{key:"enableShadow",value:function(e,t){!0===t.shadow&&(e.shadowColor=t.shadowColor,e.shadowBlur=t.shadowSize,e.shadowOffsetX=t.shadowX,e.shadowOffsetY=t.shadowY)}},{key:"disableShadow",value:function(e,t){!0===t.shadow&&(e.shadowColor="rgba(0,0,0,0)",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0)}}]),e}();t.default=c},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(3),a=n(r),d=i(4),h=n(d),l=i(0),u=n(l),c=i(1),f=n(c),p=function(){function e(){(0,u.default)(this,e)}return(0,f.default)(e,null,[{key:"transform",value:function(e,t){e instanceof Array||(e=[e]);for(var i=t.point.x,n=t.point.y,o=t.angle,s=t.length,r=0;r0){var e=void 0,t=this.body.nodes,i=this.physicsBody.physicsNodeIndices,n=i.length,o=this._formBarnesHutTree(t,i);this.barnesHutTree=o;for(var s=0;s0&&this._getForceContributions(o.root,e)}}},{key:"_getForceContributions",value:function(e,t){this._getForceContribution(e.children.NW,t),this._getForceContribution(e.children.NE,t),this._getForceContribution(e.children.SW,t),this._getForceContribution(e.children.SE,t)}},{key:"_getForceContribution",value:function(e,t){if(e.childrenCount>0){var i=void 0,n=void 0,o=void 0;i=e.centerOfMass.x-t.x,n=e.centerOfMass.y-t.y,o=Math.sqrt(i*i+n*n),o*e.calcSize>this.thetaInversed?this._calculateForces(o,i,n,t,e):4===e.childrenCount?this._getForceContributions(e,t):e.children.data.id!=t.id&&this._calculateForces(o,i,n,t,e)}}},{key:"_calculateForces",value:function(e,t,i,n,o){0===e&&(e=.1,t=e),this.overlapAvoidanceFactor<1&&n.shape.radius&&(e=Math.max(.1+this.overlapAvoidanceFactor*n.shape.radius,e-n.shape.radius));var s=this.options.gravitationalConstant*o.mass*n.options.mass/Math.pow(e,3),r=t*s,a=i*s;this.physicsBody.forces[n.id].x+=r,this.physicsBody.forces[n.id].y+=a}},{key:"_formBarnesHutTree",value:function(e,t){for(var i=void 0,n=t.length,o=e[t[0]].x,s=e[t[0]].y,r=e[t[0]].x,a=e[t[0]].y,d=1;d0&&(lr&&(r=l),ua&&(a=u))}var c=Math.abs(r-o)-Math.abs(a-s);c>0?(s-=.5*c,a+=.5*c):(o+=.5*c,r-=.5*c);var f=Math.max(1e-5,Math.abs(r-o)),p=.5*f,v=.5*(o+r),g=.5*(s+a),y={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:v-p,maxX:v+p,minY:g-p,maxY:g+p},size:f,calcSize:1/f,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(y.root);for(var m=0;m0&&this._placeInTree(y.root,i);return y}},{key:"_updateBranchMass",value:function(e,t){var i=e.centerOfMass,n=e.mass+t.options.mass,o=1/n;i.x=i.x*e.mass+t.x*t.options.mass,i.x*=o,i.y=i.y*e.mass+t.y*t.options.mass,i.y*=o,e.mass=n;var s=Math.max(Math.max(t.height,t.radius),t.width);e.maxWidth=e.maxWidtht.x?n.maxY>t.y?"NW":"SW":n.maxY>t.y?"NE":"SE",this._placeInRegion(e,t,o)}},{key:"_placeInRegion",value:function(e,t,i){var n=e.children[i];switch(n.childrenCount){case 0:n.children.data=t,n.childrenCount=1,this._updateBranchMass(n,t);break;case 1:n.children.data.x===t.x&&n.children.data.y===t.y?(t.x+=this.seededRandom(),t.y+=this.seededRandom()):(this._splitBranch(n),this._placeInTree(n,t));break;case 4:this._placeInTree(n,t)}}},{key:"_splitBranch",value:function(e){var t=null;1===e.childrenCount&&(t=e.children.data,e.mass=0,e.centerOfMass.x=0,e.centerOfMass.y=0),e.childrenCount=4,e.children.data=null,this._insertRegion(e,"NW"),this._insertRegion(e,"NE"),this._insertRegion(e,"SW"),this._insertRegion(e,"SE"),null!=t&&this._placeInTree(e,t)}},{key:"_insertRegion",value:function(e,t){var i=void 0,n=void 0,o=void 0,s=void 0,r=.5*e.size;switch(t){case"NW":i=e.range.minX,n=e.range.minX+r,o=e.range.minY,s=e.range.minY+r;break;case"NE":i=e.range.minX+r,n=e.range.maxX,o=e.range.minY,s=e.range.minY+r;break;case"SW":i=e.range.minX,n=e.range.minX+r,o=e.range.minY+r,s=e.range.maxY;break;case"SE":i=e.range.minX+r,n=e.range.maxX,o=e.range.minY+r,s=e.range.maxY}e.children[t]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:n,minY:o,maxY:s},size:.5*e.size,calcSize:2*e.calcSize,children:{data:null},maxWidth:0,level:e.level+1,childrenCount:0}}},{key:"_debug",value:function(e,t){void 0!==this.barnesHutTree&&(e.lineWidth=1,this._drawBranch(this.barnesHutTree.root,e,t))}},{key:"_drawBranch",value:function(e,t,i){void 0===i&&(i="#FF0000"),4===e.childrenCount&&(this._drawBranch(e.children.NW,t),this._drawBranch(e.children.NE,t),this._drawBranch(e.children.SE,t),this._drawBranch(e.children.SW,t)),t.strokeStyle=i,t.beginPath(),t.moveTo(e.range.minX,e.range.minY),t.lineTo(e.range.maxX,e.range.minY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.minY),t.lineTo(e.range.maxX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.maxY),t.lineTo(e.range.minX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.minX,e.range.maxY),t.lineTo(e.range.minX,e.range.minY),t.stroke()}}]),e}();t.default=d},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=function(){function e(t,i,n){(0,s.default)(this,e),this.body=t,this.physicsBody=i,this.setOptions(n)}return(0,a.default)(e,[{key:"setOptions",value:function(e){this.options=e}},{key:"solve",value:function(){for(var e=void 0,t=void 0,i=void 0,n=void 0,o=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=0;a=e.length?(this._t=void 0,o(1)):"keys"==t?o(0,i):"values"==t?o(0,e[i]):o(0,[i,e[i]])},"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,i){var n=i(41),o=i(27),s=i(46),r={};i(18)(r,i(8)("iterator"),function(){return this}),e.exports=function(e,t,i){e.prototype=n(r,{next:o(1,i)}),s(e,t+" Iterator")}},function(e,t,i){var n=i(12),o=i(19),s=i(26);e.exports=i(13)?Object.defineProperties:function(e,t){o(e);for(var i,r=s(t),a=r.length,d=0;a>d;)n.f(e,i=r[d++],t[i]);return e}},function(e,t,i){var n=i(17),o=i(92),s=i(93);e.exports=function(e){return function(t,i,r){var a,d=n(t),h=o(d.length),l=s(r,h);if(e&&i!=i){for(;h>l;)if((a=d[l++])!=a)return!0}else for(;h>l;l++)if((e||l in d)&&d[l]===i)return e||l||0;return!e&&-1}}},function(e,t,i){var n=i(42),o=Math.min;e.exports=function(e){return e>0?o(n(e),9007199254740991):0}},function(e,t,i){var n=i(42),o=Math.max,s=Math.min;e.exports=function(e,t){return e=n(e),e<0?o(e+t,0):s(e,t)}},function(e,t,i){var n=i(9).document;e.exports=n&&n.documentElement},function(e,t,i){var n=i(42),o=i(38);e.exports=function(e){return function(t,i){var s,r,a=String(o(t)),d=n(i),h=a.length;return d<0||d>=h?e?"":void 0:(s=a.charCodeAt(d),s<55296||s>56319||d+1===h||(r=a.charCodeAt(d+1))<56320||r>57343?e?a.charAt(d):s:e?a.slice(d,d+2):r-56320+(s-55296<<10)+65536)}}},function(e,t,i){var n=i(19),o=i(97);e.exports=i(6).getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},function(e,t,i){var n=i(67),o=i(8)("iterator"),s=i(24);e.exports=i(6).getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||s[n(e)]}},function(e,t,i){i(99);var n=i(6).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,i){var n=i(11);n(n.S,"Object",{create:i(41)})},function(e,t,i){i(101),e.exports=i(6).Object.keys},function(e,t,i){var n=i(29),o=i(26);i(68)("keys",function(){return function(e){return o(n(e))}})},function(e,t,i){e.exports={default:i(103),__esModule:!0}},function(e,t,i){i(47),i(36),e.exports=i(48).f("iterator")},function(e,t,i){e.exports={default:i(105),__esModule:!0}},function(e,t,i){i(106),i(111),i(112),i(113),e.exports=i(6).Symbol},function(e,t,i){var n=i(9),o=i(14),s=i(13),r=i(11),a=i(64),d=i(107).KEY,h=i(20),l=i(44),u=i(46),c=i(28),f=i(8),p=i(48),v=i(49),g=i(108),y=i(109),m=i(19),b=i(17),_=i(40),w=i(27),k=i(41),x=i(110),O=i(70),M=i(12),E=i(26),S=O.f,D=M.f,C=x.f,T=n.Symbol,P=n.JSON,I=P&&P.stringify,F=f("_hidden"),N=f("toPrimitive"),B={}.propertyIsEnumerable,z=l("symbol-registry"),R=l("symbols"),A=l("op-symbols"),j=Object.prototype,L="function"==typeof T,H=n.QObject,W=!H||!H.prototype||!H.prototype.findChild,Y=s&&h(function(){return 7!=k(D({},"a",{get:function(){return D(this,"a",{value:7}).a}})).a})?function(e,t,i){var n=S(j,t);n&&delete j[t],D(e,t,i),n&&e!==j&&D(j,t,n)}:D,V=function(e){var t=R[e]=k(T.prototype);return t._k=e,t},U=L&&"symbol"==typeof T.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof T},q=function(e,t,i){return e===j&&q(A,t,i),m(e),t=_(t,!0),m(i),o(R,t)?(i.enumerable?(o(e,F)&&e[F][t]&&(e[F][t]=!1),i=k(i,{enumerable:w(0,!1)})):(o(e,F)||D(e,F,w(1,{})),e[F][t]=!0),Y(e,t,i)):D(e,t,i)},G=function(e,t){m(e);for(var i,n=g(t=b(t)),o=0,s=n.length;s>o;)q(e,i=n[o++],t[i]);return e},X=function(e,t){return void 0===t?k(e):G(k(e),t)},K=function(e){var t=B.call(this,e=_(e,!0));return!(this===j&&o(R,e)&&!o(A,e))&&(!(t||!o(this,e)||!o(R,e)||o(this,F)&&this[F][e])||t)},Z=function(e,t){if(e=b(e),t=_(t,!0),e!==j||!o(R,t)||o(A,t)){var i=S(e,t);return!i||!o(R,t)||o(e,F)&&e[F][t]||(i.enumerable=!0),i}},$=function(e){for(var t,i=C(b(e)),n=[],s=0;i.length>s;)o(R,t=i[s++])||t==F||t==d||n.push(t);return n},Q=function(e){for(var t,i=e===j,n=C(i?A:b(e)),s=[],r=0;n.length>r;)!o(R,t=n[r++])||i&&!o(j,t)||s.push(R[t]);return s};L||(T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var e=c(arguments.length>0?arguments[0]:void 0),t=function(i){this===j&&t.call(A,i),o(this,F)&&o(this[F],e)&&(this[F][e]=!1),Y(this,e,w(1,i))};return s&&W&&Y(j,e,{configurable:!0,set:t}),V(e)},a(T.prototype,"toString",function(){return this._k}),O.f=Z,M.f=q,i(69).f=x.f=$,i(31).f=K,i(50).f=Q,s&&!i(39)&&a(j,"propertyIsEnumerable",K,!0),p.f=function(e){return V(f(e))}),r(r.G+r.W+r.F*!L,{Symbol:T});for(var J="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;J.length>ee;)f(J[ee++]);for(var te=E(f.store),ie=0;te.length>ie;)v(te[ie++]);r(r.S+r.F*!L,"Symbol",{for:function(e){return o(z,e+="")?z[e]:z[e]=T(e)},keyFor:function(e){if(!U(e))throw TypeError(e+" is not a symbol!");for(var t in z)if(z[t]===e)return t},useSetter:function(){W=!0},useSimple:function(){W=!1}}),r(r.S+r.F*!L,"Object",{create:X,defineProperty:q,defineProperties:G,getOwnPropertyDescriptor:Z,getOwnPropertyNames:$,getOwnPropertySymbols:Q}),P&&r(r.S+r.F*(!L||h(function(){var e=T();return"[null]"!=I([e])||"{}"!=I({a:e})||"{}"!=I(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!U(e)){for(var t,i,n=[e],o=1;arguments.length>o;)n.push(arguments[o++]);return t=n[1],"function"==typeof t&&(i=t),!i&&y(t)||(t=function(e,t){if(i&&(t=i.call(this,e,t)),!U(t))return t}),n[1]=t,I.apply(P,n)}}}),T.prototype[N]||i(18)(T.prototype,N,T.prototype.valueOf),u(T,"Symbol"),u(Math,"Math",!0),u(n.JSON,"JSON",!0)},function(e,t,i){var n=i(28)("meta"),o=i(25),s=i(14),r=i(12).f,a=0,d=Object.isExtensible||function(){return!0},h=!i(20)(function(){return d(Object.preventExtensions({}))}),l=function(e){r(e,n,{value:{i:"O"+ ++a,w:{}}})},u=function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,n)){if(!d(e))return"F";if(!t)return"E";l(e)}return e[n].i},c=function(e,t){if(!s(e,n)){if(!d(e))return!0;if(!t)return!1;l(e)}return e[n].w},f=function(e){return h&&p.NEED&&d(e)&&!s(e,n)&&l(e),e},p=e.exports={KEY:n,NEED:!1,fastKey:u,getWeak:c,onFreeze:f}},function(e,t,i){var n=i(26),o=i(50),s=i(31);e.exports=function(e){var t=n(e),i=o.f;if(i)for(var r,a=i(e),d=s.f,h=0;a.length>h;)d.call(e,r=a[h++])&&t.push(r);return t}},function(e,t,i){var n=i(37);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,i){var n=i(17),o=i(69).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(e){try{return o(e)}catch(e){return r.slice()}};e.exports.f=function(e){return r&&"[object Window]"==s.call(e)?a(e):o(n(e))}},function(e,t){},function(e,t,i){i(49)("asyncIterator")},function(e,t,i){i(49)("observable")},function(e,t,i){(function(e){!function(t,i){e.exports=i()}(0,function(){function t(){return Sn.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}function s(e){return void 0===e}function r(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function a(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var i,n=[];for(i=0;i0)for(i=0;i0?"future":"past"];return M(i)?i(t):i.replace(/%s/i,t)}function B(e,t){var i=e.toLowerCase();Rn[i]=Rn[i+"s"]=Rn[t]=e}function z(e){return"string"==typeof e?Rn[e]||Rn[e.toLowerCase()]:void 0}function R(e){var t,i,n={};for(i in e)h(e,i)&&(t=z(i))&&(n[t]=e[i]);return n}function A(e,t){An[e]=t}function j(e){var t=[];for(var i in e)t.push({unit:i,priority:An[i]});return t.sort(function(e,t){return e.priority-t.priority}),t}function L(e,t,i){var n=""+Math.abs(e),o=t-n.length;return(e>=0?i?"+":"":"-")+Math.pow(10,Math.max(0,o)).toString().substr(1)+n}function H(e,t,i,n){var o=n;"string"==typeof n&&(o=function(){return this[n]()}),e&&(Wn[e]=o),t&&(Wn[t[0]]=function(){return L(o.apply(this,arguments),t[1],t[2])}),i&&(Wn[i]=function(){return this.localeData().ordinal(o.apply(this,arguments),e)})}function W(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function Y(e){var t,i,n=e.match(jn);for(t=0,i=n.length;t=0&&Ln.test(e);)e=e.replace(Ln,i),Ln.lastIndex=0,n-=1;return e}function q(e,t,i){ro[e]=M(t)?t:function(e,n){return e&&i?i:t}}function G(e,t){return h(ro,e)?ro[e](t._strict,t._locale):new RegExp(X(e))}function X(e){return K(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,i,n,o){return t||i||n||o}))}function K(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Z(e,t){var i,n=t;for("string"==typeof e&&(e=[e]),r(t)&&(n=function(e,i){i[t]=_(e)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(e),a}function _e(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function we(e,t,i){var n=7+t-i;return-(7+_e(e,0,n).getUTCDay()-t)%7+n-1}function ke(e,t,i,n,o){var s,r,a=(7+i-n)%7,d=we(e,n,o),h=1+7*(t-1)+a+d;return h<=0?(s=e-1,r=J(s)+h):h>J(e)?(s=e+1,r=h-J(e)):(s=e,r=h),{year:s,dayOfYear:r}}function xe(e,t,i){var n,o,s=we(e.year(),t,i),r=Math.floor((e.dayOfYear()-s-1)/7)+1;return r<1?(o=e.year()-1,n=r+Oe(o,t,i)):r>Oe(e.year(),t,i)?(n=r-Oe(e.year(),t,i),o=e.year()+1):(o=e.year(),n=r),{week:n,year:o}}function Oe(e,t,i){var n=we(e,t,i),o=we(e+1,t,i);return(J(e)-n+o)/7}function Me(e){return xe(e,this._week.dow,this._week.doy).week}function Ee(){return this._week.dow}function Se(){return this._week.doy}function De(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Ce(e){var t=xe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Te(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function Pe(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Ie(e,t){return e?i(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone}function Fe(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Ne(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Be(e,t,i){var n,o,s,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)s=u([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===t?(o=mo.call(this._weekdaysParse,r),-1!==o?o:null):"ddd"===t?(o=mo.call(this._shortWeekdaysParse,r),-1!==o?o:null):(o=mo.call(this._minWeekdaysParse,r),-1!==o?o:null):"dddd"===t?-1!==(o=mo.call(this._weekdaysParse,r))?o:-1!==(o=mo.call(this._shortWeekdaysParse,r))?o:(o=mo.call(this._minWeekdaysParse,r),-1!==o?o:null):"ddd"===t?-1!==(o=mo.call(this._shortWeekdaysParse,r))?o:-1!==(o=mo.call(this._weekdaysParse,r))?o:(o=mo.call(this._minWeekdaysParse,r),-1!==o?o:null):-1!==(o=mo.call(this._minWeekdaysParse,r))?o:-1!==(o=mo.call(this._weekdaysParse,r))?o:(o=mo.call(this._shortWeekdaysParse,r),-1!==o?o:null)}function ze(e,t,i){var n,o,s;if(this._weekdaysParseExact)return Be.call(this,e,t,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(o=u([2e3,1]).day(n),i&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(o,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(o,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(o,"").replace(".",".?")+"$","i")),this._weekdaysParse[n]||(s="^"+this.weekdays(o,"")+"|^"+this.weekdaysShort(o,"")+"|^"+this.weekdaysMin(o,""),this._weekdaysParse[n]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===t&&this._fullWeekdaysParse[n].test(e))return n;if(i&&"ddd"===t&&this._shortWeekdaysParse[n].test(e))return n;if(i&&"dd"===t&&this._minWeekdaysParse[n].test(e))return n;if(!i&&this._weekdaysParse[n].test(e))return n}}function Re(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Te(e,this.localeData()),this.add(e-t,"d")):t}function Ae(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function je(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Pe(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Le(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ye.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=Co),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function He(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ye.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=To),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function We(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ye.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Po),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ye(){function e(e,t){return t.length-e.length}var t,i,n,o,s,r=[],a=[],d=[],h=[];for(t=0;t<7;t++)i=u([2e3,1]).day(t),n=this.weekdaysMin(i,""),o=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(n),a.push(o),d.push(s),h.push(n),h.push(o),h.push(s);for(r.sort(e),a.sort(e),d.sort(e),h.sort(e),t=0;t<7;t++)a[t]=K(a[t]),d[t]=K(d[t]),h[t]=K(h[t]);this._weekdaysRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ve(){return this.hours()%12||12}function Ue(){return this.hours()||24}function qe(e,t){H(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Ge(e,t){return t._meridiemParse}function Xe(e){return"p"===(e+"").toLowerCase().charAt(0)}function Ke(e,t,i){return e>11?i?"pm":"PM":i?"am":"AM"}function Ze(e){return e?e.toLowerCase().replace("_","-"):e}function $e(e){for(var t,i,n,o,s=0;s0;){if(n=Qe(o.slice(0,t).join("-")))return n;if(i&&i.length>=t&&w(o,i,!0)>=t-1)break;t--}s++}return null}function Qe(t){var i=null;if(!zo[t]&&void 0!==e&&e&&e.exports)try{i=Io._abbr;!function(){var e=new Error('Cannot find module "./locale"');throw e.code="MODULE_NOT_FOUND",e}(),Je(i)}catch(e){}return zo[t]}function Je(e,t){var i;return e&&(i=s(t)?it(e):et(e,t))&&(Io=i),Io._abbr}function et(e,t){if(null!==t){var i=Bo;if(t.abbr=e,null!=zo[e])O("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=zo[e]._config;else if(null!=t.parentLocale){if(null==zo[t.parentLocale])return Ro[t.parentLocale]||(Ro[t.parentLocale]=[]),Ro[t.parentLocale].push({name:e,config:t}),null;i=zo[t.parentLocale]._config}return zo[e]=new D(S(i,t)),Ro[e]&&Ro[e].forEach(function(e){et(e.name,e.config)}),Je(e),zo[e]}return delete zo[e],null}function tt(e,t){if(null!=t){var i,n=Bo;null!=zo[e]&&(n=zo[e]._config),t=S(n,t),i=new D(t),i.parentLocale=zo[e],zo[e]=i,Je(e)}else null!=zo[e]&&(null!=zo[e].parentLocale?zo[e]=zo[e].parentLocale:null!=zo[e]&&delete zo[e]);return zo[e]}function it(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Io;if(!i(e)){if(t=Qe(e))return t;e=[e]}return $e(e)}function nt(){return In(zo)}function ot(e){var t,i=e._a;return i&&-2===f(e).overflow&&(t=i[lo]<0||i[lo]>11?lo:i[uo]<1||i[uo]>de(i[ho],i[lo])?uo:i[co]<0||i[co]>24||24===i[co]&&(0!==i[fo]||0!==i[po]||0!==i[vo])?co:i[fo]<0||i[fo]>59?fo:i[po]<0||i[po]>59?po:i[vo]<0||i[vo]>999?vo:-1,f(e)._overflowDayOfYear&&(tuo)&&(t=uo),f(e)._overflowWeeks&&-1===t&&(t=go),f(e)._overflowWeekday&&-1===t&&(t=yo),f(e).overflow=t),e}function st(e,t,i){return null!=e?e:null!=t?t:i}function rt(e){var i=new Date(t.now());return e._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function at(e){var t,i,n,o,s=[];if(!e._d){for(n=rt(e),e._w&&null==e._a[uo]&&null==e._a[lo]&&dt(e),null!=e._dayOfYear&&(o=st(e._a[ho],n[ho]),(e._dayOfYear>J(o)||0===e._dayOfYear)&&(f(e)._overflowDayOfYear=!0),i=_e(o,0,e._dayOfYear),e._a[lo]=i.getUTCMonth(),e._a[uo]=i.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=n[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[co]&&0===e._a[fo]&&0===e._a[po]&&0===e._a[vo]&&(e._nextDay=!0,e._a[co]=0),e._d=(e._useUTC?_e:be).apply(null,s),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[co]=24),e._w&&void 0!==e._w.d&&e._w.d!==e._d.getDay()&&(f(e).weekdayMismatch=!0)}}function dt(e){var t,i,n,o,s,r,a,d;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)s=1,r=4,i=st(t.GG,e._a[ho],xe(Mt(),1,4).year),n=st(t.W,1),((o=st(t.E,1))<1||o>7)&&(d=!0);else{s=e._locale._week.dow,r=e._locale._week.doy;var h=xe(Mt(),s,r);i=st(t.gg,e._a[ho],h.year),n=st(t.w,h.week),null!=t.d?((o=t.d)<0||o>6)&&(d=!0):null!=t.e?(o=t.e+s,(t.e<0||t.e>6)&&(d=!0)):o=s}n<1||n>Oe(i,s,r)?f(e)._overflowWeeks=!0:null!=d?f(e)._overflowWeekday=!0:(a=ke(i,n,o,s,r),e._a[ho]=a.year,e._dayOfYear=a.dayOfYear)}function ht(e){var t,i,n,o,s,r,a=e._i,d=Ao.exec(a)||jo.exec(a);if(d){for(f(e).iso=!0,t=0,i=Ho.length;t0&&f(e).unusedInput.push(r),a=a.slice(a.indexOf(n)+n.length),h+=n.length),Wn[s]?(n?f(e).empty=!1:f(e).unusedTokens.push(s),Q(s,n,e)):e._strict&&!n&&f(e).unusedTokens.push(s);f(e).charsLeftOver=d-h,a.length>0&&f(e).unusedInput.push(a),e._a[co]<=12&&!0===f(e).bigHour&&e._a[co]>0&&(f(e).bigHour=void 0),f(e).parsedDateParts=e._a.slice(0),f(e).meridiem=e._meridiem,e._a[co]=mt(e._locale,e._a[co],e._meridiem),at(e),ot(e)}function mt(e,t,i){var n;return null==i?t:null!=e.meridiemHour?e.meridiemHour(t,i):null!=e.isPM?(n=e.isPM(i),n&&t<12&&(t+=12),n||12!==t||(t=0),t):t}function bt(e){var t,i,n,o,s;if(0===e._f.length)return f(e).invalidFormat=!0,void(e._d=new Date(NaN));for(o=0;othis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function qt(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(g(e,this),e=kt(e),e._a){var t=e._isUTC?u(e._a):Mt(e._a);this._isDSTShifted=this.isValid()&&w(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Gt(){return!!this.isValid()&&!this._isUTC}function Xt(){return!!this.isValid()&&this._isUTC}function Kt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Zt(e,t){var i,n,o,s=e,a=null;return Ft(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:r(e)?(s={},t?s[t]=e:s.milliseconds=e):(a=$o.exec(e))?(i="-"===a[1]?-1:1,s={y:0,d:_(a[uo])*i,h:_(a[co])*i,m:_(a[fo])*i,s:_(a[po])*i,ms:_(Nt(1e3*a[vo]))*i}):(a=Qo.exec(e))?(i="-"===a[1]?-1:(a[1],1),s={y:$t(a[2],i),M:$t(a[3],i),w:$t(a[4],i),d:$t(a[5],i),h:$t(a[6],i),m:$t(a[7],i),s:$t(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(o=Jt(Mt(s.from),Mt(s.to)),s={},s.ms=o.milliseconds,s.M=o.months),n=new It(s),Ft(e)&&h(e,"_locale")&&(n._locale=e._locale),n}function $t(e,t){var i=e&&parseFloat(e.replace(",","."));return(isNaN(i)?0:i)*t}function Qt(e,t){var i={milliseconds:0,months:0};return i.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(i.months,"M").isAfter(t)&&--i.months,i.milliseconds=+t-+e.clone().add(i.months,"M"),i}function Jt(e,t){var i;return e.isValid()&&t.isValid()?(t=Rt(t,e),e.isBefore(t)?i=Qt(e,t):(i=Qt(t,e),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ei(e,t){return function(i,n){var o,s;return null===n||isNaN(+n)||(O(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=n,n=s),i="string"==typeof i?+i:i,o=Zt(i,n),ti(this,o,e),this}}function ti(e,i,n,o){var s=i._milliseconds,r=Nt(i._days),a=Nt(i._months);e.isValid()&&(o=null==o||o,a&&fe(e,ne(e,"Month")+a*n),r&&oe(e,"Date",ne(e,"Date")+r*n),s&&e._d.setTime(e._d.valueOf()+s*n),o&&t.updateOffset(e,r||a))}function ii(e,t){var i=e.diff(t,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function ni(e,i){var n=e||Mt(),o=Rt(n,this).startOf("day"),s=t.calendarFormat(this,o)||"sameElse",r=i&&(M(i[s])?i[s].call(this,n):i[s]);return this.format(r||this.localeData().calendar(s,this,Mt(n)))}function oi(){return new y(this)}function si(e,t){var i=m(e)?e:Mt(e);return!(!this.isValid()||!i.isValid())&&(t=z(s(t)?"millisecond":t),"millisecond"===t?this.valueOf()>i.valueOf():i.valueOf()9999?V(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):M(Date.prototype.toISOString)?this.toDate().toISOString():V(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function vi(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var i="["+e+'("]',n=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",o=t+'[")]';return this.format(i+n+"-MM-DD[T]HH:mm:ss.SSS"+o)}function gi(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var i=V(this,e);return this.localeData().postformat(i)}function yi(e,t){return this.isValid()&&(m(e)&&e.isValid()||Mt(e).isValid())?Zt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function mi(e){return this.from(Mt(),e)}function bi(e,t){return this.isValid()&&(m(e)&&e.isValid()||Mt(e).isValid())?Zt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function _i(e){return this.to(Mt(),e)}function wi(e){var t;return void 0===e?this._locale._abbr:(t=it(e),null!=t&&(this._locale=t),this)}function ki(){return this._locale}function xi(e){switch(e=z(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this}function Oi(e){return void 0===(e=z(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))}function Mi(){return this._d.valueOf()-6e4*(this._offset||0)}function Ei(){return Math.floor(this.valueOf()/1e3)}function Si(){return new Date(this.valueOf())}function Di(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Ci(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Ti(){return this.isValid()?this.toISOString():null}function Pi(){return p(this)}function Ii(){return l({},f(this))}function Fi(){return f(this).overflow}function Ni(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Bi(e,t){H(0,[e,e.length],0,t)}function zi(e){return Li.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Ri(e){return Li.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function Ai(){return Oe(this.year(),1,4)}function ji(){var e=this.localeData()._week;return Oe(this.year(),e.dow,e.doy)}function Li(e,t,i,n,o){var s;return null==e?xe(this,n,o).year:(s=Oe(e,n,o),t>s&&(t=s),Hi.call(this,e,t,i,n,o))}function Hi(e,t,i,n,o){var s=ke(e,t,i,n,o),r=_e(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Wi(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Yi(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function Vi(e,t){t[vo]=_(1e3*("0."+e))}function Ui(){return this._isUTC?"UTC":""}function qi(){return this._isUTC?"Coordinated Universal Time":""}function Gi(e){return Mt(1e3*e)}function Xi(){return Mt.apply(null,arguments).parseZone()}function Ki(e){return e}function Zi(e,t,i,n){var o=it(),s=u().set(n,t);return o[i](s,e)}function $i(e,t,i){if(r(e)&&(t=e,e=void 0),e=e||"",null!=t)return Zi(e,t,i,"month");var n,o=[];for(n=0;n<12;n++)o[n]=Zi(e,n,i,"month");return o}function Qi(e,t,i,n){"boolean"==typeof e?(r(t)&&(i=t,t=void 0),t=t||""):(t=e,i=t,e=!1,r(t)&&(i=t,t=void 0),t=t||"");var o=it(),s=e?o._week.dow:0;if(null!=i)return Zi(t,(i+s)%7,n,"day");var a,d=[];for(a=0;a<7;a++)d[a]=Zi(t,(a+s)%7,n,"day");return d}function Ji(e,t){return $i(e,t,"months")}function en(e,t){return $i(e,t,"monthsShort")}function tn(e,t,i){return Qi(e,t,i,"weekdays")}function nn(e,t,i){return Qi(e,t,i,"weekdaysShort")}function on(e,t,i){return Qi(e,t,i,"weekdaysMin")}function sn(){var e=this._data;return this._milliseconds=hs(this._milliseconds),this._days=hs(this._days),this._months=hs(this._months),e.milliseconds=hs(e.milliseconds),e.seconds=hs(e.seconds),e.minutes=hs(e.minutes),e.hours=hs(e.hours),e.months=hs(e.months),e.years=hs(e.years),this}function rn(e,t,i,n){var o=Zt(t,i);return e._milliseconds+=n*o._milliseconds,e._days+=n*o._days,e._months+=n*o._months,e._bubble()}function an(e,t){return rn(this,e,t,1)}function dn(e,t){return rn(this,e,t,-1)}function hn(e){return e<0?Math.floor(e):Math.ceil(e)}function ln(){var e,t,i,n,o,s=this._milliseconds,r=this._days,a=this._months,d=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*hn(cn(a)+r),r=0,a=0),d.milliseconds=s%1e3,e=b(s/1e3),d.seconds=e%60,t=b(e/60),d.minutes=t%60,i=b(t/60),d.hours=i%24,r+=b(i/24),o=b(un(r)),a+=o,r-=hn(cn(o)),n=b(a/12),a%=12,d.days=r,d.months=a,d.years=n,this}function un(e){return 4800*e/146097}function cn(e){return 146097*e/4800}function fn(e){if(!this.isValid())return NaN;var t,i,n=this._milliseconds;if("month"===(e=z(e))||"year"===e)return t=this._days+n/864e5,i=this._months+un(t),"month"===e?i:i/12;switch(t=this._days+Math.round(cn(this._months)),e){case"week":return t/7+n/6048e5;case"day":return t+n/864e5;case"hour":return 24*t+n/36e5;case"minute":return 1440*t+n/6e4;case"second":return 86400*t+n/1e3;case"millisecond":return Math.floor(864e5*t)+n;default:throw new Error("Unknown unit "+e)}}function pn(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN}function vn(e){return function(){return this.as(e)}}function gn(){return Zt(this)}function yn(e){return e=z(e),this.isValid()?this[e+"s"]():NaN}function mn(e){return function(){return this.isValid()?this._data[e]:NaN}}function bn(){return b(this.days()/7)}function _n(e,t,i,n,o){return o.relativeTime(t||1,!!i,e,n)}function wn(e,t,i){var n=Zt(e).abs(),o=Ms(n.as("s")),s=Ms(n.as("m")),r=Ms(n.as("h")),a=Ms(n.as("d")),d=Ms(n.as("M")),h=Ms(n.as("y")),l=o<=Es.ss&&["s",o]||o0,l[4]=i,_n.apply(null,l)}function kn(e){return void 0===e?Ms:"function"==typeof e&&(Ms=e,!0)}function xn(e,t){return void 0!==Es[e]&&(void 0===t?Es[e]:(Es[e]=t,"s"===e&&(Es.ss=t-1),!0))}function On(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),i=wn(this,!e,t);return e&&(i=t.pastFuture(+this,i)),t.postformat(i)}function Mn(e){return(e>0)-(e<0)||+e}function En(){if(!this.isValid())return this.localeData().invalidDate();var e,t,i,n=Ss(this._milliseconds)/1e3,o=Ss(this._days),s=Ss(this._months);e=b(n/60),t=b(e/60),n%=60,e%=60,i=b(s/12),s%=12;var r=i,a=s,d=o,h=t,l=e,u=n?n.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var f=c<0?"-":"",p=Mn(this._months)!==Mn(c)?"-":"",v=Mn(this._days)!==Mn(c)?"-":"",g=Mn(this._milliseconds)!==Mn(c)?"-":"";return f+"P"+(r?p+r+"Y":"")+(a?p+a+"M":"")+(d?v+d+"D":"")+(h||l||u?"T":"")+(h?g+h+"H":"")+(l?g+l+"M":"")+(u?g+u+"S":"")}var Sn,Dn;Dn=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),i=t.length>>>0,n=0;n68?1900:2e3)};var mo,bo=ie("FullYear",!0);mo=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;tthis?this:e:v()}),Xo=function(){return Date.now?Date.now():+new Date},Ko=["year","quarter","month","week","day","hour","minute","second","millisecond"];Bt("Z",":"),Bt("ZZ",""),q("Z",no),q("ZZ",no),Z(["Z","ZZ"],function(e,t,i){i._useUTC=!0,i._tzm=zt(no,e)});var Zo=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var $o=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Qo=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Zt.fn=It.prototype,Zt.invalid=Pt;var Jo=ei(1,"add"),es=ei(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ts=x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Bi("gggg","weekYear"),Bi("ggggg","weekYear"),Bi("GGGG","isoWeekYear"),Bi("GGGGG","isoWeekYear"),B("weekYear","gg"),B("isoWeekYear","GG"),A("weekYear",1),A("isoWeekYear",1),q("G",to),q("g",to),q("GG",Xn,Vn),q("gg",Xn,Vn),q("GGGG",Qn,qn),q("gggg",Qn,qn),q("GGGGG",Jn,Gn),q("ggggg",Jn,Gn),$(["gggg","ggggg","GGGG","GGGGG"],function(e,t,i,n){t[n.substr(0,2)]=_(e)}),$(["gg","GG"],function(e,i,n,o){i[o]=t.parseTwoDigitYear(e)}),H("Q",0,"Qo","quarter"),B("quarter","Q"),A("quarter",7),q("Q",Yn),Z("Q",function(e,t){t[lo]=3*(_(e)-1)}),H("D",["DD",2],"Do","date"),B("date","D"),A("date",9),q("D",Xn),q("DD",Xn,Vn),q("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),Z(["D","DD"],uo),Z("Do",function(e,t){t[uo]=_(e.match(Xn)[0],10)});var is=ie("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),B("dayOfYear","DDD"),A("dayOfYear",4),q("DDD",$n),q("DDDD",Un),Z(["DDD","DDDD"],function(e,t,i){i._dayOfYear=_(e)}),H("m",["mm",2],0,"minute"),B("minute","m"),A("minute",14),q("m",Xn),q("mm",Xn,Vn),Z(["m","mm"],fo);var ns=ie("Minutes",!1);H("s",["ss",2],0,"second"),B("second","s"),A("second",15),q("s",Xn),q("ss",Xn,Vn),Z(["s","ss"],po);var os=ie("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),B("millisecond","ms"),A("millisecond",16),q("S",$n,Yn),q("SS",$n,Vn),q("SSS",$n,Un);var ss;for(ss="SSSS";ss.length<=9;ss+="S")q(ss,eo);for(ss="S";ss.length<=9;ss+="S")Z(ss,Vi);var rs=ie("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var as=y.prototype;as.add=Jo,as.calendar=ni,as.clone=oi,as.diff=ui,as.endOf=Oi,as.format=gi,as.from=yi,as.fromNow=mi,as.to=bi,as.toNow=_i,as.get=se,as.invalidAt=Fi,as.isAfter=si,as.isBefore=ri,as.isBetween=ai,as.isSame=di,as.isSameOrAfter=hi,as.isSameOrBefore=li,as.isValid=Pi,as.lang=ts,as.locale=wi,as.localeData=ki,as.max=Go,as.min=qo,as.parsingFlags=Ii,as.set=re,as.startOf=xi,as.subtract=es,as.toArray=Di,as.toObject=Ci,as.toDate=Si,as.toISOString=pi,as.inspect=vi,as.toJSON=Ti,as.toString=fi,as.unix=Ei,as.valueOf=Mi,as.creationData=Ni,as.year=bo,as.isLeapYear=te,as.weekYear=zi,as.isoWeekYear=Ri,as.quarter=as.quarters=Wi,as.month=pe,as.daysInMonth=ve,as.week=as.weeks=De,as.isoWeek=as.isoWeeks=Ce,as.weeksInYear=ji,as.isoWeeksInYear=Ai,as.date=is,as.day=as.days=Re,as.weekday=Ae,as.isoWeekday=je,as.dayOfYear=Yi,as.hour=as.hours=No,as.minute=as.minutes=ns,as.second=as.seconds=os,as.millisecond=as.milliseconds=rs,as.utcOffset=jt,as.utc=Ht,as.local=Wt,as.parseZone=Yt,as.hasAlignedHourOffset=Vt,as.isDST=Ut,as.isLocal=Gt,as.isUtcOffset=Xt,as.isUtc=Kt,as.isUTC=Kt,as.zoneAbbr=Ui,as.zoneName=qi,as.dates=x("dates accessor is deprecated. Use date instead.",is),as.months=x("months accessor is deprecated. Use month instead",pe),as.years=x("years accessor is deprecated. Use year instead",bo),as.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Lt),as.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",qt);var ds=D.prototype;ds.calendar=C,ds.longDateFormat=T,ds.invalidDate=P,ds.ordinal=I,ds.preparse=Ki,ds.postformat=Ki,ds.relativeTime=F,ds.pastFuture=N,ds.set=E,ds.months=he,ds.monthsShort=le,ds.monthsParse=ce,ds.monthsRegex=ye,ds.monthsShortRegex=ge,ds.week=Me,ds.firstDayOfYear=Se,ds.firstDayOfWeek=Ee,ds.weekdays=Ie,ds.weekdaysMin=Ne,ds.weekdaysShort=Fe,ds.weekdaysParse=ze,ds.weekdaysRegex=Le,ds.weekdaysShortRegex=He,ds.weekdaysMinRegex=We,ds.isPM=Xe,ds.meridiem=Ke,Je("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===_(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),t.lang=x("moment.lang is deprecated. Use moment.locale instead.",Je),t.langData=x("moment.langData is deprecated. Use moment.localeData instead.",it);var hs=Math.abs,ls=vn("ms"),us=vn("s"),cs=vn("m"),fs=vn("h"),ps=vn("d"),vs=vn("w"),gs=vn("M"),ys=vn("y"),ms=mn("milliseconds"),bs=mn("seconds"),_s=mn("minutes"),ws=mn("hours"),ks=mn("days"),xs=mn("months"),Os=mn("years"),Ms=Math.round,Es={ss:44,s:45,m:45,h:22,d:26,M:11},Ss=Math.abs,Ds=It.prototype;return Ds.isValid=Tt,Ds.abs=sn,Ds.add=an,Ds.subtract=dn,Ds.as=fn,Ds.asMilliseconds=ls,Ds.asSeconds=us,Ds.asMinutes=cs,Ds.asHours=fs,Ds.asDays=ps,Ds.asWeeks=vs,Ds.asMonths=gs,Ds.asYears=ys,Ds.valueOf=pn,Ds._bubble=ln,Ds.clone=gn,Ds.get=yn,Ds.milliseconds=ms,Ds.seconds=bs,Ds.minutes=_s,Ds.hours=ws,Ds.days=ks,Ds.weeks=bn,Ds.months=xs,Ds.years=Os,Ds.humanize=On,Ds.toISOString=En,Ds.toString=En,Ds.toJSON=En,Ds.locale=wi,Ds.localeData=ki,Ds.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",En),Ds.lang=ts,H("X",0,0,"unix"),H("x",0,0,"valueOf"),q("x",to),q("X",oo),Z("X",function(e,t,i){i._d=new Date(1e3*parseFloat(e,10))}),Z("x",function(e,t,i){i._d=new Date(_(e))}),t.version="2.19.1",function(e){Sn=e}(Mt),t.fn=as,t.min=St,t.max=Dt,t.now=Xo,t.utc=u,t.unix=Gi,t.months=Ji,t.isDate=a,t.locale=Je,t.invalid=v,t.duration=Zt,t.isMoment=m,t.weekdays=tn,t.parseZone=Xi,t.localeData=it,t.isDuration=Ft,t.monthsShort=en,t.weekdaysMin=on,t.defineLocale=et,t.updateLocale=tt,t.locales=nt,t.weekdaysShort=nn,t.normalizeUnits=z,t.relativeTimeRounding=kn,t.relativeTimeThreshold=xn,t.calendarFormat=ii,t.prototype=as,t})}).call(t,i(115)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){function i(e){throw new Error("Cannot find module '"+e+"'.")}i.keys=function(){return[]},i.resolve=i,e.exports=i,i.id=116},function(e,t,i){(function(t){function i(e,t,i){var n=t&&i||0,o=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,function(e){o<16&&(t[n+o++]=u[e])});o<16;)t[n+o++]=0;return t}function n(e,t){var i=t||0,n=l;return n[e[i++]]+n[e[i++]]+n[e[i++]]+n[e[i++]]+"-"+n[e[i++]]+n[e[i++]]+"-"+n[e[i++]]+n[e[i++]]+"-"+n[e[i++]]+n[e[i++]]+"-"+n[e[i++]]+n[e[i++]]+n[e[i++]]+n[e[i++]]+n[e[i++]]+n[e[i++]]}function o(e,t,i){var o=t&&i||0,s=t||[];e=e||{};var r=void 0!==e.clockseq?e.clockseq:v,a=void 0!==e.msecs?e.msecs:(new Date).getTime(),d=void 0!==e.nsecs?e.nsecs:y+1,h=a-g+(d-y)/1e4;if(h<0&&void 0===e.clockseq&&(r=r+1&16383),(h<0||a>g)&&void 0===e.nsecs&&(d=0),d>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");g=a,y=d,v=r,a+=122192928e5;var l=(1e4*(268435455&a)+d)%4294967296;s[o++]=l>>>24&255,s[o++]=l>>>16&255,s[o++]=l>>>8&255,s[o++]=255&l;var u=a/4294967296*1e4&268435455;s[o++]=u>>>8&255,s[o++]=255&u,s[o++]=u>>>24&15|16,s[o++]=u>>>16&255,s[o++]=r>>>8|128,s[o++]=255&r;for(var c=e.node||p,f=0;f<6;f++)s[o+f]=c[f];return t||n(s)}function s(e,t,i){var o=t&&i||0;"string"==typeof e&&(t="binary"==e?new Array(16):null,e=null),e=e||{};var s=e.random||(e.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;a++)t[o+a]=s[a];return t||n(s)}var r,a="undefined"!=typeof window?window:void 0!==t?t:null;if(a&&a.crypto&&crypto.getRandomValues){var d=new Uint8Array(16);r=function(){return crypto.getRandomValues(d),d}}if(!r){var h=new Array(16);r=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),h[t]=e>>>((3&t)<<3)&255;return h}}for(var l=[],u={},c=0;c<256;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var f=r(),p=[1|f[0],f[1],f[2],f[3],f[4],f[5]],v=16383&(f[6]<<8|f[7]),g=0,y=0,m=s;m.v1=o,m.v4=s,m.parse=i,m.unparse=n,e.exports=m}).call(t,i(118))},function(e,t){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(i=window)}e.exports=i},function(e,t,i){t.prepareElements=function(e){for(var t in e)e.hasOwnProperty(t)&&(e[t].redundant=e[t].used,e[t].used=[])},t.cleanupElements=function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t].redundant){for(var i=0;i0?(n=t[e].redundant[0],t[e].redundant.shift()):(n=document.createElementNS("http://www.w3.org/2000/svg",e),i.appendChild(n)):(n=document.createElementNS("http://www.w3.org/2000/svg",e),t[e]={used:[],redundant:[]},i.appendChild(n)),t[e].used.push(n),n},t.getDOMElement=function(e,t,i,n){var o;return t.hasOwnProperty(e)?t[e].redundant.length>0?(o=t[e].redundant[0],t[e].redundant.shift()):(o=document.createElement(e),void 0!==n?i.insertBefore(o,n):i.appendChild(o)):(o=document.createElement(e),t[e]={used:[],redundant:[]},void 0!==n?i.insertBefore(o,n):i.appendChild(o)),t[e].used.push(o),o},t.drawPoint=function(e,i,n,o,s,r){var a;if("circle"==n.style?(a=t.getSVGElement("circle",o,s),a.setAttributeNS(null,"cx",e),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*n.size)):(a=t.getSVGElement("rect",o,s),a.setAttributeNS(null,"x",e-.5*n.size),a.setAttributeNS(null,"y",i-.5*n.size),a.setAttributeNS(null,"width",n.size),a.setAttributeNS(null,"height",n.size)),void 0!==n.styles&&a.setAttributeNS(null,"style",n.styles),a.setAttributeNS(null,"class",n.className+" vis-point"),r){var d=t.getSVGElement("text",o,s);r.xOffset&&(e+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(d.textContent=r.content),r.className&&d.setAttributeNS(null,"class",r.className+" vis-label"),d.setAttributeNS(null,"x",e),d.setAttributeNS(null,"y",i)}return a},t.drawBar=function(e,i,n,o,s,r,a,d){if(0!=o){o<0&&(o*=-1,i-=o);var h=t.getSVGElement("rect",r,a);h.setAttributeNS(null,"x",e-.5*n),h.setAttributeNS(null,"y",i),h.setAttributeNS(null,"width",n),h.setAttributeNS(null,"height",o),h.setAttributeNS(null,"class",s),d&&h.setAttributeNS(null,"style",d)}}},function(e,t,i){var n=i(6),o=n.JSON||(n.JSON={stringify:JSON.stringify});e.exports=function(e){return o.stringify.apply(o,arguments)}},function(e,t,i){function n(e,t,i){var o=this;if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:h,clickToUse:!1},s.extend(this.options,this.defaultOptions),this.body={container:e,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}},this.bindEventListeners(),this.images=new l(function(){return o.body.emitter.emit("_requestRedraw")}),this.groups=new u,this.canvas=new y(this.body),this.selectionHandler=new _(this.body,this.canvas),this.interactionHandler=new b(this.body,this.canvas,this.selectionHandler),this.view=new m(this.body,this.canvas),this.renderer=new g(this.body,this.canvas),this.physics=new p(this.body),this.layoutEngine=new w(this.body),this.clustering=new v(this.body),this.manipulation=new k(this.body,this.canvas,this.selectionHandler),this.nodesHandler=new c(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new f(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new T(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(t)}i(122);var o=i(73),s=i(5),r=i(74),a=i(75),d=i(123),h=i(126),l=i(76).default,u=i(131).default,c=i(132).default,f=i(163).default,p=i(169).default,v=i(176).default,g=i(178).default,y=i(179).default,m=i(180).default,b=i(181).default,_=i(184).default,w=i(185).default,k=i(187).default,x=i(188).default,O=i(54).default,M=i(54),E=M.printStyle,S=i(82),D=S.allOptions,C=S.configureOptions,T=i(190).default;o(n.prototype),n.prototype.setOptions=function(e){var t=this;if(void 0!==e){!0===O.validate(e,D)&&console.log("%cErrors have been found in the supplied options object.",E);var i=["locale","locales","clickToUse"];if(s.selectiveDeepExtend(i,this.options,e),e=this.layoutEngine.setOptions(e.layout,e),this.canvas.setOptions(e),this.groups.setOptions(e.groups),this.nodesHandler.setOptions(e.nodes),this.edgesHandler.setOptions(e.edges),this.physics.setOptions(e.physics),this.manipulation.setOptions(e.manipulation,e,this.options),this.interactionHandler.setOptions(e.interaction),this.renderer.setOptions(e.interaction),this.selectionHandler.setOptions(e.interaction),void 0!==e.groups&&this.body.emitter.emit("refreshNodes"),"configure"in e&&(this.configurator||(this.configurator=new x(this,this.body.container,C,this.canvas.pixelRatio)),this.configurator.setOptions(e.configure)),this.configurator&&!0===this.configurator.options.enabled){var n={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};s.deepExtend(n.nodes,this.nodesHandler.options),s.deepExtend(n.edges,this.edgesHandler.options),s.deepExtend(n.layout,this.layoutEngine.options),s.deepExtend(n.interaction,this.selectionHandler.options),s.deepExtend(n.interaction,this.renderer.options),s.deepExtend(n.interaction,this.interactionHandler.options),s.deepExtend(n.manipulation,this.manipulation.options),s.deepExtend(n.physics,this.physics.options),s.deepExtend(n.global,this.canvas.options),s.deepExtend(n.global,this.options),this.configurator.setModuleOptions(n)}void 0!==e.clickToUse?!0===e.clickToUse?void 0===this.activator&&(this.activator=new d(this.canvas.frame),this.activator.on("change",function(){t.body.emitter.emit("activate")})):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},n.prototype._updateVisibleIndices=function(){var e=this.body.nodes,t=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in e)e.hasOwnProperty(i)&&(this.clustering._isClusteredNode(i)||!1!==e[i].options.hidden||this.body.nodeIndices.push(e[i].id));for(var n in t)if(t.hasOwnProperty(n)){var o=t[n],s=e[o.fromId],r=e[o.toId],a=void 0!==s&&void 0!==r,d=!this.clustering._isClusteredEdge(n)&&!1===o.options.hidden&&a&&!1===s.options.hidden&&!1===r.options.hidden;d&&this.body.edgeIndices.push(o.id)}},n.prototype.bindEventListeners=function(){var e=this;this.body.emitter.on("_dataChanged",function(){e.edgesHandler._updateState(),e.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){e.clustering._updateState(),e._updateVisibleIndices(),e._updateValueRange(e.body.nodes),e._updateValueRange(e.body.edges),e.body.emitter.emit("startSimulation"),e.body.emitter.emit("_requestRedraw")})},n.prototype.setData=function(e){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),e&&e.dot&&(e.nodes||e.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(e&&e.options),e&&e.dot){console.log("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var t=r.DOTToGraph(e.dot);return void this.setData(t)}if(e&&e.gephi){console.log("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=a.parseGephi(e.gephi);return void this.setData(i)}this.nodesHandler.setData(e&&e.nodes,!0),this.edgesHandler.setData(e&&e.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},n.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&delete this.body.nodes[e];for(var t in this.body.edges)this.body.edges.hasOwnProperty(t)&&delete this.body.edges[t];s.recursiveDOMDelete(this.body.container)},n.prototype._updateValueRange=function(e){var t,i=void 0,n=void 0,o=0;for(t in e)if(e.hasOwnProperty(t)){var s=e[t].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),n=void 0===n?s:Math.max(s,n),o+=s)}if(void 0!==i&&void 0!==n)for(t in e)e.hasOwnProperty(t)&&e[t].setValueRange(i,n,o)},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},n.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},n.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},n.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},n.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},n.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},n.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},n.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},n.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},n.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},n.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},n.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},n.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},n.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},n.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},n.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},n.prototype.editNodeMode=function(){return console.log("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},n.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},n.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},n.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},n.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},n.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},n.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},n.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},n.prototype.getConnectedNodes=function(e){return void 0!==this.body.nodes[e]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},n.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},n.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},n.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},n.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},n.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},n.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},n.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)},n.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)},n.prototype.getNodeAt=function(){var e=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==e&&void 0!==e.id?e.id:e},n.prototype.getEdgeAt=function(){var e=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==e&&void 0!==e.id?e.id:e},n.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},n.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},n.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.redraw()},n.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},n.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},n.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},n.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},n.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},n.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},n.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},n.prototype.getOptionsFromConfigurator=function(){var e={};return this.configurator&&(e=this.configurator.getOptions.apply(this.configurator)),e},e.exports=n},function(e,t,i){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(e,t,i){this.beginPath(),this.arc(e,t,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(e,t,i){this.beginPath(),this.rect(e-i,t-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(e,t,i){this.beginPath(),i*=1.15,t+=.275*i;var n=2*i,o=n/2,s=Math.sqrt(3)/6*n,r=Math.sqrt(n*n-o*o);this.moveTo(e,t-(r-s)),this.lineTo(e+o,t+s),this.lineTo(e-o,t+s),this.lineTo(e,t-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(e,t,i){this.beginPath(),i*=1.15,t-=.275*i;var n=2*i,o=n/2,s=Math.sqrt(3)/6*n,r=Math.sqrt(n*n-o*o);this.moveTo(e,t+(r-s)),this.lineTo(e+o,t-s),this.lineTo(e-o,t-s),this.lineTo(e,t+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(e,t,i){this.beginPath(),i*=.82,t+=.1*i;for(var n=0;n<10;n++){var o=n%2==0?1.3*i:.5*i;this.lineTo(e+o*Math.sin(2*n*Math.PI/10),t-o*Math.cos(2*n*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(e,t,i){this.beginPath(),this.lineTo(e,t+i),this.lineTo(e+i,t),this.lineTo(e,t-i),this.lineTo(e-i,t),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(e,t,i,n,o){var s=Math.PI/180;i-2*o<0&&(o=i/2),n-2*o<0&&(o=n/2),this.beginPath(),this.moveTo(e+o,t),this.lineTo(e+i-o,t),this.arc(e+i-o,t+o,o,270*s,360*s,!1),this.lineTo(e+i,t+n-o),this.arc(e+i-o,t+n-o,o,0,90*s,!1),this.lineTo(e+o,t+n),this.arc(e+o,t+n-o,o,90*s,180*s,!1),this.lineTo(e,t+o),this.arc(e+o,t+o,o,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse_vis=function(e,t,i,n){var o=i/2*.5522848,s=n/2*.5522848,r=e+i,a=t+n,d=e+i/2,h=t+n/2;this.beginPath(),this.moveTo(e,h),this.bezierCurveTo(e,h-s,d-o,t,d,t),this.bezierCurveTo(d+o,t,r,h-s,r,h),this.bezierCurveTo(r,h+s,d+o,a,d,a),this.bezierCurveTo(d-o,a,e,h+s,e,h),this.closePath()},CanvasRenderingContext2D.prototype.database=function(e,t,i,n){var o=i,s=n*(1/3),r=o/2*.5522848,a=s/2*.5522848,d=e+o,h=t+s,l=e+o/2,u=t+s/2,c=t+(n-s/2),f=t+n;this.beginPath(),this.moveTo(d,u),this.bezierCurveTo(d,u+a,l+r,h,l,h),this.bezierCurveTo(l-r,h,e,u+a,e,u),this.bezierCurveTo(e,u-a,l-r,t,l,t),this.bezierCurveTo(l+r,t,d,u-a,d,u),this.lineTo(d,c),this.bezierCurveTo(d,c+a,l+r,f,l,f),this.bezierCurveTo(l-r,f,e,c+a,e,c),this.lineTo(e,u)},CanvasRenderingContext2D.prototype.dashedLine=function(e,t,i,n,o){this.beginPath(),this.moveTo(e,t);for(var s=o.length,r=i-e,a=n-t,d=a/r,h=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,f=o[0];h>=.1;)f=o[l++%s],f>h&&(f=h),c=Math.sqrt(f*f/(1+d*d)),c=r<0?-c:c,e+=c,t+=d*c,!0===u?this.lineTo(e,t):this.moveTo(e,t),h-=f,u=!u},CanvasRenderingContext2D.prototype.hexagon=function(e,t,i){this.beginPath();var n=2*Math.PI/6;this.moveTo(e+i,t);for(var o=1;o<6;o++)this.lineTo(e+i*Math.cos(n*o),t+i*Math.sin(n*o));this.closePath()})},function(e,t,i){function n(e){this.active=!1,this.dom={container:e},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var t=this;["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach(function(e){t.hammer.on(e,function(e){e.stopPropagation()})}),document&&document.body&&(this.onClick=function(i){o(i.target,e)||t.deactivate()},document.body.addEventListener("click",this.onClick)),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=s(),this.escListener=this.deactivate.bind(this)}function o(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}var s=i(52),r=i(73),a=i(22),d=i(5);r(n.prototype),n.current=null,n.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.onClick&&document.body.removeEventListener("click",this.onClick),this.hammer.destroy(),this.hammer=null},n.prototype.activate=function(){n.current&&n.current.deactivate(),n.current=this,this.active=!0,this.dom.overlay.style.display="none",d.addClassName(this.dom.container,"vis-active"),this.emit("change"),this.emit("activate"),this.keycharm.bind("esc",this.escListener)},n.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display="",d.removeClassName(this.dom.container,"vis-active"),this.keycharm.unbind("esc",this.escListener),this.emit("change"),this.emit("deactivate")},n.prototype._onTapOverlay=function(e){this.activate(),e.stopPropagation()},e.exports=n},function(e,t,i){var n,o,s;!function(i){o=[],n=i,void 0!==(s="function"==typeof n?n.apply(t,o):n)&&(e.exports=s)}(function(){var e=null;return function t(i,n){function o(e){return e.match(/[^ ]+/g)}function s(t){if("hammer.input"!==t.type){if(t.srcEvent._handled||(t.srcEvent._handled={}),t.srcEvent._handled[t.type])return;t.srcEvent._handled[t.type]=!0}var i=!1;t.stopPropagation=function(){i=!0};var n=t.srcEvent.stopPropagation.bind(t.srcEvent);"function"==typeof n&&(t.srcEvent.stopPropagation=function(){n(),t.stopPropagation()}),t.firstTarget=e;for(var o=e;o&&!i;){var s=o.hammer;if(s)for(var r,a=0;a0?h._handlers[e]=n:(i.off(e,s),delete h._handlers[e]))}),h},h.emit=function(t,n){e=n.target,i.emit(t,n)},h.destroy=function(){var e=i.element.hammer,t=e.indexOf(h);-1!==t&&e.splice(t,1),e.length||delete i.element.hammer,h._handlers={},i.destroy()},h}})},function(e,t,i){var n;/*! Hammer.JS - v2.0.7 - 2016-04-22 +"use strict";!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.vis=t():e.vis=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var o=i[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var i={};return t.m=e,t.c=i,t.d=function(e,i,n){t.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=83)}([function(e,t,i){t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,i){t.__esModule=!0;var n=i(127),o=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(){function e(e,t){for(var i=0;i2&&void 0!==arguments[2]&&arguments[2];for(var s in e)void 0!==i[s]&&(null===i[s]||"object"!==(0,c.default)(i[s])?o(e,i,s,n):"object"===(0,c.default)(e[s])&&t.fillIfDefined(e[s],i[s],n))},t.extend=function(e,t){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(n))throw new TypeError("Arrays are not supported by deepExtend");for(var r=0;r3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(n))throw new TypeError("Arrays are not supported by deepExtend");for(var r in n)if(n.hasOwnProperty(r)&&-1===e.indexOf(r))if(n[r]&&n[r].constructor===Object)void 0===i[r]&&(i[r]={}),i[r].constructor===Object?t.deepExtend(i[r],n[r]):o(i,n,r,s);else if(Array.isArray(n[r])){i[r]=[];for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var r in i)if(i.hasOwnProperty(r)||!0===n)if(i[r]&&i[r].constructor===Object)void 0===e[r]&&(e[r]={}),e[r].constructor===Object?t.deepExtend(e[r],i[r],n):o(e,i,r,s);else if(Array.isArray(i[r])){e[r]=[];for(var a=0;a=0&&(t="DOMMouseScroll"),e.addEventListener(t,i,n)):e.attachEvent("on"+t,i)},t.removeEventListener=function(e,t,i,n){e.removeEventListener?(void 0===n&&(n=!1),"mousewheel"===t&&navigator.userAgent.indexOf("Firefox")>=0&&(t="DOMMouseScroll"),e.removeEventListener(t,i,n)):e.detachEvent("on"+t,i)},t.preventDefault=function(e){e||(e=window.event),e.preventDefault?e.preventDefault():e.returnValue=!1},t.getTarget=function(e){e||(e=window.event);var t;return e.target?t=e.target:e.srcElement&&(t=e.srcElement),void 0!=t.nodeType&&3==t.nodeType&&(t=t.parentNode),t},t.hasParent=function(e,t){for(var i=e;i;){if(i===t)return!0;i=i.parentNode}return!1},t.option={},t.option.asBoolean=function(e,t){return"function"==typeof e&&(e=e()),null!=e?0!=e:t||null},t.option.asNumber=function(e,t){return"function"==typeof e&&(e=e()),null!=e?Number(e)||t||null:t||null},t.option.asString=function(e,t){return"function"==typeof e&&(e=e()),null!=e?String(e):t||null},t.option.asSize=function(e,i){return"function"==typeof e&&(e=e()),t.isString(e)?e:t.isNumber(e)?e+"px":i||null},t.option.asElement=function(e,t){return"function"==typeof e&&(e=e()),e||t||null},t.hexToRGB=function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(t,function(e,t,i,n){return t+t+i+i+n+n});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},t.overrideOpacity=function(e,i){var n;return-1!=e.indexOf("rgba")?e:-1!=e.indexOf("rgb")?(n=e.substr(e.indexOf("(")+1).replace(")","").split(","),"rgba("+n[0]+","+n[1]+","+n[2]+","+i+")"):(n=t.hexToRGB(e),null==n?e:"rgba("+n.r+","+n.g+","+n.b+","+i+")")},t.RGBToHex=function(e,t,i){return"#"+((1<<24)+(e<<16)+(t<<8)+i).toString(16).slice(1)},t.parseColor=function(e){var i;if(!0===t.isString(e)){if(!0===t.isValidRGB(e)){var n=e.substr(4).substr(0,e.length-5).split(",").map(function(e){return parseInt(e)});e=t.RGBToHex(n[0],n[1],n[2])}if(!0===t.isValidHex(e)){var o=t.hexToHSV(e),s={h:o.h,s:.8*o.s,v:Math.min(1,1.02*o.v)},r={h:o.h,s:Math.min(1,1.25*o.s),v:.8*o.v},a=t.HSVToHex(r.h,r.s,r.v),d=t.HSVToHex(s.h,s.s,s.v);i={background:e,border:a,highlight:{background:d,border:a},hover:{background:d,border:a}}}else i={background:e,border:e,highlight:{background:e,border:e},hover:{background:e,border:e}}}else i={},i.background=e.background||void 0,i.border=e.border||void 0,t.isString(e.highlight)?i.highlight={border:e.highlight,background:e.highlight}:(i.highlight={},i.highlight.background=e.highlight&&e.highlight.background||void 0,i.highlight.border=e.highlight&&e.highlight.border||void 0),t.isString(e.hover)?i.hover={border:e.hover,background:e.hover}:(i.hover={},i.hover.background=e.hover&&e.hover.background||void 0,i.hover.border=e.hover&&e.hover.border||void 0);return i},t.RGBToHSV=function(e,t,i){e/=255,t/=255,i/=255;var n=Math.min(e,Math.min(t,i)),o=Math.max(e,Math.max(t,i));if(n==o)return{h:0,s:0,v:n};var s=e==n?t-i:i==n?e-t:i-e;return{h:60*((e==n?3:i==n?1:5)-s/(o-n))/360,s:(o-n)/o,v:o}};var g={split:function(e){var t={};return e.split(";").forEach(function(e){if(""!=e.trim()){var i=e.split(":"),n=i[0].trim(),o=i[1].trim();t[n]=o}}),t},join:function(e){return(0,l.default)(e).map(function(t){return t+": "+e[t]}).join("; ")}};t.addCssText=function(e,i){var n=g.split(e.style.cssText),o=g.split(i),s=t.extend(n,o);e.style.cssText=g.join(s)},t.removeCssText=function(e,t){var i=g.split(e.style.cssText),n=g.split(t);for(var o in n)n.hasOwnProperty(o)&&delete i[o];e.style.cssText=g.join(i)},t.HSVToRGB=function(e,t,i){var n,o,s,r=Math.floor(6*e),a=6*e-r,d=i*(1-t),h=i*(1-a*t),l=i*(1-(1-a)*t);switch(r%6){case 0:n=i,o=l,s=d;break;case 1:n=h,o=i,s=d;break;case 2:n=d,o=i,s=l;break;case 3:n=d,o=h,s=i;break;case 4:n=l,o=d,s=i;break;case 5:n=i,o=d,s=h}return{r:Math.floor(255*n),g:Math.floor(255*o),b:Math.floor(255*s)}},t.HSVToHex=function(e,i,n){var o=t.HSVToRGB(e,i,n);return t.RGBToHex(o.r,o.g,o.b)},t.hexToHSV=function(e){var i=t.hexToRGB(e);return t.RGBToHSV(i.r,i.g,i.b)},t.isValidHex=function(e){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e)},t.isValidRGB=function(e){return e=e.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(e)},t.isValidRGBA=function(e){return e=e.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(e)},t.selectiveBridgeObject=function(e,i){if(null!==i&&"object"===(void 0===i?"undefined":(0,c.default)(i))){for(var n=(0,d.default)(i),o=0;o0&&t(n,e[o-1])<0;o--)e[o]=e[o-1];e[o]=n}return e},t.mergeOptions=function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=function(e){return null!==e&&void 0!==e},s=function(e){return null!==e&&"object"===(void 0===e?"undefined":(0,c.default)(e))};if(!s(e))throw new Error("Parameter mergeTarget must be an object");if(!s(t))throw new Error("Parameter options must be an object");if(!o(i))throw new Error("Parameter option must have a value");if(!s(n))throw new Error("Parameter globalOptions must be an object");var r=t[i],a=s(n)&&!function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}(n),h=a?n[i]:void 0,l=h?h.enabled:void 0;if(void 0!==r){if("boolean"==typeof r)return s(e[i])||(e[i]={}),void(e[i].enabled=r);if(null===r&&!s(e[i])){if(!o(h))return;e[i]=(0,d.default)(h)}if(s(r)){var u=!0;void 0!==r.enabled?u=r.enabled:void 0!==l&&(u=h.enabled),function(e,t,i){s(e[i])||(e[i]={});var n=t[i],o=e[i];for(var r in n)n.hasOwnProperty(r)&&(o[r]=n[r])}(e,t,i),e[i].enabled=u}}},t.binarySearchCustom=function(e,t,i,n){for(var o=0,s=0,r=e.length-1;s<=r&&o<1e4;){var a=Math.floor((s+r)/2),d=e[a],h=void 0===n?d[i]:d[i][n],l=t(h);if(0==l)return a;-1==l?s=a+1:r=a-1,o++}return-1},t.binarySearchValue=function(e,t,i,n,o){var s,r,a,d,h=0,l=0,u=e.length-1;for(o=void 0!=o?o:function(e,t){return e==t?0:e0)return"before"==n?Math.max(0,d-1):d;if(o(r,t)<0&&o(a,t)>0)return"before"==n?d:Math.min(e.length-1,d+1);o(r,t)<0?l=d+1:u=d-1,h++}return-1},t.easingFunctions={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return--e*e*e+1},easeInOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1- --e*e*e*e},easeInOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1+--e*e*e*e*e},easeInOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}},t.getScrollBarWidth=function(){var e=document.createElement("p");e.style.width="100%",e.style.height="200px";var t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);var i=e.offsetWidth;t.style.overflow="scroll";var n=e.offsetWidth;return i==n&&(n=t.clientWidth),document.body.removeChild(t),i-n},t.topMost=function(e,t){var i=void 0;Array.isArray(t)||(t=[t]);var n=!0,o=!1,s=void 0;try{for(var a,d=(0,r.default)(e);!(n=(a=d.next()).done);n=!0){var h=a.value;if(h){i=h[t[0]];for(var l=1;l0&&(this.enableBorderDashes(e,t),e.stroke(),this.disableBorderDashes(e,t)),e.restore()}},{key:"performFill",value:function(e,t){this.enableShadow(e,t),e.fill(),this.disableShadow(e,t),this.performStroke(e,t)}},{key:"_addBoundingBoxMargin",value:function(e){this.boundingBox.left-=e,this.boundingBox.top-=e,this.boundingBox.bottom+=e,this.boundingBox.right+=e}},{key:"_updateBoundingBox",value:function(e,t,i,n,o){void 0!==i&&this.resize(i,n,o),this.left=e-this.width/2,this.top=t-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"updateBoundingBox",value:function(e,t,i,n,o){this._updateBoundingBox(e,t,i,n,o)}},{key:"getDimensionsFromLabel",value:function(e,t,i){this.textSize=this.labelModule.getTextSize(e,t,i);var n=this.textSize.width,o=this.textSize.height;return 0===n&&(n=14,o=14),{width:n,height:o}}}]),e}();t.default=l},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{size:this.options.size};if(this.needsRefresh(t,i)){this.labelModule.getTextSize(e,t,i);var o=2*n.size;this.width=o,this.height=o,this.radius=.5*this.width}}},{key:"_drawShape",value:function(e,t,i,n,o,s,r,a){if(this.resize(e,s,r,a),this.left=n-this.width/2,this.top=o-this.height/2,this.initContextForDraw(e,a),e[t](n,o,a.size),this.performFill(e,a),void 0!==this.options.label){this.labelModule.calculateLabelSize(e,s,r,n,o,"hanging");var d=o+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(e,n,d,s,r,"hanging")}this.updateBoundingBox(n,o)}},{key:"updateBoundingBox",value:function(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}]),t}(v.default);t.default=g},function(e,t,i){var n=i(59),o=i(39);e.exports=function(e){return n(o(e))}},function(e,t,i){var n=i(13),o=i(29);e.exports=i(10)?function(e,t,i){return n.f(e,t,o(1,i))}:function(e,t,i){return e[t]=i,e}},function(e,t,i){var n=i(20);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,i){e.exports={default:i(120),__esModule:!0}},function(e,t,i){function n(){var e=function(){};return{on:e,off:e,destroy:e,emit:e,get:function(t){return{set:e}}}}if("undefined"!=typeof window){var o=i(124),s=window.Hammer||i(125);e.exports=o(s,{preventDefault:"mouse"})}else e.exports=function(){return n()}},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=i(133),s=n(o),r=i(58),a=n(r);t.default=function(){function e(e,t){var i=[],n=!0,o=!1,s=void 0;try{for(var r,d=(0,a.default)(e);!(n=(r=d.next()).done)&&(i.push(r.value),!t||i.length!==t);n=!0);}catch(e){o=!0,s=e}finally{try{!n&&d.return&&d.return()}finally{if(o)throw s}}return i}return function(t,i){if(Array.isArray(t))return t;if((0,s.default)(Object(t)))return e(t,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(e,t){e.exports={}},function(e,t,i){var n=i(65),o=i(45);e.exports=Object.keys||function(e){return n(e,o)}},function(e,t,i){var n=i(39);e.exports=function(e){return Object(n(e))}},function(e,t){e.exports=!0},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){var i=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++i+n).toString(36))}},function(e,t,i){e.exports={default:i(98),__esModule:!0}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(e&&!Array.isArray(e)&&(t=e,e=null),this._options=t||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=(0,l.default)(this._options.type),n=0,o=i.length;no?1:nr)&&(s=d,r=h)}return s},o.prototype.min=function(e){var t,i,n=this._data,o=(0,l.default)(n),s=null,r=null;for(t=0,i=o.length;te.left&&this.shape.tope.top}},{key:"isBoundingBoxOverlappingWith",value:function(e){return this.shape.boundingBox.lefte.left&&this.shape.boundingBox.tope.top}}],[{key:"updateGroupOptions",value:function(e,t,i){if(void 0!==i){var n=e.group;if(void 0!==t&&void 0!==t.group&&n!==t.group)throw new Error("updateGroupOptions: group values in options don't match.");if("number"==typeof n||"string"==typeof n&&""!=n){var o=i.get(n);d.selectiveNotDeepExtend(["font"],e,o),e.color=d.parseColor(e.color)}}}},{key:"parseOptions",value:function(t,i){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments[4],r=["color","fixed","shadow"];if(d.selectiveNotDeepExtend(r,t,i,n),e.checkMass(i),d.mergeOptions(t,i,"shadow",o),void 0!==i.color&&null!==i.color){var a=d.parseColor(i.color);d.fillIfDefined(t.color,a)}else!0===n&&null===i.color&&(t.color=d.bridgeObject(o.color));void 0!==i.fixed&&null!==i.fixed&&("boolean"==typeof i.fixed?(t.fixed.x=i.fixed,t.fixed.y=i.fixed):(void 0!==i.fixed.x&&"boolean"==typeof i.fixed.x&&(t.fixed.x=i.fixed.x),void 0!==i.fixed.y&&"boolean"==typeof i.fixed.y&&(t.fixed.y=i.fixed.y))),!0===n&&null===i.font&&(t.font=d.bridgeObject(o.font)),e.updateGroupOptions(t,i,s),void 0!==i.scaling&&d.mergeOptions(t.scaling,i.scaling,"label",o.scaling)}},{key:"checkMass",value:function(e,t){if(void 0!==e.mass&&e.mass<=0){var i="";void 0!==t&&(i=" in node id: "+t),console.log("%cNegative or zero mass disallowed"+i+", setting mass to 1.",S),e.mass=1}}}]),e}();t.default=D},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(7),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(5),u=function(){function e(){(0,a.default)(this,e)}return(0,h.default)(e,null,[{key:"choosify",value:function(e,t){var i=["node","edge","label"],n=!0,o=l.topMost(t,"chosen");if("boolean"==typeof o)n=o;else if("object"===(void 0===o?"undefined":(0,s.default)(o))){if(-1===i.indexOf(e))throw new Error("choosify: subOption '"+e+"' should be one of '"+i.join("', '")+"'");var r=l.topMost(t,["chosen",e]);"boolean"!=typeof r&&"function"!=typeof r||(n=r)}return n}},{key:"pointInRect",value:function(e,t,i){if(e.width<=0||e.height<=0)return!1;if(void 0!==i){var n={x:t.x-i.x,y:t.y-i.y};if(0!==i.angle){var o=-i.angle;t={x:Math.cos(o)*n.x-Math.sin(o)*n.y,y:Math.sin(o)*n.x+Math.cos(o)*n.y}}else t=n}var s=e.x+e.width,r=e.y+e.width;return e.leftt.x&&e.topt.y}},{key:"isValidLabel",value:function(e){return"string"==typeof e&&""!==e}}]),e}();t.default=u},function(e,t,i){t.onTouch=function(e,t){t.inputHandler=function(e){e.isFirst&&t(e)},e.on("hammer.input",t.inputHandler)},t.onRelease=function(e,t){return t.inputHandler=function(e){e.isFinal&&t(e)},e.on("hammer.input",t.inputHandler)},t.offTouch=function(e,t){e.off("hammer.input",t.inputHandler)},t.offRelease=t.offTouch,t.disablePreventDefaultVertically=function(e){return e.getTouchAction=function(){return["pan-y"]},e}},function(e,t,i){i(85);for(var n=i(9),o=i(18),s=i(25),r=i(8)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),d=0;ddocument.F=Object<\/script>"),e.close(),d=e.F;n--;)delete d.prototype[s[n]];return d()};e.exports=Object.create||function(e,t){var i;return null!==e?(a.prototype=n(e),i=new a,a.prototype=null,i[r]=e):i=d(),void 0===t?i:o(i,t)}},function(e,t){var i=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:i)(e)}},function(e,t,i){var n=i(44)("keys"),o=i(30);e.exports=function(e){return n[e]||(n[e]=o(e))}},function(e,t,i){var n=i(6),o=i(9),s=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return s[e]||(s[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:i(28)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,i){var n=i(13).f,o=i(14),s=i(8)("toStringTag");e.exports=function(e,t,i){e&&!o(e=i?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e,t,i){var n=i(95)(!0);i(60)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,i=this._i;return i>=t.length?{value:void 0,done:!0}:(e=n(t,i),this._i+=e.length,{value:e,done:!1})})},function(e,t,i){t.f=i(8)},function(e,t,i){var n=i(9),o=i(6),s=i(28),r=i(48),a=i(13).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:r.f(e)})}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,i){function n(e,t){this._data=null,this._ids={},this.length=0,this._options=t||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(e)}var o=i(11),s=function(e){return e&&e.__esModule?e:{default:e}}(o),r=i(5),a=i(33);n.prototype.setData=function(e){var t,i,n,o,s;if(this._data){for(this._data.off&&this._data.off("*",this.listener),t=this._data.getIds({filter:this._options&&this._options.filter}),s=[],n=0,o=t.length;nthis.imageObj.height?i=this.imageObj.width/this.imageObj.height:n=this.imageObj.height/this.imageObj.width),e=2*this.options.size*i,t=2*this.options.size*n}else e=this.imageObj.width,t=this.imageObj.height;this.width=e,this.height=t,this.radius=.5*this.width}},{key:"_drawRawCircle",value:function(e,t,i,n){this.initContextForDraw(e,n),e.circle(t,i,n.size),this.performFill(e,n)}},{key:"_drawImageAtPosition",value:function(e,t){if(0!=this.imageObj.width){e.globalAlpha=1,this.enableShadow(e,t);var i=1;!0===this.options.shapeProperties.interpolation&&(i=this.imageObj.width/this.width/this.body.view.scale),this.imageObj.drawImageAtPosition(e,i,this.left,this.top,this.width,this.height),this.disableShadow(e,t)}}},{key:"_drawImageLabel",value:function(e,t,i,n,o){var s,r=0;if(void 0!==this.height){r=.5*this.height;var a=this.labelModule.getTextSize(e,n,o);a.lineCount>=1&&(r+=a.height/2)}s=i+r,this.options.label&&(this.labelOffset=r),this.labelModule.draw(e,t,s,n,o,"hanging")}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.printStyle=void 0;var o=i(22),s=n(o),r=i(7),a=n(r),d=i(11),h=n(d),l=i(0),u=n(l),c=i(1),f=n(c),p=i(5),v=!1,g=void 0,y="background: #FFeeee; color: #dd0000",m=function(){function e(){(0,u.default)(this,e)}return(0,f.default)(e,null,[{key:"validate",value:function(t,i,n){v=!1,g=i;var o=i;return void 0!==n&&(o=i[n]),e.parse(t,o,[]),v}},{key:"parse",value:function(t,i,n){for(var o in t)t.hasOwnProperty(o)&&e.check(o,t,i,n)}},{key:"check",value:function(t,i,n,o){if(void 0===n[t]&&void 0===n.__any__)return void e.getSuggestion(t,n,o);var s=t,r=!0;void 0===n[t]&&void 0!==n.__any__&&(s="__any__",r="object"===e.getType(i[t]));var a=n[s];r&&void 0!==a.__type__&&(a=a.__type__),e.checkFields(t,i,n,s,a,o)}},{key:"checkFields",value:function(t,i,n,o,s,r){var a=function(i){console.log("%c"+i+e.printLocation(r,t),y)},d=e.getType(i[t]),l=s[d];void 0!==l?"array"===e.getType(l)&&-1===l.indexOf(i[t])?(a('Invalid option detected in "'+t+'". Allowed values are:'+e.print(l)+' not "'+i[t]+'". '),v=!0):"object"===d&&"__any__"!==o&&(r=p.copyAndExtendArray(r,t),e.parse(i[t],n[o],r)):void 0===s.any&&(a('Invalid type received for "'+t+'". Expected: '+e.print((0,h.default)(s))+". Received ["+d+'] "'+i[t]+'"'),v=!0)}},{key:"getType",value:function(e){var t=void 0===e?"undefined":(0,a.default)(e);return"object"===t?null===e?"null":e instanceof Boolean?"boolean":e instanceof Number?"number":e instanceof String?"string":Array.isArray(e)?"array":e instanceof Date?"date":void 0!==e.nodeType?"dom":!0===e._isAMomentObject?"moment":"object":"number"===t?"number":"boolean"===t?"boolean":"string"===t?"string":void 0===t?"undefined":t}},{key:"getSuggestion",value:function(t,i,n){var o=e.findInOptions(t,i,n,!1),s=e.findInOptions(t,g,[],!0),r=void 0;r=void 0!==o.indexMatch?" in "+e.printLocation(o.path,t,"")+'Perhaps it was incomplete? Did you mean: "'+o.indexMatch+'"?\n\n':s.distance<=4&&o.distance>s.distance?" in "+e.printLocation(o.path,t,"")+"Perhaps it was misplaced? Matching option found at: "+e.printLocation(s.path,s.closestMatch,""):o.distance<=8?'. Did you mean "'+o.closestMatch+'"?'+e.printLocation(o.path,t):". Did you mean one of these: "+e.print((0,h.default)(i))+e.printLocation(n,t),console.log('%cUnknown option detected: "'+t+'"'+r,y),v=!0}},{key:"findInOptions",value:function(t,i,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],d=t.toLowerCase(),h=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&!0===o){var c=e.findInOptions(t,i[l],p.copyAndExtendArray(n,l));s>c.distance&&(r=c.closestMatch,a=c.path,s=c.distance,h=c.indexMatch)}else-1!==l.toLowerCase().indexOf(d)&&(h=l),u=e.levenshteinDistance(t,l),s>u&&(r=l,a=p.copyArray(n),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:h}}},{key:"printLocation",value:function(e,t){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",n="\n\n"+i+"options = {\n",o=0;oi.shape.height?(r=i.x+.5*i.shape.width,a=i.y-d):(r=i.x+d,a=i.y-.5*i.shape.height),o=this._pointOnCircle(r,a,d,.125),this.labelModule.draw(e,o.x,o.y,this.selected,this.hover)}}}},{key:"getItemsOnPoint",value:function(e){var t=[];if(this.labelModule.visible()){var i=this._getRotation();g.pointInRect(this.labelModule.getSize(),e,i)&&t.push({edgeId:this.id,labelId:0})}var n={left:e.x,top:e.y};return this.isOverlappingWith(n)&&t.push({edgeId:this.id}),t}},{key:"isOverlappingWith",value:function(e){if(this.connected){var t=this.from.x,i=this.from.y,n=this.to.x,o=this.to.y,s=e.left,r=e.top;return this.edgeType.getDistanceToEdge(t,i,n,o,s,r)<10}return!1}},{key:"_getRotation",value:function(e){var t=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,t);void 0!==e&&this.labelModule.calculateLabelSize(e,this.selected,this.hover,i.x,i.y);var n={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible())return n;if("horizontal"===this.options.font.align)return n;var o=this.from.y-this.to.y,s=this.from.x-this.to.x,r=Math.atan2(o,s);return(r<-1&&s<0||r>0&&s<0)&&(r+=Math.PI),n.angle=r,n}},{key:"_pointOnCircle",value:function(e,t,i,n){var o=2*n*Math.PI;return{x:e+i*Math.cos(o),y:t-i*Math.sin(o)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}},{key:"remove",value:function(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}},{key:"endPointsValid",value:function(){return void 0!==this.body.nodes[this.fromId]&&void 0!==this.body.nodes[this.toId]}}],[{key:"parseOptions",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=["arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width","font","chosen","widthConstraint"];if(p.selectiveDeepExtend(r,e,t,i),g.isValidLabel(t.label)?e.label=t.label:e.label=void 0,p.mergeOptions(e,t,"smooth",n),p.mergeOptions(e,t,"shadow",n),void 0!==t.dashes&&null!==t.dashes?e.dashes=t.dashes:!0===i&&null===t.dashes&&(e.dashes=(0,h.default)(n.dashes)),void 0!==t.scaling&&null!==t.scaling?(void 0!==t.scaling.min&&(e.scaling.min=t.scaling.min),void 0!==t.scaling.max&&(e.scaling.max=t.scaling.max),p.mergeOptions(e.scaling,t.scaling,"label",n.scaling)):!0===i&&null===t.scaling&&(e.scaling=(0,h.default)(n.scaling)),void 0!==t.arrows&&null!==t.arrows)if("string"==typeof t.arrows){var d=t.arrows.toLowerCase();e.arrows.to.enabled=-1!=d.indexOf("to"),e.arrows.middle.enabled=-1!=d.indexOf("middle"),e.arrows.from.enabled=-1!=d.indexOf("from")}else{if("object"!==(0,a.default)(t.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+(0,s.default)(t.arrows));p.mergeOptions(e.arrows,t.arrows,"to",n.arrows),p.mergeOptions(e.arrows,t.arrows,"middle",n.arrows),p.mergeOptions(e.arrows,t.arrows,"from",n.arrows)}else!0===i&&null===t.arrows&&(e.arrows=(0,h.default)(n.arrows));if(void 0!==t.color&&null!==t.color){var l=t.color,u=e.color;if(o)p.deepExtend(u,n.color,!1,i);else for(var c in u)u.hasOwnProperty(c)&&delete u[c];if(p.isString(u))u.color=u,u.highlight=u,u.hover=u,u.inherit=!1,void 0===l.opacity&&(u.opacity=1);else{var f=!1;void 0!==l.color&&(u.color=l.color,f=!0),void 0!==l.highlight&&(u.highlight=l.highlight,f=!0),void 0!==l.hover&&(u.hover=l.hover,f=!0),void 0!==l.inherit&&(u.inherit=l.inherit),void 0!==l.opacity&&(u.opacity=Math.min(1,Math.max(0,l.opacity))),!0===f?u.inherit=!1:void 0===u.inherit&&(u.inherit="from")}}else!0===i&&null===t.color&&(e.color=p.bridgeObject(n.color));!0===i&&null===t.font&&(e.font=p.bridgeObject(n.font))}}]),e}();t.default=w},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(78),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"_findBorderPositionBezier",value:function(e,t){var i,n,o,s,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),d=0,h=0,l=1,u=this.to,c=!1;for(e.id===this.from.id&&(u=this.from,c=!0);h<=l&&d<10;){var f=.5*(h+l);if(i=this.getPoint(f,a),n=Math.atan2(u.y-i.y,u.x-i.x),o=u.distanceToBorder(t,n),s=Math.sqrt(Math.pow(i.x-u.x,2)+Math.pow(i.y-u.y,2)),r=o-s,Math.abs(r)<.2)break;r<0?!1===c?h=f:l=f:!1===c?l=f:h=f,d++}return i.t=f,i}},{key:"_getDistanceToBezierEdge",value:function(e,t,i,n,o,s,r){var a=1e9,d=void 0,h=void 0,l=void 0,u=void 0,c=void 0,f=e,p=t;for(h=1;h<10;h++)l=.1*h,u=Math.pow(1-l,2)*e+2*l*(1-l)*r.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*t+2*l*(1-l)*r.y+Math.pow(l,2)*n,h>0&&(d=this._getDistanceToLine(f,p,u,c,o,s),a=d1&&void 0!==arguments[1]?arguments[1]:[],n=1e9,o=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;at.shape.boundingBox.left&&(s=t.shape.boundingBox.left),rt.shape.boundingBox.top&&(n=t.shape.boundingBox.top),o1&&void 0!==arguments[1]?arguments[1]:[],n=1e9,o=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;at.x&&(s=t.x),rt.y&&(n=t.y),od;)n(a,i=t[d++])&&(~s(h,i)||h.push(i));return h}},function(e,t,i){var n=i(14),o=i(27),s=i(43)("IE_PROTO"),r=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?r:null}},function(e,t,i){var n=i(38),o=i(8)("toStringTag"),s="Arguments"==n(function(){return arguments}()),r=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,i,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=r(t=Object(e),o))?i:s?n(t):"Object"==(a=n(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,i){var n=i(12),o=i(6),s=i(21);e.exports=function(e,t){var i=(o.Object||{})[e]||Object[e],r={};r[e]=t(i),n(n.S+n.F*s(function(){i(1)}),"Object",r)}},function(e,t,i){var n=i(65),o=i(45).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},function(e,t,i){var n=i(32),o=i(29),s=i(17),r=i(40),a=i(14),d=i(62),h=Object.getOwnPropertyDescriptor;t.f=i(10)?h:function(e,t){if(e=s(e),t=r(t,!0),d)try{return h(e,t)}catch(e){}if(a(e,t))return o(!n.f.call(e,t),e[t])}},function(e,t,i){e.exports="undefined"!=typeof window&&window.moment||i(114)},function(e,t,i){function n(e){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(e)}n.prototype.setOptions=function(e){e&&void 0!==e.delay&&(this.delay=e.delay),e&&void 0!==e.max&&(this.max=e.max),this._flushIfNeeded()},n.extend=function(e,t){var i=new n(t);if(void 0!==e.flush)throw new Error("Target object already has a property flush");e.flush=function(){i.flush()};var o=[{name:"flush",original:void 0}];if(t&&t.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var e=this;this._timeout=setTimeout(function(){e.flush()},this.delay)}},n.prototype.flush=function(){for(;this._queue.length>0;){var e=this._queue.shift();e.fn.apply(e.context||e.fn,e.args||[])}},e.exports=n},function(e,t){function i(e){if(e)return n(e)}function n(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},i.prototype.once=function(e,t){function i(){n.off(e,i),t.apply(this,arguments)}var n=this;return this._callbacks=this._callbacks||{},i.fn=t,this.on(e,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[e];if(!i)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var n,o=0;o=0;i--){var a=s[i];a.nodes||(a.nodes=[]),-1===a.nodes.indexOf(o)&&a.nodes.push(o)}t.attr&&(o.attr=d(o.attr,t.attr))}function u(e,t){if(e.edges||(e.edges=[]),e.edges.push(t),e.edge){var i=d({},e.edge);t.attr=d(i,t.attr)}}function c(e,t,i,n,o){var s={from:t,to:i,type:n};return e.edge&&(s.attr=d({},e.edge)),s.attr=d(s.attr||{},o),s}function f(){for(A=I.NULL,R="";" "===z||"\t"===z||"\n"===z||"\r"===z;)s();do{var e=!1;if("#"===z){for(var t=B-1;" "===N.charAt(t)||"\t"===N.charAt(t);)t--;if("\n"===N.charAt(t)||""===N.charAt(t)){for(;""!=z&&"\n"!=z;)s();e=!0}}if("/"===z&&"/"===r()){for(;""!=z&&"\n"!=z;)s();e=!0}if("/"===z&&"*"===r()){for(;""!=z;){if("*"===z&&"/"===r()){s(),s();break}s()}e=!0}for(;" "===z||"\t"===z||"\n"===z||"\r"===z;)s()}while(e);if(""===z)return void(A=I.DELIMITER);var i=z+r();if(F[i])return A=I.DELIMITER,R=i,s(),void s();if(F[z])return A=I.DELIMITER,R=z,void s();if(a(z)||"-"===z){for(R+=z,s();a(z);)R+=z,s();return"false"===R?R=!1:"true"===R?R=!0:isNaN(Number(R))||(R=Number(R)),void(A=I.IDENTIFIER)}if('"'===z){for(s();""!=z&&('"'!=z||'"'===z&&'"'===r());)'"'===z?(R+=z,s()):"\\"===z&&"n"===r()?(R+="\n",s()):R+=z,s();if('"'!=z)throw k('End of string " expected');return s(),void(A=I.IDENTIFIER)}for(A=I.UNKNOWN;""!=z;)R+=z,s();throw new SyntaxError('Syntax error in part "'+x(R,30)+'"')}function p(){var e={};if(o(),f(),"strict"===R&&(e.strict=!0,f()),"graph"!==R&&"digraph"!==R||(e.type=R,f()),A===I.IDENTIFIER&&(e.id=R,f()),"{"!=R)throw k("Angle bracket { expected");if(f(),v(e),"}"!=R)throw k("Angle bracket } expected");if(f(),""!==R)throw k("End of file expected");return f(),delete e.node,delete e.edge,delete e.graph,e}function v(e){for(;""!==R&&"}"!=R;)g(e),";"===R&&f()}function g(e){var t=y(e);if(t)return void _(e,t);if(!m(e)){if(A!=I.IDENTIFIER)throw k("Identifier expected");var i=R;if(f(),"="===R){if(f(),A!=I.IDENTIFIER)throw k("Identifier expected");e[i]=R,f()}else b(e,i)}}function y(e){var t=null;if("subgraph"===R&&(t={},t.type="subgraph",f(),A===I.IDENTIFIER&&(t.id=R,f())),"{"===R){if(f(),t||(t={}),t.parent=e,t.node=e.node,t.edge=e.edge,t.graph=e.graph,v(t),"}"!=R)throw k("Angle bracket } expected");f(),delete t.node,delete t.edge,delete t.graph,delete t.parent,e.subgraphs||(e.subgraphs=[]),e.subgraphs.push(t)}return t}function m(e){return"node"===R?(f(),e.node=w(),"node"):"edge"===R?(f(),e.edge=w(),"edge"):"graph"===R?(f(),e.graph=w(),"graph"):null}function b(e,t){var i={id:t},n=w();n&&(i.attr=n),l(e,i),_(e,t)}function _(e,t){for(;"->"===R||"--"===R;){var i,n=R;f();var o=y(e);if(o)i=o;else{if(A!=I.IDENTIFIER)throw k("Identifier or subgraph expected");i=R,l(e,{id:i}),f()}u(e,c(e,t,i,n,w())),t=i}}function w(){for(var e=null,t={dashed:!0,solid:!1,dotted:[1,5]};"["===R;){for(f(),e={};""!==R&&"]"!=R;){if(A!=I.IDENTIFIER)throw k("Attribute name expected");var i=R;if(f(),"="!=R)throw k("Equal sign = expected");if(f(),A!=I.IDENTIFIER)throw k("Attribute value expected");var n=R;"style"===i&&(n=t[n]),h(e,i,n),f(),","==R&&f()}if("]"!=R)throw k("Bracket ] expected");f()}return e}function k(e){return new SyntaxError(e+', got "'+x(R,30)+'" (char '+B+")")}function x(e,t){return e.length<=t?e:e.substr(0,27)+"..."}function O(e,t,i){Array.isArray(e)?e.forEach(function(e){Array.isArray(t)?t.forEach(function(t){i(e,t)}):i(e,t)}):Array.isArray(t)?t.forEach(function(t){i(e,t)}):i(e,t)}function M(e,t,i){for(var n=t.split("."),o=n.pop(),s=e,r=0;r":!0,"--":!0},N="",B=0,z="",R="",A=I.NULL,j=/[a-zA-Z_0-9.:#]/;t.parseDOT=n,t.DOTToGraph=S},function(e,t,i){function n(e,t){var i=[],n=[],o={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==t&&(void 0!==t.fixed&&(o.nodes.fixed=t.fixed),void 0!==t.parseColor&&(o.nodes.parseColor=t.parseColor),void 0!==t.inheritColor&&(o.edges.inheritColor=t.inheritColor));for(var s=e.edges,r=e.nodes,a=0;a2&&void 0!==arguments[2]&&arguments[2];(0,h.default)(this,e),this.body=t,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=n}return(0,u.default)(e,[{key:"setOptions",value:function(e){if(this.elementOptions=e,this.initFontOptions(e.font),f.isValidLabel(e.label)?this.labelDirty=!0:e.label="",void 0!==e.font&&null!==e.font)if("string"==typeof e.font)this.baseSize=this.fontOptions.size;else if("object"===(0,a.default)(e.font)){var t=e.font.size;void 0!==t&&(this.baseSize=t)}}},{key:"initFontOptions",value:function(t){var i=this;if(c.forEach(v,function(e){i.fontOptions[e]={}}),e.parseFontString(this.fontOptions,t))return void(this.fontOptions.vadjust=0);c.forEach(t,function(e,t){void 0!==e&&null!==e&&"object"!==(void 0===e?"undefined":(0,a.default)(e))&&(i.fontOptions[t]=e)})}},{key:"constrain",value:function(e){var t={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=c.topMost(e,"widthConstraint");if("number"==typeof i)t.maxWdt=Number(i),t.minWdt=Number(i);else if("object"===(void 0===i?"undefined":(0,a.default)(i))){var n=c.topMost(e,["widthConstraint","maximum"]);"number"==typeof n&&(t.maxWdt=Number(n));var o=c.topMost(e,["widthConstraint","minimum"]);"number"==typeof o&&(t.minWdt=Number(o))}var s=c.topMost(e,"heightConstraint");if("number"==typeof s)t.minHgt=Number(s);else if("object"===(void 0===s?"undefined":(0,a.default)(s))){var r=c.topMost(e,["heightConstraint","minimum"]);"number"==typeof r&&(t.minHgt=Number(r));var d=c.topMost(e,["heightConstraint","valign"]);"string"==typeof d&&("top"!==d&&"bottom"!==d||(t.valign=d))}return t}},{key:"update",value:function(e,t){this.setOptions(e,!0),this.propagateFonts(t),c.deepExtend(this.fontOptions,this.constrain(t)),this.fontOptions.chooser=f.choosify("label",t)}},{key:"adjustSizes",value:function(e){var t=e?e.right+e.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=t,this.fontOptions.minWdt-=t);var i=e?e.top+e.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}},{key:"addFontOptionsToPile",value:function(e,t){for(var i=0;i5&&void 0!==arguments[5]?arguments[5]:"middle";if(void 0!==this.elementOptions.label){var r=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&r=this.elementOptions.scaling.label.maxVisible&&(r=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(e,n,o,t,i,s),this._drawBackground(e),this._drawText(e,t,this.size.yLine,s,r))}}},{key:"_drawBackground",value:function(e){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){e.fillStyle=this.fontOptions.background;var t=this.getSize();e.fillRect(t.left,t.top,t.width,t.height)}}},{key:"_drawText",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"middle",o=arguments[4],r=this._setAlignment(e,t,i,n),a=(0,s.default)(r,2);t=a[0],i=a[1],e.textAlign="left",t-=this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&("top"===this.fontOptions.valign&&(i-=(this.size.height-this.size.labelHeight)/2),"bottom"===this.fontOptions.valign&&(i+=(this.size.height-this.size.labelHeight)/2));for(var d=0;d0&&(e.lineWidth=c.strokeWidth,e.strokeStyle=g,e.lineJoin="round"),e.fillStyle=v,c.strokeWidth>0&&e.strokeText(c.text,t+l,i+c.vadjust),e.fillText(c.text,t+l,i+c.vadjust),l+=c.width}i+=h.height}}}},{key:"_setAlignment",value:function(e,t,i,n){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&!1===this.pointToSelf){t=0,i=0;"top"===this.fontOptions.align?(e.textBaseline="alphabetic",i-=4):"bottom"===this.fontOptions.align?(e.textBaseline="hanging",i+=4):e.textBaseline="middle"}else e.textBaseline=n;return[t,i]}},{key:"_getColor",value:function(e,t,i){var n=e||"#000000",o=i||"#ffffff";if(t<=this.elementOptions.scaling.label.drawThreshold){var s=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-t)));n=c.overrideOpacity(n,s),o=c.overrideOpacity(o,s)}return[n,o]}},{key:"getTextSize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this._processLabel(e,t,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:"getSize",value:function(){var e=this.size.left,t=this.size.top-1;if(this.isEdgeLabel){var i=.5*-this.size.width;switch(this.fontOptions.align){case"middle":e=i,t=.5*-this.size.height;break;case"top":e=i,t=-(this.size.height+2);break;case"bottom":e=i,t=2}}return{left:e,top:t,width:this.size.width,height:this.size.height}}},{key:"calculateLabelSize",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"middle";this._processLabel(e,t,i),this.size.left=n-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===s&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}},{key:"getFormattingValues",value:function(e,t,i,n){var o=function(e,t,i){return"normal"===t?"mod"===i?"":e[i]:void 0!==e[t][i]?e[t][i]:e[i]},s={color:o(this.fontOptions,n,"color"),size:o(this.fontOptions,n,"size"),face:o(this.fontOptions,n,"face"),mod:o(this.fontOptions,n,"mod"),vadjust:o(this.fontOptions,n,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(t||i)&&("normal"===n&&!0===this.fontOptions.chooser&&this.elementOptions.labelHighlightBold?s.mod="bold":"function"==typeof this.fontOptions.chooser&&this.fontOptions.chooser(s,this.elementOptions.id,t,i));var r="";return void 0!==s.mod&&""!==s.mod&&(r+=s.mod+" "),r+=s.size+"px "+s.face,e.font=r.replace(/"/g,""),s.font=e.font,s.height=s.size,s}},{key:"differentState",value:function(e,t){return e!==this.selectedState||t!==this.hoverState}},{key:"_processLabelText",value:function(e,t,i,n){return new p(e,this,t,i).process(n)}},{key:"_processLabel",value:function(e,t,i){if(!1!==this.labelDirty||this.differentState(t,i)){var n=this._processLabelText(e,t,i,this.elementOptions.label);this.fontOptions.minWdt>0&&n.width0&&n.heightn.shape.height?(t=n.x+.5*n.shape.width,i=n.y-o):(t=n.x+o,i=n.y-.5*n.shape.height),[t,i,o]}},{key:"_pointOnCircle",value:function(e,t,i,n){var o=2*n*Math.PI;return{x:e+i*Math.cos(o),y:t-i*Math.sin(o)}}},{key:"_findBorderPositionCircle",value:function(e,t,i){for(var n=i.x,o=i.y,s=i.low,r=i.high,a=i.direction,d=0,h=this.options.selfReferenceSize,l=void 0,u=void 0,c=void 0,f=void 0,p=void 0,v=.5*(s+r);s<=r&&d<10&&(v=.5*(s+r),l=this._pointOnCircle(n,o,h,v),u=Math.atan2(e.y-l.y,e.x-l.x),c=e.distanceToBorder(t,u),f=Math.sqrt(Math.pow(l.x-e.x,2)+Math.pow(l.y-e.y,2)),p=c-f,!(Math.abs(p)<.05));)p>0?a>0?s=v:r=v:a>0?r=v:s=v,d++;return l.t=v,l}},{key:"getLineWidth",value:function(e,t){return!0===e?Math.max(this.selectionWidth,.3/this.body.view.scale):!0===t?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(e,t,i,n){if(!1!==t.inheritsColor){if("both"===t.inheritsColor&&this.from.id!==this.to.id){var o=e.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,r=void 0;return s=this.from.options.color.highlight.border,r=this.to.options.color.highlight.border,!1===this.from.selected&&!1===this.to.selected?(s=l.overrideOpacity(this.from.options.color.border,t.opacity),r=l.overrideOpacity(this.to.options.color.border,t.opacity)):!0===this.from.selected&&!1===this.to.selected?r=this.to.options.color.border:!1===this.from.selected&&!0===this.to.selected&&(s=this.from.options.color.border),o.addColorStop(0,s),o.addColorStop(1,r),o}return"to"===t.inheritsColor?l.overrideOpacity(this.to.options.color.border,t.opacity):l.overrideOpacity(this.from.options.color.border,t.opacity)}return l.overrideOpacity(t.color,t.opacity)}},{key:"_circle",value:function(e,t,i,n,o){this.enableShadow(e,t),e.beginPath(),e.arc(i,n,o,0,2*Math.PI,!1),e.stroke(),this.disableShadow(e,t)}},{key:"getDistanceToEdge",value:function(e,t,i,n,o,r,a,d){var h=0;if(this.from!=this.to)h=this._getDistanceToEdge(e,t,i,n,o,r,a);else{var l=this._getCircleData(void 0),u=(0,s.default)(l,3),c=u[0],f=u[1],p=u[2],v=c-o,g=f-r;h=Math.abs(Math.sqrt(v*v+g*g)-p)}return h}},{key:"_getDistanceToLine",value:function(e,t,i,n,o,s){var r=i-e,a=n-t,d=r*r+a*a,h=((o-e)*r+(s-t)*a)/d;h>1?h=1:h<0&&(h=0);var l=e+h*r,u=t+h*a,c=l-o,f=u-s;return Math.sqrt(c*c+f*f)}},{key:"getArrowData",value:function(e,t,i,n,o,r){var a=void 0,d=void 0,h=void 0,l=void 0,u=void 0,c=void 0,f=void 0,p=r.width;if("from"===t?(h=this.from,l=this.to,u=.1,c=r.fromArrowScale,f=r.fromArrowType):"to"===t?(h=this.to,l=this.from,u=-.1,c=r.toArrowScale,f=r.toArrowType):(h=this.to,l=this.from,c=r.middleArrowScale,f=r.middleArrowType),h!=l)if("middle"!==t)if(!0===this.options.smooth.enabled){d=this.findBorderPosition(h,e,{via:i});var v=this.getPoint(Math.max(0,Math.min(1,d.t+u)),i);a=Math.atan2(d.y-v.y,d.x-v.x)}else a=Math.atan2(h.y-l.y,h.x-l.x),d=this.findBorderPosition(h,e);else a=Math.atan2(h.y-l.y,h.x-l.x),d=this.getPoint(.5,i);else{var g=this._getCircleData(e),y=(0,s.default)(g,3),m=y[0],b=y[1],_=y[2];"from"===t?(d=this.findBorderPosition(this.from,e,{x:m,y:b,low:.25,high:.6,direction:-1}),a=-2*d.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===t?(d=this.findBorderPosition(this.from,e,{x:m,y:b,low:.6,high:1,direction:1}),a=-2*d.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(d=this._pointOnCircle(m,b,_,.175),a=3.9269908169872414)}"middle"===t&&c<0&&(p*=-1);var w=15*c+3*p;return{point:d,core:{x:d.x-.9*w*Math.cos(a),y:d.y-.9*w*Math.sin(a)},angle:a,length:w,type:f}}},{key:"drawArrowHead",value:function(e,t,i,n,o){e.strokeStyle=this.getColor(e,t,i,n),e.fillStyle=e.strokeStyle,e.lineWidth=t.width,u.draw(e,o),this.enableShadow(e,t),e.fill(),this.disableShadow(e,t)}},{key:"enableShadow",value:function(e,t){!0===t.shadow&&(e.shadowColor=t.shadowColor,e.shadowBlur=t.shadowSize,e.shadowOffsetX=t.shadowX,e.shadowOffsetY=t.shadowY)}},{key:"disableShadow",value:function(e,t){!0===t.shadow&&(e.shadowColor="rgba(0,0,0,0)",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0)}}]),e}();t.default=c},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(3),a=n(r),d=i(4),h=n(d),l=i(0),u=n(l),c=i(1),f=n(c),p=function(){function e(){(0,u.default)(this,e)}return(0,f.default)(e,null,[{key:"transform",value:function(e,t){e instanceof Array||(e=[e]);for(var i=t.point.x,n=t.point.y,o=t.angle,s=t.length,r=0;r0){var e=void 0,t=this.body.nodes,i=this.physicsBody.physicsNodeIndices,n=i.length,o=this._formBarnesHutTree(t,i);this.barnesHutTree=o;for(var s=0;s0&&this._getForceContributions(o.root,e)}}},{key:"_getForceContributions",value:function(e,t){this._getForceContribution(e.children.NW,t),this._getForceContribution(e.children.NE,t),this._getForceContribution(e.children.SW,t),this._getForceContribution(e.children.SE,t)}},{key:"_getForceContribution",value:function(e,t){if(e.childrenCount>0){var i=void 0,n=void 0,o=void 0;i=e.centerOfMass.x-t.x,n=e.centerOfMass.y-t.y,o=Math.sqrt(i*i+n*n),o*e.calcSize>this.thetaInversed?this._calculateForces(o,i,n,t,e):4===e.childrenCount?this._getForceContributions(e,t):e.children.data.id!=t.id&&this._calculateForces(o,i,n,t,e)}}},{key:"_calculateForces",value:function(e,t,i,n,o){0===e&&(e=.1,t=e),this.overlapAvoidanceFactor<1&&n.shape.radius&&(e=Math.max(.1+this.overlapAvoidanceFactor*n.shape.radius,e-n.shape.radius));var s=this.options.gravitationalConstant*o.mass*n.options.mass/Math.pow(e,3),r=t*s,a=i*s;this.physicsBody.forces[n.id].x+=r,this.physicsBody.forces[n.id].y+=a}},{key:"_formBarnesHutTree",value:function(e,t){for(var i=void 0,n=t.length,o=e[t[0]].x,s=e[t[0]].y,r=e[t[0]].x,a=e[t[0]].y,d=1;d0&&(lr&&(r=l),ua&&(a=u))}var c=Math.abs(r-o)-Math.abs(a-s);c>0?(s-=.5*c,a+=.5*c):(o+=.5*c,r-=.5*c);var f=Math.max(1e-5,Math.abs(r-o)),p=.5*f,v=.5*(o+r),g=.5*(s+a),y={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:v-p,maxX:v+p,minY:g-p,maxY:g+p},size:f,calcSize:1/f,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(y.root);for(var m=0;m0&&this._placeInTree(y.root,i);return y}},{key:"_updateBranchMass",value:function(e,t){var i=e.centerOfMass,n=e.mass+t.options.mass,o=1/n;i.x=i.x*e.mass+t.x*t.options.mass,i.x*=o,i.y=i.y*e.mass+t.y*t.options.mass,i.y*=o,e.mass=n;var s=Math.max(Math.max(t.height,t.radius),t.width);e.maxWidth=e.maxWidtht.x?n.maxY>t.y?"NW":"SW":n.maxY>t.y?"NE":"SE",this._placeInRegion(e,t,o)}},{key:"_placeInRegion",value:function(e,t,i){var n=e.children[i];switch(n.childrenCount){case 0:n.children.data=t,n.childrenCount=1,this._updateBranchMass(n,t);break;case 1:n.children.data.x===t.x&&n.children.data.y===t.y?(t.x+=this.seededRandom(),t.y+=this.seededRandom()):(this._splitBranch(n),this._placeInTree(n,t));break;case 4:this._placeInTree(n,t)}}},{key:"_splitBranch",value:function(e){var t=null;1===e.childrenCount&&(t=e.children.data,e.mass=0,e.centerOfMass.x=0,e.centerOfMass.y=0),e.childrenCount=4,e.children.data=null,this._insertRegion(e,"NW"),this._insertRegion(e,"NE"),this._insertRegion(e,"SW"),this._insertRegion(e,"SE"),null!=t&&this._placeInTree(e,t)}},{key:"_insertRegion",value:function(e,t){var i=void 0,n=void 0,o=void 0,s=void 0,r=.5*e.size;switch(t){case"NW":i=e.range.minX,n=e.range.minX+r,o=e.range.minY,s=e.range.minY+r;break;case"NE":i=e.range.minX+r,n=e.range.maxX,o=e.range.minY,s=e.range.minY+r;break;case"SW":i=e.range.minX,n=e.range.minX+r,o=e.range.minY+r,s=e.range.maxY;break;case"SE":i=e.range.minX+r,n=e.range.maxX,o=e.range.minY+r,s=e.range.maxY}e.children[t]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:n,minY:o,maxY:s},size:.5*e.size,calcSize:2*e.calcSize,children:{data:null},maxWidth:0,level:e.level+1,childrenCount:0}}},{key:"_debug",value:function(e,t){void 0!==this.barnesHutTree&&(e.lineWidth=1,this._drawBranch(this.barnesHutTree.root,e,t))}},{key:"_drawBranch",value:function(e,t,i){void 0===i&&(i="#FF0000"),4===e.childrenCount&&(this._drawBranch(e.children.NW,t),this._drawBranch(e.children.NE,t),this._drawBranch(e.children.SE,t),this._drawBranch(e.children.SW,t)),t.strokeStyle=i,t.beginPath(),t.moveTo(e.range.minX,e.range.minY),t.lineTo(e.range.maxX,e.range.minY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.minY),t.lineTo(e.range.maxX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.maxY),t.lineTo(e.range.minX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.minX,e.range.maxY),t.lineTo(e.range.minX,e.range.minY),t.stroke()}}]),e}();t.default=d},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=function(){function e(t,i,n){(0,s.default)(this,e),this.body=t,this.physicsBody=i,this.setOptions(n)}return(0,a.default)(e,[{key:"setOptions",value:function(e){this.options=e}},{key:"solve",value:function(){for(var e=void 0,t=void 0,i=void 0,n=void 0,o=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=0;a=e.length?(this._t=void 0,o(1)):"keys"==t?o(0,i):"values"==t?o(0,e[i]):o(0,[i,e[i]])},"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,i){var n=i(41),o=i(29),s=i(46),r={};i(18)(r,i(8)("iterator"),function(){return this}),e.exports=function(e,t,i){e.prototype=n(r,{next:o(1,i)}),s(e,t+" Iterator")}},function(e,t,i){var n=i(13),o=i(19),s=i(26);e.exports=i(10)?Object.defineProperties:function(e,t){o(e);for(var i,r=s(t),a=r.length,d=0;a>d;)n.f(e,i=r[d++],t[i]);return e}},function(e,t,i){var n=i(17),o=i(92),s=i(93);e.exports=function(e){return function(t,i,r){var a,d=n(t),h=o(d.length),l=s(r,h);if(e&&i!=i){for(;h>l;)if((a=d[l++])!=a)return!0}else for(;h>l;l++)if((e||l in d)&&d[l]===i)return e||l||0;return!e&&-1}}},function(e,t,i){var n=i(42),o=Math.min;e.exports=function(e){return e>0?o(n(e),9007199254740991):0}},function(e,t,i){var n=i(42),o=Math.max,s=Math.min;e.exports=function(e,t){return e=n(e),e<0?o(e+t,0):s(e,t)}},function(e,t,i){var n=i(9).document;e.exports=n&&n.documentElement},function(e,t,i){var n=i(42),o=i(39);e.exports=function(e){return function(t,i){var s,r,a=String(o(t)),d=n(i),h=a.length;return d<0||d>=h?e?"":void 0:(s=a.charCodeAt(d),s<55296||s>56319||d+1===h||(r=a.charCodeAt(d+1))<56320||r>57343?e?a.charAt(d):s:e?a.slice(d,d+2):r-56320+(s-55296<<10)+65536)}}},function(e,t,i){var n=i(19),o=i(97);e.exports=i(6).getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},function(e,t,i){var n=i(67),o=i(8)("iterator"),s=i(25);e.exports=i(6).getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||s[n(e)]}},function(e,t,i){i(99);var n=i(6).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,i){var n=i(12);n(n.S,"Object",{create:i(41)})},function(e,t,i){i(101),e.exports=i(6).Object.keys},function(e,t,i){var n=i(27),o=i(26);i(68)("keys",function(){return function(e){return o(n(e))}})},function(e,t,i){e.exports={default:i(103),__esModule:!0}},function(e,t,i){i(47),i(37),e.exports=i(48).f("iterator")},function(e,t,i){e.exports={default:i(105),__esModule:!0}},function(e,t,i){i(106),i(111),i(112),i(113),e.exports=i(6).Symbol},function(e,t,i){var n=i(9),o=i(14),s=i(10),r=i(12),a=i(64),d=i(107).KEY,h=i(21),l=i(44),u=i(46),c=i(30),f=i(8),p=i(48),v=i(49),g=i(108),y=i(109),m=i(19),b=i(20),_=i(27),w=i(17),k=i(40),x=i(29),O=i(41),M=i(110),E=i(70),S=i(50),D=i(13),C=i(26),T=E.f,P=D.f,I=M.f,F=n.Symbol,N=n.JSON,B=N&&N.stringify,z=f("_hidden"),R=f("toPrimitive"),A={}.propertyIsEnumerable,j=l("symbol-registry"),L=l("symbols"),H=l("op-symbols"),W=Object.prototype,Y="function"==typeof F&&!!S.f,V=n.QObject,U=!V||!V.prototype||!V.prototype.findChild,q=s&&h(function(){return 7!=O(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(e,t,i){var n=T(W,t);n&&delete W[t],P(e,t,i),n&&e!==W&&P(W,t,n)}:P,G=function(e){var t=L[e]=O(F.prototype);return t._k=e,t},X=Y&&"symbol"==typeof F.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof F},K=function(e,t,i){return e===W&&K(H,t,i),m(e),t=k(t,!0),m(i),o(L,t)?(i.enumerable?(o(e,z)&&e[z][t]&&(e[z][t]=!1),i=O(i,{enumerable:x(0,!1)})):(o(e,z)||P(e,z,x(1,{})),e[z][t]=!0),q(e,t,i)):P(e,t,i)},Z=function(e,t){m(e);for(var i,n=g(t=w(t)),o=0,s=n.length;s>o;)K(e,i=n[o++],t[i]);return e},$=function(e,t){return void 0===t?O(e):Z(O(e),t)},Q=function(e){var t=A.call(this,e=k(e,!0));return!(this===W&&o(L,e)&&!o(H,e))&&(!(t||!o(this,e)||!o(L,e)||o(this,z)&&this[z][e])||t)},J=function(e,t){if(e=w(e),t=k(t,!0),e!==W||!o(L,t)||o(H,t)){var i=T(e,t);return!i||!o(L,t)||o(e,z)&&e[z][t]||(i.enumerable=!0),i}},ee=function(e){for(var t,i=I(w(e)),n=[],s=0;i.length>s;)o(L,t=i[s++])||t==z||t==d||n.push(t);return n},te=function(e){for(var t,i=e===W,n=I(i?H:w(e)),s=[],r=0;n.length>r;)!o(L,t=n[r++])||i&&!o(W,t)||s.push(L[t]);return s};Y||(F=function(){if(this instanceof F)throw TypeError("Symbol is not a constructor!");var e=c(arguments.length>0?arguments[0]:void 0),t=function(i){this===W&&t.call(H,i),o(this,z)&&o(this[z],e)&&(this[z][e]=!1),q(this,e,x(1,i))};return s&&U&&q(W,e,{configurable:!0,set:t}),G(e)},a(F.prototype,"toString",function(){return this._k}),E.f=J,D.f=K,i(69).f=M.f=ee,i(32).f=Q,S.f=te,s&&!i(28)&&a(W,"propertyIsEnumerable",Q,!0),p.f=function(e){return G(f(e))}),r(r.G+r.W+r.F*!Y,{Symbol:F});for(var ie="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;ie.length>ne;)f(ie[ne++]);for(var oe=C(f.store),se=0;oe.length>se;)v(oe[se++]);r(r.S+r.F*!Y,"Symbol",{for:function(e){return o(j,e+="")?j[e]:j[e]=F(e)},keyFor:function(e){if(!X(e))throw TypeError(e+" is not a symbol!");for(var t in j)if(j[t]===e)return t},useSetter:function(){U=!0},useSimple:function(){U=!1}}),r(r.S+r.F*!Y,"Object",{create:$,defineProperty:K,defineProperties:Z,getOwnPropertyDescriptor:J,getOwnPropertyNames:ee,getOwnPropertySymbols:te});var re=h(function(){S.f(1)});r(r.S+r.F*re,"Object",{getOwnPropertySymbols:function(e){return S.f(_(e))}}),N&&r(r.S+r.F*(!Y||h(function(){var e=F();return"[null]"!=B([e])||"{}"!=B({a:e})||"{}"!=B(Object(e))})),"JSON",{stringify:function(e){for(var t,i,n=[e],o=1;arguments.length>o;)n.push(arguments[o++]);if(i=t=n[1],(b(t)||void 0!==e)&&!X(e))return y(t)||(t=function(e,t){if("function"==typeof i&&(t=i.call(this,e,t)),!X(t))return t}),n[1]=t,B.apply(N,n)}}),F.prototype[R]||i(18)(F.prototype,R,F.prototype.valueOf),u(F,"Symbol"),u(Math,"Math",!0),u(n.JSON,"JSON",!0)},function(e,t,i){var n=i(30)("meta"),o=i(20),s=i(14),r=i(13).f,a=0,d=Object.isExtensible||function(){return!0},h=!i(21)(function(){return d(Object.preventExtensions({}))}),l=function(e){r(e,n,{value:{i:"O"+ ++a,w:{}}})},u=function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,n)){if(!d(e))return"F";if(!t)return"E";l(e)}return e[n].i},c=function(e,t){if(!s(e,n)){if(!d(e))return!0;if(!t)return!1;l(e)}return e[n].w},f=function(e){return h&&p.NEED&&d(e)&&!s(e,n)&&l(e),e},p=e.exports={KEY:n,NEED:!1,fastKey:u,getWeak:c,onFreeze:f}},function(e,t,i){var n=i(26),o=i(50),s=i(32);e.exports=function(e){var t=n(e),i=o.f;if(i)for(var r,a=i(e),d=s.f,h=0;a.length>h;)d.call(e,r=a[h++])&&t.push(r);return t}},function(e,t,i){var n=i(38);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,i){var n=i(17),o=i(69).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(e){try{return o(e)}catch(e){return r.slice()}};e.exports.f=function(e){return r&&"[object Window]"==s.call(e)?a(e):o(n(e))}},function(e,t){},function(e,t,i){i(49)("asyncIterator")},function(e,t,i){i(49)("observable")},function(e,t,i){(function(e){!function(t,i){e.exports=i()}(0,function(){function t(){return Pn.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}function s(e){return void 0===e}function r(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function a(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var i,n=[];for(i=0;i0)for(i=0;i0?"future":"past"];return M(i)?i(t):i.replace(/%s/i,t)}function B(e,t){var i=e.toLowerCase();Hn[i]=Hn[i+"s"]=Hn[t]=e}function z(e){return"string"==typeof e?Hn[e]||Hn[e.toLowerCase()]:void 0}function R(e){var t,i,n={};for(i in e)h(e,i)&&(t=z(i))&&(n[t]=e[i]);return n}function A(e,t){Wn[e]=t}function j(e){var t=[];for(var i in e)t.push({unit:i,priority:Wn[i]});return t.sort(function(e,t){return e.priority-t.priority}),t}function L(e,t,i){var n=""+Math.abs(e),o=t-n.length;return(e>=0?i?"+":"":"-")+Math.pow(10,Math.max(0,o)).toString().substr(1)+n}function H(e,t,i,n){var o=n;"string"==typeof n&&(o=function(){return this[n]()}),e&&(qn[e]=o),t&&(qn[t[0]]=function(){return L(o.apply(this,arguments),t[1],t[2])}),i&&(qn[i]=function(){return this.localeData().ordinal(o.apply(this,arguments),e)})}function W(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function Y(e){var t,i,n=e.match(Yn);for(t=0,i=n.length;t=0&&Vn.test(e);)e=e.replace(Vn,i),Vn.lastIndex=0,n-=1;return e}function q(e,t,i){uo[e]=M(t)?t:function(e,n){return e&&i?i:t}}function G(e,t){return h(uo,e)?uo[e](t._strict,t._locale):new RegExp(X(e))}function X(e){return K(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,i,n,o){return t||i||n||o}))}function K(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Z(e,t){var i,n=t;for("string"==typeof e&&(e=[e]),r(t)&&(n=function(e,i){i[t]=_(e)}),i=0;i=0?(a=new Date(e+400,t,i,n,o,s,r),isFinite(a.getFullYear())&&a.setFullYear(e)):a=new Date(e,t,i,n,o,s,r),a}function _e(e){var t;if(e<100&&e>=0){var i=Array.prototype.slice.call(arguments);i[0]=e+400,t=new Date(Date.UTC.apply(null,i)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function we(e,t,i){var n=7+t-i;return-(7+_e(e,0,n).getUTCDay()-t)%7+n-1}function ke(e,t,i,n,o){var s,r,a=(7+i-n)%7,d=we(e,n,o),h=1+7*(t-1)+a+d;return h<=0?(s=e-1,r=J(s)+h):h>J(e)?(s=e+1,r=h-J(e)):(s=e,r=h),{year:s,dayOfYear:r}}function xe(e,t,i){var n,o,s=we(e.year(),t,i),r=Math.floor((e.dayOfYear()-s-1)/7)+1;return r<1?(o=e.year()-1,n=r+Oe(o,t,i)):r>Oe(e.year(),t,i)?(n=r-Oe(e.year(),t,i),o=e.year()+1):(o=e.year(),n=r),{week:n,year:o}}function Oe(e,t,i){var n=we(e,t,i),o=we(e+1,t,i);return(J(e)-n+o)/7}function Me(e){return xe(e,this._week.dow,this._week.doy).week}function Ee(){return this._week.dow}function Se(){return this._week.doy}function De(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Ce(e){var t=xe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Te(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function Pe(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Ie(e,t){return e.slice(t,7).concat(e.slice(0,t))}function Fe(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ie(n,this._week.dow):e?n[e.day()]:n}function Ne(e){return!0===e?Ie(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Be(e){return!0===e?Ie(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function ze(e,t,i){var n,o,s,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)s=u([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===t?(o=ko.call(this._weekdaysParse,r),-1!==o?o:null):"ddd"===t?(o=ko.call(this._shortWeekdaysParse,r),-1!==o?o:null):(o=ko.call(this._minWeekdaysParse,r),-1!==o?o:null):"dddd"===t?-1!==(o=ko.call(this._weekdaysParse,r))?o:-1!==(o=ko.call(this._shortWeekdaysParse,r))?o:(o=ko.call(this._minWeekdaysParse,r),-1!==o?o:null):"ddd"===t?-1!==(o=ko.call(this._shortWeekdaysParse,r))?o:-1!==(o=ko.call(this._weekdaysParse,r))?o:(o=ko.call(this._minWeekdaysParse,r),-1!==o?o:null):-1!==(o=ko.call(this._minWeekdaysParse,r))?o:-1!==(o=ko.call(this._weekdaysParse,r))?o:(o=ko.call(this._shortWeekdaysParse,r),-1!==o?o:null)}function Re(e,t,i){var n,o,s;if(this._weekdaysParseExact)return ze.call(this,e,t,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(o=u([2e3,1]).day(n),i&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(o,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(o,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(o,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[n]||(s="^"+this.weekdays(o,"")+"|^"+this.weekdaysShort(o,"")+"|^"+this.weekdaysMin(o,""),this._weekdaysParse[n]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===t&&this._fullWeekdaysParse[n].test(e))return n;if(i&&"ddd"===t&&this._shortWeekdaysParse[n].test(e))return n;if(i&&"dd"===t&&this._minWeekdaysParse[n].test(e))return n;if(!i&&this._weekdaysParse[n].test(e))return n}}function Ae(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Te(e,this.localeData()),this.add(e-t,"d")):t}function je(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function Le(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Pe(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function He(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ve.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=Fo),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function We(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ve.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=No),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ye(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ve.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Bo),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ve(){function e(e,t){return t.length-e.length}var t,i,n,o,s,r=[],a=[],d=[],h=[];for(t=0;t<7;t++)i=u([2e3,1]).day(t),n=this.weekdaysMin(i,""),o=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(n),a.push(o),d.push(s),h.push(n),h.push(o),h.push(s);for(r.sort(e),a.sort(e),d.sort(e),h.sort(e),t=0;t<7;t++)a[t]=K(a[t]),d[t]=K(d[t]),h[t]=K(h[t]);this._weekdaysRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ue(){return this.hours()%12||12}function qe(){return this.hours()||24}function Ge(e,t){H(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Xe(e,t){return t._meridiemParse}function Ke(e){return"p"===(e+"").toLowerCase().charAt(0)}function Ze(e,t,i){return e>11?i?"pm":"PM":i?"am":"AM"}function $e(e){return e?e.toLowerCase().replace("_","-"):e}function Qe(e){for(var t,i,n,o,s=0;s0;){if(n=Je(o.slice(0,t).join("-")))return n;if(i&&i.length>=t&&w(o,i,!0)>=t-1)break;t--}s++}return zo}function Je(t){var i=null;if(!Lo[t]&&void 0!==e&&e&&e.exports)try{i=zo._abbr;!function(){var e=new Error('Cannot find module "./locale"');throw e.code="MODULE_NOT_FOUND",e}(),et(i)}catch(e){}return Lo[t]}function et(e,t){var i;return e&&(i=s(t)?nt(e):tt(e,t),i?zo=i:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),zo._abbr}function tt(e,t){if(null!==t){var i,n=jo;if(t.abbr=e,null!=Lo[e])O("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Lo[e]._config;else if(null!=t.parentLocale)if(null!=Lo[t.parentLocale])n=Lo[t.parentLocale]._config;else{if(null==(i=Je(t.parentLocale)))return Ho[t.parentLocale]||(Ho[t.parentLocale]=[]),Ho[t.parentLocale].push({name:e,config:t}),null;n=i._config}return Lo[e]=new D(S(n,t)),Ho[e]&&Ho[e].forEach(function(e){tt(e.name,e.config)}),et(e),Lo[e]}return delete Lo[e],null}function it(e,t){if(null!=t){var i,n,o=jo;n=Je(e),null!=n&&(o=n._config),t=S(o,t),i=new D(t),i.parentLocale=Lo[e],Lo[e]=i,et(e)}else null!=Lo[e]&&(null!=Lo[e].parentLocale?Lo[e]=Lo[e].parentLocale:null!=Lo[e]&&delete Lo[e]);return Lo[e]}function nt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return zo;if(!i(e)){if(t=Je(e))return t;e=[e]}return Qe(e)}function ot(){return zn(Lo)}function st(e){var t,i=e._a;return i&&-2===f(e).overflow&&(t=i[po]<0||i[po]>11?po:i[vo]<1||i[vo]>de(i[fo],i[po])?vo:i[go]<0||i[go]>24||24===i[go]&&(0!==i[yo]||0!==i[mo]||0!==i[bo])?go:i[yo]<0||i[yo]>59?yo:i[mo]<0||i[mo]>59?mo:i[bo]<0||i[bo]>999?bo:-1,f(e)._overflowDayOfYear&&(tvo)&&(t=vo),f(e)._overflowWeeks&&-1===t&&(t=_o),f(e)._overflowWeekday&&-1===t&&(t=wo),f(e).overflow=t),e}function rt(e,t,i){return null!=e?e:null!=t?t:i}function at(e){var i=new Date(t.now());return e._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function dt(e){var t,i,n,o,s,r=[];if(!e._d){for(n=at(e),e._w&&null==e._a[vo]&&null==e._a[po]&&ht(e),null!=e._dayOfYear&&(s=rt(e._a[fo],n[fo]),(e._dayOfYear>J(s)||0===e._dayOfYear)&&(f(e)._overflowDayOfYear=!0),i=_e(s,0,e._dayOfYear),e._a[po]=i.getUTCMonth(),e._a[vo]=i.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=r[t]=n[t];for(;t<7;t++)e._a[t]=r[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[go]&&0===e._a[yo]&&0===e._a[mo]&&0===e._a[bo]&&(e._nextDay=!0,e._a[go]=0),e._d=(e._useUTC?_e:be).apply(null,r),o=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[go]=24),e._w&&void 0!==e._w.d&&e._w.d!==o&&(f(e).weekdayMismatch=!0)}}function ht(e){var t,i,n,o,s,r,a,d;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)s=1,r=4,i=rt(t.GG,e._a[fo],xe(Et(),1,4).year),n=rt(t.W,1),((o=rt(t.E,1))<1||o>7)&&(d=!0);else{s=e._locale._week.dow,r=e._locale._week.doy;var h=xe(Et(),s,r);i=rt(t.gg,e._a[fo],h.year),n=rt(t.w,h.week),null!=t.d?((o=t.d)<0||o>6)&&(d=!0):null!=t.e?(o=t.e+s,(t.e<0||t.e>6)&&(d=!0)):o=s}n<1||n>Oe(i,s,r)?f(e)._overflowWeeks=!0:null!=d?f(e)._overflowWeekday=!0:(a=ke(i,n,o,s,r),e._a[fo]=a.year,e._dayOfYear=a.dayOfYear)}function lt(e){var t,i,n,o,s,r,a=e._i,d=Wo.exec(a)||Yo.exec(a);if(d){for(f(e).iso=!0,t=0,i=Uo.length;t0&&f(e).unusedInput.push(r),a=a.slice(a.indexOf(n)+n.length),h+=n.length),qn[s]?(n?f(e).empty=!1:f(e).unusedTokens.push(s),Q(s,n,e)):e._strict&&!n&&f(e).unusedTokens.push(s);f(e).charsLeftOver=d-h,a.length>0&&f(e).unusedInput.push(a),e._a[go]<=12&&!0===f(e).bigHour&&e._a[go]>0&&(f(e).bigHour=void 0),f(e).parsedDateParts=e._a.slice(0),f(e).meridiem=e._meridiem,e._a[go]=bt(e._locale,e._a[go],e._meridiem),dt(e),st(e)}function bt(e,t,i){var n;return null==i?t:null!=e.meridiemHour?e.meridiemHour(t,i):null!=e.isPM?(n=e.isPM(i),n&&t<12&&(t+=12),n||12!==t||(t=0),t):t}function _t(e){var t,i,n,o,s;if(0===e._f.length)return f(e).invalidFormat=!0,void(e._d=new Date(NaN));for(o=0;othis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Gt(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(g(e,this),e=xt(e),e._a){var t=e._isUTC?u(e._a):Et(e._a);this._isDSTShifted=this.isValid()&&w(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Xt(){return!!this.isValid()&&!this._isUTC}function Kt(){return!!this.isValid()&&this._isUTC}function Zt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function $t(e,t){var i,n,o,s=e,a=null;return Nt(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:r(e)?(s={},t?s[t]=e:s.milliseconds=e):(a=ts.exec(e))?(i="-"===a[1]?-1:1,s={y:0,d:_(a[vo])*i,h:_(a[go])*i,m:_(a[yo])*i,s:_(a[mo])*i,ms:_(Bt(1e3*a[bo]))*i}):(a=is.exec(e))?(i="-"===a[1]?-1:1,s={y:Qt(a[2],i),M:Qt(a[3],i),w:Qt(a[4],i),d:Qt(a[5],i),h:Qt(a[6],i),m:Qt(a[7],i),s:Qt(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(o=ei(Et(s.from),Et(s.to)),s={},s.ms=o.milliseconds,s.M=o.months),n=new Ft(s),Nt(e)&&h(e,"_locale")&&(n._locale=e._locale),n}function Qt(e,t){var i=e&&parseFloat(e.replace(",","."));return(isNaN(i)?0:i)*t}function Jt(e,t){var i={};return i.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(i.months,"M").isAfter(t)&&--i.months,i.milliseconds=+t-+e.clone().add(i.months,"M"),i}function ei(e,t){var i;return e.isValid()&&t.isValid()?(t=At(t,e),e.isBefore(t)?i=Jt(e,t):(i=Jt(t,e),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ti(e,t){return function(i,n){var o,s;return null===n||isNaN(+n)||(O(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=n,n=s),i="string"==typeof i?+i:i,o=$t(i,n),ii(this,o,e),this}}function ii(e,i,n,o){var s=i._milliseconds,r=Bt(i._days),a=Bt(i._months);e.isValid()&&(o=null==o||o,a&&fe(e,ne(e,"Month")+a*n),r&&oe(e,"Date",ne(e,"Date")+r*n),s&&e._d.setTime(e._d.valueOf()+s*n),o&&t.updateOffset(e,r||a))}function ni(e,t){var i=e.diff(t,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function oi(e,i){var n=e||Et(),o=At(n,this).startOf("day"),s=t.calendarFormat(this,o)||"sameElse",r=i&&(M(i[s])?i[s].call(this,n):i[s]);return this.format(r||this.localeData().calendar(s,this,Et(n)))}function si(){return new y(this)}function ri(e,t){var i=m(e)?e:Et(e);return!(!this.isValid()||!i.isValid())&&(t=z(t)||"millisecond","millisecond"===t?this.valueOf()>i.valueOf():i.valueOf()9999?V(i,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):M(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",V(i,"Z")):V(i,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function gi(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var i="["+e+'("]',n=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",o=t+'[")]';return this.format(i+n+"-MM-DD[T]HH:mm:ss.SSS"+o)}function yi(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var i=V(this,e);return this.localeData().postformat(i)}function mi(e,t){return this.isValid()&&(m(e)&&e.isValid()||Et(e).isValid())?$t({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function bi(e){return this.from(Et(),e)}function _i(e,t){return this.isValid()&&(m(e)&&e.isValid()||Et(e).isValid())?$t({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function wi(e){return this.to(Et(),e)}function ki(e){var t;return void 0===e?this._locale._abbr:(t=nt(e),null!=t&&(this._locale=t),this)}function xi(){return this._locale}function Oi(e,t){return(e%t+t)%t}function Mi(e,t,i){return e<100&&e>=0?new Date(e+400,t,i)-hs:new Date(e,t,i).valueOf()}function Ei(e,t,i){return e<100&&e>=0?Date.UTC(e+400,t,i)-hs:Date.UTC(e,t,i)}function Si(e){var i;if(void 0===(e=z(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?Ei:Mi;switch(e){case"year":i=n(this.year(),0,1);break;case"quarter":i=n(this.year(),this.month()-this.month()%3,1);break;case"month":i=n(this.year(),this.month(),1);break;case"week":i=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":i=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":i=n(this.year(),this.month(),this.date());break;case"hour":i=this._d.valueOf(),i-=Oi(i+(this._isUTC?0:this.utcOffset()*as),ds);break;case"minute":i=this._d.valueOf(),i-=Oi(i,as);break;case"second":i=this._d.valueOf(),i-=Oi(i,rs)}return this._d.setTime(i),t.updateOffset(this,!0),this}function Di(e){var i;if(void 0===(e=z(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?Ei:Mi;switch(e){case"year":i=n(this.year()+1,0,1)-1;break;case"quarter":i=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":i=n(this.year(),this.month()+1,1)-1;break;case"week":i=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":i=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":i=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":i=this._d.valueOf(),i+=ds-Oi(i+(this._isUTC?0:this.utcOffset()*as),ds)-1;break;case"minute":i=this._d.valueOf(),i+=as-Oi(i,as)-1;break;case"second":i=this._d.valueOf(),i+=rs-Oi(i,rs)-1}return this._d.setTime(i),t.updateOffset(this,!0),this}function Ci(){return this._d.valueOf()-6e4*(this._offset||0)}function Ti(){return Math.floor(this.valueOf()/1e3)}function Pi(){return new Date(this.valueOf())}function Ii(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Fi(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Ni(){return this.isValid()?this.toISOString():null}function Bi(){return p(this)}function zi(){return l({},f(this))}function Ri(){return f(this).overflow}function Ai(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function ji(e,t){H(0,[e,e.length],0,t)}function Li(e){return Vi.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Hi(e){return Vi.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function Wi(){return Oe(this.year(),1,4)}function Yi(){var e=this.localeData()._week;return Oe(this.year(),e.dow,e.doy)}function Vi(e,t,i,n,o){var s;return null==e?xe(this,n,o).year:(s=Oe(e,n,o),t>s&&(t=s),Ui.call(this,e,t,i,n,o))}function Ui(e,t,i,n,o){var s=ke(e,t,i,n,o),r=_e(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function qi(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Gi(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function Xi(e,t){t[bo]=_(1e3*("0."+e))}function Ki(){return this._isUTC?"UTC":""}function Zi(){return this._isUTC?"Coordinated Universal Time":""}function $i(e){return Et(1e3*e)}function Qi(){return Et.apply(null,arguments).parseZone()}function Ji(e){return e}function en(e,t,i,n){var o=nt(),s=u().set(n,t);return o[i](s,e)}function tn(e,t,i){if(r(e)&&(t=e,e=void 0),e=e||"",null!=t)return en(e,t,i,"month");var n,o=[];for(n=0;n<12;n++)o[n]=en(e,n,i,"month");return o}function nn(e,t,i,n){"boolean"==typeof e?(r(t)&&(i=t,t=void 0),t=t||""):(t=e,i=t,e=!1,r(t)&&(i=t,t=void 0),t=t||"");var o=nt(),s=e?o._week.dow:0;if(null!=i)return en(t,(i+s)%7,n,"day");var a,d=[];for(a=0;a<7;a++)d[a]=en(t,(a+s)%7,n,"day");return d}function on(e,t){return tn(e,t,"months")}function sn(e,t){return tn(e,t,"monthsShort")}function rn(e,t,i){return nn(e,t,i,"weekdays")}function an(e,t,i){return nn(e,t,i,"weekdaysShort")}function dn(e,t,i){return nn(e,t,i,"weekdaysMin")}function hn(){var e=this._data;return this._milliseconds=ys(this._milliseconds),this._days=ys(this._days),this._months=ys(this._months),e.milliseconds=ys(e.milliseconds),e.seconds=ys(e.seconds),e.minutes=ys(e.minutes),e.hours=ys(e.hours),e.months=ys(e.months),e.years=ys(e.years),this}function ln(e,t,i,n){var o=$t(t,i);return e._milliseconds+=n*o._milliseconds,e._days+=n*o._days,e._months+=n*o._months,e._bubble()}function un(e,t){return ln(this,e,t,1)}function cn(e,t){return ln(this,e,t,-1)}function fn(e){return e<0?Math.floor(e):Math.ceil(e)}function pn(){var e,t,i,n,o,s=this._milliseconds,r=this._days,a=this._months,d=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*fn(gn(a)+r),r=0,a=0),d.milliseconds=s%1e3,e=b(s/1e3),d.seconds=e%60,t=b(e/60),d.minutes=t%60,i=b(t/60),d.hours=i%24,r+=b(i/24),o=b(vn(r)),a+=o,r-=fn(gn(o)),n=b(a/12),a%=12,d.days=r,d.months=a,d.years=n,this}function vn(e){return 4800*e/146097}function gn(e){return 146097*e/4800}function yn(e){if(!this.isValid())return NaN;var t,i,n=this._milliseconds;if("month"===(e=z(e))||"quarter"===e||"year"===e)switch(t=this._days+n/864e5,i=this._months+vn(t),e){case"month":return i;case"quarter":return i/3;case"year":return i/12}else switch(t=this._days+Math.round(gn(this._months)),e){case"week":return t/7+n/6048e5;case"day":return t+n/864e5;case"hour":return 24*t+n/36e5;case"minute":return 1440*t+n/6e4;case"second":return 86400*t+n/1e3;case"millisecond":return Math.floor(864e5*t)+n;default:throw new Error("Unknown unit "+e)}}function mn(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN}function bn(e){return function(){return this.as(e)}}function _n(){return $t(this)}function wn(e){return e=z(e),this.isValid()?this[e+"s"]():NaN}function kn(e){return function(){return this.isValid()?this._data[e]:NaN}}function xn(){return b(this.days()/7)}function On(e,t,i,n,o){return o.relativeTime(t||1,!!i,e,n)}function Mn(e,t,i){var n=$t(e).abs(),o=Ns(n.as("s")),s=Ns(n.as("m")),r=Ns(n.as("h")),a=Ns(n.as("d")),d=Ns(n.as("M")),h=Ns(n.as("y")),l=o<=Bs.ss&&["s",o]||o0,l[4]=i,On.apply(null,l)}function En(e){return void 0===e?Ns:"function"==typeof e&&(Ns=e,!0)}function Sn(e,t){return void 0!==Bs[e]&&(void 0===t?Bs[e]:(Bs[e]=t,"s"===e&&(Bs.ss=t-1),!0))}function Dn(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),i=Mn(this,!e,t);return e&&(i=t.pastFuture(+this,i)),t.postformat(i)}function Cn(e){return(e>0)-(e<0)||+e}function Tn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,i,n=zs(this._milliseconds)/1e3,o=zs(this._days),s=zs(this._months);e=b(n/60),t=b(e/60),n%=60,e%=60,i=b(s/12),s%=12;var r=i,a=s,d=o,h=t,l=e,u=n?n.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var f=c<0?"-":"",p=Cn(this._months)!==Cn(c)?"-":"",v=Cn(this._days)!==Cn(c)?"-":"",g=Cn(this._milliseconds)!==Cn(c)?"-":"";return f+"P"+(r?p+r+"Y":"")+(a?p+a+"M":"")+(d?v+d+"D":"")+(h||l||u?"T":"")+(h?g+h+"H":"")+(l?g+l+"M":"")+(u?g+u+"S":"")}var Pn,In;In=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),i=t.length>>>0,n=0;n68?1900:2e3)};var ko,xo=ie("FullYear",!0);ko=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;tthis?this:e:v()}),Qo=function(){return Date.now?Date.now():+new Date},Jo=["year","quarter","month","week","day","hour","minute","second","millisecond"];zt("Z",":"),zt("ZZ",""),q("Z",ao),q("ZZ",ao),Z(["Z","ZZ"],function(e,t,i){i._useUTC=!0,i._tzm=Rt(ao,e)});var es=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var ts=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,is=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;$t.fn=Ft.prototype,$t.invalid=It;var ns=ti(1,"add"),os=ti(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ss=x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)}),rs=1e3,as=60*rs,ds=60*as,hs=3506328*ds;H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),ji("gggg","weekYear"),ji("ggggg","weekYear"),ji("GGGG","isoWeekYear"),ji("GGGGG","isoWeekYear"),B("weekYear","gg"),B("isoWeekYear","GG"),A("weekYear",1),A("isoWeekYear",1),q("G",so),q("g",so),q("GG",Qn,Xn),q("gg",Qn,Xn),q("GGGG",io,Zn),q("gggg",io,Zn),q("GGGGG",no,$n),q("ggggg",no,$n),$(["gggg","ggggg","GGGG","GGGGG"],function(e,t,i,n){t[n.substr(0,2)]=_(e)}),$(["gg","GG"],function(e,i,n,o){i[o]=t.parseTwoDigitYear(e)}),H("Q",0,"Qo","quarter"),B("quarter","Q"),A("quarter",7),q("Q",Gn),Z("Q",function(e,t){t[po]=3*(_(e)-1)}),H("D",["DD",2],"Do","date"),B("date","D"),A("date",9),q("D",Qn),q("DD",Qn,Xn),q("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),Z(["D","DD"],vo),Z("Do",function(e,t){t[vo]=_(e.match(Qn)[0])});var ls=ie("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),B("dayOfYear","DDD"),A("dayOfYear",4),q("DDD",to),q("DDDD",Kn),Z(["DDD","DDDD"],function(e,t,i){i._dayOfYear=_(e)}),H("m",["mm",2],0,"minute"),B("minute","m"),A("minute",14),q("m",Qn),q("mm",Qn,Xn),Z(["m","mm"],yo);var us=ie("Minutes",!1);H("s",["ss",2],0,"second"),B("second","s"),A("second",15),q("s",Qn),q("ss",Qn,Xn),Z(["s","ss"],mo);var cs=ie("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),B("millisecond","ms"),A("millisecond",16),q("S",to,Gn),q("SS",to,Xn),q("SSS",to,Kn);var fs;for(fs="SSSS";fs.length<=9;fs+="S")q(fs,oo);for(fs="S";fs.length<=9;fs+="S")Z(fs,Xi);var ps=ie("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var vs=y.prototype;vs.add=ns,vs.calendar=oi,vs.clone=si,vs.diff=ci,vs.endOf=Di,vs.format=yi,vs.from=mi,vs.fromNow=bi,vs.to=_i,vs.toNow=wi,vs.get=se,vs.invalidAt=Ri,vs.isAfter=ri,vs.isBefore=ai,vs.isBetween=di,vs.isSame=hi,vs.isSameOrAfter=li,vs.isSameOrBefore=ui,vs.isValid=Bi,vs.lang=ss,vs.locale=ki,vs.localeData=xi,vs.max=$o,vs.min=Zo,vs.parsingFlags=zi,vs.set=re,vs.startOf=Si,vs.subtract=os,vs.toArray=Ii,vs.toObject=Fi,vs.toDate=Pi,vs.toISOString=vi,vs.inspect=gi,vs.toJSON=Ni,vs.toString=pi,vs.unix=Ti,vs.valueOf=Ci,vs.creationData=Ai,vs.year=xo,vs.isLeapYear=te,vs.weekYear=Li,vs.isoWeekYear=Hi,vs.quarter=vs.quarters=qi,vs.month=pe,vs.daysInMonth=ve,vs.week=vs.weeks=De,vs.isoWeek=vs.isoWeeks=Ce,vs.weeksInYear=Yi,vs.isoWeeksInYear=Wi,vs.date=ls,vs.day=vs.days=Ae,vs.weekday=je,vs.isoWeekday=Le,vs.dayOfYear=Gi,vs.hour=vs.hours=Ao,vs.minute=vs.minutes=us,vs.second=vs.seconds=cs,vs.millisecond=vs.milliseconds=ps,vs.utcOffset=Lt,vs.utc=Wt,vs.local=Yt,vs.parseZone=Vt,vs.hasAlignedHourOffset=Ut,vs.isDST=qt,vs.isLocal=Xt,vs.isUtcOffset=Kt,vs.isUtc=Zt,vs.isUTC=Zt,vs.zoneAbbr=Ki,vs.zoneName=Zi,vs.dates=x("dates accessor is deprecated. Use date instead.",ls),vs.months=x("months accessor is deprecated. Use month instead",pe),vs.years=x("years accessor is deprecated. Use year instead",xo),vs.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ht),vs.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Gt);var gs=D.prototype;gs.calendar=C,gs.longDateFormat=T,gs.invalidDate=P,gs.ordinal=I,gs.preparse=Ji,gs.postformat=Ji,gs.relativeTime=F,gs.pastFuture=N,gs.set=E,gs.months=he,gs.monthsShort=le,gs.monthsParse=ce,gs.monthsRegex=ye,gs.monthsShortRegex=ge,gs.week=Me,gs.firstDayOfYear=Se,gs.firstDayOfWeek=Ee,gs.weekdays=Fe,gs.weekdaysMin=Be,gs.weekdaysShort=Ne,gs.weekdaysParse=Re,gs.weekdaysRegex=He,gs.weekdaysShortRegex=We,gs.weekdaysMinRegex=Ye,gs.isPM=Ke,gs.meridiem=Ze,et("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===_(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),t.lang=x("moment.lang is deprecated. Use moment.locale instead.",et),t.langData=x("moment.langData is deprecated. Use moment.localeData instead.",nt);var ys=Math.abs,ms=bn("ms"),bs=bn("s"),_s=bn("m"),ws=bn("h"),ks=bn("d"),xs=bn("w"),Os=bn("M"),Ms=bn("Q"),Es=bn("y"),Ss=kn("milliseconds"),Ds=kn("seconds"),Cs=kn("minutes"),Ts=kn("hours"),Ps=kn("days"),Is=kn("months"),Fs=kn("years"),Ns=Math.round,Bs={ss:44,s:45,m:45,h:22,d:26,M:11},zs=Math.abs,Rs=Ft.prototype;return Rs.isValid=Pt,Rs.abs=hn,Rs.add=un,Rs.subtract=cn,Rs.as=yn,Rs.asMilliseconds=ms,Rs.asSeconds=bs,Rs.asMinutes=_s,Rs.asHours=ws,Rs.asDays=ks,Rs.asWeeks=xs,Rs.asMonths=Os,Rs.asQuarters=Ms,Rs.asYears=Es,Rs.valueOf=mn,Rs._bubble=pn,Rs.clone=_n,Rs.get=wn,Rs.milliseconds=Ss,Rs.seconds=Ds,Rs.minutes=Cs,Rs.hours=Ts,Rs.days=Ps,Rs.weeks=xn,Rs.months=Is,Rs.years=Fs,Rs.humanize=Dn,Rs.toISOString=Tn,Rs.toString=Tn,Rs.toJSON=Tn,Rs.locale=ki,Rs.localeData=xi,Rs.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Tn),Rs.lang=ss,H("X",0,0,"unix"),H("x",0,0,"valueOf"),q("x",so),q("X",ho),Z("X",function(e,t,i){i._d=new Date(1e3*parseFloat(e,10))}),Z("x",function(e,t,i){i._d=new Date(_(e))}),t.version="2.24.0",function(e){Pn=e}(Et),t.fn=vs,t.min=Dt,t.max=Ct,t.now=Qo,t.utc=u,t.unix=$i,t.months=on,t.isDate=a,t.locale=et,t.invalid=v,t.duration=$t,t.isMoment=m,t.weekdays=rn,t.parseZone=Qi,t.localeData=nt,t.isDuration=Nt,t.monthsShort=sn,t.weekdaysMin=dn,t.defineLocale=tt,t.updateLocale=it,t.locales=ot,t.weekdaysShort=an,t.normalizeUnits=z,t.relativeTimeRounding=En,t.relativeTimeThreshold=Sn,t.calendarFormat=ni,t.prototype=vs,t.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},t})}).call(t,i(115)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){function i(e){throw new Error("Cannot find module '"+e+"'.")}i.keys=function(){return[]},i.resolve=i,e.exports=i,i.id=116},function(e,t,i){(function(t){function i(e,t,i){var n=t&&i||0,o=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,function(e){o<16&&(t[n+o++]=u[e])});o<16;)t[n+o++]=0;return t}function n(e,t){var i=t||0,n=l;return n[e[i++]]+n[e[i++]]+n[e[i++]]+n[e[i++]]+"-"+n[e[i++]]+n[e[i++]]+"-"+n[e[i++]]+n[e[i++]]+"-"+n[e[i++]]+n[e[i++]]+"-"+n[e[i++]]+n[e[i++]]+n[e[i++]]+n[e[i++]]+n[e[i++]]+n[e[i++]]}function o(e,t,i){var o=t&&i||0,s=t||[];e=e||{};var r=void 0!==e.clockseq?e.clockseq:v,a=void 0!==e.msecs?e.msecs:(new Date).getTime(),d=void 0!==e.nsecs?e.nsecs:y+1,h=a-g+(d-y)/1e4;if(h<0&&void 0===e.clockseq&&(r=r+1&16383),(h<0||a>g)&&void 0===e.nsecs&&(d=0),d>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");g=a,y=d,v=r,a+=122192928e5;var l=(1e4*(268435455&a)+d)%4294967296;s[o++]=l>>>24&255,s[o++]=l>>>16&255,s[o++]=l>>>8&255,s[o++]=255&l;var u=a/4294967296*1e4&268435455;s[o++]=u>>>8&255,s[o++]=255&u,s[o++]=u>>>24&15|16,s[o++]=u>>>16&255,s[o++]=r>>>8|128,s[o++]=255&r;for(var c=e.node||p,f=0;f<6;f++)s[o+f]=c[f];return t||n(s)}function s(e,t,i){var o=t&&i||0;"string"==typeof e&&(t="binary"==e?new Array(16):null,e=null),e=e||{};var s=e.random||(e.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;a++)t[o+a]=s[a];return t||n(s)}var r,a="undefined"!=typeof window?window:void 0!==t?t:null;if(a&&a.crypto&&crypto.getRandomValues){var d=new Uint8Array(16);r=function(){return crypto.getRandomValues(d),d}}if(!r){var h=new Array(16);r=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),h[t]=e>>>((3&t)<<3)&255;return h}}for(var l=[],u={},c=0;c<256;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var f=r(),p=[1|f[0],f[1],f[2],f[3],f[4],f[5]],v=16383&(f[6]<<8|f[7]),g=0,y=0,m=s;m.v1=o,m.v4=s,m.parse=i,m.unparse=n,e.exports=m}).call(t,i(118))},function(e,t){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(i=window)}e.exports=i},function(e,t,i){t.prepareElements=function(e){for(var t in e)e.hasOwnProperty(t)&&(e[t].redundant=e[t].used,e[t].used=[])},t.cleanupElements=function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t].redundant){for(var i=0;i0?(n=t[e].redundant[0],t[e].redundant.shift()):(n=document.createElementNS("http://www.w3.org/2000/svg",e),i.appendChild(n)):(n=document.createElementNS("http://www.w3.org/2000/svg",e),t[e]={used:[],redundant:[]},i.appendChild(n)),t[e].used.push(n),n},t.getDOMElement=function(e,t,i,n){var o;return t.hasOwnProperty(e)?t[e].redundant.length>0?(o=t[e].redundant[0],t[e].redundant.shift()):(o=document.createElement(e),void 0!==n?i.insertBefore(o,n):i.appendChild(o)):(o=document.createElement(e),t[e]={used:[],redundant:[]},void 0!==n?i.insertBefore(o,n):i.appendChild(o)),t[e].used.push(o),o},t.drawPoint=function(e,i,n,o,s,r){var a;if("circle"==n.style?(a=t.getSVGElement("circle",o,s),a.setAttributeNS(null,"cx",e),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*n.size)):(a=t.getSVGElement("rect",o,s),a.setAttributeNS(null,"x",e-.5*n.size),a.setAttributeNS(null,"y",i-.5*n.size),a.setAttributeNS(null,"width",n.size),a.setAttributeNS(null,"height",n.size)),void 0!==n.styles&&a.setAttributeNS(null,"style",n.styles),a.setAttributeNS(null,"class",n.className+" vis-point"),r){var d=t.getSVGElement("text",o,s);r.xOffset&&(e+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(d.textContent=r.content),r.className&&d.setAttributeNS(null,"class",r.className+" vis-label"),d.setAttributeNS(null,"x",e),d.setAttributeNS(null,"y",i)}return a},t.drawBar=function(e,i,n,o,s,r,a,d){if(0!=o){o<0&&(o*=-1,i-=o);var h=t.getSVGElement("rect",r,a);h.setAttributeNS(null,"x",e-.5*n),h.setAttributeNS(null,"y",i),h.setAttributeNS(null,"width",n),h.setAttributeNS(null,"height",o),h.setAttributeNS(null,"class",s),d&&h.setAttributeNS(null,"style",d)}}},function(e,t,i){var n=i(6),o=n.JSON||(n.JSON={stringify:JSON.stringify});e.exports=function(e){return o.stringify.apply(o,arguments)}},function(e,t,i){function n(e,t,i){var o=this;if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:h,clickToUse:!1},s.extend(this.options,this.defaultOptions),this.body={container:e,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}},this.bindEventListeners(),this.images=new l(function(){return o.body.emitter.emit("_requestRedraw")}),this.groups=new u,this.canvas=new y(this.body),this.selectionHandler=new _(this.body,this.canvas),this.interactionHandler=new b(this.body,this.canvas,this.selectionHandler),this.view=new m(this.body,this.canvas),this.renderer=new g(this.body,this.canvas),this.physics=new p(this.body),this.layoutEngine=new w(this.body),this.clustering=new v(this.body),this.manipulation=new k(this.body,this.canvas,this.selectionHandler),this.nodesHandler=new c(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new f(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new T(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(t)}i(122);var o=i(73),s=i(5),r=i(74),a=i(75),d=i(123),h=i(126),l=i(76).default,u=i(131).default,c=i(132).default,f=i(163).default,p=i(169).default,v=i(176).default,g=i(178).default,y=i(179).default,m=i(180).default,b=i(181).default,_=i(184).default,w=i(185).default,k=i(187).default,x=i(188).default,O=i(54).default,M=i(54),E=M.printStyle,S=i(82),D=S.allOptions,C=S.configureOptions,T=i(190).default;o(n.prototype),n.prototype.setOptions=function(e){var t=this;if(void 0!==e){!0===O.validate(e,D)&&console.log("%cErrors have been found in the supplied options object.",E);var i=["locale","locales","clickToUse"];if(s.selectiveDeepExtend(i,this.options,e),e=this.layoutEngine.setOptions(e.layout,e),this.canvas.setOptions(e),this.groups.setOptions(e.groups),this.nodesHandler.setOptions(e.nodes),this.edgesHandler.setOptions(e.edges),this.physics.setOptions(e.physics),this.manipulation.setOptions(e.manipulation,e,this.options),this.interactionHandler.setOptions(e.interaction),this.renderer.setOptions(e.interaction),this.selectionHandler.setOptions(e.interaction),void 0!==e.groups&&this.body.emitter.emit("refreshNodes"),"configure"in e&&(this.configurator||(this.configurator=new x(this,this.body.container,C,this.canvas.pixelRatio)),this.configurator.setOptions(e.configure)),this.configurator&&!0===this.configurator.options.enabled){var n={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};s.deepExtend(n.nodes,this.nodesHandler.options),s.deepExtend(n.edges,this.edgesHandler.options),s.deepExtend(n.layout,this.layoutEngine.options),s.deepExtend(n.interaction,this.selectionHandler.options),s.deepExtend(n.interaction,this.renderer.options),s.deepExtend(n.interaction,this.interactionHandler.options),s.deepExtend(n.manipulation,this.manipulation.options),s.deepExtend(n.physics,this.physics.options),s.deepExtend(n.global,this.canvas.options),s.deepExtend(n.global,this.options),this.configurator.setModuleOptions(n)}void 0!==e.clickToUse?!0===e.clickToUse?void 0===this.activator&&(this.activator=new d(this.canvas.frame),this.activator.on("change",function(){t.body.emitter.emit("activate")})):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},n.prototype._updateVisibleIndices=function(){var e=this.body.nodes,t=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in e)e.hasOwnProperty(i)&&(this.clustering._isClusteredNode(i)||!1!==e[i].options.hidden||this.body.nodeIndices.push(e[i].id));for(var n in t)if(t.hasOwnProperty(n)){var o=t[n],s=e[o.fromId],r=e[o.toId],a=void 0!==s&&void 0!==r,d=!this.clustering._isClusteredEdge(n)&&!1===o.options.hidden&&a&&!1===s.options.hidden&&!1===r.options.hidden;d&&this.body.edgeIndices.push(o.id)}},n.prototype.bindEventListeners=function(){var e=this;this.body.emitter.on("_dataChanged",function(){e.edgesHandler._updateState(),e.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){e.clustering._updateState(),e._updateVisibleIndices(),e._updateValueRange(e.body.nodes),e._updateValueRange(e.body.edges),e.body.emitter.emit("startSimulation"),e.body.emitter.emit("_requestRedraw")})},n.prototype.setData=function(e){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),e&&e.dot&&(e.nodes||e.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(e&&e.options),e&&e.dot){console.log("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var t=r.DOTToGraph(e.dot);return void this.setData(t)}if(e&&e.gephi){console.log("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=a.parseGephi(e.gephi);return void this.setData(i)}this.nodesHandler.setData(e&&e.nodes,!0),this.edgesHandler.setData(e&&e.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},n.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&delete this.body.nodes[e];for(var t in this.body.edges)this.body.edges.hasOwnProperty(t)&&delete this.body.edges[t];s.recursiveDOMDelete(this.body.container)},n.prototype._updateValueRange=function(e){var t,i=void 0,n=void 0,o=0;for(t in e)if(e.hasOwnProperty(t)){var s=e[t].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),n=void 0===n?s:Math.max(s,n),o+=s)}if(void 0!==i&&void 0!==n)for(t in e)e.hasOwnProperty(t)&&e[t].setValueRange(i,n,o)},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},n.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},n.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},n.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},n.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},n.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},n.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},n.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},n.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},n.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},n.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},n.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},n.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},n.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},n.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},n.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},n.prototype.editNodeMode=function(){return console.log("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},n.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},n.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},n.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},n.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},n.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},n.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},n.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},n.prototype.getConnectedNodes=function(e){return void 0!==this.body.nodes[e]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},n.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},n.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},n.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},n.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},n.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},n.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},n.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)},n.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)},n.prototype.getNodeAt=function(){var e=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==e&&void 0!==e.id?e.id:e},n.prototype.getEdgeAt=function(){var e=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==e&&void 0!==e.id?e.id:e},n.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},n.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},n.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.redraw()},n.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},n.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},n.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},n.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},n.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},n.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},n.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},n.prototype.getOptionsFromConfigurator=function(){var e={};return this.configurator&&(e=this.configurator.getOptions.apply(this.configurator)),e},e.exports=n},function(e,t,i){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(e,t,i){this.beginPath(),this.arc(e,t,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(e,t,i){this.beginPath(),this.rect(e-i,t-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(e,t,i){this.beginPath(),i*=1.15,t+=.275*i;var n=2*i,o=n/2,s=Math.sqrt(3)/6*n,r=Math.sqrt(n*n-o*o);this.moveTo(e,t-(r-s)),this.lineTo(e+o,t+s),this.lineTo(e-o,t+s),this.lineTo(e,t-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(e,t,i){this.beginPath(),i*=1.15,t-=.275*i;var n=2*i,o=n/2,s=Math.sqrt(3)/6*n,r=Math.sqrt(n*n-o*o);this.moveTo(e,t+(r-s)),this.lineTo(e+o,t-s),this.lineTo(e-o,t-s),this.lineTo(e,t+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(e,t,i){this.beginPath(),i*=.82,t+=.1*i;for(var n=0;n<10;n++){var o=n%2==0?1.3*i:.5*i;this.lineTo(e+o*Math.sin(2*n*Math.PI/10),t-o*Math.cos(2*n*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(e,t,i){this.beginPath(),this.lineTo(e,t+i),this.lineTo(e+i,t),this.lineTo(e,t-i),this.lineTo(e-i,t),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(e,t,i,n,o){var s=Math.PI/180;i-2*o<0&&(o=i/2),n-2*o<0&&(o=n/2),this.beginPath(),this.moveTo(e+o,t),this.lineTo(e+i-o,t),this.arc(e+i-o,t+o,o,270*s,360*s,!1),this.lineTo(e+i,t+n-o),this.arc(e+i-o,t+n-o,o,0,90*s,!1),this.lineTo(e+o,t+n),this.arc(e+o,t+n-o,o,90*s,180*s,!1),this.lineTo(e,t+o),this.arc(e+o,t+o,o,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse_vis=function(e,t,i,n){var o=i/2*.5522848,s=n/2*.5522848,r=e+i,a=t+n,d=e+i/2,h=t+n/2;this.beginPath(),this.moveTo(e,h),this.bezierCurveTo(e,h-s,d-o,t,d,t),this.bezierCurveTo(d+o,t,r,h-s,r,h),this.bezierCurveTo(r,h+s,d+o,a,d,a),this.bezierCurveTo(d-o,a,e,h+s,e,h),this.closePath()},CanvasRenderingContext2D.prototype.database=function(e,t,i,n){var o=i,s=n*(1/3),r=o/2*.5522848,a=s/2*.5522848,d=e+o,h=t+s,l=e+o/2,u=t+s/2,c=t+(n-s/2),f=t+n;this.beginPath(),this.moveTo(d,u),this.bezierCurveTo(d,u+a,l+r,h,l,h),this.bezierCurveTo(l-r,h,e,u+a,e,u),this.bezierCurveTo(e,u-a,l-r,t,l,t),this.bezierCurveTo(l+r,t,d,u-a,d,u),this.lineTo(d,c),this.bezierCurveTo(d,c+a,l+r,f,l,f),this.bezierCurveTo(l-r,f,e,c+a,e,c),this.lineTo(e,u)},CanvasRenderingContext2D.prototype.dashedLine=function(e,t,i,n,o){this.beginPath(),this.moveTo(e,t);for(var s=o.length,r=i-e,a=n-t,d=a/r,h=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,f=o[0];h>=.1;)f=o[l++%s],f>h&&(f=h),c=Math.sqrt(f*f/(1+d*d)),c=r<0?-c:c,e+=c,t+=d*c,!0===u?this.lineTo(e,t):this.moveTo(e,t),h-=f,u=!u},CanvasRenderingContext2D.prototype.hexagon=function(e,t,i){this.beginPath();var n=2*Math.PI/6;this.moveTo(e+i,t);for(var o=1;o<6;o++)this.lineTo(e+i*Math.cos(n*o),t+i*Math.sin(n*o));this.closePath()})},function(e,t,i){function n(e){this.active=!1,this.dom={container:e},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var t=this;["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach(function(e){t.hammer.on(e,function(e){e.stopPropagation()})}),document&&document.body&&(this.onClick=function(i){o(i.target,e)||t.deactivate()},document.body.addEventListener("click",this.onClick)),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=s(),this.escListener=this.deactivate.bind(this)}function o(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}var s=i(52),r=i(73),a=i(23),d=i(5);r(n.prototype),n.current=null,n.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.onClick&&document.body.removeEventListener("click",this.onClick),this.hammer.destroy(),this.hammer=null},n.prototype.activate=function(){n.current&&n.current.deactivate(),n.current=this,this.active=!0,this.dom.overlay.style.display="none",d.addClassName(this.dom.container,"vis-active"),this.emit("change"),this.emit("activate"),this.keycharm.bind("esc",this.escListener)},n.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display="",d.removeClassName(this.dom.container,"vis-active"),this.keycharm.unbind("esc",this.escListener),this.emit("change"),this.emit("deactivate")},n.prototype._onTapOverlay=function(e){this.activate(),e.stopPropagation()},e.exports=n},function(e,t,i){var n,o,s;!function(i){o=[],n=i,void 0!==(s="function"==typeof n?n.apply(t,o):n)&&(e.exports=s)}(function(){var e=null;return function t(i,n){function o(e){return e.match(/[^ ]+/g)}function s(t){if("hammer.input"!==t.type){if(t.srcEvent._handled||(t.srcEvent._handled={}),t.srcEvent._handled[t.type])return;t.srcEvent._handled[t.type]=!0}var i=!1;t.stopPropagation=function(){i=!0};var n=t.srcEvent.stopPropagation.bind(t.srcEvent);"function"==typeof n&&(t.srcEvent.stopPropagation=function(){n(),t.stopPropagation()}),t.firstTarget=e;for(var o=e;o&&!i;){var s=o.hammer;if(s)for(var r,a=0;a0?h._handlers[e]=n:(i.off(e,s),delete h._handlers[e]))}),h},h.emit=function(t,n){e=n.target,i.emit(t,n)},h.destroy=function(){var e=i.element.hammer,t=e.indexOf(h);-1!==t&&e.splice(t,1),e.length||delete i.element.hammer,h._handlers={},i.destroy()},h}})},function(e,t,i){var n;/*! Hammer.JS - v2.0.7 - 2016-04-22 * http://hammerjs.github.io/ * * Copyright (c) 2016 Jorik Tangelder; * Licensed under the MIT license */ -!function(o,s,r,a){function d(e,t,i){return setTimeout(f(e,i),t)}function h(e,t,i){return!!Array.isArray(e)&&(l(e,i[t],i),!0)}function l(e,t,i){var n;if(e)if(e.forEach)e.forEach(t,i);else if(e.length!==a)for(n=0;n\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=o.console&&(o.console.warn||o.console.log);return s&&s.call(o.console,n,i),e.apply(this,arguments)}}function c(e,t,i){var n,o=t.prototype;n=e.prototype=Object.create(o),n.constructor=e,n._super=o,i&&pe(n,i)}function f(e,t){return function(){return e.apply(t,arguments)}}function p(e,t){return typeof e==ye?e.apply(t?t[0]||a:a,t):e}function v(e,t){return e===a?t:e}function g(e,t,i){l(_(t),function(t){e.addEventListener(t,i,!1)})}function y(e,t,i){l(_(t),function(t){e.removeEventListener(t,i,!1)})}function m(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function b(e,t){return e.indexOf(t)>-1}function _(e){return e.trim().split(/\s+/g)}function w(e,t,i){if(e.indexOf&&!i)return e.indexOf(t);for(var n=0;ni[t]}):n.sort()),n}function O(e,t){for(var i,n,o=t[0].toUpperCase()+t.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=F(t):1===o&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,d=t.center=N(n);t.timeStamp=_e(),t.deltaTime=t.timeStamp-s.timeStamp,t.angle=A(a,d),t.distance=R(a,d),P(i,t),t.offsetDirection=z(t.deltaX,t.deltaY);var h=B(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=h.x,t.overallVelocityY=h.y,t.overallVelocity=be(h.x)>be(h.y)?h.x:h.y,t.scale=r?L(r.pointers,n):1,t.rotation=r?j(r.pointers,n):0,t.maxPointers=i.prevInput?t.pointers.length>i.prevInput.maxPointers?t.pointers.length:i.prevInput.maxPointers:t.pointers.length,I(i,t);var l=e.element;m(t.srcEvent.target,l)&&(l=t.srcEvent.target),t.target=l}function P(e,t){var i=t.center,n=e.offsetDelta||{},o=e.prevDelta||{},s=e.prevInput||{};t.eventType!==Ce&&s.eventType!==Pe||(o=e.prevDelta={x:s.deltaX||0,y:s.deltaY||0},n=e.offsetDelta={x:i.x,y:i.y}),t.deltaX=o.x+(i.x-n.x),t.deltaY=o.y+(i.y-n.y)}function I(e,t){var i,n,o,s,r=e.lastInterval||t,d=t.timeStamp-r.timeStamp;if(t.eventType!=Ie&&(d>De||r.velocity===a)){var h=t.deltaX-r.deltaX,l=t.deltaY-r.deltaY,u=B(d,h,l);n=u.x,o=u.y,i=be(u.x)>be(u.y)?u.x:u.y,s=z(h,l),e.lastInterval=t}else i=r.velocity,n=r.velocityX,o=r.velocityY,s=r.direction;t.velocity=i,t.velocityX=n,t.velocityY=o,t.direction=s}function F(e){for(var t=[],i=0;i=be(t)?e<0?Ne:Be:t<0?ze:Re}function R(e,t,i){i||(i=He);var n=t[i[0]]-e[i[0]],o=t[i[1]]-e[i[1]];return Math.sqrt(n*n+o*o)}function A(e,t,i){i||(i=He);var n=t[i[0]]-e[i[0]],o=t[i[1]]-e[i[1]];return 180*Math.atan2(o,n)/Math.PI}function j(e,t){return A(t[1],t[0],We)+A(e[1],e[0],We)}function L(e,t){return R(t[0],t[1],We)/R(e[0],e[1],We)}function H(){this.evEl=Ve,this.evWin=Ue,this.pressed=!1,S.apply(this,arguments)}function W(){this.evEl=Xe,this.evWin=Ke,S.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=$e,this.evWin=Qe,this.started=!1,S.apply(this,arguments)}function V(e,t){var i=k(e.touches),n=k(e.changedTouches);return t&(Pe|Ie)&&(i=x(i.concat(n),"identifier",!0)),[i,n]}function U(){this.evTarget=et,this.targetIds={},S.apply(this,arguments)}function q(e,t){var i=k(e.touches),n=this.targetIds;if(t&(Ce|Te)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var o,s,r=k(e.changedTouches),a=[],d=this.target;if(s=i.filter(function(e){return m(e.target,d)}),t===Ce)for(o=0;o-1&&n.splice(e,1)};setTimeout(o,tt)}}function Z(e){for(var t=e.srcEvent.clientX,i=e.srcEvent.clientY,n=0;n-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){function t(t){i.manager.emit(t,e)}var i=this,n=this.state;n=pt&&t(i.options.event+ee(n))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=32},canEmit:function(){for(var e=0;et.threshold&&o&t.direction},attrTest:function(e){return ne.prototype.attrTest.call(this,e)&&(this.state&ct||!(this.state&ct)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=te(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),c(se,ne,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[at]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||this.state&ct)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),c(re,J,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[st]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,n=e.distancet.time;if(this._input=e,!n||!i||e.eventType&(Pe|Ie)&&!o)this.reset();else if(e.eventType&Ce)this.reset(),this._timer=d(function(){this.state=vt,this.tryEmit()},t.time,this);else if(e.eventType&Pe)return vt;return 32},reset:function(){clearTimeout(this._timer)},emit:function(e){this.state===vt&&(e&&e.eventType&Pe?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=_e(),this.manager.emit(this.options.event,this._input)))}}),c(ae,ne,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[at]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||this.state&ct)}}),c(de,ne,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ae|je,pointers:1},getTouchAction:function(){return oe.prototype.getTouchAction.call(this)},attrTest:function(e){var t,i=this.options.direction;return i&(Ae|je)?t=e.overallVelocity:i&Ae?t=e.overallVelocityX:i&je&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&i&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&be(t)>this.options.velocity&&e.eventType&Pe},emit:function(e){var t=te(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),c(he,J,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[rt]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,n=e.distance2){t*=.5;for(var r=0;t>2&&r=this.NUM_ITERATIONS&&(r=this.NUM_ITERATIONS-1);var a=this.coordinates[r];e.drawImage(this.canvas,a[0],a[1],a[2],a[3],i,n,o,s)}else e.drawImage(this.image,i,n,o,s)}}]),e}();t.default=d},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(5),h=function(){function e(){(0,s.default)(this,e),this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},d.extend(this.options,this.defaultOptions)}return(0,a.default)(e,[{key:"setOptions",value:function(e){var t=["useDefaultGroups"];if(void 0!==e)for(var i in e)if(e.hasOwnProperty(i)&&-1===t.indexOf(i)){var n=e[i];this.add(i,n)}}},{key:"clear",value:function(){this.groups={},this.groupsArray=[]}},{key:"get",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.groups[e];if(void 0===i&&t)if(!1===this.options.useDefaultGroups&&this.groupsArray.length>0){var n=this.groupIndex%this.groupsArray.length;this.groupIndex++,i={},i.color=this.groups[this.groupsArray[n]],this.groups[e]=i}else{var o=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,i={},i.color=this.defaultGroups[o],this.groups[e]=i}return i}},{key:"add",value:function(e,t){return this.groups[e]=t,this.groupsArray.push(e),t}}]),e}();t.default=h},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(5),h=i(32),l=i(51),u=i(33).default,c=function(){function e(t,i,n,o){var r=this;if((0,s.default)(this,e),this.body=t,this.images=i,this.groups=n,this.layoutEngine=o,this.body.functions.createNode=this.create.bind(this),this.nodesListeners={add:function(e,t){r.add(t.items)},update:function(e,t){r.update(t.items,t.data,t.oldData)},remove:function(e,t){r.remove(t.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(e,t,i,n){if(t===e)return.5;var o=1/(t-e);return Math.max(0,(n-e)*o)}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=d.bridgeObject(this.defaultOptions),this.bindEventListeners()}return(0,a.default)(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("refreshNodes",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){d.forEach(e.nodesListeners,function(t,i){e.body.data.nodes&&e.body.data.nodes.off(i,t)}),delete e.body.functions.createNode,delete e.nodesListeners.add,delete e.nodesListeners.update,delete e.nodesListeners.remove,delete e.nodesListeners})}},{key:"setOptions",value:function(e){if(void 0!==e){if(u.parseOptions(this.options,e),void 0!==e.shape)for(var t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&this.body.nodes[t].updateShape();if(void 0!==e.font)for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&(this.body.nodes[i].updateLabelModule(),this.body.nodes[i].needsRefresh());if(void 0!==e.size)for(var n in this.body.nodes)this.body.nodes.hasOwnProperty(n)&&this.body.nodes[n].needsRefresh();void 0===e.hidden&&void 0===e.physics||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.data.nodes;if(e instanceof h||e instanceof l)this.body.data.nodes=e;else if(Array.isArray(e))this.body.data.nodes=new h,this.body.data.nodes.add(e);else{if(e)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new h}if(i&&d.forEach(this.nodesListeners,function(e,t){i.off(t,e)}),this.body.nodes={},this.body.data.nodes){var n=this;d.forEach(this.nodesListeners,function(e,t){n.body.data.nodes.on(t,e)});var o=this.body.data.nodes.getIds();this.add(o,!0)}!1===t&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,n=[],o=0;o1&&void 0!==arguments[1]?arguments[1]:u)(e,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:"refresh",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];d.forEach(this.body.nodes,function(i,n){var o=e.body.data.nodes.get(n);void 0!==o&&(!0===t&&i.setOptions({x:null,y:null}),i.setOptions({fixed:!1}),i.setOptions(o))})}},{key:"getPositions",value:function(e){var t={};if(void 0!==e){if(!0===Array.isArray(e)){for(var i=0;i0)for(var r=0;r0)for(var f=0;f0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(t.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(e){" "===e&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=e&&(this.buffer+=e)};i.position/.test(e.substr(i.position,3))?i.mono||i.ital||!//.test(e.substr(i.position,3))?!i.mono&&//.test(e.substr(i.position,6))?(i.emitBlock(),i.mono=!0,i.modStack.unshift("mono"),i.position+=5):!i.mono&&"bold"===i.mod()&&/<\/b>/.test(e.substr(i.position,4))?(i.emitBlock(),i.bold=!1,i.modStack.shift(),i.position+=3):!i.mono&&"ital"===i.mod()&&/<\/i>/.test(e.substr(i.position,4))?(i.emitBlock(),i.ital=!1,i.modStack.shift(),i.position+=3):"mono"===i.mod()&&/<\/code>/.test(e.substr(i.position,7))?(i.emitBlock(),i.mono=!1,i.modStack.shift(),i.position+=6):i.add(n):(i.emitBlock(),i.ital=!0,i.modStack.unshift("ital"),i.position+=2):(i.emitBlock(),i.bold=!0,i.modStack.unshift("bold"),i.position+=2):/&/.test(n)?/</.test(e.substr(i.position,4))?(i.add("<"),i.position+=3):/&/.test(e.substr(i.position,5))?(i.add("&"),i.position+=4):i.add("&"):i.add(n),i.position++}return i.emitBlock(),t}},{key:"splitMarkdownBlocks",value:function(e){var t=[],i={bold:!1,ital:!1,mono:!1,beginable:!0,spacing:!1,position:0,buffer:"",modStack:[]};for(i.mod=function(){return 0===this.modStack.length?"normal":this.modStack[0]},i.modName=function(){return 0===this.modStack.length?"normal":"mono"===this.modStack[0]?"mono":i.bold&&i.ital?"boldital":i.bold?"bold":i.ital?"ital":void 0},i.emitBlock=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(t.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(e){" "===e&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=e&&(this.buffer+=e)};i.positionthis.parent.fontOptions.maxWdt}},{key:"getLongestFit",value:function(e){for(var t="",i=0;i1&&void 0!==arguments[1]?arguments[1]:"normal",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e=e.replace(/^( +)/g,"$1\r"),e=e.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");for(var n=e.split("\r");n.length>0;){var o=this.getLongestFit(n);if(0===o){var s=n[0],r=this.getLongestFitWord(s);this.lines.newLine(s.slice(0,r),t),n[0]=s.slice(r)}else{var a=o;" "===n[o-1]?o--:" "===n[a]&&a++;var d=n.slice(0,o).join("");o==n.length&&i?this.lines.append(d,t):this.lines.newLine(d,t),n=n.slice(a)}}}}]),e}();t.default=l},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(138),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=function(){function e(t){(0,a.default)(this,e),this.measureText=t,this.current=0,this.width=0,this.height=0,this.lines=[]}return(0,h.default)(e,[{key:"_add",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"normal";void 0===this.lines[e]&&(this.lines[e]={width:0,height:0,blocks:[]});var n=t;void 0!==t&&""!==t||(n=" ");var o=this.measureText(n,i),r=(0,s.default)({},o.values);r.text=t,r.width=o.width,r.mod=i,void 0!==t&&""!==t||(r.width=0),this.lines[e].blocks.push(r),this.lines[e].width+=r.width}},{key:"curWidth",value:function(){var e=this.lines[this.current];return void 0===e?0:e.width}},{key:"append",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,e,t)}},{key:"newLine",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,e,t),this.current++}},{key:"determineLineHeights",value:function(){for(var e=0;ee&&(e=n.width),t+=n.height}this.width=e,this.height=t}},{key:"removeEmptyBlocks",value:function(){for(var e=[],t=0;th;)for(var c,f=a(arguments[h++]),p=l?n(f).concat(l(f)):n(f),v=p.length,g=0;v>g;)u.call(f,c=p[g++])&&(i[c]=f[c]);return i}:d},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){(0,a.default)(this,t);var o=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return o._setMargins(n),o}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(t,i)){var n=this.getDimensionsFromLabel(e,t,i);this.width=n.width+this.margin.right+this.margin.left,this.height=n.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}},{key:"draw",value:function(e,t,i,n,o,s){this.resize(e,n,o),this.left=t-this.width/2,this.top=i-this.height/2,this.initContextForDraw(e,s),e.roundRect(this.left,this.top,this.width,this.height,s.borderRadius),this.performFill(e,s),this.updateBoundingBox(t,i,e,n,o),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o)}},{key:"updateBoundingBox",value:function(e,t,i,n,o){this._updateBoundingBox(e,t,i,n,o);var s=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(s)}},{key:"distanceToBorder",value:function(e,t){this.resize(e);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(t)),Math.abs(this.height/2/Math.sin(t)))+i}}]),t}(v.default);t.default=g},function(e,t,i){i(144),e.exports=i(6).Object.getPrototypeOf},function(e,t,i){var n=i(29),o=i(66);i(68)("getPrototypeOf",function(){return function(e){return o(n(e))}})},function(e,t,i){e.exports={default:i(146),__esModule:!0}},function(e,t,i){i(147),e.exports=i(6).Object.setPrototypeOf},function(e,t,i){var n=i(11);n(n.S,"Object",{setPrototypeOf:i(148).set})},function(e,t,i){var n=i(25),o=i(19),s=function(e,t){if(o(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,n){try{n=i(61)(Function.call,i(70).f(Object.prototype,"__proto__").set,2),n(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,i){return s(e,i),t?e.__proto__=i:n(e,i),e}}({},!1):void 0),check:s}},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(53),v=n(p),g=function(e){function t(e,i,n){(0,a.default)(this,t);var o=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return o._setMargins(n),o}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(t,i)){var n=this.getDimensionsFromLabel(e,t,i),o=Math.max(n.width+this.margin.right+this.margin.left,n.height+this.margin.top+this.margin.bottom);this.options.size=o/2,this.width=o,this.height=o,this.radius=this.width/2}}},{key:"draw",value:function(e,t,i,n,o,s){this.resize(e,n,o),this.left=t-this.width/2,this.top=i-this.height/2,this._drawRawCircle(e,t,i,s),this.updateBoundingBox(t,i),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,i,n,o)}},{key:"updateBoundingBox",value:function(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size}},{key:"distanceToBorder",value:function(e,t){return this.resize(e),.5*this.width}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(53),v=n(p),g=function(e){function t(e,i,n,o,r){(0,a.default)(this,t);var d=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return d.setImages(o,r),d}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var n=2*this.options.size;return this.width=n,this.height=n,void(this.radius=.5*this.width)}this.needsRefresh(t,i)&&this._resizeImage()}},{key:"draw",value:function(e,t,i,n,o,s){this.switchImages(n),this.resize(),this.left=t-this.width/2,this.top=i-this.height/2,this._drawRawCircle(e,t,i,s),e.save(),e.clip(),this._drawImageAtPosition(e,s),e.restore(),this._drawImageLabel(e,t,i,n,o),this.updateBoundingBox(t,i)}},{key:"updateBoundingBox",value:function(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size,this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:"distanceToBorder",value:function(e,t){return this.resize(e),.5*this.width}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){(0,a.default)(this,t);var o=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return o._setMargins(n),o}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e,t,i){if(this.needsRefresh(t,i)){var n=this.getDimensionsFromLabel(e,t,i),o=n.width+this.margin.right+this.margin.left;this.width=o,this.height=o,this.radius=this.width/2}}},{key:"draw",value:function(e,t,i,n,o,s){this.resize(e,n,o),this.left=t-this.width/2,this.top=i-this.height/2,this.initContextForDraw(e,s),e.database(t-this.width/2,i-this.height/2,this.width,this.height),this.performFill(e,s),this.updateBoundingBox(t,i,e,n,o),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"diamond",4,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"circle",2,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this.resize(e),this.options.size}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(t,i)){var n=this.getDimensionsFromLabel(e,t,i);this.height=2*n.height,this.width=n.width+n.height,this.radius=.5*this.width}}},{key:"draw",value:function(e,t,i,n,o,s){this.resize(e,n,o),this.left=t-.5*this.width,this.top=i-.5*this.height,this.initContextForDraw(e,s),e.ellipse_vis(this.left,this.top,this.width,this.height),this.performFill(e,s),this.updateBoundingBox(t,i,e,n,o),this.labelModule.draw(e,t,i,n,o)}},{key:"distanceToBorder",value:function(e,t){this.resize(e);var i=.5*this.width,n=.5*this.height,o=Math.sin(t)*i,s=Math.cos(t)*n;return i*n/Math.sqrt(o*o+s*s)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){(0,a.default)(this,t);var o=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return o._setMargins(n),o}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e,t,i){this.needsRefresh(t,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(e,t,i,n,o,s){if(this.resize(e,n,o),this.options.icon.size=this.options.icon.size||50,this.left=t-this.width/2,this.top=i-this.height/2,this._icon(e,t,i,n,o,s),void 0!==this.options.label){this.labelModule.draw(e,this.left+this.iconSize.width/2+this.margin.left,i+this.height/2+5,n)}this.updateBoundingBox(t,i)}},{key:"updateBoundingBox",value:function(e,t){if(this.boundingBox.top=t-.5*this.options.icon.size,this.boundingBox.left=e-.5*this.options.icon.size,this.boundingBox.right=e+.5*this.options.icon.size,this.boundingBox.bottom=t+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5)}}},{key:"_icon",value:function(e,t,i,n,o,s){var r=Number(this.options.icon.size);void 0!==this.options.icon.code?(e.font=(n?"bold ":"")+r+"px "+this.options.icon.face,e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",this.enableShadow(e,s),e.fillText(this.options.icon.code,t,i),this.disableShadow(e,s)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(53),v=n(p),g=function(e){function t(e,i,n,o,r){(0,a.default)(this,t);var d=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return d.setImages(o,r),d}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var n=2*this.options.size;return this.width=n,void(this.height=n)}this.needsRefresh(t,i)&&this._resizeImage()}},{key:"draw",value:function(e,t,i,n,o,s){if(this.switchImages(n),this.resize(),this.left=t-this.width/2,this.top=i-this.height/2,!0===this.options.shapeProperties.useBorderWithImage){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,d=(n?a:r)/this.body.view.scale;e.lineWidth=Math.min(this.width,d),e.beginPath(),e.strokeStyle=n?this.options.color.highlight.border:o?this.options.color.hover.border:this.options.color.border,e.fillStyle=n?this.options.color.highlight.background:o?this.options.color.hover.background:this.options.color.background,e.rect(this.left-.5*e.lineWidth,this.top-.5*e.lineWidth,this.width+e.lineWidth,this.height+e.lineWidth),e.fill(),this.performStroke(e,s),e.closePath()}this._drawImageAtPosition(e,s),this._drawImageLabel(e,t,i,n,o),this.updateBoundingBox(t,i)}},{key:"updateBoundingBox",value:function(e,t){this.resize(),this._updateBoundingBox(e,t),void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"square",2,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"hexagon",4,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"star",4,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){(0,a.default)(this,t);var o=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return o._setMargins(n),o}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e,t,i){this.needsRefresh(t,i)&&(this.textSize=this.labelModule.getTextSize(e,t,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(e,t,i,n,o,s){this.resize(e,n,o),this.left=t-this.width/2,this.top=i-this.height/2,this.enableShadow(e,s),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o),this.disableShadow(e,s),this.updateBoundingBox(t,i,e,n,o)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"triangle",3,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"triangleDown",3,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(5),h=i(32),l=i(51),u=i(55).default,c=function(){function e(t,i,n){var o=this;(0,s.default)(this,e),this.body=t,this.images=i,this.groups=n,this.body.functions.createEdge=this.create.bind(this),this.edgesListeners={add:function(e,t){o.add(t.items)},update:function(e,t){o.update(t.items)},remove:function(e,t){o.remove(t.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(e,t,i,n){if(t===e)return.5;var o=1/(t-e);return Math.max(0,(n-e)*o)}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},d.deepExtend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("_forceDisableDynamicCurves",function(t){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];"dynamic"===t&&(t="continuous");var n=!1;for(var o in e.body.edges)if(e.body.edges.hasOwnProperty(o)){var s=e.body.edges[o],r=e.body.data.edges._data[o];if(void 0!==r){var a=r.smooth;void 0!==a&&!0===a.enabled&&"dynamic"===a.type&&(void 0===t?s.setOptions({smooth:!1}):s.setOptions({smooth:{type:t}}),n=!0)}}!0===i&&!0===n&&e.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",function(){e.reconnectEdges()}),this.body.emitter.on("refreshEdges",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){d.forEach(e.edgesListeners,function(t,i){e.body.data.edges&&e.body.data.edges.off(i,t)}),delete e.body.functions.createEdge,delete e.edgesListeners.add,delete e.edgesListeners.update,delete e.edgesListeners.remove,delete e.edgesListeners})}},{key:"setOptions",value:function(e){if(void 0!==e){u.parseOptions(this.options,e,!0,this.defaultOptions,!0);var t=!1;if(void 0!==e.smooth)for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&(t=this.body.edges[i].updateEdgeType()||t);if(void 0!==e.font)for(var n in this.body.edges)this.body.edges.hasOwnProperty(n)&&this.body.edges[n].updateLabelModule();void 0===e.hidden&&void 0===e.physics&&!0!==t||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.body.data.edges;if(e instanceof h||e instanceof l)this.body.data.edges=e;else if(Array.isArray(e))this.body.data.edges=new h,this.body.data.edges.add(e);else{if(e)throw new TypeError("Array or DataSet expected");this.body.data.edges=new h}if(n&&d.forEach(this.edgesListeners,function(e,t){n.off(t,e)}),this.body.edges={},this.body.data.edges){d.forEach(this.edgesListeners,function(e,i){t.body.data.edges.on(i,e)});var o=this.body.data.edges.getIds();this.add(o,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),!1===i&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,n=this.body.data.edges,o=0;o1&&void 0!==arguments[1])||arguments[1];if(0!==e.length){var i=this.body.edges;d.forEach(e,function(e){var t=i[e];void 0!==t&&t.remove()}),t&&this.body.emitter.emit("_dataChanged")}}},{key:"refresh",value:function(){var e=this;d.forEach(this.body.edges,function(t,i){var n=e.body.data.edges._data[i];void 0!==n&&t.setOptions(n)})}},{key:"create",value:function(e){return new u(e,this.body,this.options,this.defaultOptions)}},{key:"reconnectEdges",value:function(){var e,t=this.body.nodes,i=this.body.edges;for(e in t)t.hasOwnProperty(e)&&(t[e].edges=[]);for(e in i)if(i.hasOwnProperty(e)){var n=i[e];n.from=null,n.to=null,n.connect()}}},{key:"getConnectedNodes",value:function(e){var t=[];if(void 0!==this.body.edges[e]){var i=this.body.edges[e];void 0!==i.fromId&&t.push(i.fromId),void 0!==i.toId&&t.push(i.toId)}return t}},{key:"_updateState",value:function(){this._addMissingEdges(),this._removeInvalidEdges()}},{key:"_removeInvalidEdges",value:function(){var e=this,t=[];d.forEach(this.body.edges,function(i,n){var o=e.body.nodes[i.toId],s=e.body.nodes[i.fromId];void 0!==o&&!0===o.isCluster||void 0!==s&&!0===s.isCluster||void 0!==o&&void 0!==s||t.push(n)}),this.remove(t,!1)}},{key:"_addMissingEdges",value:function(){var e=this.body.edges,t=this.body.data.edges,i=[];t.forEach(function(t,n){void 0===e[n]&&i.push(n)}),this.add(i,!0)}}]),e}();t.default=c},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(23),s=n(o),r=i(2),a=n(r),d=i(0),h=n(d),l=i(1),u=n(l),c=i(3),f=n(c),p=i(4),v=n(p),g=i(165),y=n(g),m=function(e){function t(e,i,n){return(0,h.default)(this,t),(0,f.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e,i,n))}return(0,v.default)(t,e),(0,u.default)(t,[{key:"_line",value:function(e,t,i){var n=i[0],o=i[1];this._bezierCurve(e,t,n,o)}},{key:"_getViaCoordinates",value:function(){var e=this.from.x-this.to.x,t=this.from.y-this.to.y,i=void 0,n=void 0,o=void 0,s=void 0,r=this.options.smooth.roundness;return(Math.abs(e)>Math.abs(t)||!0===this.options.smooth.forceDirection||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(n=this.from.y,s=this.to.y,i=this.from.x-r*e,o=this.to.x+r*e):(n=this.from.y-r*t,s=this.to.y+r*t,i=this.from.x,o=this.to.x),[{x:i,y:n},{x:o,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(e,t){return this._findBorderPositionBezier(e,t)}},{key:"_getDistanceToEdge",value:function(e,t,i,n,o,r){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates(),d=(0,s.default)(a,2),h=d[0],l=d[1];return this._getDistanceToBezierEdge(e,t,i,n,o,r,h,l)}},{key:"getPoint",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=(0,s.default)(t,2),n=i[0],o=i[1],r=e,a=[];return a[0]=Math.pow(1-r,3),a[1]=3*r*Math.pow(1-r,2),a[2]=3*Math.pow(r,2)*(1-r),a[3]=Math.pow(r,3),{x:a[0]*this.fromPoint.x+a[1]*n.x+a[2]*o.x+a[3]*this.toPoint.x,y:a[0]*this.fromPoint.y+a[1]*n.y+a[2]*o.y+a[3]*this.toPoint.y}}}]),t}(y.default);t.default=m},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(56),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"_getDistanceToBezierEdge",value:function(e,t,i,n,o,s,r,a){var d=1e9,h=void 0,l=void 0,u=void 0,c=void 0,f=void 0,p=e,v=t,g=[0,0,0,0];for(l=1;l<10;l++)u=.1*l,g[0]=Math.pow(1-u,3),g[1]=3*u*Math.pow(1-u,2),g[2]=3*Math.pow(u,2)*(1-u),g[3]=Math.pow(u,3),c=g[0]*e+g[1]*r.x+g[2]*a.x+g[3]*i,f=g[0]*t+g[1]*r.y+g[2]*a.y+g[3]*n,l>0&&(h=this._getDistanceToLine(p,v,c,f,o,s),d=h1&&void 0!==arguments[1]?arguments[1]:this.via,i=e,n=void 0,o=void 0;if(this.from===this.to){var r=this._getCircleData(this.from),a=(0,s.default)(r,3),d=a[0],h=a[1],l=a[2],u=2*Math.PI*(1-i);n=d+l*Math.sin(u),o=h+l-l*(1-Math.cos(u))}else n=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*t.x+Math.pow(i,2)*this.toPoint.x,o=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*t.y+Math.pow(i,2)*this.toPoint.y;return{x:n,y:o}}},{key:"_findBorderPosition",value:function(e,t){return this._findBorderPositionBezier(e,t,this.via)}},{key:"_getDistanceToEdge",value:function(e,t,i,n,o,s){return this._getDistanceToBezierEdge(e,t,i,n,o,s,this.via)}}]),t}(y.default);t.default=m},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(56),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"_line",value:function(e,t,i){this._bezierCurve(e,t,i)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_getViaCoordinates",value:function(){var e=void 0,t=void 0,i=this.options.smooth.roundness,n=this.options.smooth.type,o=Math.abs(this.from.x-this.to.x),s=Math.abs(this.from.y-this.to.y);if("discrete"===n||"diagonalCross"===n){var r=void 0,a=void 0;r=a=o<=s?i*s:i*o,this.from.x>this.to.x&&(r=-r),this.from.y>=this.to.y&&(a=-a),e=this.from.x+r,t=this.from.y+a,"discrete"===n&&(o<=s?e=othis.to.x&&(_=-_),this.from.y>=this.to.y&&(w=-w),e=this.from.x+_,t=this.from.y+w,o<=s?e=this.from.x<=this.to.x?this.to.xe?this.to.x:e:t=this.from.y>=this.to.y?this.to.y>t?this.to.y:t:this.to.y2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(e,t,i.via)}},{key:"_getDistanceToEdge",value:function(e,t,i,n,o,s){var r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(e,t,i,n,o,s,r)}},{key:"getPoint",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=e;return{x:Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*t.x+Math.pow(i,2)*this.toPoint.x,y:Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*t.y+Math.pow(i,2)*this.toPoint.y}}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(78),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"_line",value:function(e,t){e.beginPath(),e.moveTo(this.fromPoint.x,this.fromPoint.y),e.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(e,t),e.stroke(),this.disableShadow(e,t)}},{key:"getViaNode",value:function(){}},{key:"getPoint",value:function(e){return{x:(1-e)*this.fromPoint.x+e*this.toPoint.x,y:(1-e)*this.fromPoint.y+e*this.toPoint.y}}},{key:"_findBorderPosition",value:function(e,t){var i=this.to,n=this.from;e.id===this.from.id&&(i=this.from,n=this.to);var o=Math.atan2(i.y-n.y,i.x-n.x),s=i.x-n.x,r=i.y-n.y,a=Math.sqrt(s*s+r*r),d=e.distanceToBorder(t,o),h=(a-d)/a,l={};return l.x=(1-h)*n.x+h*i.x,l.y=(1-h)*n.y+h*i.y,l}},{key:"_getDistanceToEdge",value:function(e,t,i,n,o,s){return this._getDistanceToLine(e,t,i,n,o,s)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(10),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(80).default,u=i(170).default,c=i(171).default,f=i(172).default,p=i(173).default,v=i(81).default,g=i(174).default,y=i(175).default,m=i(5),b=i(79).default,_=function(){function e(t){(0,a.default)(this,e),this.body=t,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0},m.extend(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return(0,h.default)(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("initPhysics",function(){e.initPhysics()}),this.body.emitter.on("_layoutFailed",function(){e.layoutFailed=!0}),this.body.emitter.on("resetPhysics",function(){e.stopSimulation(),e.ready=!1}),this.body.emitter.on("disablePhysics",function(){e.physicsEnabled=!1,e.stopSimulation()}),this.body.emitter.on("restorePhysics",function(){e.setOptions(e.options),!0===e.ready&&e.startSimulation()}),this.body.emitter.on("startSimulation",function(){!0===e.ready&&e.startSimulation()}),this.body.emitter.on("stopSimulation",function(){e.stopSimulation()}),this.body.emitter.on("destroy",function(){e.stopSimulation(!1),e.body.emitter.off()}),this.body.emitter.on("_dataChanged",function(){e.updatePhysicsData()})}},{key:"setOptions",value:function(e){void 0!==e&&(!1===e?(this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation()):!0===e?(this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation()):(this.physicsEnabled=!0,m.selectiveNotDeepExtend(["stabilization"],this.options,e),m.mergeOptions(this.options,e,"stabilization"),void 0===e.enabled&&(this.options.enabled=!0),!1===this.options.enabled&&(this.physicsEnabled=!1,this.stopSimulation()),this.timestep=this.options.timestep)),this.init()}},{key:"init",value:function(){var e;"forceAtlas2Based"===this.options.solver?(e=this.options.forceAtlas2Based,this.nodesSolver=new g(this.body,this.physicsBody,e),this.edgesSolver=new f(this.body,this.physicsBody,e),this.gravitySolver=new y(this.body,this.physicsBody,e)):"repulsion"===this.options.solver?(e=this.options.repulsion,this.nodesSolver=new u(this.body,this.physicsBody,e),this.edgesSolver=new f(this.body,this.physicsBody,e),this.gravitySolver=new v(this.body,this.physicsBody,e)):"hierarchicalRepulsion"===this.options.solver?(e=this.options.hierarchicalRepulsion,this.nodesSolver=new c(this.body,this.physicsBody,e),this.edgesSolver=new p(this.body,this.physicsBody,e),this.gravitySolver=new v(this.body,this.physicsBody,e)):(e=this.options.barnesHut,this.nodesSolver=new l(this.body,this.physicsBody,e),this.edgesSolver=new f(this.body,this.physicsBody,e),this.gravitySolver=new v(this.body,this.physicsBody,e)),this.modelOptions=e}},{key:"initPhysics",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?!0===this.options.stabilization.enabled?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,!0===e&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,!0===e&&this.body.emitter.emit("_stopRendering"))}},{key:"simulationStep",value:function(){var e=Date.now();this.physicsTick(),(Date.now()-e<.4*this.simulationInterval||!0===this.runDoubleSpeed)&&!1===this.stabilized&&(this.physicsTick(),this.runDoubleSpeed=!0),!0===this.stabilized&&this.stopSimulation()}},{key:"_emitStabilized",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||!0===this.startedStabilization)&&setTimeout(function(){e.body.emitter.emit("stabilized",{iterations:t}),e.startedStabilization=!1,e.stabilizationIterations=0},0)}},{key:"physicsStep",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}},{key:"adjustTimeStep",value:function(){!0===this._evaluateStepQuality()?this.timestep=1.2*this.timestep:this.timestep/1.2.3))return!1;return!0}},{key:"moveNodes",value:function(){for(var e=this.physicsBody.physicsNodeIndices,t=0,i=0,n=0;nn&&(e=e>0?n:-n),e}},{key:"_performStep",value:function(e){var t=this.body.nodes[e],i=this.physicsBody.forces[e],n=this.physicsBody.velocities[e];return this.previousStates[e]={x:t.x,y:t.y,vx:n.x,vy:n.y},!1===t.options.fixed.x?(n.x=this.calculateComponentVelocity(n.x,i.x,t.options.mass),t.x+=n.x*this.timestep):(i.x=0,n.x=0),!1===t.options.fixed.y?(n.y=this.calculateComponentVelocity(n.y,i.y,t.options.mass),t.y+=n.y*this.timestep):(i.y=0,n.y=0),Math.sqrt(Math.pow(n.x,2)+Math.pow(n.y,2))}},{key:"_freezeNodes",value:function(){var e=this.body.nodes;for(var t in e)if(e.hasOwnProperty(t)&&e[t].x&&e[t].y){var i=e[t].options.fixed;this.freezeCache[t]={x:i.x,y:i.y},i.x=!0,i.y=!0}}},{key:"_restoreFrozenNodes",value:function(){var e=this.body.nodes;for(var t in e)e.hasOwnProperty(t)&&void 0!==this.freezeCache[t]&&(e[t].options.fixed.x=this.freezeCache[t].x,e[t].options.fixed.y=this.freezeCache[t].y);this.freezeCache={}}},{key:"stabilize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.stabilization.iterations;if("number"!=typeof t&&(t=this.options.stabilization.iterations,console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",t)),0===this.physicsBody.physicsNodeIndices.length)return void(this.ready=!0);this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=t,!0===this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationIterations=0,setTimeout(function(){return e._stabilizationBatch()},0)}},{key:"_startStabilizing",value:function(){return!0!==this.startedStabilization&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}},{key:"_stabilizationBatch",value:function(){var e=this,t=function(){return!1===e.stabilized&&e.stabilizationIterations0){var s=o.edges.length+1,r=this.options.centralGravity*s*o.options.mass;n[o.id].x=t*r,n[o.id].y=i*r}}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(10),s=n(o),r=i(7),a=n(r),d=i(0),h=n(d),l=i(1),u=n(l),c=i(5),f=i(57).default,p=i(177).default,v=i(55).default,g=i(33).default,y=function(){function e(t){var i=this;(0,h.default)(this,e),this.body=t,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},c.extend(this.options,this.defaultOptions),this.body.emitter.on("_resetData",function(){i.clusteredNodes={},i.clusteredEdges={}})}return(0,u.default)(e,[{key:"clusterByHubsize",value:function(e,t){void 0===e?e=this._getHubSize():"object"===(void 0===e?"undefined":(0,a.default)(e))&&(t=this._checkOptions(e),e=this._getHubSize());for(var i=[],n=0;n=e&&i.push(o.id)}for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{},i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===t.joinCondition)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");t=this._checkOptions(t);var n={},o={};c.forEach(this.body.nodes,function(i,s){var r=f.cloneOptions(i);!0===t.joinCondition(r)&&(n[s]=i,c.forEach(i.edges,function(t){void 0===e.clusteredEdges[t.id]&&(o[t.id]=t)}))}),this._cluster(n,o,t,i)}},{key:"clusterByEdgeCount",value:function(e,t){var i=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];t=this._checkOptions(t);for(var o=[],r={},a=void 0,d=void 0,h=void 0,l=0;l0&&(0,s.default)(v).length>0&&!0===b)if(c=function(){for(var e=0;e1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,e,t)}},{key:"clusterBridges",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,e,t)}},{key:"clusterByConnection",value:function(e,t){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===e)throw new Error("No nodeId supplied to clusterByConnection!");if(void 0===this.body.nodes[e])throw new Error("The nodeId given to clusterByConnection does not exist!");var n=this.body.nodes[e];t=this._checkOptions(t,n),void 0===t.clusterNodeProperties.x&&(t.clusterNodeProperties.x=n.x),void 0===t.clusterNodeProperties.y&&(t.clusterNodeProperties.y=n.y),void 0===t.clusterNodeProperties.fixed&&(t.clusterNodeProperties.fixed={},t.clusterNodeProperties.fixed.x=n.options.fixed.x,t.clusterNodeProperties.fixed.y=n.options.fixed.y);var o={},r={},a=n.id,d=f.cloneOptions(n);o[a]=n;for(var h=0;h-1&&(r[y.id]=y)}this._cluster(o,r,t,i)}},{key:"_createClusterEdges",value:function(e,t,i,n){for(var o=void 0,r=void 0,a=void 0,d=void 0,h=void 0,l=void 0,u=(0,s.default)(e),c=[],f=0;f0&&void 0!==arguments[0]?arguments[0]:{};return void 0===e.clusterEdgeProperties&&(e.clusterEdgeProperties={}),void 0===e.clusterNodeProperties&&(e.clusterNodeProperties={}),e}},{key:"_cluster",value:function(e,t,i){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=[];for(var r in e)e.hasOwnProperty(r)&&void 0!==this.clusteredNodes[r]&&o.push(r);for(var a=0;an?a.x:n,o=a.yr?a.y:r;return{x:.5*(i+n),y:.5*(o+r)}}},{key:"openCluster",value:function(e,t){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===e)throw new Error("No clusterNodeId supplied to openCluster.");var n=this.body.nodes[e];if(void 0===n)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(!0!==n.isCluster||void 0===n.containedNodes||void 0===n.containedEdges)throw new Error("The node:"+e+" is not a valid cluster.");var o=this.findNode(e),s=o.indexOf(e)-1;if(s>=0){var r=o[s];return this.body.nodes[r]._openChildCluster(e),delete this.body.nodes[e],void(!0===i&&this.body.emitter.emit("_dataChanged"))}var a=n.containedNodes,d=n.containedEdges;if(void 0!==t&&void 0!==t.releaseFunction&&"function"==typeof t.releaseFunction){var h={},l={x:n.x,y:n.y};for(var u in a)if(a.hasOwnProperty(u)){var f=this.body.nodes[u];h[u]={x:f.x,y:f.y}}var p=t.releaseFunction(l,h);for(var v in a)if(a.hasOwnProperty(v)){var g=this.body.nodes[v];void 0!==p[v]&&(g.x=void 0===p[v].x?n.x:p[v].x,g.y=void 0===p[v].y?n.y:p[v].y)}}else c.forEach(a,function(e){!1===e.options.fixed.x&&(e.x=n.x),!1===e.options.fixed.y&&(e.y=n.y)});for(var y in a)if(a.hasOwnProperty(y)){var m=this.body.nodes[y];m.vx=n.vx,m.vy=n.vy,m.setOptions({physics:!0}),delete this.clusteredNodes[y]}for(var b=[],_=0;_0&&o<100;){var s=t.pop();if(void 0!==s){var r=this.body.edges[s];if(void 0!==r){o++;var a=r.clusteringEdgeReplacingIds;if(void 0===a)n.push(s);else for(var d=0;dn&&(n=s.edges.length),e+=s.edges.length,t+=Math.pow(s.edges.length,2),i+=1}e/=i,t/=i;var r=t-Math.pow(e,2),a=Math.sqrt(r),d=Math.floor(e+2*a);return d>n&&(d=n),d}},{key:"_createClusteredEdge",value:function(e,t,i,n,o){var s=f.cloneOptions(i,"edge");c.deepExtend(s,n),s.from=e,s.to=t,s.id="clusterEdge:"+c.randomUUID(),void 0!==o&&c.deepExtend(s,o);var r=this.body.functions.createEdge(s);return r.clusteringEdgeReplacingIds=[i.id],r.connect(),this.body.edges[r.id]=r,r}},{key:"_clusterEdges",value:function(e,t,i,n){if(t instanceof v){var o=t,s={};s[o.id]=o,t=s}if(e instanceof g){var r=e,a={};a[r.id]=r,e=a}if(void 0===i||null===i)throw new Error("_clusterEdges: parameter clusterNode required");void 0===n&&(n=i.clusterEdgeProperties),this._createClusterEdges(e,t,i,n);for(var d in t)if(t.hasOwnProperty(d)&&void 0!==this.body.edges[d]){var h=this.body.edges[d];this._backupEdgeOptions(h),h.setOptions({physics:!1})}for(var l in e)e.hasOwnProperty(l)&&(this.clusteredNodes[l]={clusterId:i.id,node:this.body.nodes[l]},this.body.nodes[l].setOptions({physics:!1}))}},{key:"_getClusterNodeForNode",value:function(e){if(void 0!==e){var t=this.clusteredNodes[e];if(void 0!==t){var i=t.clusterId;if(void 0!==i)return this.body.nodes[i]}}}},{key:"_filter",value:function(e,t){var i=[];return c.forEach(e,function(e){t(e)&&i.push(e)}),i}},{key:"_updateState",value:function(){var e=this,t=void 0,i=[],n=[],o=function(t){c.forEach(e.body.nodes,function(e){!0===e.isCluster&&t(e)})};for(t in this.clusteredNodes)if(this.clusteredNodes.hasOwnProperty(t)){var r=this.body.nodes[t];void 0===r&&i.push(t)}o(function(e){for(var t=0;t0}t.endPointsValid()&&o||n.push(i)}),o(function(t){c.forEach(n,function(i){delete t.containedEdges[i],c.forEach(t.edges,function(o,s){if(o.id===i)return void(t.edges[s]=null);o.clusteringEdgeReplacingIds=e._filter(o.clusteringEdgeReplacingIds,function(e){return-1===n.indexOf(e)})}),t.edges=e._filter(t.edges,function(e){return null!==e})})}),c.forEach(n,function(t){delete e.clusteredEdges[t]}),c.forEach(n,function(t){delete e.body.edges[t]});var d=(0,s.default)(this.body.edges);c.forEach(d,function(t){var i=e.body.edges[t],n=e._isClusteredNode(i.fromId)||e._isClusteredNode(i.toId);if(n!==e._isClusteredEdge(i.id)){if(!n)throw new Error("remove edge from clustering not implemented!");var o=e._getClusterNodeForNode(i.fromId);void 0!==o&&e._clusterEdges(e.body.nodes[i.fromId],i,o);var s=e._getClusterNodeForNode(i.toId);void 0!==s&&e._clusterEdges(e.body.nodes[i.toId],i,s)}});for(var h=!1,l=!0;l;)!function(){var t=[];o(function(e){var i=(0,s.default)(e.containedNodes).length,n=!0===e.options.allowSingleNodeCluster;(n&&i<1||!n&&i<2)&&t.push(e.id)});for(var i=0;i0,h=h||l}();h&&this._updateState()}},{key:"_isClusteredNode",value:function(e){return void 0!==this.clusteredNodes[e]}},{key:"_isClusteredEdge",value:function(e){return void 0!==this.clusteredEdges[e]}}]),e}();t.default=y},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(5),v=i(33).default,g=function(e){function t(e,i,n,o,r,d){(0,a.default)(this,t);var h=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n,o,r,d));return h.isCluster=!0,h.containedNodes={},h.containedEdges={},h}return(0,f.default)(t,e),(0,h.default)(t,[{key:"_openChildCluster",value:function(e){var t=this,i=this.body.nodes[e];if(void 0===this.containedNodes[e])throw new Error("node with id: "+e+" not in current cluster");if(!i.isCluster)throw new Error("node with id: "+e+" is not a cluster");delete this.containedNodes[e],p.forEach(i.edges,function(e){delete t.containedEdges[e.id]}),p.forEach(i.containedNodes,function(e,i){t.containedNodes[i]=e}),i.containedNodes={},p.forEach(i.containedEdges,function(e,i){t.containedEdges[i]=e}),i.containedEdges={},p.forEach(i.edges,function(e){p.forEach(t.edges,function(i){var n=i.clusteringEdgeReplacingIds.indexOf(e.id);-1!==n&&(p.forEach(e.clusteringEdgeReplacingIds,function(e){i.clusteringEdgeReplacingIds.push(e),t.body.edges[e].edgeReplacedById=i.id}),i.clusteringEdgeReplacingIds.splice(n,1))})}),i.edges=[]}}]),t}(v);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}function o(){var e;void 0!==window&&(e=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),window.requestAnimationFrame=void 0===e?function(e){e()}:e}Object.defineProperty(t,"__esModule",{value:!0});var s=i(0),r=n(s),a=i(1),d=n(a),h=i(5),l=function(){function e(t,i){(0,r.default)(this,e),o(),this.body=t,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},h.extend(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return(0,d.default)(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("dragStart",function(){e.dragging=!0}),this.body.emitter.on("dragEnd",function(){e.dragging=!1}),this.body.emitter.on("_resizeNodes",function(){e._resizeNodes()}),this.body.emitter.on("_redraw",function(){!1===e.renderingActive&&e._redraw()}),this.body.emitter.on("_blockRedraw",function(){e.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",function(){e.allowRedraw=!0,e.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){e.renderRequests+=1,e.renderingActive=!0,e._startRendering()}),this.body.emitter.on("_stopRendering",function(){e.renderRequests-=1,e.renderingActive=e.renderRequests>0,e.renderTimer=void 0}),this.body.emitter.on("destroy",function(){e.renderRequests=0,e.allowRedraw=!1,e.renderingActive=!1,!0===e.requiresTimeout?clearTimeout(e.renderTimer):window.cancelAnimationFrame(e.renderTimer),e.body.emitter.off()})}},{key:"setOptions",value:function(e){if(void 0!==e){var t=["hideEdgesOnDrag","hideNodesOnDrag"];h.selectiveDeepExtend(t,this.options,e)}}},{key:"_requestNextFrame",value:function(e,t){if("undefined"!=typeof window){var i=void 0,n=window;return!0===this.requiresTimeout?i=n.setTimeout(e,t):n.requestAnimationFrame&&(i=n.requestAnimationFrame(e)),i}}},{key:"_startRendering",value:function(){!0===this.renderingActive&&void 0===this.renderTimer&&(this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval))}},{key:"_renderStep",value:function(){!0===this.renderingActive&&(this.renderTimer=void 0,!0===this.requiresTimeout&&this._startRendering(),this._redraw(),!1===this.requiresTimeout&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var e=this;!0!==this.redrawRequested&&!1===this.renderingActive&&!0===this.allowRedraw&&(this.redrawRequested=!0,this._requestNextFrame(function(){e._redraw(!1)},0))}},{key:"_redraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!0===this.allowRedraw){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1,0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.canvas.setTransform();var t=this.canvas.getContext(),i=this.canvas.frame.canvas.clientWidth,n=this.canvas.frame.canvas.clientHeight;if(t.clearRect(0,0,i,n),0===this.canvas.frame.clientWidth)return;t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale),t.beginPath(),this.body.emitter.emit("beforeDrawing",t),t.closePath(),!1===e&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&this._drawEdges(t),(!1===this.dragging||!0===this.dragging&&!1===this.options.hideNodesOnDrag)&&this._drawNodes(t,e),t.beginPath(),this.body.emitter.emit("afterDrawing",t),t.closePath(),t.restore(),!0===e&&t.clearRect(0,0,i,n)}}},{key:"_resizeNodes",value:function(){this.canvas.setTransform();var e=this.canvas.getContext();e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale);var t=this.body.nodes,i=void 0;for(var n in t)t.hasOwnProperty(n)&&(i=t[n],i.resize(e),i.updateBoundingBox(e,i.selected));e.restore()}},{key:"_drawNodes",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.nodes,n=this.body.nodeIndices,o=void 0,s=[],r=this.canvas.DOMtoCanvas({x:-20,y:-20}),a=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+20,y:this.canvas.frame.canvas.clientHeight+20}),d={top:r.y,left:r.x,bottom:a.y,right:a.x},h=0;h0&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;!0===this.initialized&&(this.cameraState.previousWidth=this.frame.canvas.width/e,this.cameraState.previousHeight=this.frame.canvas.height/e,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/e,y:.5*this.frame.canvas.height/e}))}},{key:"_setCameraState",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0){var e=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,t=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=e&&1!=t?i=.5*this.cameraState.scale*(e+t):1!=e?i=this.cameraState.scale*e:1!=t&&(i=this.cameraState.scale*t),this.body.view.scale=i;var n=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),o={x:n.x-this.cameraState.position.x,y:n.y-this.cameraState.position.y};this.body.view.translation.x+=o.x*this.body.view.scale,this.body.view.translation.y+=o.y*this.body.view.scale}}},{key:"_prepareValue",value:function(e){if("number"==typeof e)return e+"px";if("string"==typeof e){if(-1!==e.indexOf("%")||-1!==e.indexOf("px"))return e;if(-1===e.indexOf("%"))return e+"px"}throw new Error("Could not use the value supplied for width or height:"+e)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var e=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new d(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:d.DIRECTION_ALL}),h.onTouch(this.hammer,function(t){e.body.eventListeners.onTouch(t)}),this.hammer.on("tap",function(t){e.body.eventListeners.onTap(t)}),this.hammer.on("doubletap",function(t){e.body.eventListeners.onDoubleTap(t)}),this.hammer.on("press",function(t){e.body.eventListeners.onHold(t)}),this.hammer.on("panstart",function(t){e.body.eventListeners.onDragStart(t)}),this.hammer.on("panmove",function(t){e.body.eventListeners.onDrag(t)}),this.hammer.on("panend",function(t){e.body.eventListeners.onDragEnd(t)}),this.hammer.on("pinch",function(t){e.body.eventListeners.onPinch(t)}),this.frame.canvas.addEventListener("mousewheel",function(t){e.body.eventListeners.onMouseWheel(t)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(t){e.body.eventListeners.onMouseWheel(t)}),this.frame.canvas.addEventListener("mousemove",function(t){e.body.eventListeners.onMouseMove(t)}),this.frame.canvas.addEventListener("contextmenu",function(t){e.body.eventListeners.onContext(t)}),this.hammerFrame=new d(this.frame),h.onRelease(this.hammerFrame,function(t){e.body.eventListeners.onRelease(t)})}},{key:"setSize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.width,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;e=this._prepareValue(e),t=this._prepareValue(t);var i=!1,n=this.frame.canvas.width,o=this.frame.canvas.height,s=this.pixelRatio;if(this._setPixelRatio(),e!=this.options.width||t!=this.options.height||this.frame.style.width!=e||this.frame.style.height!=t)this._getCameraState(s),this.frame.style.width=e,this.frame.style.height=t,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=e,this.options.height=t,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{var r=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),a=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.frame.canvas.width===r&&this.frame.canvas.height===a||this._getCameraState(s),this.frame.canvas.width!==r&&(this.frame.canvas.width=r,i=!0),this.frame.canvas.height!==a&&(this.frame.canvas.height=a,i=!0)}return!0===i&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(n/this.pixelRatio),oldHeight:Math.round(o/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"getContext",value:function(){return this.frame.canvas.getContext("2d")}},{key:"_determinePixelRatio",value:function(){var e=this.getContext();if(void 0===e)throw new Error("Could not get canvax context");var t=1;return"undefined"!=typeof window&&(t=window.devicePixelRatio||1),t/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)}},{key:"_setPixelRatio",value:function(){this.pixelRatio=this._determinePixelRatio()}},{key:"setTransform",value:function(){var e=this.getContext();if(void 0===e)throw new Error("Could not get canvax context");e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:"_XconvertDOMtoCanvas",value:function(e){return(e-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(e){return e*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(e){return(e-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(e){return e*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(e){return{x:this._XconvertCanvasToDOM(e.x),y:this._YconvertCanvasToDOM(e.y)}}},{key:"DOMtoCanvas",value:function(e){return{x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)}}}]),e}();t.default=u},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(5),h=i(57).default,l=function(){function e(t,i){var n=this;(0,s.default)(this,e),this.body=t,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",this.fit.bind(this)),this.body.emitter.on("animationFinished",function(){n.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return(0,a.default)(e,[{key:"setOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=e}},{key:"fit",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{nodes:[]},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,n=void 0;if(void 0!==e.nodes&&0!==e.nodes.length||(e.nodes=this.body.nodeIndices),!0===t){var o=0;for(var s in this.body.nodes)if(this.body.nodes.hasOwnProperty(s)){var r=this.body.nodes[s];!0===r.predefinedPosition&&(o+=1)}if(o>.5*this.body.nodeIndices.length)return void this.fit(e,!1);i=h.getRange(this.body.nodes,e.nodes);n=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;n*=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600)}else{this.body.emitter.emit("_resizeNodes"),i=h.getRange(this.body.nodes,e.nodes);var a=1.1*Math.abs(i.maxX-i.minX),d=1.1*Math.abs(i.maxY-i.minY),l=this.canvas.frame.canvas.clientWidth/a,u=this.canvas.frame.canvas.clientHeight/d;n=l<=u?l:u}n>1?n=1:0===n&&(n=1);var c=h.findCenter(i),f={position:c,scale:n,animation:e.animation};this.moveTo(f)}},{key:"focus",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this.body.nodes[e]){var i={x:this.body.nodes[e].x,y:this.body.nodes[e].y};t.position=i,t.lockedOnNode=e,this.moveTo(t)}else console.log("Node: "+e+" cannot be found.")}},{key:"moveTo",value:function(e){if(void 0===e)return void(e={});void 0===e.offset&&(e.offset={x:0,y:0}),void 0===e.offset.x&&(e.offset.x=0),void 0===e.offset.y&&(e.offset.y=0),void 0===e.scale&&(e.scale=this.body.view.scale),void 0===e.position&&(e.position=this.getViewPosition()),void 0===e.animation&&(e.animation={duration:0}),!1===e.animation&&(e.animation={duration:0}),!0===e.animation&&(e.animation={}),void 0===e.animation.duration&&(e.animation.duration=1e3),void 0===e.animation.easingFunction&&(e.animation.easingFunction="easeInOutQuad"),this.animateView(e)}},{key:"animateView",value:function(e){if(void 0!==e){this.animationEasingFunction=e.animation.easingFunction,this.releaseNode(),!0===e.locked&&(this.lockedOnNodeId=e.lockedOnNode,this.lockedOnNodeOffset=e.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=e.scale,this.body.view.scale=this.targetScale;var t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.position.x,y:t.y-e.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+e.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+e.offset.y},0===e.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*e.animation.duration*.001)||1/60,this.animationEasingFunction=e.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var e={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.x,y:t.y-e.y},n=this.body.view.translation,o={x:n.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:n.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=o}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=!0===e?1:this.easingTime;var t=d.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*t,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*t,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*t},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),e}();t.default=l},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(5),h=i(182).default,l=i(183).default,u=function(){function e(t,i,n){(0,s.default)(this,e),this.body=t,this.canvas=i,this.selectionHandler=n,this.navigationHandler=new h(t,i),this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.body.eventListeners.onContext=this.onContext.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=this.getPointer.bind(this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0},d.extend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("destroy",function(){clearTimeout(e.popupTimer),delete e.body.functions.getPointer})}},{key:"setOptions",value:function(e){if(void 0!==e){var t=["hideEdgesOnDrag","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"];d.selectiveNotDeepExtend(t,this.options,e),d.mergeOptions(this.options,e,"keyboard"),e.tooltip&&(d.extend(this.options.tooltip,e.tooltip),e.tooltip.color&&(this.options.tooltip.color=d.parseColor(e.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:"getPointer",value:function(e){return{x:e.x-d.getAbsoluteLeft(this.canvas.frame.canvas),y:e.y-d.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:"onTouch",value:function(e){(new Date).valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(e.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(e){var t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect&&(e.changedPointers[0].ctrlKey||e.changedPointers[0].metaKey);this.checkSelectionChanges(t,e,i),this.selectionHandler._generateClickEvent("click",e,t)}},{key:"onDoubleTap",value:function(e){var t=this.getPointer(e.center);this.selectionHandler._generateClickEvent("doubleClick",e,t)}},{key:"onHold",value:function(e){var t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(t,e,i),this.selectionHandler._generateClickEvent("click",e,t),this.selectionHandler._generateClickEvent("hold",e,t)}},{key:"onRelease",value:function(e){if((new Date).valueOf()-this.touchTime>10){var t=this.getPointer(e.center);this.selectionHandler._generateClickEvent("release",e,t),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(e){var t=this.getPointer({x:e.clientX,y:e.clientY});this.selectionHandler._generateClickEvent("oncontext",e,t)}},{key:"checkSelectionChanges",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.selectionHandler.getSelection(),o=!1;o=!0===i?this.selectionHandler.selectAdditionalOnPoint(e):this.selectionHandler.selectOnPoint(e);var s=this.selectionHandler.getSelection(),r=this._determineDifference(n,s),a=this._determineDifference(s,n);r.edges.length>0&&(this.selectionHandler._generateClickEvent("deselectEdge",t,e,n),o=!0),r.nodes.length>0&&(this.selectionHandler._generateClickEvent("deselectNode",t,e,n),o=!0),a.nodes.length>0&&(this.selectionHandler._generateClickEvent("selectNode",t,e),o=!0),a.edges.length>0&&(this.selectionHandler._generateClickEvent("selectEdge",t,e),o=!0),!0===o&&this.selectionHandler._generateClickEvent("select",t,e)}},{key:"_determineDifference",value:function(e,t){var i=function(e,t){for(var i=[],n=0;n10&&(e=10);var n=void 0;void 0!==this.drag&&!0===this.drag.dragging&&(n=this.canvas.DOMtoCanvas(this.drag.pointer));var o=this.body.view.translation,s=e/i,r=(1-s)*t.x+o.x*s,a=(1-s)*t.y+o.y*s;if(this.body.view.scale=e,this.body.view.translation={x:r,y:a},void 0!=n){var d=this.canvas.canvasToDOM(n);this.drag.pointer.x=d.x,this.drag.pointer.y=d.y}this.body.emitter.emit("_requestRedraw"),i0&&(this.popupObj=d[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&!1===s){for(var f=this.body.edgeIndices,p=this.body.edges,v=void 0,g=[],y=0;y0&&(this.popupObj=p[g[g.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==o&&(void 0===this.popup&&(this.popup=new l(this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(e.x+3,e.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(e){var t=this.selectionHandler._pointerToPositionObject(e),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&!0===(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(t))){var n=this.selectionHandler.getNodeAt(e);i=void 0!==n&&n.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(e)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(t));!1===i&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),e}();t.default=u},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(22),h=i(35),l=i(52),u=function(){function e(t,i){var n=this;(0,s.default)(this,e),this.body=t,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",function(){n.activated=!0,n.configureKeyboardBindings()}),this.body.emitter.on("deactivate",function(){n.activated=!1,n.configureKeyboardBindings()}),this.body.emitter.on("destroy",function(){void 0!==n.keycharm&&n.keycharm.destroy()}),this.options={}}return(0,a.default)(e,[{key:"setOptions",value:function(e){void 0!==e&&(this.options=e,this.create())}},{key:"create",value:function(){!0===this.options.navigationButtons?!1===this.iconsCreated&&this.loadNavigationElements():!0===this.iconsCreated&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:"cleanNavigation",value:function(){if(0!=this.navigationHammers.length){for(var e=0;e700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var e in this.boundFunctions)this.boundFunctions.hasOwnProperty(e)&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){var e=this.body.view.scale,t=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,n=t/e,o=(1-n)*this.canvas.canvasViewCenter.x+i.x*n,s=(1-n)*this.canvas.canvasViewCenter.y+i.y*n;this.body.view.scale=t,this.body.view.translation={x:o,y:s},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}},{key:"_zoomOut",value:function(){var e=this.body.view.scale,t=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,n=t/e,o=(1-n)*this.canvas.canvasViewCenter.x+i.x*n,s=(1-n)*this.canvas.canvasViewCenter.y+i.y*n;this.body.view.scale=t,this.body.view.translation={x:o,y:s},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}},{key:"configureKeyboardBindings",value:function(){var e=this;void 0!==this.keycharm&&this.keycharm.destroy(),!0===this.options.keyboard.enabled&&(!0===this.options.keyboard.bindToWindow?this.keycharm=l({container:window,preventDefault:!0}):this.keycharm=l({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),!0===this.activated&&(this.keycharm.bind("up",function(){e.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){e.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){e.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){e.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){e.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){e.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){e.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){e.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){e.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){e.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){e.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){e.unbindFromRedraw("_zoomOut")},"keyup")))}}]),e}();t.default=u},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=function(){function e(t,i){(0,s.default)(this,e),this.container=t,this.overflowMethod=i||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}return(0,a.default)(e,[{key:"setPosition",value:function(e,t){this.x=parseInt(e),this.y=parseInt(t)}},{key:"setText",value:function(e){e instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(e)):this.frame.innerHTML=e}},{key:"show",value:function(e){if(void 0===e&&(e=!0),!0===e){var t=this.frame.clientHeight,i=this.frame.clientWidth,n=this.frame.parentNode.clientHeight,o=this.frame.parentNode.clientWidth,s=0,r=0;if("flip"==this.overflowMethod){var a=!1,d=!0;this.y-to-this.padding&&(a=!0),s=a?this.x-i:this.x,r=d?this.y-t:this.y}else r=this.y-t,r+t+this.padding>n&&(r=n-t-this.padding),ro&&(s=o-i-this.padding),s4&&void 0!==arguments[4]&&arguments[4],s=this._initBaseEvent(t,i);if(!0===o)s.nodes=[],s.edges=[];else{var r=this.getSelection();s.nodes=r.nodes,s.edges=r.edges}void 0!==n&&(s.previousSelection=n),"click"==e&&(s.items=this.getClickedItems(i)),this.body.emitter.emit(e,s)}},{key:"selectObject",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;return void 0!==e&&(e instanceof d&&!0===t&&this._selectConnectedEdges(e),e.select(),this._addToSelection(e),!0)}},{key:"deselectObject",value:function(e){!0===e.isSelected()&&(e.selected=!1,this._removeFromSelection(e))}},{key:"_getAllNodesOverlappingWith",value:function(e){for(var t=[],i=this.body.nodes,n=0;n1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(e),n=this._getAllNodesOverlappingWith(i);return n.length>0?!0===t?this.body.nodes[n[n.length-1]]:n[n.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(e,t){for(var i=this.body.edges,n=0;n1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(e),n=10,o=null,s=this.body.edges,r=0;r1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,n=void 0;if(!e||!e.nodes&&!e.edges)throw"Selection must be an object with nodes and/or edges properties";if((t.unselectAll||void 0===t.unselectAll)&&this.unselectAll(),e.nodes)for(i=0;i1&&void 0!==arguments[1])||arguments[1];if(!e||void 0===e.length)throw"Selection must be an array with ids";this.setSelection({nodes:e},{highlightEdges:t})}},{key:"selectEdges",value:function(e){if(!e||void 0===e.length)throw"Selection must be an array with ids";this.setSelection({edges:e})}},{key:"updateSelection",value:function(){for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(this.body.nodes.hasOwnProperty(e)||delete this.selectionObj.nodes[e]);for(var t in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(t)&&(this.body.edges.hasOwnProperty(t)||delete this.selectionObj.edges[t])}},{key:"getClickedItems",value:function(e){for(var t=this.canvas.DOMtoCanvas(e),i=[],n=this.body.nodeIndices,o=this.body.nodes,s=n.length-1;s>=0;s--){var r=o[n[s]],a=r.getItemsOnPoint(t);i.push.apply(i,a)}for(var d=this.body.edgeIndices,h=this.body.edges,l=d.length-1;l>=0;l--){var u=h[d[l]],c=u.getItemsOnPoint(t);i.push.apply(i,c)}return i}}]),e}();t.default=u},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(23),s=n(o),r=i(7),a=n(r),d=i(10),h=n(d),l=i(0),u=n(l),c=i(1),f=n(c),p=i(5),v=i(57).default,g=i(186),y=g.HorizontalStrategy,m=g.VerticalStrategy,b=function(){function e(){(0,u.default)(this,e),this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}return(0,f.default)(e,[{key:"addRelation",value:function(e,t){void 0===this.childrenReference[e]&&(this.childrenReference[e]=[]),this.childrenReference[e].push(t),void 0===this.parentReference[t]&&(this.parentReference[t]=[]),this.parentReference[t].push(e)}},{key:"checkIfTree",value:function(){for(var e in this.parentReference)if(this.parentReference[e].length>1)return void(this.isTree=!1);this.isTree=!0}},{key:"numTrees",value:function(){return this.treeIndex+1}},{key:"setTreeIndex",value:function(e,t){void 0!==t&&void 0===this.trees[e.id]&&(this.trees[e.id]=t,this.treeIndex=Math.max(t,this.treeIndex))}},{key:"ensureLevel",value:function(e){void 0===this.levels[e]&&(this.levels[e]=0)}},{key:"getMaxLevel",value:function(e){var t=this,i={};return function e(n){if(void 0!==i[n])return i[n];var o=t.levels[n];if(t.childrenReference[n]){var s=t.childrenReference[n];if(s.length>0)for(var r=0;r0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(t);if(!0===n)return this.body.emitter.emit("refresh"),p.deepExtend(t,this.optionsBackup)}return t}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(e){if(!0===this.options.hierarchical.enabled){var t=this.optionsBackup.physics;void 0===e.physics||!0===e.physics?(e.physics={enabled:void 0===t.enabled||t.enabled,solver:"hierarchicalRepulsion"},t.enabled=void 0===t.enabled||t.enabled,t.solver=t.solver||"barnesHut"):"object"===(0,a.default)(e.physics)?(t.enabled=void 0===e.physics.enabled||e.physics.enabled,t.solver=e.physics.solver||"barnesHut",e.physics.solver="hierarchicalRepulsion"):!1!==e.physics&&(t.solver="barnesHut",e.physics={solver:"hierarchicalRepulsion"});var i=this.direction.curveType();if(void 0===e.edges)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges={smooth:!1};else if(void 0===e.edges.smooth)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges.smooth=!1;else if("boolean"==typeof e.edges.smooth)this.optionsBackup.edges={smooth:e.edges.smooth},e.edges.smooth={enabled:e.edges.smooth,type:i};else{var n=e.edges.smooth;void 0!==n.type&&"dynamic"!==n.type&&(i=n.type),this.optionsBackup.edges={smooth:void 0===n.enabled||n.enabled,type:void 0===n.type?"dynamic":n.type,roundness:void 0===n.roundness?.5:n.roundness,forceDirection:void 0!==n.forceDirection&&n.forceDirection},e.edges.smooth={enabled:void 0===n.enabled||n.enabled,type:i,roundness:void 0===n.roundness?.5:n.roundness,forceDirection:void 0!==n.forceDirection&&n.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return e}},{key:"seededRandom",value:function(){var e=1e4*Math.sin(this.randomSeed++);return e-Math.floor(e)}},{key:"positionInitially",value:function(e){if(!0!==this.options.hierarchical.enabled){this.randomSeed=this.initialRandomSeed;for(var t=e.length+50,i=0;i150){for(var s=e.length;e.length>150&&n<=10;){n+=1;var r=e.length;n%3==0?this.body.modules.clustering.clusterBridges(o):this.body.modules.clustering.clusterOutliers(o);if(r==e.length&&n%3!=0)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*s)})}n>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(e,this.body.edgeIndices,!0),this._shiftToCenter();for(var a=0;a0){var e=void 0,t=void 0,i=!1,n=!1;this.lastNodeOnLevel={},this.hierarchical=new b;for(t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&(e=this.body.nodes[t],void 0!==e.options.level?(i=!0,this.hierarchical.levels[t]=e.options.level):n=!0);if(!0===n&&!0===i)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");if(!0===n){var o=this.options.hierarchical.sortMethod;"hubsize"===o?this._determineLevelsByHubsize():"directed"===o?this._determineLevelsDirected():"custom"===o&&this._determineLevelsCustomCallback()}for(var s in this.body.nodes)this.body.nodes.hasOwnProperty(s)&&this.hierarchical.ensureLevel(s);var r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var e=this,t=!1,i={},n=function(t,i){var n=e.hierarchical.trees;for(var o in n)n.hasOwnProperty(o)&&n[o]===t&&e.direction.shift(o,i)},o=function(){for(var t=[],i=0;i0)for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:1e9,n=1e9,o=1e9,r=1e9,a=-1e9;for(var d in t)if(t.hasOwnProperty(d)){var h=e.body.nodes[d],l=e.hierarchical.levels[h.id],u=e.direction.getPosition(h),c=e._getSpaceAroundNode(h,t),f=(0,s.default)(c,2),p=f[0],v=f[1];n=Math.min(p,n),o=Math.min(v,o),l<=i&&(r=Math.min(u,r),a=Math.max(u,a))}return[r,a,n,o]},d=function(t,i){var n=e.hierarchical.getMaxLevel(t.id),o=e.hierarchical.getMaxLevel(i.id);return Math.min(n,o)},h=function(t,i,n){for(var o=e.hierarchical,s=0;s1)for(var d=0;d2&&void 0!==arguments[2]&&arguments[2],s=e.direction.getPosition(i),h=e.direction.getPosition(n),l=Math.abs(h-s),u=e.options.hierarchical.nodeSpacing;if(l>u){var c={},f={};r(i,c),r(n,f);var p=d(i,n),v=a(c,p),g=a(f,p),y=v[1],m=g[0],b=g[2];if(Math.abs(y-m)>u){var _=y-m+u;_<-b+u&&(_=-b+u),_<0&&(e._shiftBlock(n.id,_),t=!0,!0===o&&e._centerParent(n))}}},u=function(n,o){for(var d=o.id,h=o.edges,l=e.hierarchical.levels[o.id],u=e.options.hierarchical.levelSeparation*e.options.hierarchical.levelSeparation,c={},f=[],p=0;p0?f=Math.min(c,u-e.options.hierarchical.nodeSpacing):c<0&&(f=-Math.min(-c,l-e.options.hierarchical.nodeSpacing)),0!=f&&(e._shiftBlock(o.id,f),t=!0)}(_),_=b(n,h),function(i){var n=e.direction.getPosition(o),r=e._getSpaceAroundNode(o),a=(0,s.default)(r,2),d=a[0],h=a[1],l=i-n,u=n;l>0?u=Math.min(n+(h-e.options.hierarchical.nodeSpacing),i):l<0&&(u=Math.max(n-(d-e.options.hierarchical.nodeSpacing),i)),u!==n&&(e.direction.setPosition(o,u),t=!0)}(_)};!0===this.options.hierarchical.blockShifting&&(function(i){var n=e.hierarchical.getLevels();n=n.reverse();for(var o=0;o0&&Math.abs(f)0&&(a=this.direction.getPosition(i[o-1])+r),this.direction.setPosition(s,a,t),this._validatePositionAndContinue(s,t,a),n++}}}}},{key:"_placeBranchNodes",value:function(e,t){var i=this.hierarchical.childrenReference[e];if(void 0!==i){for(var n=[],o=0;ot&&void 0===this.positionedNodes[r.id]))return;var d=this.options.hierarchical.nodeSpacing,h=void 0;h=0===s?this.direction.getPosition(this.body.nodes[e]):this.direction.getPosition(n[s-1])+d,this.direction.setPosition(r,h,a),this._validatePositionAndContinue(r,a,h)}var l=this._getCenterPosition(n);this.direction.setPosition(this.body.nodes[e],l,t)}}},{key:"_validatePositionAndContinue",value:function(e,t,i){if(this.hierarchical.isTree){if(void 0!==this.lastNodeOnLevel[t]){var n=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[t]]);if(i-ne.hierarchical.levels[t.id]&&e.hierarchical.addRelation(t.id,i.id)};this._crawlNetwork(t),this.hierarchical.checkIfTree()}},{key:"_crawlNetwork",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},i=arguments[1],n={},o=function i(o,s){if(void 0===n[o.id]){e.hierarchical.setTreeIndex(o,s),n[o.id]=!0;for(var r=void 0,a=e._getActiveEdges(o),d=0;d2&&void 0!==arguments[2]?arguments[2]:void 0;this.fake_use(e,t,i),this.abstract()}},{key:"getTreeSize",value:function(e){return this.fake_use(e),this.abstract()}},{key:"sort",value:function(e){this.fake_use(e),this.abstract()}},{key:"fix",value:function(e,t){this.fake_use(e,t),this.abstract()}},{key:"shift",value:function(e,t){this.fake_use(e,t),this.abstract()}}]),e}(),v=function(e){function t(e){(0,u.default)(this,t);var i=(0,a.default)(this,(t.__proto__||(0,s.default)(t)).call(this));return i.layout=e,i}return(0,h.default)(t,e),(0,f.default)(t,[{key:"curveType",value:function(){return"horizontal"}},{key:"getPosition",value:function(e){return e.x}},{key:"setPosition",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(e,i),e.x=t}},{key:"getTreeSize",value:function(e){var t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_x,max:t.max_x}}},{key:"sort",value:function(e){e.sort(function(e,t){return void 0===e.x||void 0===t.x?0:e.x-t.x})}},{key:"fix",value:function(e,t){e.y=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.y=!0}},{key:"shift",value:function(e,t){this.layout.body.nodes[e].x+=t}}]),t}(p),g=function(e){function t(e){(0,u.default)(this,t);var i=(0,a.default)(this,(t.__proto__||(0,s.default)(t)).call(this));return i.layout=e,i}return(0,h.default)(t,e),(0,f.default)(t,[{key:"curveType",value:function(){return"vertical"}},{key:"getPosition",value:function(e){return e.y}},{key:"setPosition",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(e,i),e.y=t}},{key:"getTreeSize",value:function(e){var t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_y,max:t.max_y}}},{key:"sort",value:function(e){e.sort(function(e,t){return void 0===e.y||void 0===t.y?0:e.y-t.y})}},{key:"fix",value:function(e,t){e.x=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.x=!0}},{key:"shift",value:function(e,t){this.layout.body.nodes[e].y+=t}}]),t}(p);t.HorizontalStrategy=g,t.VerticalStrategy=v},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(10),s=n(o),r=i(21),a=n(r),d=i(7),h=n(d),l=i(0),u=n(l),c=i(1),f=n(c),p=i(5),v=i(22),g=i(35),y=function(){function e(t,i,n){var o=this;(0,u.default)(this,e),this.body=t,this.canvas=i,this.selectionHandler=n,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this.manipulationHammers=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},p.extend(this.options,this.defaultOptions),this.body.emitter.on("destroy",function(){o._clean()}),this.body.emitter.on("_dataChanged",this._restore.bind(this)),this.body.emitter.on("_resetData",this._restore.bind(this))}return(0,f.default)(e,[{key:"_restore",value:function(){!1!==this.inMode&&(!0===this.options.initiallyActive?this.enableEditMode():this.disableEditMode())}},{key:"setOptions",value:function(e,t,i){void 0!==t&&(void 0!==t.locale?this.options.locale=t.locale:this.options.locale=i.locale,void 0!==t.locales?this.options.locales=t.locales:this.options.locales=i.locales),void 0!==e&&("boolean"==typeof e?this.options.enabled=e:(this.options.enabled=!0,p.deepExtend(this.options,e)),!0===this.options.initiallyActive&&(this.editMode=!0),this._setup())}},{key:"toggleEditMode",value:function(){!0===this.editMode?this.disableEditMode():this.enableEditMode()}},{key:"enableEditMode",value:function(){this.editMode=!0,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}},{key:"disableEditMode",value:function(){this.editMode=!1,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}},{key:"showManipulatorToolbar",value:function(){if(this._clean(),this.manipulationDOM={},!0===this.guiEnabled){this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";var e=this.selectionHandler._getSelectedNodeCount(),t=this.selectionHandler._getSelectedEdgeCount(),i=e+t,n=this.options.locales[this.options.locale],o=!1;!1!==this.options.addNode&&(this._createAddNodeButton(n),o=!0),!1!==this.options.addEdge&&(!0===o?this._createSeperator(1):o=!0,this._createAddEdgeButton(n)),1===e&&"function"==typeof this.options.editNode?(!0===o?this._createSeperator(2):o=!0,this._createEditNodeButton(n)):1===t&&0===e&&!1!==this.options.editEdge&&(!0===o?this._createSeperator(3):o=!0,this._createEditEdgeButton(n)),0!==i&&(e>0&&!1!==this.options.deleteNode?(!0===o&&this._createSeperator(4),this._createDeleteButton(n)):0===e&&!1!==this.options.deleteEdge&&(!0===o&&this._createSeperator(4),this._createDeleteButton(n))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addNode",!0===this.guiEnabled){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var e=this;!0!==this.editMode&&this.enableEditMode(),this._clean();var t=this.selectionHandler._getSelectedNode();if(void 0!==t){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(!0!==t.isCluster){var i=p.deepExtend({},t.options,!1);if(i.x=t.x,i.y=t.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(t){null!==t&&void 0!==t&&"editNode"===e.inMode&&e.body.data.nodes.getDataSet().update(t),e.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addEdge",!0===this.guiEnabled){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",this._dragStartEdge.bind(this)),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="editEdge","object"===(0,h.default)(this.options.editEdge)&&"function"==typeof this.options.editEdge.editWithoutDrag&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId)){var e=this.body.edges[this.edgeBeingEditedId];return void this._performEditEdge(e.from,e.to)}if(!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId){var i=this.body.edges[this.edgeBeingEditedId],n=this._getNewTargetNode(i.from.x,i.from.y),o=this._getNewTargetNode(i.to.x,i.to.y);this.temporaryIds.nodes.push(n.id),this.temporaryIds.nodes.push(o.id),this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id),this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id),this._temporaryBindUI("onTouch",this._controlNodeTouch.bind(this)),this._temporaryBindUI("onTap",function(){}),this._temporaryBindUI("onHold",function(){}),this._temporaryBindUI("onDragStart",this._controlNodeDragStart.bind(this)),this._temporaryBindUI("onDrag",this._controlNodeDrag.bind(this)),this._temporaryBindUI("onDragEnd",this._controlNodeDragEnd.bind(this)),this._temporaryBindUI("onMouseMove",function(){}),this._temporaryBindEvent("beforeDrawing",function(e){var t=i.edgeType.findBorderPositions(e);!1===n.selected&&(n.x=t.from.x,n.y=t.from.y),!1===o.selected&&(o.x=t.to.x,o.y=t.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var e=this;!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="delete";var t=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),n=void 0;if(t.length>0){for(var o=0;o0&&"function"==typeof this.options.deleteEdge&&(n=this.options.deleteEdge);if("function"==typeof n){var s={nodes:t,edges:i};if(2!==n.length)throw new Error("The function for delete does not support two arguments (data, callback)");n(s,function(t){null!==t&&void 0!==t&&"delete"===e.inMode?(e.body.data.edges.getDataSet().remove(t.edges),e.body.data.nodes.getDataSet().remove(t.nodes),e.body.emitter.emit("startSimulation"),e.showManipulatorToolbar()):(e.body.emitter.emit("startSimulation"),e.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(t),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){!0===this.options.enabled?(this.guiEnabled=!0,this._createWrappers(),!1===this.editMode?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",!0===this.editMode?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",!0===this.editMode?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(e,t){var i=p.deepExtend({},this.options.controlNodeStyle);i.id="targetNode"+p.randomUUID(),i.hidden=!1,i.physics=!1,i.x=e,i.y=t;var n=this.body.functions.createNode(i);return n.shape.boundingBox={left:e,right:e,top:t,bottom:t},n}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},p.recursiveDOMDelete(this.editModeDiv);var e=this.options.locales[this.options.locale],t=this._createButton("editMode","vis-button vis-edit vis-edit-mode",e.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(t),this._bindHammerToDiv(t,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,!0===this.guiEnabled&&(p.recursiveDOMDelete(this.editModeDiv),p.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+e]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+e].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+e])}},{key:"_createAddNodeButton",value:function(e){var t=this._createButton("addNode","vis-button vis-add",e.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.addNodeMode.bind(this))}},{key:"_createAddEdgeButton",value:function(e){var t=this._createButton("addEdge","vis-button vis-connect",e.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.addEdgeMode.bind(this))}},{key:"_createEditNodeButton",value:function(e){var t=this._createButton("editNode","vis-button vis-edit",e.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.editNode.bind(this))}},{key:"_createEditEdgeButton",value:function(e){var t=this._createButton("editEdge","vis-button vis-edit",e.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.editEdgeMode.bind(this))}},{key:"_createDeleteButton",value:function(e){var t;t=this.options.rtl?"vis-button vis-delete-rtl":"vis-button vis-delete";var i=this._createButton("delete",t,e.del||this.options.locales.en.del);this.manipulationDiv.appendChild(i),this._bindHammerToDiv(i,this.deleteSelected.bind(this))}},{key:"_createBackButton",value:function(e){var t=this._createButton("back","vis-button vis-back",e.back||this.options.locales.en.back);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.showManipulatorToolbar.bind(this))}},{key:"_createButton",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vis-label";return this.manipulationDOM[e+"Div"]=document.createElement("div"),this.manipulationDOM[e+"Div"].className=t,this.manipulationDOM[e+"Label"]=document.createElement("div"),this.manipulationDOM[e+"Label"].className=n,this.manipulationDOM[e+"Label"].innerHTML=i,this.manipulationDOM[e+"Div"].appendChild(this.manipulationDOM[e+"Label"]),this.manipulationDOM[e+"Div"]}},{key:"_createDescription",value:function(e){this.manipulationDiv.appendChild(this._createButton("description","vis-button vis-none",e))}},{key:"_temporaryBindEvent",value:function(e,t){this.temporaryEventFunctions.push({event:e,boundFunction:t}),this.body.emitter.on(e,t)}},{key:"_temporaryBindUI",value:function(e,t){if(void 0===this.body.eventListeners[e])throw new Error("This UI function does not exist. Typo? You tried: "+e+" possible are: "+(0,a.default)((0,s.default)(this.body.eventListeners)));this.temporaryUIFunctions[e]=this.body.eventListeners[e],this.body.eventListeners[e]=t}},{key:"_unbindTemporaryUIs",value:function(){for(var e in this.temporaryUIFunctions)this.temporaryUIFunctions.hasOwnProperty(e)&&(this.body.eventListeners[e]=this.temporaryUIFunctions[e],delete this.temporaryUIFunctions[e]);this.temporaryUIFunctions={}}},{key:"_unbindTemporaryEvents",value:function(){for(var e=0;e=0;r--)if(o[r]!==this.selectedControlNode.id){s=this.body.nodes[o[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(!0===s.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,n.to.id):this._performEditEdge(n.from.id,s.id)}else n.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(e){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(e.center),this.lastTouch.translation=p.extend({},this.body.view.translation);var t=this.lastTouch,i=this.selectionHandler.getNodeAt(t);if(void 0!==i)if(!0===i.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var n=this._getNewTargetNode(i.x,i.y);this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id);var o=this.body.functions.createEdge({id:"connectionEdge"+p.randomUUID(),from:i.id,to:n.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[o.id]=o,this.body.edgeIndices.push(o.id),this.temporaryIds.nodes.push(n.id),this.temporaryIds.edges.push(o.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(e){var t=this.body.functions.getPointer(e.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(t.x),i.y=this.canvas._YconvertDOMtoCanvas(t.y),this.body.emitter.emit("_redraw")}else{var n=t.x-this.lastTouch.x,o=t.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+n,y:this.lastTouch.translation.y+o}}}},{key:"_finishConnect",value:function(e){var t=this.body.functions.getPointer(e.center),i=this.selectionHandler._pointerToPositionObject(t),n=void 0;void 0!==this.temporaryIds.edges[0]&&(n=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var o=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=o.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(o[r])){s=this.body.nodes[o[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(!0===s.isCluster?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[n]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(n,s.id)),this.body.emitter.emit("_redraw")}},{key:"_dragStartEdge",value:function(e){var t=this.lastTouch;this.selectionHandler._generateClickEvent("dragStart",e,t,void 0,!0)}},{key:"_performAddNode",value:function(e){var t=this,i={id:p.randomUUID(),x:e.pointer.canvas.x,y:e.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(e){null!==e&&void 0!==e&&"addNode"===t.inMode&&(t.body.data.nodes.getDataSet().add(e),t.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(e,t){var i=this,n={from:e,to:t};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(n,function(e){null!==e&&void 0!==e&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(e),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(n),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(e,t){var i=this,n={id:this.edgeBeingEditedId,from:e,to:t,label:this.body.data.edges._data[this.edgeBeingEditedId].label},o=this.options.editEdge;if("object"===(void 0===o?"undefined":(0,h.default)(o))&&(o=o.editWithoutDrag),"function"==typeof o){if(2!==o.length)throw new Error("The function for edit does not support two arguments (data, callback)");o(n,function(e){null===e||void 0===e||"editEdge"!==i.inMode?(i.body.edges[n.id].updateEdgeType(),i.body.emitter.emit("_redraw"),i.showManipulatorToolbar()):(i.body.data.edges.getDataSet().update(e),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(n),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),e}();t.default=y},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(21),s=n(o),r=i(7),a=n(r),d=i(0),h=n(d),l=i(1),u=n(l),c=i(5),f=i(189).default,p=function(){function e(t,i,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,h.default)(this,e),this.parent=t,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},c.extend(this.options,this.defaultOptions),this.configureOptions=n,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new f(o),this.wrapper=void 0}return(0,u.default)(e,[{key:"setOptions",value:function(e){if(void 0!==e){this.popupHistory={},this._removePopup();var t=!0;"string"==typeof e?this.options.filter=e:e instanceof Array?this.options.filter=e.join():"object"===(void 0===e?"undefined":(0,a.default)(e))?(void 0!==e.container&&(this.options.container=e.container),void 0!==e.filter&&(this.options.filter=e.filter),void 0!==e.showButton&&(this.options.showButton=e.showButton),void 0!==e.enabled&&(t=e.enabled)):"boolean"==typeof e?(this.options.filter=!0,t=e):"function"==typeof e&&(this.options.filter=e,t=!0),!1===this.options.filter&&(t=!1),this.options.enabled=t}this._clean()}},{key:"setModuleOptions",value:function(e){this.moduleOptions=e,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var e=this;this._clean(),this.changedOptions=[];var t=this.options.filter,i=0,n=!1;for(var o in this.configureOptions)this.configureOptions.hasOwnProperty(o)&&(this.allowCreation=!1,n=!1,"function"==typeof t?(n=t(o,[]),n=n||this._handleObject(this.configureOptions[o],[o],!0)):!0!==t&&-1===t.indexOf(o)||(n=!0),!1!==n&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(o),this._handleObject(this.configureOptions[o],[o])),i++);if(!0===this.options.showButton){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){e._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var e=0;e1?i-1:0),o=1;o2&&void 0!==arguments[2]&&arguments[2],n=document.createElement("div");return n.className="vis-configuration vis-config-label vis-config-s"+t.length,n.innerHTML=!0===i?""+e+":":e+":",n}},{key:"_makeDropdown",value:function(e,t,i){var n=document.createElement("select");n.className="vis-configuration vis-config-select";var o=0;void 0!==t&&-1!==e.indexOf(t)&&(o=e.indexOf(t));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(1.2*t),h=a.max,d="range increased"),a.value=t}else a.value=n;var l=document.createElement("input");l.className="vis-configuration vis-config-rangeinput",l.value=a.value;var u=this;a.onchange=function(){l.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){l.value=this.value};var c=this._makeLabel(i[i.length-1],i),f=this._makeItem(i,c,a,l);""!==d&&this.popupHistory[f]!==h&&(this.popupHistory[f]=h,this._setupPopup(d,f))}},{key:"_setupPopup",value:function(e,t){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=!1,o=this.options.filter,s=!1;for(var r in e)if(e.hasOwnProperty(r)){n=!0;var a=e[r],d=c.copyAndExtendArray(t,r);if("function"==typeof o&&!1===(n=o(r,t))&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,n=this._handleObject(a,d,!0),this.allowCreation=!1===i),!1!==n){s=!0;var h=this._getValue(d);if(a instanceof Array)this._handleArray(a,h,d);else if("string"==typeof a)this._makeTextInput(a,h,d);else if("boolean"==typeof a)this._makeCheckbox(a,h,d);else if(a instanceof Object){var l=!0;if(-1!==t.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(l=!1),!0===l)if(void 0!==a.enabled){var u=c.copyAndExtendArray(d,"enabled"),f=this._getValue(u);if(!0===f){var p=this._makeLabel(r,d,!0);this._makeItem(d,p),s=this._handleObject(a,d)||s}else this._makeCheckbox(a,f,d)}else{var v=this._makeLabel(r,d,!0);this._makeItem(d,v),s=this._handleObject(a,d)||s}}else console.error("dont know how to handle",a,r,d)}}return s}},{key:"_handleArray",value:function(e,t,i){"string"==typeof e[0]&&"color"===e[0]?(this._makeColorField(e,t,i),e[1]!==t&&this.changedOptions.push({path:i,value:t})):"string"==typeof e[0]?(this._makeDropdown(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:t})):"number"==typeof e[0]&&(this._makeRange(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:Number(t)}))}},{key:"_update",value:function(e,t){var i=this._constructOptions(e,t);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=i;e="true"===e||e,e="false"!==e&&e;for(var o=0;ovar options = "+(0,s.default)(e,null,2)+""}},{key:"getOptions",value:function(){for(var e={},t=0;t0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,e),this.pixelRatio=t,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,h.default)(e,[{key:"insertTo",value:function(e){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=e,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(e){if("function"!=typeof e)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=e}},{key:"setCloseCallback",value:function(e){if("function"!=typeof e)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=e}},{key:"_isColorString",value:function(e){var t={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof e)return t[e]}},{key:"setColor",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==e){var i=void 0,n=this._isColorString(e);if(void 0!==n&&(e=n),!0===c.isString(e)){if(!0===c.isValidRGB(e)){var o=e.substr(4).substr(0,e.length-5).split(",");i={r:o[0],g:o[1],b:o[2],a:1}}else if(!0===c.isValidRGBA(e)){var r=e.substr(5).substr(0,e.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===c.isValidHex(e)){var a=c.hexToRGB(e);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(e instanceof Object&&void 0!==e.r&&void 0!==e.g&&void 0!==e.b){var d=void 0!==e.a?e.a:"1.0";i={r:e.r,g:e.g,b:e.b,a:d}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(e));this._setColor(i,t)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var e=this;!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=c.extend({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==e.closeCallback&&(e.closeCallback(),e.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(e){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=c.extend({},e)),this.color=e;var t=c.RGBToHSV(e.r,e.g,e.b),i=2*Math.PI,n=this.r*t.s,o=this.centerCoordinates.x+n*Math.sin(i*t.h),s=this.centerCoordinates.y+n*Math.cos(i*t.h);this.colorPickerSelector.style.left=o-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=s-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(e)}},{key:"_setOpacity",value:function(e){this.color.a=e/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(e){var t=c.RGBToHSV(this.color.r,this.color.g,this.color.b);t.v=e/100;var i=c.HSVToRGB(t.h,t.s,t.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,t=c.RGBToHSV(e.r,e.g,e.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var n=this.colorPickerCanvas.clientWidth,o=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,n,o),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-t.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*t.v,this.opacityRange.value=100*e.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var e=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(t)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(e){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(e){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var e=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(t){e._moveSelector(t)}),this.hammer.on("tap",function(t){e._moveSelector(t)}),this.hammer.on("panstart",function(t){e._moveSelector(t)}),this.hammer.on("panmove",function(t){e._moveSelector(t)}),this.hammer.on("panend",function(t){e._moveSelector(t)})}},{key:"_generateHueCircle",value:function(){if(!1===this.generated){var e=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var t=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;e.clearRect(0,0,t,i);var n=void 0,o=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*t,y:.5*i},this.r=.49*t;var a=2*Math.PI/360,d=1/this.r,h=void 0;for(s=0;s<360;s++)for(r=0;r2&&void 0!==arguments[2]&&arguments[2],n=this.distanceSolver.getDistances(this.body,e,t);this._createL_matrix(n),this._createK_matrix(n),this._createE_matrix();for(var o=0,r=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),a=1e9,d=0,h=0,l=0,u=0,c=0;a>.01&&o1&&c<5;){c+=1,this._moveNode(d,h,l);var v=this._getEnergy(d),g=(0,s.default)(v,3);u=g[0],h=g[1],l=g[2]}}}},{key:"_getHighestEnergyNode",value:function(e){for(var t=this.body.nodeIndices,i=this.body.nodes,n=0,o=t[0],r=0,a=0,d=0;d\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=o.console&&(o.console.warn||o.console.log);return s&&s.call(o.console,n,i),e.apply(this,arguments)}}function c(e,t,i){var n,o=t.prototype;n=e.prototype=Object.create(o),n.constructor=e,n._super=o,i&&pe(n,i)}function f(e,t){return function(){return e.apply(t,arguments)}}function p(e,t){return typeof e==ye?e.apply(t?t[0]||a:a,t):e}function v(e,t){return e===a?t:e}function g(e,t,i){l(_(t),function(t){e.addEventListener(t,i,!1)})}function y(e,t,i){l(_(t),function(t){e.removeEventListener(t,i,!1)})}function m(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function b(e,t){return e.indexOf(t)>-1}function _(e){return e.trim().split(/\s+/g)}function w(e,t,i){if(e.indexOf&&!i)return e.indexOf(t);for(var n=0;ni[t]}):n.sort()),n}function O(e,t){for(var i,n,o=t[0].toUpperCase()+t.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=F(t):1===o&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,d=t.center=N(n);t.timeStamp=_e(),t.deltaTime=t.timeStamp-s.timeStamp,t.angle=A(a,d),t.distance=R(a,d),P(i,t),t.offsetDirection=z(t.deltaX,t.deltaY);var h=B(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=h.x,t.overallVelocityY=h.y,t.overallVelocity=be(h.x)>be(h.y)?h.x:h.y,t.scale=r?L(r.pointers,n):1,t.rotation=r?j(r.pointers,n):0,t.maxPointers=i.prevInput?t.pointers.length>i.prevInput.maxPointers?t.pointers.length:i.prevInput.maxPointers:t.pointers.length,I(i,t);var l=e.element;m(t.srcEvent.target,l)&&(l=t.srcEvent.target),t.target=l}function P(e,t){var i=t.center,n=e.offsetDelta||{},o=e.prevDelta||{},s=e.prevInput||{};t.eventType!==Ce&&s.eventType!==Pe||(o=e.prevDelta={x:s.deltaX||0,y:s.deltaY||0},n=e.offsetDelta={x:i.x,y:i.y}),t.deltaX=o.x+(i.x-n.x),t.deltaY=o.y+(i.y-n.y)}function I(e,t){var i,n,o,s,r=e.lastInterval||t,d=t.timeStamp-r.timeStamp;if(t.eventType!=Ie&&(d>De||r.velocity===a)){var h=t.deltaX-r.deltaX,l=t.deltaY-r.deltaY,u=B(d,h,l);n=u.x,o=u.y,i=be(u.x)>be(u.y)?u.x:u.y,s=z(h,l),e.lastInterval=t}else i=r.velocity,n=r.velocityX,o=r.velocityY,s=r.direction;t.velocity=i,t.velocityX=n,t.velocityY=o,t.direction=s}function F(e){for(var t=[],i=0;i=be(t)?e<0?Ne:Be:t<0?ze:Re}function R(e,t,i){i||(i=He);var n=t[i[0]]-e[i[0]],o=t[i[1]]-e[i[1]];return Math.sqrt(n*n+o*o)}function A(e,t,i){i||(i=He);var n=t[i[0]]-e[i[0]],o=t[i[1]]-e[i[1]];return 180*Math.atan2(o,n)/Math.PI}function j(e,t){return A(t[1],t[0],We)+A(e[1],e[0],We)}function L(e,t){return R(t[0],t[1],We)/R(e[0],e[1],We)}function H(){this.evEl=Ve,this.evWin=Ue,this.pressed=!1,S.apply(this,arguments)}function W(){this.evEl=Xe,this.evWin=Ke,S.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=$e,this.evWin=Qe,this.started=!1,S.apply(this,arguments)}function V(e,t){var i=k(e.touches),n=k(e.changedTouches);return t&(Pe|Ie)&&(i=x(i.concat(n),"identifier",!0)),[i,n]}function U(){this.evTarget=et,this.targetIds={},S.apply(this,arguments)}function q(e,t){var i=k(e.touches),n=this.targetIds;if(t&(Ce|Te)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var o,s,r=k(e.changedTouches),a=[],d=this.target;if(s=i.filter(function(e){return m(e.target,d)}),t===Ce)for(o=0;o-1&&n.splice(e,1)};setTimeout(o,tt)}}function Z(e){for(var t=e.srcEvent.clientX,i=e.srcEvent.clientY,n=0;n-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){function t(t){i.manager.emit(t,e)}var i=this,n=this.state;n=pt&&t(i.options.event+ee(n))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=32},canEmit:function(){for(var e=0;et.threshold&&o&t.direction},attrTest:function(e){return ne.prototype.attrTest.call(this,e)&&(this.state&ct||!(this.state&ct)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=te(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),c(se,ne,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[at]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||this.state&ct)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),c(re,J,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[st]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,n=e.distancet.time;if(this._input=e,!n||!i||e.eventType&(Pe|Ie)&&!o)this.reset();else if(e.eventType&Ce)this.reset(),this._timer=d(function(){this.state=vt,this.tryEmit()},t.time,this);else if(e.eventType&Pe)return vt;return 32},reset:function(){clearTimeout(this._timer)},emit:function(e){this.state===vt&&(e&&e.eventType&Pe?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=_e(),this.manager.emit(this.options.event,this._input)))}}),c(ae,ne,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[at]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||this.state&ct)}}),c(de,ne,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ae|je,pointers:1},getTouchAction:function(){return oe.prototype.getTouchAction.call(this)},attrTest:function(e){var t,i=this.options.direction;return i&(Ae|je)?t=e.overallVelocity:i&Ae?t=e.overallVelocityX:i&je&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&i&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&be(t)>this.options.velocity&&e.eventType&Pe},emit:function(e){var t=te(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),c(he,J,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[rt]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,n=e.distance2){t*=.5;for(var r=0;t>2&&r=this.NUM_ITERATIONS&&(r=this.NUM_ITERATIONS-1);var a=this.coordinates[r];e.drawImage(this.canvas,a[0],a[1],a[2],a[3],i,n,o,s)}else e.drawImage(this.image,i,n,o,s)}}]),e}();t.default=d},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(5),h=function(){function e(){(0,s.default)(this,e),this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},d.extend(this.options,this.defaultOptions)}return(0,a.default)(e,[{key:"setOptions",value:function(e){var t=["useDefaultGroups"];if(void 0!==e)for(var i in e)if(e.hasOwnProperty(i)&&-1===t.indexOf(i)){var n=e[i];this.add(i,n)}}},{key:"clear",value:function(){this.groups={},this.groupsArray=[]}},{key:"get",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.groups[e];if(void 0===i&&t)if(!1===this.options.useDefaultGroups&&this.groupsArray.length>0){var n=this.groupIndex%this.groupsArray.length;this.groupIndex++,i={},i.color=this.groups[this.groupsArray[n]],this.groups[e]=i}else{var o=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,i={},i.color=this.defaultGroups[o],this.groups[e]=i}return i}},{key:"add",value:function(e,t){return this.groups[e]=t,this.groupsArray.push(e),t}}]),e}();t.default=h},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(5),h=i(33),l=i(51),u=i(34).default,c=function(){function e(t,i,n,o){var r=this;if((0,s.default)(this,e),this.body=t,this.images=i,this.groups=n,this.layoutEngine=o,this.body.functions.createNode=this.create.bind(this),this.nodesListeners={add:function(e,t){r.add(t.items)},update:function(e,t){r.update(t.items,t.data,t.oldData)},remove:function(e,t){r.remove(t.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(e,t,i,n){if(t===e)return.5;var o=1/(t-e);return Math.max(0,(n-e)*o)}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=d.bridgeObject(this.defaultOptions),this.bindEventListeners()}return(0,a.default)(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("refreshNodes",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){d.forEach(e.nodesListeners,function(t,i){e.body.data.nodes&&e.body.data.nodes.off(i,t)}),delete e.body.functions.createNode,delete e.nodesListeners.add,delete e.nodesListeners.update,delete e.nodesListeners.remove,delete e.nodesListeners})}},{key:"setOptions",value:function(e){if(void 0!==e){if(u.parseOptions(this.options,e),void 0!==e.shape)for(var t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&this.body.nodes[t].updateShape();if(void 0!==e.font)for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&(this.body.nodes[i].updateLabelModule(),this.body.nodes[i].needsRefresh());if(void 0!==e.size)for(var n in this.body.nodes)this.body.nodes.hasOwnProperty(n)&&this.body.nodes[n].needsRefresh();void 0===e.hidden&&void 0===e.physics||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.data.nodes;if(e instanceof h||e instanceof l)this.body.data.nodes=e;else if(Array.isArray(e))this.body.data.nodes=new h,this.body.data.nodes.add(e);else{if(e)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new h}if(i&&d.forEach(this.nodesListeners,function(e,t){i.off(t,e)}),this.body.nodes={},this.body.data.nodes){var n=this;d.forEach(this.nodesListeners,function(e,t){n.body.data.nodes.on(t,e)});var o=this.body.data.nodes.getIds();this.add(o,!0)}!1===t&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,n=[],o=0;o1&&void 0!==arguments[1]?arguments[1]:u)(e,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:"refresh",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];d.forEach(this.body.nodes,function(i,n){var o=e.body.data.nodes.get(n);void 0!==o&&(!0===t&&i.setOptions({x:null,y:null}),i.setOptions({fixed:!1}),i.setOptions(o))})}},{key:"getPositions",value:function(e){var t={};if(void 0!==e){if(!0===Array.isArray(e)){for(var i=0;i0)for(var r=0;r0)for(var f=0;f0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(t.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(e){" "===e&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=e&&(this.buffer+=e)};i.position/.test(e.substr(i.position,3))?i.mono||i.ital||!//.test(e.substr(i.position,3))?!i.mono&&//.test(e.substr(i.position,6))?(i.emitBlock(),i.mono=!0,i.modStack.unshift("mono"),i.position+=5):!i.mono&&"bold"===i.mod()&&/<\/b>/.test(e.substr(i.position,4))?(i.emitBlock(),i.bold=!1,i.modStack.shift(),i.position+=3):!i.mono&&"ital"===i.mod()&&/<\/i>/.test(e.substr(i.position,4))?(i.emitBlock(),i.ital=!1,i.modStack.shift(),i.position+=3):"mono"===i.mod()&&/<\/code>/.test(e.substr(i.position,7))?(i.emitBlock(),i.mono=!1,i.modStack.shift(),i.position+=6):i.add(n):(i.emitBlock(),i.ital=!0,i.modStack.unshift("ital"),i.position+=2):(i.emitBlock(),i.bold=!0,i.modStack.unshift("bold"),i.position+=2):/&/.test(n)?/</.test(e.substr(i.position,4))?(i.add("<"),i.position+=3):/&/.test(e.substr(i.position,5))?(i.add("&"),i.position+=4):i.add("&"):i.add(n),i.position++}return i.emitBlock(),t}},{key:"splitMarkdownBlocks",value:function(e){var t=[],i={bold:!1,ital:!1,mono:!1,beginable:!0,spacing:!1,position:0,buffer:"",modStack:[]};for(i.mod=function(){return 0===this.modStack.length?"normal":this.modStack[0]},i.modName=function(){return 0===this.modStack.length?"normal":"mono"===this.modStack[0]?"mono":i.bold&&i.ital?"boldital":i.bold?"bold":i.ital?"ital":void 0},i.emitBlock=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(t.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(e){" "===e&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=e&&(this.buffer+=e)};i.positionthis.parent.fontOptions.maxWdt}},{key:"getLongestFit",value:function(e){for(var t="",i=0;i1&&void 0!==arguments[1]?arguments[1]:"normal",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e=e.replace(/^( +)/g,"$1\r"),e=e.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");for(var n=e.split("\r");n.length>0;){var o=this.getLongestFit(n);if(0===o){var s=n[0],r=this.getLongestFitWord(s);this.lines.newLine(s.slice(0,r),t),n[0]=s.slice(r)}else{var a=o;" "===n[o-1]?o--:" "===n[a]&&a++;var d=n.slice(0,o).join("");o==n.length&&i?this.lines.append(d,t):this.lines.newLine(d,t),n=n.slice(a)}}}}]),e}();t.default=l},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(138),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=function(){function e(t){(0,a.default)(this,e),this.measureText=t,this.current=0,this.width=0,this.height=0,this.lines=[]}return(0,h.default)(e,[{key:"_add",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"normal";void 0===this.lines[e]&&(this.lines[e]={width:0,height:0,blocks:[]});var n=t;void 0!==t&&""!==t||(n=" ");var o=this.measureText(n,i),r=(0,s.default)({},o.values);r.text=t,r.width=o.width,r.mod=i,void 0!==t&&""!==t||(r.width=0),this.lines[e].blocks.push(r),this.lines[e].width+=r.width}},{key:"curWidth",value:function(){var e=this.lines[this.current];return void 0===e?0:e.width}},{key:"append",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,e,t)}},{key:"newLine",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,e,t),this.current++}},{key:"determineLineHeights",value:function(){for(var e=0;ee&&(e=n.width),t+=n.height}this.width=e,this.height=t}},{key:"removeEmptyBlocks",value:function(){for(var e=[],t=0;tl;)for(var f,p=d(arguments[l++]),v=u?o(p).concat(u(p)):o(p),g=v.length,y=0;g>y;)f=v[y++],n&&!c.call(p,f)||(i[f]=p[f]);return i}:h},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){(0,a.default)(this,t);var o=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return o._setMargins(n),o}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(t,i)){var n=this.getDimensionsFromLabel(e,t,i);this.width=n.width+this.margin.right+this.margin.left,this.height=n.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}},{key:"draw",value:function(e,t,i,n,o,s){this.resize(e,n,o),this.left=t-this.width/2,this.top=i-this.height/2,this.initContextForDraw(e,s),e.roundRect(this.left,this.top,this.width,this.height,s.borderRadius),this.performFill(e,s),this.updateBoundingBox(t,i,e,n,o),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o)}},{key:"updateBoundingBox",value:function(e,t,i,n,o){this._updateBoundingBox(e,t,i,n,o);var s=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(s)}},{key:"distanceToBorder",value:function(e,t){this.resize(e);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(t)),Math.abs(this.height/2/Math.sin(t)))+i}}]),t}(v.default);t.default=g},function(e,t,i){i(144),e.exports=i(6).Object.getPrototypeOf},function(e,t,i){var n=i(27),o=i(66);i(68)("getPrototypeOf",function(){return function(e){return o(n(e))}})},function(e,t,i){e.exports={default:i(146),__esModule:!0}},function(e,t,i){i(147),e.exports=i(6).Object.setPrototypeOf},function(e,t,i){var n=i(12);n(n.S,"Object",{setPrototypeOf:i(148).set})},function(e,t,i){var n=i(20),o=i(19),s=function(e,t){if(o(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,n){try{n=i(61)(Function.call,i(70).f(Object.prototype,"__proto__").set,2),n(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,i){return s(e,i),t?e.__proto__=i:n(e,i),e}}({},!1):void 0),check:s}},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(53),v=n(p),g=function(e){function t(e,i,n){(0,a.default)(this,t);var o=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return o._setMargins(n),o}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(t,i)){var n=this.getDimensionsFromLabel(e,t,i),o=Math.max(n.width+this.margin.right+this.margin.left,n.height+this.margin.top+this.margin.bottom);this.options.size=o/2,this.width=o,this.height=o,this.radius=this.width/2}}},{key:"draw",value:function(e,t,i,n,o,s){this.resize(e,n,o),this.left=t-this.width/2,this.top=i-this.height/2,this._drawRawCircle(e,t,i,s),this.updateBoundingBox(t,i),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,i,n,o)}},{key:"updateBoundingBox",value:function(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size}},{key:"distanceToBorder",value:function(e,t){return this.resize(e),.5*this.width}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(53),v=n(p),g=function(e){function t(e,i,n,o,r){(0,a.default)(this,t);var d=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return d.setImages(o,r),d}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var n=2*this.options.size;return this.width=n,this.height=n,void(this.radius=.5*this.width)}this.needsRefresh(t,i)&&this._resizeImage()}},{key:"draw",value:function(e,t,i,n,o,s){this.switchImages(n),this.resize(),this.left=t-this.width/2,this.top=i-this.height/2,this._drawRawCircle(e,t,i,s),e.save(),e.clip(),this._drawImageAtPosition(e,s),e.restore(),this._drawImageLabel(e,t,i,n,o),this.updateBoundingBox(t,i)}},{key:"updateBoundingBox",value:function(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size,this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:"distanceToBorder",value:function(e,t){return this.resize(e),.5*this.width}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){(0,a.default)(this,t);var o=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return o._setMargins(n),o}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e,t,i){if(this.needsRefresh(t,i)){var n=this.getDimensionsFromLabel(e,t,i),o=n.width+this.margin.right+this.margin.left;this.width=o,this.height=o,this.radius=this.width/2}}},{key:"draw",value:function(e,t,i,n,o,s){this.resize(e,n,o),this.left=t-this.width/2,this.top=i-this.height/2,this.initContextForDraw(e,s),e.database(t-this.width/2,i-this.height/2,this.width,this.height),this.performFill(e,s),this.updateBoundingBox(t,i,e,n,o),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"diamond",4,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"circle",2,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this.resize(e),this.options.size}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(t,i)){var n=this.getDimensionsFromLabel(e,t,i);this.height=2*n.height,this.width=n.width+n.height,this.radius=.5*this.width}}},{key:"draw",value:function(e,t,i,n,o,s){this.resize(e,n,o),this.left=t-.5*this.width,this.top=i-.5*this.height,this.initContextForDraw(e,s),e.ellipse_vis(this.left,this.top,this.width,this.height),this.performFill(e,s),this.updateBoundingBox(t,i,e,n,o),this.labelModule.draw(e,t,i,n,o)}},{key:"distanceToBorder",value:function(e,t){this.resize(e);var i=.5*this.width,n=.5*this.height,o=Math.sin(t)*i,s=Math.cos(t)*n;return i*n/Math.sqrt(o*o+s*s)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){(0,a.default)(this,t);var o=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return o._setMargins(n),o}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e,t,i){this.needsRefresh(t,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(e,t,i,n,o,s){if(this.resize(e,n,o),this.options.icon.size=this.options.icon.size||50,this.left=t-this.width/2,this.top=i-this.height/2,this._icon(e,t,i,n,o,s),void 0!==this.options.label){this.labelModule.draw(e,this.left+this.iconSize.width/2+this.margin.left,i+this.height/2+5,n)}this.updateBoundingBox(t,i)}},{key:"updateBoundingBox",value:function(e,t){if(this.boundingBox.top=t-.5*this.options.icon.size,this.boundingBox.left=e-.5*this.options.icon.size,this.boundingBox.right=e+.5*this.options.icon.size,this.boundingBox.bottom=t+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5)}}},{key:"_icon",value:function(e,t,i,n,o,s){var r=Number(this.options.icon.size);void 0!==this.options.icon.code?(e.font=(n?"bold ":"")+r+"px "+this.options.icon.face,e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",this.enableShadow(e,s),e.fillText(this.options.icon.code,t,i),this.disableShadow(e,s)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(53),v=n(p),g=function(e){function t(e,i,n,o,r){(0,a.default)(this,t);var d=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return d.setImages(o,r),d}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var n=2*this.options.size;return this.width=n,void(this.height=n)}this.needsRefresh(t,i)&&this._resizeImage()}},{key:"draw",value:function(e,t,i,n,o,s){if(this.switchImages(n),this.resize(),this.left=t-this.width/2,this.top=i-this.height/2,!0===this.options.shapeProperties.useBorderWithImage){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,d=(n?a:r)/this.body.view.scale;e.lineWidth=Math.min(this.width,d),e.beginPath(),e.strokeStyle=n?this.options.color.highlight.border:o?this.options.color.hover.border:this.options.color.border,e.fillStyle=n?this.options.color.highlight.background:o?this.options.color.hover.background:this.options.color.background,e.rect(this.left-.5*e.lineWidth,this.top-.5*e.lineWidth,this.width+e.lineWidth,this.height+e.lineWidth),e.fill(),this.performStroke(e,s),e.closePath()}this._drawImageAtPosition(e,s),this._drawImageLabel(e,t,i,n,o),this.updateBoundingBox(t,i)}},{key:"updateBoundingBox",value:function(e,t){this.resize(),this._updateBoundingBox(e,t),void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"square",2,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"hexagon",4,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"star",4,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(15),v=n(p),g=function(e){function t(e,i,n){(0,a.default)(this,t);var o=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n));return o._setMargins(n),o}return(0,f.default)(t,e),(0,h.default)(t,[{key:"resize",value:function(e,t,i){this.needsRefresh(t,i)&&(this.textSize=this.labelModule.getTextSize(e,t,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(e,t,i,n,o,s){this.resize(e,n,o),this.left=t-this.width/2,this.top=i-this.height/2,this.enableShadow(e,s),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o),this.disableShadow(e,s),this.updateBoundingBox(t,i,e,n,o)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"triangle",3,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(16),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"draw",value:function(e,t,i,n,o,s){this._drawShape(e,"triangleDown",3,t,i,n,o,s)}},{key:"distanceToBorder",value:function(e,t){return this._distanceToBorder(e,t)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(5),h=i(33),l=i(51),u=i(55).default,c=function(){function e(t,i,n){var o=this;(0,s.default)(this,e),this.body=t,this.images=i,this.groups=n,this.body.functions.createEdge=this.create.bind(this),this.edgesListeners={add:function(e,t){o.add(t.items)},update:function(e,t){o.update(t.items)},remove:function(e,t){o.remove(t.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(e,t,i,n){if(t===e)return.5;var o=1/(t-e);return Math.max(0,(n-e)*o)}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},d.deepExtend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("_forceDisableDynamicCurves",function(t){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];"dynamic"===t&&(t="continuous");var n=!1;for(var o in e.body.edges)if(e.body.edges.hasOwnProperty(o)){var s=e.body.edges[o],r=e.body.data.edges._data[o];if(void 0!==r){var a=r.smooth;void 0!==a&&!0===a.enabled&&"dynamic"===a.type&&(void 0===t?s.setOptions({smooth:!1}):s.setOptions({smooth:{type:t}}),n=!0)}}!0===i&&!0===n&&e.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",function(){e.reconnectEdges()}),this.body.emitter.on("refreshEdges",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){d.forEach(e.edgesListeners,function(t,i){e.body.data.edges&&e.body.data.edges.off(i,t)}),delete e.body.functions.createEdge,delete e.edgesListeners.add,delete e.edgesListeners.update,delete e.edgesListeners.remove,delete e.edgesListeners})}},{key:"setOptions",value:function(e){if(void 0!==e){u.parseOptions(this.options,e,!0,this.defaultOptions,!0);var t=!1;if(void 0!==e.smooth)for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&(t=this.body.edges[i].updateEdgeType()||t);if(void 0!==e.font)for(var n in this.body.edges)this.body.edges.hasOwnProperty(n)&&this.body.edges[n].updateLabelModule();void 0===e.hidden&&void 0===e.physics&&!0!==t||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.body.data.edges;if(e instanceof h||e instanceof l)this.body.data.edges=e;else if(Array.isArray(e))this.body.data.edges=new h,this.body.data.edges.add(e);else{if(e)throw new TypeError("Array or DataSet expected");this.body.data.edges=new h}if(n&&d.forEach(this.edgesListeners,function(e,t){n.off(t,e)}),this.body.edges={},this.body.data.edges){d.forEach(this.edgesListeners,function(e,i){t.body.data.edges.on(i,e)});var o=this.body.data.edges.getIds();this.add(o,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),!1===i&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,n=this.body.data.edges,o=0;o1&&void 0!==arguments[1])||arguments[1];if(0!==e.length){var i=this.body.edges;d.forEach(e,function(e){var t=i[e];void 0!==t&&t.remove()}),t&&this.body.emitter.emit("_dataChanged")}}},{key:"refresh",value:function(){var e=this;d.forEach(this.body.edges,function(t,i){var n=e.body.data.edges._data[i];void 0!==n&&t.setOptions(n)})}},{key:"create",value:function(e){return new u(e,this.body,this.options,this.defaultOptions)}},{key:"reconnectEdges",value:function(){var e,t=this.body.nodes,i=this.body.edges;for(e in t)t.hasOwnProperty(e)&&(t[e].edges=[]);for(e in i)if(i.hasOwnProperty(e)){var n=i[e];n.from=null,n.to=null,n.connect()}}},{key:"getConnectedNodes",value:function(e){var t=[];if(void 0!==this.body.edges[e]){var i=this.body.edges[e];void 0!==i.fromId&&t.push(i.fromId),void 0!==i.toId&&t.push(i.toId)}return t}},{key:"_updateState",value:function(){this._addMissingEdges(),this._removeInvalidEdges()}},{key:"_removeInvalidEdges",value:function(){var e=this,t=[];d.forEach(this.body.edges,function(i,n){var o=e.body.nodes[i.toId],s=e.body.nodes[i.fromId];void 0!==o&&!0===o.isCluster||void 0!==s&&!0===s.isCluster||void 0!==o&&void 0!==s||t.push(n)}),this.remove(t,!1)}},{key:"_addMissingEdges",value:function(){var e=this.body.edges,t=this.body.data.edges,i=[];t.forEach(function(t,n){void 0===e[n]&&i.push(n)}),this.add(i,!0)}}]),e}();t.default=c},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(24),s=n(o),r=i(2),a=n(r),d=i(0),h=n(d),l=i(1),u=n(l),c=i(3),f=n(c),p=i(4),v=n(p),g=i(165),y=n(g),m=function(e){function t(e,i,n){return(0,h.default)(this,t),(0,f.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e,i,n))}return(0,v.default)(t,e),(0,u.default)(t,[{key:"_line",value:function(e,t,i){var n=i[0],o=i[1];this._bezierCurve(e,t,n,o)}},{key:"_getViaCoordinates",value:function(){var e=this.from.x-this.to.x,t=this.from.y-this.to.y,i=void 0,n=void 0,o=void 0,s=void 0,r=this.options.smooth.roundness;return(Math.abs(e)>Math.abs(t)||!0===this.options.smooth.forceDirection||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(n=this.from.y,s=this.to.y,i=this.from.x-r*e,o=this.to.x+r*e):(n=this.from.y-r*t,s=this.to.y+r*t,i=this.from.x,o=this.to.x),[{x:i,y:n},{x:o,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(e,t){return this._findBorderPositionBezier(e,t)}},{key:"_getDistanceToEdge",value:function(e,t,i,n,o,r){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates(),d=(0,s.default)(a,2),h=d[0],l=d[1];return this._getDistanceToBezierEdge(e,t,i,n,o,r,h,l)}},{key:"getPoint",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=(0,s.default)(t,2),n=i[0],o=i[1],r=e,a=[];return a[0]=Math.pow(1-r,3),a[1]=3*r*Math.pow(1-r,2),a[2]=3*Math.pow(r,2)*(1-r),a[3]=Math.pow(r,3),{x:a[0]*this.fromPoint.x+a[1]*n.x+a[2]*o.x+a[3]*this.toPoint.x,y:a[0]*this.fromPoint.y+a[1]*n.y+a[2]*o.y+a[3]*this.toPoint.y}}}]),t}(y.default);t.default=m},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(56),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"_getDistanceToBezierEdge",value:function(e,t,i,n,o,s,r,a){var d=1e9,h=void 0,l=void 0,u=void 0,c=void 0,f=void 0,p=e,v=t,g=[0,0,0,0];for(l=1;l<10;l++)u=.1*l,g[0]=Math.pow(1-u,3),g[1]=3*u*Math.pow(1-u,2),g[2]=3*Math.pow(u,2)*(1-u),g[3]=Math.pow(u,3),c=g[0]*e+g[1]*r.x+g[2]*a.x+g[3]*i,f=g[0]*t+g[1]*r.y+g[2]*a.y+g[3]*n,l>0&&(h=this._getDistanceToLine(p,v,c,f,o,s),d=h1&&void 0!==arguments[1]?arguments[1]:this.via,i=e,n=void 0,o=void 0;if(this.from===this.to){var r=this._getCircleData(this.from),a=(0,s.default)(r,3),d=a[0],h=a[1],l=a[2],u=2*Math.PI*(1-i);n=d+l*Math.sin(u),o=h+l-l*(1-Math.cos(u))}else n=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*t.x+Math.pow(i,2)*this.toPoint.x,o=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*t.y+Math.pow(i,2)*this.toPoint.y;return{x:n,y:o}}},{key:"_findBorderPosition",value:function(e,t){return this._findBorderPositionBezier(e,t,this.via)}},{key:"_getDistanceToEdge",value:function(e,t,i,n,o,s){return this._getDistanceToBezierEdge(e,t,i,n,o,s,this.via)}}]),t}(y.default);t.default=m},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(56),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"_line",value:function(e,t,i){this._bezierCurve(e,t,i)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_getViaCoordinates",value:function(){var e=void 0,t=void 0,i=this.options.smooth.roundness,n=this.options.smooth.type,o=Math.abs(this.from.x-this.to.x),s=Math.abs(this.from.y-this.to.y);if("discrete"===n||"diagonalCross"===n){var r=void 0,a=void 0;r=a=o<=s?i*s:i*o,this.from.x>this.to.x&&(r=-r),this.from.y>=this.to.y&&(a=-a),e=this.from.x+r,t=this.from.y+a,"discrete"===n&&(o<=s?e=othis.to.x&&(_=-_),this.from.y>=this.to.y&&(w=-w),e=this.from.x+_,t=this.from.y+w,o<=s?e=this.from.x<=this.to.x?this.to.xe?this.to.x:e:t=this.from.y>=this.to.y?this.to.y>t?this.to.y:t:this.to.y2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(e,t,i.via)}},{key:"_getDistanceToEdge",value:function(e,t,i,n,o,s){var r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(e,t,i,n,o,s,r)}},{key:"getPoint",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=e;return{x:Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*t.x+Math.pow(i,2)*this.toPoint.x,y:Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*t.y+Math.pow(i,2)*this.toPoint.y}}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(78),v=n(p),g=function(e){function t(e,i,n){return(0,a.default)(this,t),(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n))}return(0,f.default)(t,e),(0,h.default)(t,[{key:"_line",value:function(e,t){e.beginPath(),e.moveTo(this.fromPoint.x,this.fromPoint.y),e.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(e,t),e.stroke(),this.disableShadow(e,t)}},{key:"getViaNode",value:function(){}},{key:"getPoint",value:function(e){return{x:(1-e)*this.fromPoint.x+e*this.toPoint.x,y:(1-e)*this.fromPoint.y+e*this.toPoint.y}}},{key:"_findBorderPosition",value:function(e,t){var i=this.to,n=this.from;e.id===this.from.id&&(i=this.from,n=this.to);var o=Math.atan2(i.y-n.y,i.x-n.x),s=i.x-n.x,r=i.y-n.y,a=Math.sqrt(s*s+r*r),d=e.distanceToBorder(t,o),h=(a-d)/a,l={};return l.x=(1-h)*n.x+h*i.x,l.y=(1-h)*n.y+h*i.y,l}},{key:"_getDistanceToEdge",value:function(e,t,i,n,o,s){return this._getDistanceToLine(e,t,i,n,o,s)}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(11),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(80).default,u=i(170).default,c=i(171).default,f=i(172).default,p=i(173).default,v=i(81).default,g=i(174).default,y=i(175).default,m=i(5),b=i(79).default,_=function(){function e(t){(0,a.default)(this,e),this.body=t,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0},m.extend(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return(0,h.default)(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("initPhysics",function(){e.initPhysics()}),this.body.emitter.on("_layoutFailed",function(){e.layoutFailed=!0}),this.body.emitter.on("resetPhysics",function(){e.stopSimulation(),e.ready=!1}),this.body.emitter.on("disablePhysics",function(){e.physicsEnabled=!1,e.stopSimulation()}),this.body.emitter.on("restorePhysics",function(){e.setOptions(e.options),!0===e.ready&&e.startSimulation()}),this.body.emitter.on("startSimulation",function(){!0===e.ready&&e.startSimulation()}),this.body.emitter.on("stopSimulation",function(){e.stopSimulation()}),this.body.emitter.on("destroy",function(){e.stopSimulation(!1),e.body.emitter.off()}),this.body.emitter.on("_dataChanged",function(){e.updatePhysicsData()})}},{key:"setOptions",value:function(e){void 0!==e&&(!1===e?(this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation()):!0===e?(this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation()):(this.physicsEnabled=!0,m.selectiveNotDeepExtend(["stabilization"],this.options,e),m.mergeOptions(this.options,e,"stabilization"),void 0===e.enabled&&(this.options.enabled=!0),!1===this.options.enabled&&(this.physicsEnabled=!1,this.stopSimulation()),this.timestep=this.options.timestep)),this.init()}},{key:"init",value:function(){var e;"forceAtlas2Based"===this.options.solver?(e=this.options.forceAtlas2Based,this.nodesSolver=new g(this.body,this.physicsBody,e),this.edgesSolver=new f(this.body,this.physicsBody,e),this.gravitySolver=new y(this.body,this.physicsBody,e)):"repulsion"===this.options.solver?(e=this.options.repulsion,this.nodesSolver=new u(this.body,this.physicsBody,e),this.edgesSolver=new f(this.body,this.physicsBody,e),this.gravitySolver=new v(this.body,this.physicsBody,e)):"hierarchicalRepulsion"===this.options.solver?(e=this.options.hierarchicalRepulsion,this.nodesSolver=new c(this.body,this.physicsBody,e),this.edgesSolver=new p(this.body,this.physicsBody,e),this.gravitySolver=new v(this.body,this.physicsBody,e)):(e=this.options.barnesHut,this.nodesSolver=new l(this.body,this.physicsBody,e),this.edgesSolver=new f(this.body,this.physicsBody,e),this.gravitySolver=new v(this.body,this.physicsBody,e)),this.modelOptions=e}},{key:"initPhysics",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?!0===this.options.stabilization.enabled?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,!0===e&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,!0===e&&this.body.emitter.emit("_stopRendering"))}},{key:"simulationStep",value:function(){var e=Date.now();this.physicsTick(),(Date.now()-e<.4*this.simulationInterval||!0===this.runDoubleSpeed)&&!1===this.stabilized&&(this.physicsTick(),this.runDoubleSpeed=!0),!0===this.stabilized&&this.stopSimulation()}},{key:"_emitStabilized",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||!0===this.startedStabilization)&&setTimeout(function(){e.body.emitter.emit("stabilized",{iterations:t}),e.startedStabilization=!1,e.stabilizationIterations=0},0)}},{key:"physicsStep",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}},{key:"adjustTimeStep",value:function(){!0===this._evaluateStepQuality()?this.timestep=1.2*this.timestep:this.timestep/1.2.3))return!1;return!0}},{key:"moveNodes",value:function(){for(var e=this.physicsBody.physicsNodeIndices,t=0,i=0,n=0;nn&&(e=e>0?n:-n),e}},{key:"_performStep",value:function(e){var t=this.body.nodes[e],i=this.physicsBody.forces[e],n=this.physicsBody.velocities[e];return this.previousStates[e]={x:t.x,y:t.y,vx:n.x,vy:n.y},!1===t.options.fixed.x?(n.x=this.calculateComponentVelocity(n.x,i.x,t.options.mass),t.x+=n.x*this.timestep):(i.x=0,n.x=0),!1===t.options.fixed.y?(n.y=this.calculateComponentVelocity(n.y,i.y,t.options.mass),t.y+=n.y*this.timestep):(i.y=0,n.y=0),Math.sqrt(Math.pow(n.x,2)+Math.pow(n.y,2))}},{key:"_freezeNodes",value:function(){var e=this.body.nodes;for(var t in e)if(e.hasOwnProperty(t)&&e[t].x&&e[t].y){var i=e[t].options.fixed;this.freezeCache[t]={x:i.x,y:i.y},i.x=!0,i.y=!0}}},{key:"_restoreFrozenNodes",value:function(){var e=this.body.nodes;for(var t in e)e.hasOwnProperty(t)&&void 0!==this.freezeCache[t]&&(e[t].options.fixed.x=this.freezeCache[t].x,e[t].options.fixed.y=this.freezeCache[t].y);this.freezeCache={}}},{key:"stabilize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.stabilization.iterations;if("number"!=typeof t&&(t=this.options.stabilization.iterations,console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",t)),0===this.physicsBody.physicsNodeIndices.length)return void(this.ready=!0);this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=t,!0===this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationIterations=0,setTimeout(function(){return e._stabilizationBatch()},0)}},{key:"_startStabilizing",value:function(){return!0!==this.startedStabilization&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}},{key:"_stabilizationBatch",value:function(){var e=this,t=function(){return!1===e.stabilized&&e.stabilizationIterations0){var s=o.edges.length+1,r=this.options.centralGravity*s*o.options.mass;n[o.id].x=t*r,n[o.id].y=i*r}}}]),t}(v.default);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(11),s=n(o),r=i(7),a=n(r),d=i(0),h=n(d),l=i(1),u=n(l),c=i(5),f=i(57).default,p=i(177).default,v=i(55).default,g=i(34).default,y=function(){function e(t){var i=this;(0,h.default)(this,e),this.body=t,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},c.extend(this.options,this.defaultOptions),this.body.emitter.on("_resetData",function(){i.clusteredNodes={},i.clusteredEdges={}})}return(0,u.default)(e,[{key:"clusterByHubsize",value:function(e,t){void 0===e?e=this._getHubSize():"object"===(void 0===e?"undefined":(0,a.default)(e))&&(t=this._checkOptions(e),e=this._getHubSize());for(var i=[],n=0;n=e&&i.push(o.id)}for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{},i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===t.joinCondition)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");t=this._checkOptions(t);var n={},o={};c.forEach(this.body.nodes,function(i,s){var r=f.cloneOptions(i);!0===t.joinCondition(r)&&(n[s]=i,c.forEach(i.edges,function(t){void 0===e.clusteredEdges[t.id]&&(o[t.id]=t)}))}),this._cluster(n,o,t,i)}},{key:"clusterByEdgeCount",value:function(e,t){var i=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];t=this._checkOptions(t);for(var o=[],r={},a=void 0,d=void 0,h=void 0,l=0;l0&&(0,s.default)(v).length>0&&!0===b)if(c=function(){for(var e=0;e1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,e,t)}},{key:"clusterBridges",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,e,t)}},{key:"clusterByConnection",value:function(e,t){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===e)throw new Error("No nodeId supplied to clusterByConnection!");if(void 0===this.body.nodes[e])throw new Error("The nodeId given to clusterByConnection does not exist!");var n=this.body.nodes[e];t=this._checkOptions(t,n),void 0===t.clusterNodeProperties.x&&(t.clusterNodeProperties.x=n.x),void 0===t.clusterNodeProperties.y&&(t.clusterNodeProperties.y=n.y),void 0===t.clusterNodeProperties.fixed&&(t.clusterNodeProperties.fixed={},t.clusterNodeProperties.fixed.x=n.options.fixed.x,t.clusterNodeProperties.fixed.y=n.options.fixed.y);var o={},r={},a=n.id,d=f.cloneOptions(n);o[a]=n;for(var h=0;h-1&&(r[y.id]=y)}this._cluster(o,r,t,i)}},{key:"_createClusterEdges",value:function(e,t,i,n){for(var o=void 0,r=void 0,a=void 0,d=void 0,h=void 0,l=void 0,u=(0,s.default)(e),c=[],f=0;f0&&void 0!==arguments[0]?arguments[0]:{};return void 0===e.clusterEdgeProperties&&(e.clusterEdgeProperties={}),void 0===e.clusterNodeProperties&&(e.clusterNodeProperties={}),e}},{key:"_cluster",value:function(e,t,i){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=[];for(var r in e)e.hasOwnProperty(r)&&void 0!==this.clusteredNodes[r]&&o.push(r);for(var a=0;an?a.x:n,o=a.yr?a.y:r;return{x:.5*(i+n),y:.5*(o+r)}}},{key:"openCluster",value:function(e,t){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===e)throw new Error("No clusterNodeId supplied to openCluster.");var n=this.body.nodes[e];if(void 0===n)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(!0!==n.isCluster||void 0===n.containedNodes||void 0===n.containedEdges)throw new Error("The node:"+e+" is not a valid cluster.");var o=this.findNode(e),s=o.indexOf(e)-1;if(s>=0){var r=o[s];return this.body.nodes[r]._openChildCluster(e),delete this.body.nodes[e],void(!0===i&&this.body.emitter.emit("_dataChanged"))}var a=n.containedNodes,d=n.containedEdges;if(void 0!==t&&void 0!==t.releaseFunction&&"function"==typeof t.releaseFunction){var h={},l={x:n.x,y:n.y};for(var u in a)if(a.hasOwnProperty(u)){var f=this.body.nodes[u];h[u]={x:f.x,y:f.y}}var p=t.releaseFunction(l,h);for(var v in a)if(a.hasOwnProperty(v)){var g=this.body.nodes[v];void 0!==p[v]&&(g.x=void 0===p[v].x?n.x:p[v].x,g.y=void 0===p[v].y?n.y:p[v].y)}}else c.forEach(a,function(e){!1===e.options.fixed.x&&(e.x=n.x),!1===e.options.fixed.y&&(e.y=n.y)});for(var y in a)if(a.hasOwnProperty(y)){var m=this.body.nodes[y];m.vx=n.vx,m.vy=n.vy,m.setOptions({physics:!0}),delete this.clusteredNodes[y]}for(var b=[],_=0;_0&&o<100;){var s=t.pop();if(void 0!==s){var r=this.body.edges[s];if(void 0!==r){o++;var a=r.clusteringEdgeReplacingIds;if(void 0===a)n.push(s);else for(var d=0;dn&&(n=s.edges.length),e+=s.edges.length,t+=Math.pow(s.edges.length,2),i+=1}e/=i,t/=i;var r=t-Math.pow(e,2),a=Math.sqrt(r),d=Math.floor(e+2*a);return d>n&&(d=n),d}},{key:"_createClusteredEdge",value:function(e,t,i,n,o){var s=f.cloneOptions(i,"edge");c.deepExtend(s,n),s.from=e,s.to=t,s.id="clusterEdge:"+c.randomUUID(),void 0!==o&&c.deepExtend(s,o);var r=this.body.functions.createEdge(s);return r.clusteringEdgeReplacingIds=[i.id],r.connect(),this.body.edges[r.id]=r,r}},{key:"_clusterEdges",value:function(e,t,i,n){if(t instanceof v){var o=t,s={};s[o.id]=o,t=s}if(e instanceof g){var r=e,a={};a[r.id]=r,e=a}if(void 0===i||null===i)throw new Error("_clusterEdges: parameter clusterNode required");void 0===n&&(n=i.clusterEdgeProperties),this._createClusterEdges(e,t,i,n);for(var d in t)if(t.hasOwnProperty(d)&&void 0!==this.body.edges[d]){var h=this.body.edges[d];this._backupEdgeOptions(h),h.setOptions({physics:!1})}for(var l in e)e.hasOwnProperty(l)&&(this.clusteredNodes[l]={clusterId:i.id,node:this.body.nodes[l]},this.body.nodes[l].setOptions({physics:!1}))}},{key:"_getClusterNodeForNode",value:function(e){if(void 0!==e){var t=this.clusteredNodes[e];if(void 0!==t){var i=t.clusterId;if(void 0!==i)return this.body.nodes[i]}}}},{key:"_filter",value:function(e,t){var i=[];return c.forEach(e,function(e){t(e)&&i.push(e)}),i}},{key:"_updateState",value:function(){var e=this,t=void 0,i=[],n=[],o=function(t){c.forEach(e.body.nodes,function(e){!0===e.isCluster&&t(e)})};for(t in this.clusteredNodes)if(this.clusteredNodes.hasOwnProperty(t)){var r=this.body.nodes[t];void 0===r&&i.push(t)}o(function(e){for(var t=0;t0}t.endPointsValid()&&o||n.push(i)}),o(function(t){c.forEach(n,function(i){delete t.containedEdges[i],c.forEach(t.edges,function(o,s){if(o.id===i)return void(t.edges[s]=null);o.clusteringEdgeReplacingIds=e._filter(o.clusteringEdgeReplacingIds,function(e){return-1===n.indexOf(e)})}),t.edges=e._filter(t.edges,function(e){return null!==e})})}),c.forEach(n,function(t){delete e.clusteredEdges[t]}),c.forEach(n,function(t){delete e.body.edges[t]});var d=(0,s.default)(this.body.edges);c.forEach(d,function(t){var i=e.body.edges[t],n=e._isClusteredNode(i.fromId)||e._isClusteredNode(i.toId);if(n!==e._isClusteredEdge(i.id)){if(!n)throw new Error("remove edge from clustering not implemented!");var o=e._getClusterNodeForNode(i.fromId);void 0!==o&&e._clusterEdges(e.body.nodes[i.fromId],i,o);var s=e._getClusterNodeForNode(i.toId);void 0!==s&&e._clusterEdges(e.body.nodes[i.toId],i,s)}});for(var h=!1,l=!0;l;)!function(){var t=[];o(function(e){var i=(0,s.default)(e.containedNodes).length,n=!0===e.options.allowSingleNodeCluster;(n&&i<1||!n&&i<2)&&t.push(e.id)});for(var i=0;i0,h=h||l}();h&&this._updateState()}},{key:"_isClusteredNode",value:function(e){return void 0!==this.clusteredNodes[e]}},{key:"_isClusteredEdge",value:function(e){return void 0!==this.clusteredEdges[e]}}]),e}();t.default=y},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(2),s=n(o),r=i(0),a=n(r),d=i(1),h=n(d),l=i(3),u=n(l),c=i(4),f=n(c),p=i(5),v=i(34).default,g=function(e){function t(e,i,n,o,r,d){(0,a.default)(this,t);var h=(0,u.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,i,n,o,r,d));return h.isCluster=!0,h.containedNodes={},h.containedEdges={},h}return(0,f.default)(t,e),(0,h.default)(t,[{key:"_openChildCluster",value:function(e){var t=this,i=this.body.nodes[e];if(void 0===this.containedNodes[e])throw new Error("node with id: "+e+" not in current cluster");if(!i.isCluster)throw new Error("node with id: "+e+" is not a cluster");delete this.containedNodes[e],p.forEach(i.edges,function(e){delete t.containedEdges[e.id]}),p.forEach(i.containedNodes,function(e,i){t.containedNodes[i]=e}),i.containedNodes={},p.forEach(i.containedEdges,function(e,i){t.containedEdges[i]=e}),i.containedEdges={},p.forEach(i.edges,function(e){p.forEach(t.edges,function(i){var n=i.clusteringEdgeReplacingIds.indexOf(e.id);-1!==n&&(p.forEach(e.clusteringEdgeReplacingIds,function(e){i.clusteringEdgeReplacingIds.push(e),t.body.edges[e].edgeReplacedById=i.id}),i.clusteringEdgeReplacingIds.splice(n,1))})}),i.edges=[]}}]),t}(v);t.default=g},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}function o(){var e;void 0!==window&&(e=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),window.requestAnimationFrame=void 0===e?function(e){e()}:e}Object.defineProperty(t,"__esModule",{value:!0});var s=i(0),r=n(s),a=i(1),d=n(a),h=i(5),l=function(){function e(t,i){(0,r.default)(this,e),o(),this.body=t,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},h.extend(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return(0,d.default)(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("dragStart",function(){e.dragging=!0}),this.body.emitter.on("dragEnd",function(){e.dragging=!1}),this.body.emitter.on("_resizeNodes",function(){e._resizeNodes()}),this.body.emitter.on("_redraw",function(){!1===e.renderingActive&&e._redraw()}),this.body.emitter.on("_blockRedraw",function(){e.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",function(){e.allowRedraw=!0,e.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){e.renderRequests+=1,e.renderingActive=!0,e._startRendering()}),this.body.emitter.on("_stopRendering",function(){e.renderRequests-=1,e.renderingActive=e.renderRequests>0,e.renderTimer=void 0}),this.body.emitter.on("destroy",function(){e.renderRequests=0,e.allowRedraw=!1,e.renderingActive=!1,!0===e.requiresTimeout?clearTimeout(e.renderTimer):window.cancelAnimationFrame(e.renderTimer),e.body.emitter.off()})}},{key:"setOptions",value:function(e){if(void 0!==e){var t=["hideEdgesOnDrag","hideNodesOnDrag"];h.selectiveDeepExtend(t,this.options,e)}}},{key:"_requestNextFrame",value:function(e,t){if("undefined"!=typeof window){var i=void 0,n=window;return!0===this.requiresTimeout?i=n.setTimeout(e,t):n.requestAnimationFrame&&(i=n.requestAnimationFrame(e)),i}}},{key:"_startRendering",value:function(){!0===this.renderingActive&&void 0===this.renderTimer&&(this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval))}},{key:"_renderStep",value:function(){!0===this.renderingActive&&(this.renderTimer=void 0,!0===this.requiresTimeout&&this._startRendering(),this._redraw(),!1===this.requiresTimeout&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var e=this;!0!==this.redrawRequested&&!1===this.renderingActive&&!0===this.allowRedraw&&(this.redrawRequested=!0,this._requestNextFrame(function(){e._redraw(!1)},0))}},{key:"_redraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!0===this.allowRedraw){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1,0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.canvas.setTransform();var t=this.canvas.getContext(),i=this.canvas.frame.canvas.clientWidth,n=this.canvas.frame.canvas.clientHeight;if(t.clearRect(0,0,i,n),0===this.canvas.frame.clientWidth)return;t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale),t.beginPath(),this.body.emitter.emit("beforeDrawing",t),t.closePath(),!1===e&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&this._drawEdges(t),(!1===this.dragging||!0===this.dragging&&!1===this.options.hideNodesOnDrag)&&this._drawNodes(t,e),t.beginPath(),this.body.emitter.emit("afterDrawing",t),t.closePath(),t.restore(),!0===e&&t.clearRect(0,0,i,n)}}},{key:"_resizeNodes",value:function(){this.canvas.setTransform();var e=this.canvas.getContext();e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale);var t=this.body.nodes,i=void 0;for(var n in t)t.hasOwnProperty(n)&&(i=t[n],i.resize(e),i.updateBoundingBox(e,i.selected));e.restore()}},{key:"_drawNodes",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.nodes,n=this.body.nodeIndices,o=void 0,s=[],r=this.canvas.DOMtoCanvas({x:-20,y:-20}),a=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+20,y:this.canvas.frame.canvas.clientHeight+20}),d={top:r.y,left:r.x,bottom:a.y,right:a.x},h=0;h0&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;!0===this.initialized&&(this.cameraState.previousWidth=this.frame.canvas.width/e,this.cameraState.previousHeight=this.frame.canvas.height/e,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/e,y:.5*this.frame.canvas.height/e}))}},{key:"_setCameraState",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0){var e=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,t=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=e&&1!=t?i=.5*this.cameraState.scale*(e+t):1!=e?i=this.cameraState.scale*e:1!=t&&(i=this.cameraState.scale*t),this.body.view.scale=i;var n=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),o={x:n.x-this.cameraState.position.x,y:n.y-this.cameraState.position.y};this.body.view.translation.x+=o.x*this.body.view.scale,this.body.view.translation.y+=o.y*this.body.view.scale}}},{key:"_prepareValue",value:function(e){if("number"==typeof e)return e+"px";if("string"==typeof e){if(-1!==e.indexOf("%")||-1!==e.indexOf("px"))return e;if(-1===e.indexOf("%"))return e+"px"}throw new Error("Could not use the value supplied for width or height:"+e)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var e=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new d(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:d.DIRECTION_ALL}),h.onTouch(this.hammer,function(t){e.body.eventListeners.onTouch(t)}),this.hammer.on("tap",function(t){e.body.eventListeners.onTap(t)}),this.hammer.on("doubletap",function(t){e.body.eventListeners.onDoubleTap(t)}),this.hammer.on("press",function(t){e.body.eventListeners.onHold(t)}),this.hammer.on("panstart",function(t){e.body.eventListeners.onDragStart(t)}),this.hammer.on("panmove",function(t){e.body.eventListeners.onDrag(t)}),this.hammer.on("panend",function(t){e.body.eventListeners.onDragEnd(t)}),this.hammer.on("pinch",function(t){e.body.eventListeners.onPinch(t)}),this.frame.canvas.addEventListener("mousewheel",function(t){e.body.eventListeners.onMouseWheel(t)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(t){e.body.eventListeners.onMouseWheel(t)}),this.frame.canvas.addEventListener("mousemove",function(t){e.body.eventListeners.onMouseMove(t)}),this.frame.canvas.addEventListener("contextmenu",function(t){e.body.eventListeners.onContext(t)}),this.hammerFrame=new d(this.frame),h.onRelease(this.hammerFrame,function(t){e.body.eventListeners.onRelease(t)})}},{key:"setSize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.width,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;e=this._prepareValue(e),t=this._prepareValue(t);var i=!1,n=this.frame.canvas.width,o=this.frame.canvas.height,s=this.pixelRatio;if(this._setPixelRatio(),e!=this.options.width||t!=this.options.height||this.frame.style.width!=e||this.frame.style.height!=t)this._getCameraState(s),this.frame.style.width=e,this.frame.style.height=t,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=e,this.options.height=t,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{var r=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),a=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.frame.canvas.width===r&&this.frame.canvas.height===a||this._getCameraState(s),this.frame.canvas.width!==r&&(this.frame.canvas.width=r,i=!0),this.frame.canvas.height!==a&&(this.frame.canvas.height=a,i=!0)}return!0===i&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(n/this.pixelRatio),oldHeight:Math.round(o/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"getContext",value:function(){return this.frame.canvas.getContext("2d")}},{key:"_determinePixelRatio",value:function(){var e=this.getContext();if(void 0===e)throw new Error("Could not get canvax context");var t=1;return"undefined"!=typeof window&&(t=window.devicePixelRatio||1),t/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)}},{key:"_setPixelRatio",value:function(){this.pixelRatio=this._determinePixelRatio()}},{key:"setTransform",value:function(){var e=this.getContext();if(void 0===e)throw new Error("Could not get canvax context");e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:"_XconvertDOMtoCanvas",value:function(e){return(e-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(e){return e*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(e){return(e-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(e){return e*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(e){return{x:this._XconvertCanvasToDOM(e.x),y:this._YconvertCanvasToDOM(e.y)}}},{key:"DOMtoCanvas",value:function(e){return{x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)}}}]),e}();t.default=u},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(5),h=i(57).default,l=function(){function e(t,i){var n=this;(0,s.default)(this,e),this.body=t,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",this.fit.bind(this)),this.body.emitter.on("animationFinished",function(){n.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return(0,a.default)(e,[{key:"setOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=e}},{key:"fit",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{nodes:[]},t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,n=void 0;if(void 0!==e.nodes&&0!==e.nodes.length||(e.nodes=this.body.nodeIndices),!0===t){var o=0;for(var s in this.body.nodes)if(this.body.nodes.hasOwnProperty(s)){var r=this.body.nodes[s];!0===r.predefinedPosition&&(o+=1)}if(o>.5*this.body.nodeIndices.length)return void this.fit(e,!1);i=h.getRange(this.body.nodes,e.nodes);n=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;n*=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600)}else{this.body.emitter.emit("_resizeNodes"),i=h.getRange(this.body.nodes,e.nodes);var a=1.1*Math.abs(i.maxX-i.minX),d=1.1*Math.abs(i.maxY-i.minY),l=this.canvas.frame.canvas.clientWidth/a,u=this.canvas.frame.canvas.clientHeight/d;n=l<=u?l:u}n>1?n=1:0===n&&(n=1);var c=h.findCenter(i),f={position:c,scale:n,animation:e.animation};this.moveTo(f)}},{key:"focus",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this.body.nodes[e]){var i={x:this.body.nodes[e].x,y:this.body.nodes[e].y};t.position=i,t.lockedOnNode=e,this.moveTo(t)}else console.log("Node: "+e+" cannot be found.")}},{key:"moveTo",value:function(e){if(void 0===e)return void(e={});void 0===e.offset&&(e.offset={x:0,y:0}),void 0===e.offset.x&&(e.offset.x=0),void 0===e.offset.y&&(e.offset.y=0),void 0===e.scale&&(e.scale=this.body.view.scale),void 0===e.position&&(e.position=this.getViewPosition()),void 0===e.animation&&(e.animation={duration:0}),!1===e.animation&&(e.animation={duration:0}),!0===e.animation&&(e.animation={}),void 0===e.animation.duration&&(e.animation.duration=1e3),void 0===e.animation.easingFunction&&(e.animation.easingFunction="easeInOutQuad"),this.animateView(e)}},{key:"animateView",value:function(e){if(void 0!==e){this.animationEasingFunction=e.animation.easingFunction,this.releaseNode(),!0===e.locked&&(this.lockedOnNodeId=e.lockedOnNode,this.lockedOnNodeOffset=e.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=e.scale,this.body.view.scale=this.targetScale;var t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.position.x,y:t.y-e.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+e.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+e.offset.y},0===e.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*e.animation.duration*.001)||1/60,this.animationEasingFunction=e.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var e={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.x,y:t.y-e.y},n=this.body.view.translation,o={x:n.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:n.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=o}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=!0===e?1:this.easingTime;var t=d.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*t,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*t,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*t},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),e}();t.default=l},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(5),h=i(182).default,l=i(183).default,u=function(){function e(t,i,n){(0,s.default)(this,e),this.body=t,this.canvas=i,this.selectionHandler=n,this.navigationHandler=new h(t,i),this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.body.eventListeners.onContext=this.onContext.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=this.getPointer.bind(this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0},d.extend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(e,[{key:"bindEventListeners",value:function(){var e=this;this.body.emitter.on("destroy",function(){clearTimeout(e.popupTimer),delete e.body.functions.getPointer})}},{key:"setOptions",value:function(e){if(void 0!==e){var t=["hideEdgesOnDrag","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"];d.selectiveNotDeepExtend(t,this.options,e),d.mergeOptions(this.options,e,"keyboard"),e.tooltip&&(d.extend(this.options.tooltip,e.tooltip),e.tooltip.color&&(this.options.tooltip.color=d.parseColor(e.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:"getPointer",value:function(e){return{x:e.x-d.getAbsoluteLeft(this.canvas.frame.canvas),y:e.y-d.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:"onTouch",value:function(e){(new Date).valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(e.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(e){var t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect&&(e.changedPointers[0].ctrlKey||e.changedPointers[0].metaKey);this.checkSelectionChanges(t,e,i),this.selectionHandler._generateClickEvent("click",e,t)}},{key:"onDoubleTap",value:function(e){var t=this.getPointer(e.center);this.selectionHandler._generateClickEvent("doubleClick",e,t)}},{key:"onHold",value:function(e){var t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(t,e,i),this.selectionHandler._generateClickEvent("click",e,t),this.selectionHandler._generateClickEvent("hold",e,t)}},{key:"onRelease",value:function(e){if((new Date).valueOf()-this.touchTime>10){var t=this.getPointer(e.center);this.selectionHandler._generateClickEvent("release",e,t),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(e){var t=this.getPointer({x:e.clientX,y:e.clientY});this.selectionHandler._generateClickEvent("oncontext",e,t)}},{key:"checkSelectionChanges",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.selectionHandler.getSelection(),o=!1;o=!0===i?this.selectionHandler.selectAdditionalOnPoint(e):this.selectionHandler.selectOnPoint(e);var s=this.selectionHandler.getSelection(),r=this._determineDifference(n,s),a=this._determineDifference(s,n);r.edges.length>0&&(this.selectionHandler._generateClickEvent("deselectEdge",t,e,n),o=!0),r.nodes.length>0&&(this.selectionHandler._generateClickEvent("deselectNode",t,e,n),o=!0),a.nodes.length>0&&(this.selectionHandler._generateClickEvent("selectNode",t,e),o=!0),a.edges.length>0&&(this.selectionHandler._generateClickEvent("selectEdge",t,e),o=!0),!0===o&&this.selectionHandler._generateClickEvent("select",t,e)}},{key:"_determineDifference",value:function(e,t){var i=function(e,t){for(var i=[],n=0;n10&&(e=10);var n=void 0;void 0!==this.drag&&!0===this.drag.dragging&&(n=this.canvas.DOMtoCanvas(this.drag.pointer));var o=this.body.view.translation,s=e/i,r=(1-s)*t.x+o.x*s,a=(1-s)*t.y+o.y*s;if(this.body.view.scale=e,this.body.view.translation={x:r,y:a},void 0!=n){var d=this.canvas.canvasToDOM(n);this.drag.pointer.x=d.x,this.drag.pointer.y=d.y}this.body.emitter.emit("_requestRedraw"),i0&&(this.popupObj=d[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&!1===s){for(var f=this.body.edgeIndices,p=this.body.edges,v=void 0,g=[],y=0;y0&&(this.popupObj=p[g[g.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==o&&(void 0===this.popup&&(this.popup=new l(this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(e.x+3,e.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(e){var t=this.selectionHandler._pointerToPositionObject(e),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&!0===(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(t))){var n=this.selectionHandler.getNodeAt(e);i=void 0!==n&&n.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(e)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(t));!1===i&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),e}();t.default=u},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=i(23),h=i(36),l=i(52),u=function(){function e(t,i){var n=this;(0,s.default)(this,e),this.body=t,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",function(){n.activated=!0,n.configureKeyboardBindings()}),this.body.emitter.on("deactivate",function(){n.activated=!1,n.configureKeyboardBindings()}),this.body.emitter.on("destroy",function(){void 0!==n.keycharm&&n.keycharm.destroy()}),this.options={}}return(0,a.default)(e,[{key:"setOptions",value:function(e){void 0!==e&&(this.options=e,this.create())}},{key:"create",value:function(){!0===this.options.navigationButtons?!1===this.iconsCreated&&this.loadNavigationElements():!0===this.iconsCreated&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:"cleanNavigation",value:function(){if(0!=this.navigationHammers.length){for(var e=0;e700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var e in this.boundFunctions)this.boundFunctions.hasOwnProperty(e)&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){var e=this.body.view.scale,t=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,n=t/e,o=(1-n)*this.canvas.canvasViewCenter.x+i.x*n,s=(1-n)*this.canvas.canvasViewCenter.y+i.y*n;this.body.view.scale=t,this.body.view.translation={x:o,y:s},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}},{key:"_zoomOut",value:function(){var e=this.body.view.scale,t=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,n=t/e,o=(1-n)*this.canvas.canvasViewCenter.x+i.x*n,s=(1-n)*this.canvas.canvasViewCenter.y+i.y*n;this.body.view.scale=t,this.body.view.translation={x:o,y:s},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}},{key:"configureKeyboardBindings",value:function(){var e=this;void 0!==this.keycharm&&this.keycharm.destroy(),!0===this.options.keyboard.enabled&&(!0===this.options.keyboard.bindToWindow?this.keycharm=l({container:window,preventDefault:!0}):this.keycharm=l({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),!0===this.activated&&(this.keycharm.bind("up",function(){e.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){e.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){e.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){e.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){e.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){e.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){e.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){e.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){e.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){e.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){e.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){e.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){e.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){e.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){e.unbindFromRedraw("_zoomOut")},"keyup")))}}]),e}();t.default=u},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(0),s=n(o),r=i(1),a=n(r),d=function(){function e(t,i){(0,s.default)(this,e),this.container=t,this.overflowMethod=i||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}return(0,a.default)(e,[{key:"setPosition",value:function(e,t){this.x=parseInt(e),this.y=parseInt(t)}},{key:"setText",value:function(e){e instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(e)):this.frame.innerHTML=e}},{key:"show",value:function(e){if(void 0===e&&(e=!0),!0===e){var t=this.frame.clientHeight,i=this.frame.clientWidth,n=this.frame.parentNode.clientHeight,o=this.frame.parentNode.clientWidth,s=0,r=0;if("flip"==this.overflowMethod){var a=!1,d=!0;this.y-to-this.padding&&(a=!0),s=a?this.x-i:this.x,r=d?this.y-t:this.y}else r=this.y-t,r+t+this.padding>n&&(r=n-t-this.padding),ro&&(s=o-i-this.padding),s4&&void 0!==arguments[4]&&arguments[4],s=this._initBaseEvent(t,i);if(!0===o)s.nodes=[],s.edges=[];else{var r=this.getSelection();s.nodes=r.nodes,s.edges=r.edges}void 0!==n&&(s.previousSelection=n),"click"==e&&(s.items=this.getClickedItems(i)),this.body.emitter.emit(e,s)}},{key:"selectObject",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;return void 0!==e&&(e instanceof d&&!0===t&&this._selectConnectedEdges(e),e.select(),this._addToSelection(e),!0)}},{key:"deselectObject",value:function(e){!0===e.isSelected()&&(e.selected=!1,this._removeFromSelection(e))}},{key:"_getAllNodesOverlappingWith",value:function(e){for(var t=[],i=this.body.nodes,n=0;n1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(e),n=this._getAllNodesOverlappingWith(i);return n.length>0?!0===t?this.body.nodes[n[n.length-1]]:n[n.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(e,t){for(var i=this.body.edges,n=0;n1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(e),n=10,o=null,s=this.body.edges,r=0;r1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,n=void 0;if(!e||!e.nodes&&!e.edges)throw"Selection must be an object with nodes and/or edges properties";if((t.unselectAll||void 0===t.unselectAll)&&this.unselectAll(),e.nodes)for(i=0;i1&&void 0!==arguments[1])||arguments[1];if(!e||void 0===e.length)throw"Selection must be an array with ids";this.setSelection({nodes:e},{highlightEdges:t})}},{key:"selectEdges",value:function(e){if(!e||void 0===e.length)throw"Selection must be an array with ids";this.setSelection({edges:e})}},{key:"updateSelection",value:function(){for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(this.body.nodes.hasOwnProperty(e)||delete this.selectionObj.nodes[e]);for(var t in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(t)&&(this.body.edges.hasOwnProperty(t)||delete this.selectionObj.edges[t])}},{key:"getClickedItems",value:function(e){for(var t=this.canvas.DOMtoCanvas(e),i=[],n=this.body.nodeIndices,o=this.body.nodes,s=n.length-1;s>=0;s--){var r=o[n[s]],a=r.getItemsOnPoint(t);i.push.apply(i,a)}for(var d=this.body.edgeIndices,h=this.body.edges,l=d.length-1;l>=0;l--){var u=h[d[l]],c=u.getItemsOnPoint(t);i.push.apply(i,c)}return i}}]),e}();t.default=u},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(24),s=n(o),r=i(7),a=n(r),d=i(11),h=n(d),l=i(0),u=n(l),c=i(1),f=n(c),p=i(5),v=i(57).default,g=i(186),y=g.HorizontalStrategy,m=g.VerticalStrategy,b=function(){function e(){(0,u.default)(this,e),this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}return(0,f.default)(e,[{key:"addRelation",value:function(e,t){void 0===this.childrenReference[e]&&(this.childrenReference[e]=[]),this.childrenReference[e].push(t),void 0===this.parentReference[t]&&(this.parentReference[t]=[]),this.parentReference[t].push(e)}},{key:"checkIfTree",value:function(){for(var e in this.parentReference)if(this.parentReference[e].length>1)return void(this.isTree=!1);this.isTree=!0}},{key:"numTrees",value:function(){return this.treeIndex+1}},{key:"setTreeIndex",value:function(e,t){void 0!==t&&void 0===this.trees[e.id]&&(this.trees[e.id]=t,this.treeIndex=Math.max(t,this.treeIndex))}},{key:"ensureLevel",value:function(e){void 0===this.levels[e]&&(this.levels[e]=0)}},{key:"getMaxLevel",value:function(e){var t=this,i={};return function e(n){if(void 0!==i[n])return i[n];var o=t.levels[n];if(t.childrenReference[n]){var s=t.childrenReference[n];if(s.length>0)for(var r=0;r0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(t);if(!0===n)return this.body.emitter.emit("refresh"),p.deepExtend(t,this.optionsBackup)}return t}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(e){if(!0===this.options.hierarchical.enabled){var t=this.optionsBackup.physics;void 0===e.physics||!0===e.physics?(e.physics={enabled:void 0===t.enabled||t.enabled,solver:"hierarchicalRepulsion"},t.enabled=void 0===t.enabled||t.enabled,t.solver=t.solver||"barnesHut"):"object"===(0,a.default)(e.physics)?(t.enabled=void 0===e.physics.enabled||e.physics.enabled,t.solver=e.physics.solver||"barnesHut",e.physics.solver="hierarchicalRepulsion"):!1!==e.physics&&(t.solver="barnesHut",e.physics={solver:"hierarchicalRepulsion"});var i=this.direction.curveType();if(void 0===e.edges)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges={smooth:!1};else if(void 0===e.edges.smooth)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges.smooth=!1;else if("boolean"==typeof e.edges.smooth)this.optionsBackup.edges={smooth:e.edges.smooth},e.edges.smooth={enabled:e.edges.smooth,type:i};else{var n=e.edges.smooth;void 0!==n.type&&"dynamic"!==n.type&&(i=n.type),this.optionsBackup.edges={smooth:void 0===n.enabled||n.enabled,type:void 0===n.type?"dynamic":n.type,roundness:void 0===n.roundness?.5:n.roundness,forceDirection:void 0!==n.forceDirection&&n.forceDirection},e.edges.smooth={enabled:void 0===n.enabled||n.enabled,type:i,roundness:void 0===n.roundness?.5:n.roundness,forceDirection:void 0!==n.forceDirection&&n.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return e}},{key:"seededRandom",value:function(){var e=1e4*Math.sin(this.randomSeed++);return e-Math.floor(e)}},{key:"positionInitially",value:function(e){if(!0!==this.options.hierarchical.enabled){this.randomSeed=this.initialRandomSeed;for(var t=e.length+50,i=0;i150){for(var s=e.length;e.length>150&&n<=10;){n+=1;var r=e.length;n%3==0?this.body.modules.clustering.clusterBridges(o):this.body.modules.clustering.clusterOutliers(o);if(r==e.length&&n%3!=0)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*s)})}n>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(e,this.body.edgeIndices,!0),this._shiftToCenter();for(var a=0;a0){var e=void 0,t=void 0,i=!1,n=!1;this.lastNodeOnLevel={},this.hierarchical=new b;for(t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&(e=this.body.nodes[t],void 0!==e.options.level?(i=!0,this.hierarchical.levels[t]=e.options.level):n=!0);if(!0===n&&!0===i)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");if(!0===n){var o=this.options.hierarchical.sortMethod;"hubsize"===o?this._determineLevelsByHubsize():"directed"===o?this._determineLevelsDirected():"custom"===o&&this._determineLevelsCustomCallback()}for(var s in this.body.nodes)this.body.nodes.hasOwnProperty(s)&&this.hierarchical.ensureLevel(s);var r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var e=this,t=!1,i={},n=function(t,i){var n=e.hierarchical.trees;for(var o in n)n.hasOwnProperty(o)&&n[o]===t&&e.direction.shift(o,i)},o=function(){for(var t=[],i=0;i0)for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:1e9,n=1e9,o=1e9,r=1e9,a=-1e9;for(var d in t)if(t.hasOwnProperty(d)){var h=e.body.nodes[d],l=e.hierarchical.levels[h.id],u=e.direction.getPosition(h),c=e._getSpaceAroundNode(h,t),f=(0,s.default)(c,2),p=f[0],v=f[1];n=Math.min(p,n),o=Math.min(v,o),l<=i&&(r=Math.min(u,r),a=Math.max(u,a))}return[r,a,n,o]},d=function(t,i){var n=e.hierarchical.getMaxLevel(t.id),o=e.hierarchical.getMaxLevel(i.id);return Math.min(n,o)},h=function(t,i,n){for(var o=e.hierarchical,s=0;s1)for(var d=0;d2&&void 0!==arguments[2]&&arguments[2],s=e.direction.getPosition(i),h=e.direction.getPosition(n),l=Math.abs(h-s),u=e.options.hierarchical.nodeSpacing;if(l>u){var c={},f={};r(i,c),r(n,f);var p=d(i,n),v=a(c,p),g=a(f,p),y=v[1],m=g[0],b=g[2];if(Math.abs(y-m)>u){var _=y-m+u;_<-b+u&&(_=-b+u),_<0&&(e._shiftBlock(n.id,_),t=!0,!0===o&&e._centerParent(n))}}},u=function(n,o){for(var d=o.id,h=o.edges,l=e.hierarchical.levels[o.id],u=e.options.hierarchical.levelSeparation*e.options.hierarchical.levelSeparation,c={},f=[],p=0;p0?f=Math.min(c,u-e.options.hierarchical.nodeSpacing):c<0&&(f=-Math.min(-c,l-e.options.hierarchical.nodeSpacing)),0!=f&&(e._shiftBlock(o.id,f),t=!0)}(_),_=b(n,h),function(i){var n=e.direction.getPosition(o),r=e._getSpaceAroundNode(o),a=(0,s.default)(r,2),d=a[0],h=a[1],l=i-n,u=n;l>0?u=Math.min(n+(h-e.options.hierarchical.nodeSpacing),i):l<0&&(u=Math.max(n-(d-e.options.hierarchical.nodeSpacing),i)),u!==n&&(e.direction.setPosition(o,u),t=!0)}(_)};!0===this.options.hierarchical.blockShifting&&(function(i){var n=e.hierarchical.getLevels();n=n.reverse();for(var o=0;o0&&Math.abs(f)0&&(a=this.direction.getPosition(i[o-1])+r),this.direction.setPosition(s,a,t),this._validatePositionAndContinue(s,t,a),n++}}}}},{key:"_placeBranchNodes",value:function(e,t){var i=this.hierarchical.childrenReference[e];if(void 0!==i){for(var n=[],o=0;ot&&void 0===this.positionedNodes[r.id]))return;var d=this.options.hierarchical.nodeSpacing,h=void 0;h=0===s?this.direction.getPosition(this.body.nodes[e]):this.direction.getPosition(n[s-1])+d,this.direction.setPosition(r,h,a),this._validatePositionAndContinue(r,a,h)}var l=this._getCenterPosition(n);this.direction.setPosition(this.body.nodes[e],l,t)}}},{key:"_validatePositionAndContinue",value:function(e,t,i){if(this.hierarchical.isTree){if(void 0!==this.lastNodeOnLevel[t]){var n=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[t]]);if(i-ne.hierarchical.levels[t.id]&&e.hierarchical.addRelation(t.id,i.id)};this._crawlNetwork(t),this.hierarchical.checkIfTree()}},{key:"_crawlNetwork",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},i=arguments[1],n={},o=function i(o,s){if(void 0===n[o.id]){e.hierarchical.setTreeIndex(o,s),n[o.id]=!0;for(var r=void 0,a=e._getActiveEdges(o),d=0;d2&&void 0!==arguments[2]?arguments[2]:void 0;this.fake_use(e,t,i),this.abstract()}},{key:"getTreeSize",value:function(e){return this.fake_use(e),this.abstract()}},{key:"sort",value:function(e){this.fake_use(e),this.abstract()}},{key:"fix",value:function(e,t){this.fake_use(e,t),this.abstract()}},{key:"shift",value:function(e,t){this.fake_use(e,t),this.abstract()}}]),e}(),v=function(e){function t(e){(0,u.default)(this,t);var i=(0,a.default)(this,(t.__proto__||(0,s.default)(t)).call(this));return i.layout=e,i}return(0,h.default)(t,e),(0,f.default)(t,[{key:"curveType",value:function(){return"horizontal"}},{key:"getPosition",value:function(e){return e.x}},{key:"setPosition",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(e,i),e.x=t}},{key:"getTreeSize",value:function(e){var t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_x,max:t.max_x}}},{key:"sort",value:function(e){e.sort(function(e,t){return void 0===e.x||void 0===t.x?0:e.x-t.x})}},{key:"fix",value:function(e,t){e.y=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.y=!0}},{key:"shift",value:function(e,t){this.layout.body.nodes[e].x+=t}}]),t}(p),g=function(e){function t(e){(0,u.default)(this,t);var i=(0,a.default)(this,(t.__proto__||(0,s.default)(t)).call(this));return i.layout=e,i}return(0,h.default)(t,e),(0,f.default)(t,[{key:"curveType",value:function(){return"vertical"}},{key:"getPosition",value:function(e){return e.y}},{key:"setPosition",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(e,i),e.y=t}},{key:"getTreeSize",value:function(e){var t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_y,max:t.max_y}}},{key:"sort",value:function(e){e.sort(function(e,t){return void 0===e.y||void 0===t.y?0:e.y-t.y})}},{key:"fix",value:function(e,t){e.x=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.x=!0}},{key:"shift",value:function(e,t){this.layout.body.nodes[e].y+=t}}]),t}(p);t.HorizontalStrategy=g,t.VerticalStrategy=v},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(11),s=n(o),r=i(22),a=n(r),d=i(7),h=n(d),l=i(0),u=n(l),c=i(1),f=n(c),p=i(5),v=i(23),g=i(36),y=function(){function e(t,i,n){var o=this;(0,u.default)(this,e),this.body=t,this.canvas=i,this.selectionHandler=n,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this.manipulationHammers=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},p.extend(this.options,this.defaultOptions),this.body.emitter.on("destroy",function(){o._clean()}),this.body.emitter.on("_dataChanged",this._restore.bind(this)),this.body.emitter.on("_resetData",this._restore.bind(this))}return(0,f.default)(e,[{key:"_restore",value:function(){!1!==this.inMode&&(!0===this.options.initiallyActive?this.enableEditMode():this.disableEditMode())}},{key:"setOptions",value:function(e,t,i){void 0!==t&&(void 0!==t.locale?this.options.locale=t.locale:this.options.locale=i.locale,void 0!==t.locales?this.options.locales=t.locales:this.options.locales=i.locales),void 0!==e&&("boolean"==typeof e?this.options.enabled=e:(this.options.enabled=!0,p.deepExtend(this.options,e)),!0===this.options.initiallyActive&&(this.editMode=!0),this._setup())}},{key:"toggleEditMode",value:function(){!0===this.editMode?this.disableEditMode():this.enableEditMode()}},{key:"enableEditMode",value:function(){this.editMode=!0,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}},{key:"disableEditMode",value:function(){this.editMode=!1,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}},{key:"showManipulatorToolbar",value:function(){if(this._clean(),this.manipulationDOM={},!0===this.guiEnabled){this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";var e=this.selectionHandler._getSelectedNodeCount(),t=this.selectionHandler._getSelectedEdgeCount(),i=e+t,n=this.options.locales[this.options.locale],o=!1;!1!==this.options.addNode&&(this._createAddNodeButton(n),o=!0),!1!==this.options.addEdge&&(!0===o?this._createSeperator(1):o=!0,this._createAddEdgeButton(n)),1===e&&"function"==typeof this.options.editNode?(!0===o?this._createSeperator(2):o=!0,this._createEditNodeButton(n)):1===t&&0===e&&!1!==this.options.editEdge&&(!0===o?this._createSeperator(3):o=!0,this._createEditEdgeButton(n)),0!==i&&(e>0&&!1!==this.options.deleteNode?(!0===o&&this._createSeperator(4),this._createDeleteButton(n)):0===e&&!1!==this.options.deleteEdge&&(!0===o&&this._createSeperator(4),this._createDeleteButton(n))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addNode",!0===this.guiEnabled){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var e=this;!0!==this.editMode&&this.enableEditMode(),this._clean();var t=this.selectionHandler._getSelectedNode();if(void 0!==t){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(!0!==t.isCluster){var i=p.deepExtend({},t.options,!1);if(i.x=t.x,i.y=t.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(t){null!==t&&void 0!==t&&"editNode"===e.inMode&&e.body.data.nodes.getDataSet().update(t),e.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addEdge",!0===this.guiEnabled){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",this._dragStartEdge.bind(this)),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="editEdge","object"===(0,h.default)(this.options.editEdge)&&"function"==typeof this.options.editEdge.editWithoutDrag&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId)){var e=this.body.edges[this.edgeBeingEditedId];return void this._performEditEdge(e.from,e.to)}if(!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId){var i=this.body.edges[this.edgeBeingEditedId],n=this._getNewTargetNode(i.from.x,i.from.y),o=this._getNewTargetNode(i.to.x,i.to.y);this.temporaryIds.nodes.push(n.id),this.temporaryIds.nodes.push(o.id),this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id),this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id),this._temporaryBindUI("onTouch",this._controlNodeTouch.bind(this)),this._temporaryBindUI("onTap",function(){}),this._temporaryBindUI("onHold",function(){}),this._temporaryBindUI("onDragStart",this._controlNodeDragStart.bind(this)),this._temporaryBindUI("onDrag",this._controlNodeDrag.bind(this)),this._temporaryBindUI("onDragEnd",this._controlNodeDragEnd.bind(this)),this._temporaryBindUI("onMouseMove",function(){}),this._temporaryBindEvent("beforeDrawing",function(e){var t=i.edgeType.findBorderPositions(e);!1===n.selected&&(n.x=t.from.x,n.y=t.from.y),!1===o.selected&&(o.x=t.to.x,o.y=t.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var e=this;!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="delete";var t=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),n=void 0;if(t.length>0){for(var o=0;o0&&"function"==typeof this.options.deleteEdge&&(n=this.options.deleteEdge);if("function"==typeof n){var s={nodes:t,edges:i};if(2!==n.length)throw new Error("The function for delete does not support two arguments (data, callback)");n(s,function(t){null!==t&&void 0!==t&&"delete"===e.inMode?(e.body.data.edges.getDataSet().remove(t.edges),e.body.data.nodes.getDataSet().remove(t.nodes),e.body.emitter.emit("startSimulation"),e.showManipulatorToolbar()):(e.body.emitter.emit("startSimulation"),e.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(t),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){!0===this.options.enabled?(this.guiEnabled=!0,this._createWrappers(),!1===this.editMode?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",!0===this.editMode?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",!0===this.editMode?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(e,t){var i=p.deepExtend({},this.options.controlNodeStyle);i.id="targetNode"+p.randomUUID(),i.hidden=!1,i.physics=!1,i.x=e,i.y=t;var n=this.body.functions.createNode(i);return n.shape.boundingBox={left:e,right:e,top:t,bottom:t},n}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},p.recursiveDOMDelete(this.editModeDiv);var e=this.options.locales[this.options.locale],t=this._createButton("editMode","vis-button vis-edit vis-edit-mode",e.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(t),this._bindHammerToDiv(t,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,!0===this.guiEnabled&&(p.recursiveDOMDelete(this.editModeDiv),p.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+e]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+e].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+e])}},{key:"_createAddNodeButton",value:function(e){var t=this._createButton("addNode","vis-button vis-add",e.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.addNodeMode.bind(this))}},{key:"_createAddEdgeButton",value:function(e){var t=this._createButton("addEdge","vis-button vis-connect",e.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.addEdgeMode.bind(this))}},{key:"_createEditNodeButton",value:function(e){var t=this._createButton("editNode","vis-button vis-edit",e.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.editNode.bind(this))}},{key:"_createEditEdgeButton",value:function(e){var t=this._createButton("editEdge","vis-button vis-edit",e.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.editEdgeMode.bind(this))}},{key:"_createDeleteButton",value:function(e){var t;t=this.options.rtl?"vis-button vis-delete-rtl":"vis-button vis-delete";var i=this._createButton("delete",t,e.del||this.options.locales.en.del);this.manipulationDiv.appendChild(i),this._bindHammerToDiv(i,this.deleteSelected.bind(this))}},{key:"_createBackButton",value:function(e){var t=this._createButton("back","vis-button vis-back",e.back||this.options.locales.en.back);this.manipulationDiv.appendChild(t),this._bindHammerToDiv(t,this.showManipulatorToolbar.bind(this))}},{key:"_createButton",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vis-label";return this.manipulationDOM[e+"Div"]=document.createElement("div"),this.manipulationDOM[e+"Div"].className=t,this.manipulationDOM[e+"Label"]=document.createElement("div"),this.manipulationDOM[e+"Label"].className=n,this.manipulationDOM[e+"Label"].innerHTML=i,this.manipulationDOM[e+"Div"].appendChild(this.manipulationDOM[e+"Label"]),this.manipulationDOM[e+"Div"]}},{key:"_createDescription",value:function(e){this.manipulationDiv.appendChild(this._createButton("description","vis-button vis-none",e))}},{key:"_temporaryBindEvent",value:function(e,t){this.temporaryEventFunctions.push({event:e,boundFunction:t}),this.body.emitter.on(e,t)}},{key:"_temporaryBindUI",value:function(e,t){if(void 0===this.body.eventListeners[e])throw new Error("This UI function does not exist. Typo? You tried: "+e+" possible are: "+(0,a.default)((0,s.default)(this.body.eventListeners)));this.temporaryUIFunctions[e]=this.body.eventListeners[e],this.body.eventListeners[e]=t}},{key:"_unbindTemporaryUIs",value:function(){for(var e in this.temporaryUIFunctions)this.temporaryUIFunctions.hasOwnProperty(e)&&(this.body.eventListeners[e]=this.temporaryUIFunctions[e],delete this.temporaryUIFunctions[e]);this.temporaryUIFunctions={}}},{key:"_unbindTemporaryEvents",value:function(){for(var e=0;e=0;r--)if(o[r]!==this.selectedControlNode.id){s=this.body.nodes[o[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(!0===s.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,n.to.id):this._performEditEdge(n.from.id,s.id)}else n.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(e){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(e.center),this.lastTouch.translation=p.extend({},this.body.view.translation);var t=this.lastTouch,i=this.selectionHandler.getNodeAt(t);if(void 0!==i)if(!0===i.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var n=this._getNewTargetNode(i.x,i.y);this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id);var o=this.body.functions.createEdge({id:"connectionEdge"+p.randomUUID(),from:i.id,to:n.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[o.id]=o,this.body.edgeIndices.push(o.id),this.temporaryIds.nodes.push(n.id),this.temporaryIds.edges.push(o.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(e){var t=this.body.functions.getPointer(e.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(t.x),i.y=this.canvas._YconvertDOMtoCanvas(t.y),this.body.emitter.emit("_redraw")}else{var n=t.x-this.lastTouch.x,o=t.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+n,y:this.lastTouch.translation.y+o}}}},{key:"_finishConnect",value:function(e){var t=this.body.functions.getPointer(e.center),i=this.selectionHandler._pointerToPositionObject(t),n=void 0;void 0!==this.temporaryIds.edges[0]&&(n=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var o=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=o.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(o[r])){s=this.body.nodes[o[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(!0===s.isCluster?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[n]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(n,s.id)),this.body.emitter.emit("_redraw")}},{key:"_dragStartEdge",value:function(e){var t=this.lastTouch;this.selectionHandler._generateClickEvent("dragStart",e,t,void 0,!0)}},{key:"_performAddNode",value:function(e){var t=this,i={id:p.randomUUID(),x:e.pointer.canvas.x,y:e.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(e){null!==e&&void 0!==e&&"addNode"===t.inMode&&(t.body.data.nodes.getDataSet().add(e),t.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(e,t){var i=this,n={from:e,to:t};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(n,function(e){null!==e&&void 0!==e&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(e),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(n),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(e,t){var i=this,n={id:this.edgeBeingEditedId,from:e,to:t,label:this.body.data.edges._data[this.edgeBeingEditedId].label},o=this.options.editEdge;if("object"===(void 0===o?"undefined":(0,h.default)(o))&&(o=o.editWithoutDrag),"function"==typeof o){if(2!==o.length)throw new Error("The function for edit does not support two arguments (data, callback)");o(n,function(e){null===e||void 0===e||"editEdge"!==i.inMode?(i.body.edges[n.id].updateEdgeType(),i.body.emitter.emit("_redraw"),i.showManipulatorToolbar()):(i.body.data.edges.getDataSet().update(e),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(n),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),e}();t.default=y},function(e,t,i){function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=i(22),s=n(o),r=i(7),a=n(r),d=i(0),h=n(d),l=i(1),u=n(l),c=i(5),f=i(189).default,p=function(){function e(t,i,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,h.default)(this,e),this.parent=t,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},c.extend(this.options,this.defaultOptions),this.configureOptions=n,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new f(o),this.wrapper=void 0}return(0,u.default)(e,[{key:"setOptions",value:function(e){if(void 0!==e){this.popupHistory={},this._removePopup();var t=!0;"string"==typeof e?this.options.filter=e:e instanceof Array?this.options.filter=e.join():"object"===(void 0===e?"undefined":(0,a.default)(e))?(void 0!==e.container&&(this.options.container=e.container),void 0!==e.filter&&(this.options.filter=e.filter),void 0!==e.showButton&&(this.options.showButton=e.showButton),void 0!==e.enabled&&(t=e.enabled)):"boolean"==typeof e?(this.options.filter=!0,t=e):"function"==typeof e&&(this.options.filter=e,t=!0),!1===this.options.filter&&(t=!1),this.options.enabled=t}this._clean()}},{key:"setModuleOptions",value:function(e){this.moduleOptions=e,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var e=this;this._clean(),this.changedOptions=[];var t=this.options.filter,i=0,n=!1;for(var o in this.configureOptions)this.configureOptions.hasOwnProperty(o)&&(this.allowCreation=!1,n=!1,"function"==typeof t?(n=t(o,[]),n=n||this._handleObject(this.configureOptions[o],[o],!0)):!0!==t&&-1===t.indexOf(o)||(n=!0),!1!==n&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(o),this._handleObject(this.configureOptions[o],[o])),i++);if(!0===this.options.showButton){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){e._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var e=0;e1?i-1:0),o=1;o2&&void 0!==arguments[2]&&arguments[2],n=document.createElement("div");return n.className="vis-configuration vis-config-label vis-config-s"+t.length,n.innerHTML=!0===i?""+e+":":e+":",n}},{key:"_makeDropdown",value:function(e,t,i){var n=document.createElement("select");n.className="vis-configuration vis-config-select";var o=0;void 0!==t&&-1!==e.indexOf(t)&&(o=e.indexOf(t));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(1.2*t),h=a.max,d="range increased"),a.value=t}else a.value=n;var l=document.createElement("input");l.className="vis-configuration vis-config-rangeinput",l.value=a.value;var u=this;a.onchange=function(){l.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){l.value=this.value};var c=this._makeLabel(i[i.length-1],i),f=this._makeItem(i,c,a,l);""!==d&&this.popupHistory[f]!==h&&(this.popupHistory[f]=h,this._setupPopup(d,f))}},{key:"_setupPopup",value:function(e,t){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=!1,o=this.options.filter,s=!1;for(var r in e)if(e.hasOwnProperty(r)){n=!0;var a=e[r],d=c.copyAndExtendArray(t,r);if("function"==typeof o&&!1===(n=o(r,t))&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,n=this._handleObject(a,d,!0),this.allowCreation=!1===i),!1!==n){s=!0;var h=this._getValue(d);if(a instanceof Array)this._handleArray(a,h,d);else if("string"==typeof a)this._makeTextInput(a,h,d);else if("boolean"==typeof a)this._makeCheckbox(a,h,d);else if(a instanceof Object){var l=!0;if(-1!==t.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(l=!1),!0===l)if(void 0!==a.enabled){var u=c.copyAndExtendArray(d,"enabled"),f=this._getValue(u);if(!0===f){var p=this._makeLabel(r,d,!0);this._makeItem(d,p),s=this._handleObject(a,d)||s}else this._makeCheckbox(a,f,d)}else{var v=this._makeLabel(r,d,!0);this._makeItem(d,v),s=this._handleObject(a,d)||s}}else console.error("dont know how to handle",a,r,d)}}return s}},{key:"_handleArray",value:function(e,t,i){"string"==typeof e[0]&&"color"===e[0]?(this._makeColorField(e,t,i),e[1]!==t&&this.changedOptions.push({path:i,value:t})):"string"==typeof e[0]?(this._makeDropdown(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:t})):"number"==typeof e[0]&&(this._makeRange(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:Number(t)}))}},{key:"_update",value:function(e,t){var i=this._constructOptions(e,t);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=i;e="true"===e||e,e="false"!==e&&e;for(var o=0;ovar options = "+(0,s.default)(e,null,2)+""}},{key:"getOptions",value:function(){for(var e={},t=0;t0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,e),this.pixelRatio=t,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,h.default)(e,[{key:"insertTo",value:function(e){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=e,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(e){if("function"!=typeof e)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=e}},{key:"setCloseCallback",value:function(e){if("function"!=typeof e)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=e}},{key:"_isColorString",value:function(e){var t={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof e)return t[e]}},{key:"setColor",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==e){var i=void 0,n=this._isColorString(e);if(void 0!==n&&(e=n),!0===c.isString(e)){if(!0===c.isValidRGB(e)){var o=e.substr(4).substr(0,e.length-5).split(",");i={r:o[0],g:o[1],b:o[2],a:1}}else if(!0===c.isValidRGBA(e)){var r=e.substr(5).substr(0,e.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===c.isValidHex(e)){var a=c.hexToRGB(e);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(e instanceof Object&&void 0!==e.r&&void 0!==e.g&&void 0!==e.b){var d=void 0!==e.a?e.a:"1.0";i={r:e.r,g:e.g,b:e.b,a:d}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(e));this._setColor(i,t)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var e=this;!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=c.extend({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==e.closeCallback&&(e.closeCallback(),e.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(e){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=c.extend({},e)),this.color=e;var t=c.RGBToHSV(e.r,e.g,e.b),i=2*Math.PI,n=this.r*t.s,o=this.centerCoordinates.x+n*Math.sin(i*t.h),s=this.centerCoordinates.y+n*Math.cos(i*t.h);this.colorPickerSelector.style.left=o-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=s-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(e)}},{key:"_setOpacity",value:function(e){this.color.a=e/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(e){var t=c.RGBToHSV(this.color.r,this.color.g,this.color.b);t.v=e/100;var i=c.HSVToRGB(t.h,t.s,t.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,t=c.RGBToHSV(e.r,e.g,e.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var n=this.colorPickerCanvas.clientWidth,o=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,n,o),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-t.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*t.v,this.opacityRange.value=100*e.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var e=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(t)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(e){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(e){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var e=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(t){e._moveSelector(t)}),this.hammer.on("tap",function(t){e._moveSelector(t)}),this.hammer.on("panstart",function(t){e._moveSelector(t)}),this.hammer.on("panmove",function(t){e._moveSelector(t)}),this.hammer.on("panend",function(t){e._moveSelector(t)})}},{key:"_generateHueCircle",value:function(){if(!1===this.generated){var e=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var t=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;e.clearRect(0,0,t,i);var n=void 0,o=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*t,y:.5*i},this.r=.49*t;var a=2*Math.PI/360,d=1/this.r,h=void 0;for(s=0;s<360;s++)for(r=0;r2&&void 0!==arguments[2]&&arguments[2],n=this.distanceSolver.getDistances(this.body,e,t);this._createL_matrix(n),this._createK_matrix(n),this._createE_matrix();for(var o=0,r=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),a=1e9,d=0,h=0,l=0,u=0,c=0;a>.01&&o1&&c<5;){c+=1,this._moveNode(d,h,l);var v=this._getEnergy(d),g=(0,s.default)(v,3);u=g[0],h=g[1],l=g[2]}}}},{key:"_getHighestEnergyNode",value:function(e){for(var t=this.body.nodeIndices,i=this.body.nodes,n=0,o=t[0],r=0,a=0,d=0;d2&&void 0!==arguments[2]&&arguments[2];for(var s in t)void 0!==i[s]&&(null===i[s]||"object"!==(0,p.default)(i[s])?n(t,i,s,o):"object"===(0,p.default)(t[s])&&e.fillIfDefined(t[s],i[s],o))},e.extend=function(t,e){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r=0;r3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r in o)if(o.hasOwnProperty(r)&&-1===t.indexOf(r))if(o[r]&&o[r].constructor===Object)void 0===i[r]&&(i[r]={}),i[r].constructor===Object?e.deepExtend(i[r],o[r]):n(i,o,r,s);else if(Array.isArray(o[r])){i[r]=[];for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var r in i)if(i.hasOwnProperty(r)||!0===o)if(i[r]&&i[r].constructor===Object)void 0===t[r]&&(t[r]={}),t[r].constructor===Object?e.deepExtend(t[r],i[r],o):n(t,i,r,s);else if(Array.isArray(i[r])){t[r]=[];for(var a=0;a=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){var o;return-1!=t.indexOf("rgba")?t:-1!=t.indexOf("rgb")?(o=t.substr(t.indexOf("(")+1).replace(")","").split(","),"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"):(o=e.hexToRGB(t),null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")")},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(!0===e.isString(t)){if(!0===e.isValidRGB(t)){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(!0===e.isValidHex(t)){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t;return{h:60*((t==o?3:i==o?1:5)-s/(n-o))/360,s:(n-o)/n,v:n}};var g={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return(0,l.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=g.split(t.style.cssText),n=g.split(i),s=e.extend(o,n);t.style.cssText=g.join(s)},e.removeCssText=function(t,e){var i=g.split(t.style.cssText),o=g.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=g.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},e.isValidRGB=function(t){return t=t.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t)},e.isValidRGBA=function(t){return t=t.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t)},e.selectiveBridgeObject=function(t,i){if(null!==i&&"object"===(void 0===i?"undefined":(0,p.default)(i))){for(var o=(0,h.default)(i),n=0;n0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=function(t){return null!==t&&void 0!==t},s=function(t){return null!==t&&"object"===(void 0===t?"undefined":(0,p.default)(t))};if(!s(t))throw new Error("Parameter mergeTarget must be an object");if(!s(e))throw new Error("Parameter options must be an object");if(!n(i))throw new Error("Parameter option must have a value");if(!s(o))throw new Error("Parameter globalOptions must be an object");var r=e[i],a=s(o)&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(o),d=a?o[i]:void 0,l=d?d.enabled:void 0;if(void 0!==r){if("boolean"==typeof r)return s(t[i])||(t[i]={}),void(t[i].enabled=r);if(null===r&&!s(t[i])){if(!n(d))return;t[i]=(0,h.default)(d)}if(s(r)){var u=!0;void 0!==r.enabled?u=r.enabled:void 0!==l&&(u=d.enabled),function(t,e,i){s(t[i])||(t[i]={});var o=e[i],n=t[i];for(var r in o)o.hasOwnProperty(r)&&(n[r]=o[r])}(t,e,i),t[i].enabled=u}}},e.binarySearchCustom=function(t,e,i,o){for(var n=0,s=0,r=t.length-1;s<=r&&n<1e4;){var a=Math.floor((s+r)/2),h=t[a],d=void 0===o?h[i]:h[i][o],l=e(d);if(0==l)return a;-1==l?s=a+1:r=a-1,n++}return-1},e.binarySearchValue=function(t,e,i,o,n){var s,r,a,h,d=0,l=0,u=t.length-1;for(n=void 0!=n?n:function(t,e){return t==e?0:t0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?l=h+1:u=h-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o},e.topMost=function(t,e){var i=void 0;Array.isArray(e)||(e=[e]);var o=!0,n=!1,s=void 0;try{for(var a,h=(0,r.default)(t);!(o=(a=h.next()).done);o=!0){var d=a.value;if(d){i=d[e[0]];for(var l=1;l0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){n<0&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(){var t=function(){};return{on:t,off:t,destroy:t,emit:t,get:function(e){return{set:t}}}}if("undefined"!=typeof window){var n=i(130),s=window.Hammer||i(131);t.exports=n(s,{preventDefault:"mouse"})}else t.exports=function(){return o()}},function(t,e,i){var o=i(91),n=i(34);t.exports=function(t){return o(n(t))}},function(t,e,i){var o=i(8),n=i(25);t.exports=i(9)?function(t,e,i){return o.f(t,e,n(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=(0,l.default)(this._options.type),o=0,n=i.length;on?1:or)&&(s=h,r=d)}return s},n.prototype.min=function(t){var e,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(e=0,i=n.length;e=4*a){var p=0,c=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(p=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-p,"days"),c.add(1,"weeks");break;case"weekly":var m=l.diff(d,"days"),f=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(f),l.day(f),l.add(m,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),c.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(p=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(p,"months"),c.add(1,"months");break;case"yearly":d.year()!=l.year()&&(p=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(p,"years"),c.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;d=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(o=0;o=r&&nt.range.end){var h={start:t.range.start,end:i};return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale}return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a);return new Date(h+a+t.range.start)},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n=e&&r=e&&r<=i&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?o<0?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&t0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=(0,h.default)(this.data)}for(var i=0;i=.4*g}if(this.options.showMinorLabels&&f){var D=this._repaintMinorText(p,y,t,b);D.style.width=_+"px"}m&&this.options.showMajorLabels?(p>0&&(void 0==w&&(w=p),D=this._repaintMajorText(p,s.getLabelMajor(),t,b)),v=this._repaintMajorLine(p,_,t,b)):f?v=this._repaintMinorLine(p,_,t,b):v&&(v.style.width=parseInt(v.style.width)+_+"px")}if(1e3!==x||u||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to 1000 lines."),u=!0),this.options.showMajorLabels){var S=this.body.util.toTime(0),k=s.getLabelMajor(S),C=k.length*(this.props.majorCharWidth||10)+10;(void 0==w||Cs.distance?" in "+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""):n.distance<=8?'. Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e):". Did you mean one of these: "+t.print((0,d.default)(i))+t.printLocation(o,e),console.log('%cUnknown option detected: "'+e+'"'+r,v),f=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],h=e.toLowerCase(),d=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&!0===n){var p=t.findInOptions(e,i[l],m.copyAndExtendArray(o,l));s>p.distance&&(r=p.closestMatch,a=p.path,s=p.distance,d=p.indexMatch)}else-1!==l.toLowerCase().indexOf(h)&&(d=l),u=t.levenshteinDistance(e,l),s>u&&(r=l,a=m.copyArray(o),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:d}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;ndocument.F=Object<\/script>"),t.close(),h=t.F;o--;)delete h.prototype[s[o]];return h()};t.exports=Object.create||function(t,e){var i;return null!==t?(a.prototype=o(t),i=new a,a.prototype=null,i[r]=t):i=h(),void 0===e?i:n(i,e)}},function(t,e){var i=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:i)(t)}},function(t,e,i){var o=i(40)("keys"),n=i(27);t.exports=function(t){return o[t]||(o[t]=n(t))}},function(t,e,i){var o=i(6),n=o["__core-js_shared__"]||(o["__core-js_shared__"]={});t.exports=function(t){return n[t]||(n[t]={})}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){var o=i(8).f,n=i(10),s=i(7)("toStringTag");t.exports=function(t,e,i){t&&!n(t=i?t:t.prototype,s)&&o(t,s,{configurable:!0,value:e})}},function(t,e,i){t.exports={default:i(105),__esModule:!0}},function(t,e,i){e.f=i(7)},function(t,e,i){var o=i(6),n=i(2),s=i(35),r=i(44),a=i(8).f;t.exports=function(t){var e=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:r.f(t)})}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){var i=c().hours(0).minutes(0).seconds(0).milliseconds(0),o=i.clone().add(-3,"days").valueOf(),n=i.clone().add(3,"days").valueOf();this.millisecondsPerPixelCache=void 0,void 0===e?(this.start=o,this.end=n):(this.start=e.start||o,this.end=e.end||n),this.rolling=!1,this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={rtl:!1,start:null,end:null,moment:c,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10,rollingMode:{follow:!1,offset:.5}},this.options=p.extend({},this.defaultOptions),this.props={touch:{}},this.animationTimer=null,this.body.emitter.on("panstart",this._onDragStart.bind(this)),this.body.emitter.on("panmove",this._onDrag.bind(this)),this.body.emitter.on("panend",this._onDragEnd.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.body.dom.rollingModeBtn.addEventListener("click",this.startRolling.bind(this)),this.setOptions(e)}function s(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}var r=i(4),a=o(r),h=i(16),d=o(h),l=i(1),u=o(l),p=i(0),c=i(3),m=i(5),f=i(21);n.prototype=new m,n.prototype.setOptions=function(t){if(t){var e=["animation","direction","min","max","zoomMin","zoomMax","moveable","zoomable","moment","activate","hiddenDates","zoomKey","rtl","showCurrentTime","rollingMode","horizontalScroll"];p.selectiveExtend(e,this.options,t),t.rollingMode&&t.rollingMode.follow&&this.startRolling(),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},n.prototype.startRolling=function(){function t(){e.stopRolling(),e.rolling=!0;var i=e.end-e.start,o=p.convert(new Date,"Date").valueOf(),n=o-i*e.options.rollingMode.offset,s=o+i*(1-e.options.rollingMode.offset),r={animation:!1};e.setRange(n,s,r),i=1/e.conversion(e.body.domProps.center.width).scale/10,i<30&&(i=30),i>1e3&&(i=1e3),e.body.dom.rollingModeBtn.style.visibility="hidden",e.currentTimeTimer=setTimeout(t,i)}var e=this;t()},n.prototype.stopRolling=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility="visible")},n.prototype.setRange=function(t,e,i,o,n){i||(i={}),!0!==i.byUser&&(i.byUser=!1);var s=this,r=void 0!=t?p.convert(t,"Date").valueOf():null,h=void 0!=e?p.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,i.animation){var l=this.start,c=this.end,m="object"===(0,u.default)(i.animation)&&"duration"in i.animation?i.animation.duration:500,g="object"===(0,u.default)(i.animation)&&"easingFunction"in i.animation?i.animation.easingFunction:"easeInOutQuad",v=p.easingFunctions[g];if(!v)throw new Error("Unknown easing function "+(0,d.default)(g)+". Choose from: "+(0,a.default)(p.easingFunctions).join(", "));var y=(new Date).valueOf(),b=!1;return function t(){if(!s.props.touch.dragging){var e=(new Date).valueOf(),a=e-y,d=v(a/m),u=a>m,p=u||null===r?r:l+(r-l)*d,g=u||null===h?h:c+(h-c)*d;_=s._applyRange(p,g),f.updateHiddenDates(s.options.moment,s.body,s.options.hiddenDates),b=b||_;var w={start:new Date(s.start),end:new Date(s.end),byUser:i.byUser,event:i.event};if(n&&n(d,_,u),_&&s.body.emitter.emit("rangechange",w),u){if(b&&(s.body.emitter.emit("rangechanged",w),o))return o()}else s.animationTimer=setTimeout(t,20)}}()}var _=this._applyRange(r,h);if(f.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),_){var w={start:new Date(this.start),end:new Date(this.end),byUser:i.byUser,event:i.event};if(this.body.emitter.emit("rangechange",w),clearTimeout(s.timeoutID),s.timeoutID=setTimeout(function(){s.body.emitter.emit("rangechanged",w)},200),o)return o()}},n.prototype.getMillisecondsPerPixel=function(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache},n.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},n.prototype._applyRange=function(t,e){var i,o=null!=t?p.convert(t,"Date").valueOf():this.start,n=null!=e?p.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?p.convert(this.options.max,"Date").valueOf():null,r=null!=this.options.min?p.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(ns&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=r&&o=this.start-.5&&n<=this.end?(o=this.start,n=this.end):(i=a-(n-o),o-=i/2,n+=i/2)}}if(null!==this.options.zoomMax){var h=parseFloat(this.options.zoomMax);h<0&&(h=0),n-o>h&&(this.end-this.start===h&&othis.end?(o=this.start,n=this.end):(i=n-o-h,o+=i/2,n-=i/2))}var d=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,d},n.prototype.getRange=function(){return{start:this.start,end:this.end}},n.prototype.conversion=function(t,e){return n.conversion(this.start,this.end,t,e)},n.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},n.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},n.prototype._onDrag=function(t){if(t&&this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;s(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start;o-=f.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var n,r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;n=this.options.rtl?i/r*o:-i/r*o;var a=this.props.touch.start+n,h=this.props.touch.end+n,d=f.snapAwayFromHidden(this.body.hiddenDates,a,this.previousDelta-i,!0),l=f.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0);if(d!=a||l!=h)return this.deltaDifference+=i,this.props.touch.start=d,this.props.touch.end=l,void this._onDrag(t);this.previousDelta=i,this._applyRange(a,h);var u=new Date(this.start),p=new Date(this.end);this.body.emitter.emit("rangechange",{start:u,end:p,byUser:!0,event:t}),this.body.emitter.emit("panmove")}},n.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:t}))},n.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),!(this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable)&&this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var i;i=e<0?1-e/5:1/(1+e/5);var o;if(this.rolling)o=this.start+(this.end-this.start)*this.options.rollingMode.offset;else{var n=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center);o=this._pointerToDate(n)}this.zoom(i,o,e,t),t.preventDefault()}},n.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0,p.preventDefault(t)},n.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){p.preventDefault(t),this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center)),this.stopRolling();var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=f.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=f.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=1-e<=0,this.endToFront=e-1<=0;var h=f.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),d=f.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&d==a||(this.props.touch.start=h,this.props.touch.end=d,this.scaleOffset=1-t.scale,r=h,a=d);var l={animation:!1,byUser:!0,event:t};this.setRange(r,a,l),this.startToFront=!1,this.endToFront=!0}},n.prototype._isInsideRange=function(t){var e,i=t.center?t.center.x:t.clientX;e=this.options.rtl?i-p.getAbsoluteLeft(this.body.dom.centerContainer):p.getAbsoluteRight(this.body.dom.centerContainer)-i;var o=this.body.util.toTime(e);return o>=this.start&&o<=this.end},n.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(s(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},n.prototype.getPointer=function(t,e){return this.options.rtl?{x:p.getAbsoluteRight(e)-t.x,y:t.y-p.getAbsoluteTop(e)}:{x:t.x-p.getAbsoluteLeft(e),y:t.y-p.getAbsoluteTop(e)}},n.prototype.zoom=function(t,e,i,o){null==e&&(e=(this.start+this.end)/2);var n=f.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=f.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),r=n-s,a=e-s+(this.start-(e-s))*t,h=e+r+(this.end-(e+r))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0);var d=f.snapAwayFromHidden(this.body.hiddenDates,a,i,!0),l=f.snapAwayFromHidden(this.body.hiddenDates,h,-i,!0);d==a&&l==h||(a=d,h=l);var u={animation:!1,byUser:!0,event:o};this.setRange(a,h,u),this.startToFront=!1,this.endToFront=!0},n.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},n.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:null};this.setRange(o,n,s)},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){}var s=i(16),r=o(s),a=i(1),h=o(a),d=i(66),l=i(12),u=i(67),p=i(0),c=i(28),m=i(132),f=i(21),g=i(29);d(n.prototype),n.prototype._create=function(t){function e(t){this.isActive()&&this.emit("mousewheel",t);var e=0,i=0;if("detail"in t&&(i=-1*t.detail),"wheelDelta"in t&&(i=t.wheelDelta),"wheelDeltaY"in t&&(i=t.wheelDeltaY),"wheelDeltaX"in t&&(e=-1*t.wheelDeltaX),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=-1*i,i=0),"deltaY"in t&&(i=-1*t.deltaY),"deltaX"in t&&(e=t.deltaX),this.options.zoomKey&&!t[this.options.zoomKey])if(t.preventDefault(),this.options.verticalScroll&&Math.abs(i)>=Math.abs(e)){var o=this.props.scrollTop,n=o+i;this.isActive()&&(this._setScrollTop(n),this._redraw(),this.emit("scroll",t))}else if(this.options.horizontalScroll){var s=Math.abs(e)>=Math.abs(i)?e:i,r=s/120*(this.range.end-this.range.start)/20,a=this.range.start+r,h=this.range.end+r,d={animation:!1,byUser:!0,event:t};this.range.setRange(a,h,d)}}function i(t){if(s.options.verticalScroll&&(t.preventDefault(),s.isActive())){var e=-t.target.scrollTop;s._setScrollTop(e),s._redraw(),s.emit("scrollSide",t)}}function o(t){if(t.preventDefault&&t.preventDefault(),!(!t.target.className.indexOf("vis")>-1||a))return t.dataTransfer.dropEffect="move",a=!0,!1}function n(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation();try{var e=JSON.parse(t.dataTransfer.getData("text"));if(!e||!e.content)return}catch(t){return!1}return a=!1,t.center={x:t.clientX,y:t.clientY},"item"!==e.target?s.itemSet._onAddItem(t):s.itemSet._onDropObjectOnItem(t),s.emit("drop",s.getEventProperties(t)),!1}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.rollingModeBtn=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.rollingModeBtn.className="vis-rolling-mode-btn",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on("rangechange",function(){!0===this.initialDrawDone&&this._redraw()}.bind(this)),this.on("rangechanged",function(){this.initialRangeChangeDone||(this.initialRangeChangeDone=!0)}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("panmove",this._onDrag.bind(this));var s=this;this._origRedraw=this._redraw.bind(this),this._redraw=p.throttle(this._origRedraw),this.on("_change",function(t){s.itemSet&&s.itemSet.initialItemSetDrawn&&t&&1==t.queue?s._redraw():s._origRedraw()}),this.hammer=new l(this.dom.root);var r=this.hammer.get("pinch").set({enable:!0});u.disablePreventDefaultVertically(r),this.hammer.get("pan").set({threshold:5,direction:l.DIRECTION_HORIZONTAL}),this.listeners={},["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach(function(t){var e=function(e){s.isActive()&&s.emit(t,e)};s.hammer.on(t,e),s.listeners[t]=e}),u.onTouch(this.hammer,function(t){s.emit("touch",t)}.bind(this)),u.onRelease(this.hammer,function(t){s.emit("release",t)}.bind(this)),this.dom.centerContainer.addEventListener?(this.dom.centerContainer.addEventListener("mousewheel",e.bind(this),!1),this.dom.centerContainer.addEventListener("DOMMouseScroll",e.bind(this),!1)):this.dom.centerContainer.attachEvent("onmousewheel",e.bind(this)),this.dom.left.parentNode.addEventListener("scroll",i.bind(this)),this.dom.right.parentNode.addEventListener("scroll",i.bind(this));var a=!1;if(this.dom.center.addEventListener("dragover",o.bind(this),!1),this.dom.center.addEventListener("drop",n.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,this.initialRangeChangeDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},n.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","zoomKey","horizontalScroll","verticalScroll"];if(p.selectiveExtend(e,this.options,t),this.dom.rollingModeBtn.style.visibility="hidden",this.options.rtl&&(this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className="vis-panel vis-right vis-vertical-scroll":this.dom.leftContainer.className="vis-panel vis-left vis-vertical-scroll"),"object"!==(0,h.default)(this.options.orientation)&&(this.options.orientation={item:void 0,axis:void 0}),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===(0,h.default)(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new c(this.body);i.setOptions=function(t){var e=t?p.extend({},t):{};e.orientation="top",c.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&f.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new m(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=p.deepExtend({},this.options);this.components.forEach(function(t){p.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},n.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));i.length>0&&i[0].setCustomTime(t)},n.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));return e[0].getCustomTime()},n.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));if(i.length>0)return i[0].setCustomTitle(t)},n.prototype.getEventProperties=function(t){return{event:t}},n.prototype.addCustomTime=function(t,e){var i=void 0!==t?p.convert(t,"Date").valueOf():new Date;if(this.customTimes.some(function(t){return t.options.id===e}))throw new Error("A custom time with id "+(0,r.default)(e)+" already exists");var o=new g(this.body,p.extend({},this.options,{time:i,id:e}));return this.customTimes.push(o),this.components.push(o),this._redraw(),e},n.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},n.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},n.prototype.fit=function(t,e){var i=this.getDataRange();if(null!==i.min||null!==i.max){var o=i.max-i.min,n=new Date(i.min.valueOf()-.01*o),s=new Date(i.max.valueOf()+.01*o),r=!t||void 0===t.animation||t.animation;this.range.setRange(n,s,{animation:r},e)}},n.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},n.prototype.setWindow=function(t,e,i,o){"function"==typeof arguments[2]&&(o=arguments[2],i={});var n,s;1==arguments.length?(s=arguments[0],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n})):2==arguments.length&&"function"==typeof arguments[1]?(s=arguments[0],o=arguments[1],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n},o)):(n=!i||void 0===i.animation||i.animation,this.range.setRange(t,e,{animation:n},o))},n.prototype.moveTo=function(t,e,i){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.range.end-this.range.start,n=p.convert(t,"Date").valueOf(),s=n-o/2,r=n+o/2,a=!e||void 0===e.animation||e.animation;this.range.setRange(s,r,{animation:a},i)},n.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},n.prototype.zoomIn=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=r/(1+t),h=(r-a)/2,d=n+h,l=s-h;this.setWindow(d,l,e,i)}},n.prototype.zoomOut=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=n-r*t/2,h=s+r*t/2;this.setWindow(a,h,e,i)}},n.prototype.redraw=function(){this._redraw()},n.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.offsetWidth){f.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(p.addClassName(o.root,"vis-top"),p.removeClassName(o.root,"vis-bottom")):(p.removeClassName(o.root,"vis-top"),p.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=p.option.asSize(e.maxHeight,""),o.root.style.minHeight=p.option.asSize(e.minHeight,""),o.root.style.width=p.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top,i.borderRootHeight=o.root.offsetHeight-o.root.clientHeight,i.borderRootWidth=o.root.offsetWidth-o.root.clientWidth,0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(i.borderRootWidth=i.borderRootHeight),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var n=Math.max(i.left.height,i.center.height,i.right.height),s=i.top.height+n+i.bottom.height+i.borderRootHeight+i.border.top+i.border.bottom;o.root.style.height=p.option.asSize(e.height,s+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-i.borderRootHeight;var r=i.root.height-i.top.height-i.bottom.height-i.borderRootHeight;i.centerContainer.height=r,i.leftContainer.height=r,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-i.borderRootWidth,this.initialDrawDone||(i.scrollbarWidth=p.getScrollBarWidth()),e.verticalScroll?e.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),this._setDOM();var a=this._updateScrollTop();"top"!=e.orientation.item&&(a+=Math.max(i.centerContainer.height-i.center.height-i.border.top-i.border.bottom,0)),o.center.style.top=a+"px";var h=0==i.scrollTop?"hidden":"",d=i.scrollTop==i.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=h,o.shadowBottom.style.visibility=d,o.shadowTopLeft.style.visibility=h,o.shadowBottomLeft.style.visibility=d,o.shadowTopRight.style.visibility=h,o.shadowBottomRight.style.visibility=d,e.verticalScroll&&(o.rightContainer.className="vis-panel vis-right vis-vertical-scroll",o.leftContainer.className="vis-panel vis-left vis-vertical-scroll",o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden",o.left.style.top="0px",o.right.style.top="0px"),(!e.verticalScroll||i.center.heighti.centerContainer.height;this.hammer.get("pan").set({direction:u?l.DIRECTION_ALL:l.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});if(t){if(this.redrawCount<5)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.body.emitter.emit("changed")}},n.prototype._setDOM=function(){var t=this.props,e=this.dom;t.leftContainer.width=t.left.width,t.rightContainer.width=t.right.width;var i=t.root.width-t.left.width-t.right.width-t.borderRootWidth;t.center.width=i,t.centerContainer.width=i,t.top.width=i,t.bottom.width=i,e.background.style.height=t.background.height+"px",e.backgroundVertical.style.height=t.background.height+"px",e.backgroundHorizontal.style.height=t.centerContainer.height+"px",e.centerContainer.style.height=t.centerContainer.height+"px",e.leftContainer.style.height=t.leftContainer.height+"px",e.rightContainer.style.height=t.rightContainer.height+"px",e.background.style.width=t.background.width+"px",e.backgroundVertical.style.width=t.centerContainer.width+"px",e.backgroundHorizontal.style.width=t.background.width+"px",e.centerContainer.style.width=t.center.width+"px",e.top.style.width=t.top.width+"px",e.bottom.style.width=t.bottom.width+"px",e.background.style.left="0",e.background.style.top="0",e.backgroundVertical.style.left=t.left.width+t.border.left+"px",e.backgroundVertical.style.top="0",e.backgroundHorizontal.style.left="0",e.backgroundHorizontal.style.top=t.top.height+"px",e.centerContainer.style.left=t.left.width+"px",e.centerContainer.style.top=t.top.height+"px",e.leftContainer.style.left="0",e.leftContainer.style.top=t.top.height+"px",e.rightContainer.style.left=t.left.width+t.center.width+"px",e.rightContainer.style.top=t.top.height+"px",e.top.style.left=t.left.width+"px",e.top.style.top="0",e.bottom.style.left=t.left.width+"px",e.bottom.style.top=t.top.height+t.centerContainer.height+"px",e.center.style.left="0",e.left.style.left="0",e.right.style.left="0"},n.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},n.prototype.setCurrentTime=function(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)},n.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},n.prototype._toTime=function(t){return f.toTime(this,t,this.props.center.width)},n.prototype._toGlobalTime=function(t){return f.toTime(this,t,this.props.root.width)},n.prototype._toScreen=function(t){return f.toScreen(this,t,this.props.center.width)},n.prototype._toGlobalScreen=function(t){return f.toScreen(this,t,this.props.root.width)},n.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},n.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){if(1!=t.options.autoResize)return void t._stopAutoResize();t.dom.root&&(t.dom.root.offsetWidth==t.props.lastWidth&&t.dom.root.offsetHeight==t.props.lastHeight||(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight,t.props.scrollbarWidth=p.getScrollBarWidth(),t.body.emitter.emit("_change")))},p.addEventListener(window,"resize",this._onResize),t.dom.root&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},n.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(p.removeEventListener(window,"resize",this._onResize),this._onResize=null)},n.prototype._onTouch=function(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},n.prototype._onPinch=function(t){this.touch.allowDragging=!1},n.prototype._onDrag=function(t){if(t&&this.touch.allowDragging){var e=t.deltaY,i=this._getScrollTop(),o=this._setScrollTop(this.touch.initialScrollTop+e);this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),o!=i&&this.emit("verticalDrag")}},n.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},n.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop0&&this.current.milliseconds()0&&this.current.seconds()0&&this.current.minutes()0&&this.current.hours()0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){31104e9>t&&(this.scale="year",this.step=1e3),15552e9>t&&(this.scale="year",this.step=500),31104e8>t&&(this.scale="year",this.step=100),15552e8>t&&(this.scale="year",this.step=50),31104e7>t&&(this.scale="year",this.step=10),15552e7>t&&(this.scale="year",this.step=5),31104e6>t&&(this.scale="year",this.step=1),7776e6>t&&(this.scale="month",this.step=3),2592e6>t&&(this.scale="month",this.step=1),432e6>t&&(this.scale="day",this.step=5),1728e5>t&&(this.scale="day",this.step=2),864e5>t&&(this.scale="day",this.step=1),432e5>t&&(this.scale="weekday",this.step=1),144e5>t&&(this.scale="hour",this.step=4),36e5>t&&(this.scale="hour",this.step=1),9e5>t&&(this.scale="minute",this.step=15),6e5>t&&(this.scale="minute",this.step=10),3e5>t&&(this.scale="minute",this.step=5),6e4>t&&(this.scale="minute",this.step=1),15e3>t&&(this.scale="second",this.step=15),1e4>t&&(this.scale="second",this.step=10),5e3>t&&(this.scale="second",this.step=5),1e3>t&&(this.scale="second",this.step=1),200>t&&(this.scale="millisecond",this.step=200),100>t&&(this.scale="millisecond",this.step=100),50>t&&(this.scale="millisecond",this.step=50),10>t&&(this.scale="millisecond",this.step=10),5>t&&(this.scale="millisecond",this.step=5),1>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("week"==e)o.weekday()>2?(o.weekday(0),o.add(1,"week")):o.weekday(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.scale){case"year":case"month":case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.scale){case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":case"week":return 1==t.date();case"month":return 0==t.month();case"year":default:return!1}},o.prototype.getLabelMinor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];switch(this.scale){case"week":if(this.isMajor()&&0!==t.weekday())return"";default:return e&&e.length>0?this.moment(t).format(e):""}},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/a%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(n().add(1,"day"),"day")?" vis-tomorrow":t.isSame(n().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}var n=this.moment,s=this.moment(this.current),r=s.locale?s.locale("en"):s.lang("en"),a=this.step,h=[];switch(this.scale){case"millisecond":h.push(e(r)),h.push(t(r.milliseconds()));break;case"second":h.push(e(r)),h.push(t(r.seconds()));break;case"minute":h.push(e(r)),h.push(t(r.minutes()));break;case"hour":h.push("vis-h"+r.hours()+(4==this.step?"-h"+(r.hours()+4):"")),h.push(e(r)),h.push(t(r.hours()));break;case"weekday":h.push("vis-"+r.format("dddd").toLowerCase()),h.push(e(r)),h.push(i(r)),h.push(t(r.date()));break;case"day":h.push("vis-day"+r.date()),h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(e(r)),h.push(o(r)),h.push(this.step<=2?e(r):""),h.push(this.step<=2?"vis-"+r.format("dddd").toLowerCase():""),h.push(t(r.date()-1));break;case"week":h.push("vis-week"+r.format("w")),h.push(i(r)),h.push(t(r.week()));break;case"month":h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(o(r)),h.push(t(r.month()));break;case"year":h.push("vis-year"+r.year()),h.push(function(t){return t.isSame(new Date,"year")?" vis-current-year":""}(r)),h.push(t(r.year()))}return h.filter(String).join(" ")},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={rtl:!1,showCurrentTime:!0,moment:r,locales:a,locale:"en"},this.options=n.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var n=i(0),s=i(5),r=i(3),a=i(69);o.prototype=new s,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-current-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},o.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},o.prototype.setOptions=function(t){t&&n.selectiveExtend(["rtl","showCurrentTime","moment","locale","locales"],this.options,t)},o.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=this.options.moment((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),o=this.options.locales[this.options.locale];o||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline/#Localization"),this.warned=!0),o=this.options.locales.en);var n=o.current+" "+o.time+": "+e.format("dddd, MMMM Do YYYY, H:mm:ss");n=n.charAt(0).toUpperCase()+n.substring(1),this.options.rtl?this.bar.style.right=i+"px":this.bar.style.left=i+"px",this.bar.title=n}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},o.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,o=1/i/10;o<30&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.groupId=t,this.subgroups={},this.subgroupStack={},this.subgroupStackAll=!1,this.doInnerStack=!1,this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.isVisible=null,this.stackDirty=!0,e&&e.nestedGroups&&(this.nestedGroups=e.nestedGroups,0==e.showNested?this.showNested=!1:this.showNested=!0),e&&e.subgroupStack)if("boolean"==typeof e.subgroupStack)this.doInnerStack=e.subgroupStack,this.subgroupStackAll=e.subgroupStack;else for(var o in e.subgroupStack)this.subgroupStack[o]=e.subgroupStack[o],this.doInnerStack=this.doInnerStack||e.subgroupStack[o];this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var n=this;this.itemSet.body.emitter.on("checkRangedItems",function(){n.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(4),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(0),a=i(71);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.style.position="absolute",this.dom.marker.innerHTML="",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else e instanceof Object?i(t,this.dom.inner):this.dom.inner.innerHTML=void 0!==e&&null!==e?e:this.groupId||"";if(this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?r.removeClassName(this.dom.inner,"vis-hidden"):r.addClassName(this.dom.inner,"vis-hidden"),t&&t.nestedGroups){this.nestedGroups&&this.nestedGroups==t.nestedGroups||(this.nestedGroups=t.nestedGroups),void 0===t.showNested&&void 0!==this.showNested||(0==t.showNested?this.showNested=!1:this.showNested=!0),r.addClassName(this.dom.label,"vis-nesting-group");var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";this.showNested?(r.removeClassName(this.dom.label,o),r.addClassName(this.dom.label,"expanded")):(r.removeClassName(this.dom.label,"expanded"),r.addClassName(this.dom.label,o))}else this.nestedGroups&&(this.nestedGroups=null,o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed",r.removeClassName(this.dom.label,o),r.removeClassName(this.dom.label,"expanded"),r.removeClassName(this.dom.label,"vis-nesting-group"));t&&t.nestedInGroup&&(r.addClassName(this.dom.label,"vis-nested-group"),this.itemSet.options&&this.itemSet.options.rtl?this.dom.inner.style.paddingRight="30px":this.dom.inner.style.paddingLeft="30px");var n=t&&t.className||null;n!=this.className&&(this.className&&(r.removeClassName(this.dom.label,this.className),r.removeClassName(this.dom.foreground,this.className),r.removeClassName(this.dom.background,this.className),r.removeClassName(this.dom.axis,this.className)),r.addClassName(this.dom.label,n),r.addClassName(this.dom.foreground,n),r.addClassName(this.dom.background,n),r.addClassName(this.dom.axis,n),this.className=n),this.style&&(r.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(r.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype._didMarkerHeightChange=function(){var t=this.dom.marker.clientHeight;if(t!=this.lastMarkerHeight){this.lastMarkerHeight=t;var e={},i=0;r.forEach(this.items,function(t,o){if(t.dirty=!0,t.displayed){e[o]=t.redraw(!0),i=e[o].length}});if(i>0)for(var o=0;o0)for(var u=0;u0){var e=this;this.resetSubgroups(),r.forEach(this.visibleItems,function(i){void 0!==i.data.subgroup&&(e.subgroups[i.data.subgroup].height=Math.max(e.subgroups[i.data.subgroup].height,i.height+t.item.vertical),e.subgroups[i.data.subgroup].visible=!0)})}},o.prototype._isGroupVisible=function(t,e){return this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,n=i[0].top+i[0].height;if(r.forEach(i,function(t){o=Math.min(o,t.top),n=Math.max(n,t.top+t.height)}),o>t.axis){var s=o-t.axis;n-=s,r.forEach(i,function(t){t.top-=s})}e=n+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),this.stackDirty=!0,void 0!==t.data.subgroup&&(this._addToSubgroup(t),this.orderSubgroups()),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype._addToSubgroup=function(t,e){e=e||t.data.subgroup,void 0!=e&&void 0===this.subgroups[e]&&(this.subgroups[e]={height:0,top:0,start:t.data.start,end:t.data.end||t.data.start,visible:!1,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[e]||!1},this.subgroupIndex++),new Date(t.data.start)new Date(this.subgroups[e].end)&&(this.subgroups[e].end=i),this.subgroups[e].items.push(t)},o.prototype._updateSubgroupsSizes=function(){var t=this;if(t.subgroups)for(var e in t.subgroups){var i=t.subgroups[e].items[0].data.end||t.subgroups[e].items[0].data.start,o=t.subgroups[e].items[0].data.start,n=i-1;t.subgroups[e].items.forEach(function(t){new Date(t.data.start)new Date(n)&&(n=e)}),t.subgroups[e].start=o,t.subgroups[e].end=new Date(n-1)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t,e=[];if("string"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push({subgroup:t,sortField:this.subgroups[t].items[0].data[this.subgroupOrderer]});e.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push(this.subgroups[t].items[0].data);e.sort(this.subgroupOrderer)}if(e.length>0)for(var i=0;i=0&&(i.items.splice(o,1),i.items.length?this._updateSubgroupsSizes():delete this.subgroups[e])}}},o.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},o.prototype.order=function(){for(var t=r.toArray(this.items),e=[],i=[],o=0;o0)for(var l=0;lh}),1==this.checkRangedItems)for(this.checkRangedItems=!1,l=0;lh})}var c={},m=0;for(l=0;l0)for(var g=0;g=0&&(r=e[s],!n(r));s--)void 0===o[r.id]&&(o[r.id]=!0,i.push(r));for(s=t+1;st.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.visibleFrame=document.createElement("div"),this.dom.visibleFrame.className="vis-item-visible-frame",this.dom.box.appendChild(this.dom.visibleFrame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dom.box["timeline-item"]=this,this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var t=this.editable.updateTime||this.editable.updateGroup,e=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(t?" vis-editable":" vis-readonly");this.dom.box.className=this.baseClassName+e,this.dom.content.style.maxWidth="none"}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.frame).overflow,{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=t.box.height,this.dom.content.style.maxWidth="",this.dirty=!1},o.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDeleteButton(this.dom.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end),r=void 0===this.data.align?this.options.align:this.data.align;!1===this.data.limitSize||void 0!==t&&!0!==t||(n<-o&&(n=-o),s>2*o&&(s=2*o));var a=Math.max(s-n+.5,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=a+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=a,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=a+"px",r){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(a-i,0)+"px":this.dom.content.style.left=Math.max(a-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((a-i)/2,0)+"px":this.dom.content.style.left=Math.max((a-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+e+"px)")}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t,e){}function n(t,e){return e=void 0===e?{}:e,{style:e.style||t.options.drawPoints.style,styles:e.styles||t.options.drawPoints.styles,size:e.size||t.options.drawPoints.size,className:e.className||t.className}}function s(t,e){var i=void 0;return t.options&&t.options.drawPoints&&t.options.drawPoints.onRender&&"function"==typeof t.options.drawPoints.onRender&&(i=t.options.drawPoints.onRender),e.group.options&&e.group.options.drawPoints&&e.group.options.drawPoints.onRender&&"function"==typeof e.group.options.drawPoints.onRender&&(i=e.group.options.drawPoints.onRender),i}var r=i(1),a=function(t){return t&&t.__esModule?t:{default:t}}(r),h=i(11);o.draw=function(t,e,i,o){o=o||0;for(var r=s(i,e),d=0;dh;)o(a,i=e[h++])&&(~s(d,i)||d.push(i));return d}},function(t,e,i){var o=i(34);t.exports=function(t){return Object(o(t))}},function(t,e,i){var o=i(101)(!0);i(56)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=o(e,i),this._i+=t.length,{value:t,done:!1})})},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,i){var o=i(60),n=i(41).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return o(t,n)}},function(t,e,i){function o(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}o.prototype.setOptions=function(t){t&&void 0!==t.delay&&(this.delay=t.delay),t&&void 0!==t.max&&(this.max=t.max),this._flushIfNeeded()},o.extend=function(t,e){var i=new o(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){i.flush()};var n=[{name:"flush",original:void 0}];if(e&&e.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},o.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=o},function(t,e){function i(t){if(t)return o(t)}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;n0){var n=i.groupsData.getDataSet();n.get().forEach(function(t){if(t.nestedGroups){0!=t.showNested&&(t.showNested=!0);var e=[];t.nestedGroups.forEach(function(i){var o=n.get(i);o&&(o.nestedInGroup=t.id,0==t.showNested&&(o.visible=!1),e=e.concat(o))}),n.update(e,o)}})}},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.popup=null,this.touchParams={},this.groupTouchParams={},this._create(),this.setOptions(e)}var s=i(43),r=o(s),a=i(1),h=o(a),d=i(12),l=i(0),u=i(15),p=i(20),c=i(49),m=i(5),f=i(51),g=i(52),v=i(72),y=i(73),b=i(53),_=i(74),w=i(133).default,x="__ungrouped__",D="__background__";n.prototype=new m,n.types={background:_,box:v,range:b,point:y},n.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var n=document.createElement("div");n.className="vis-labelset",this.dom.labelSet=n,this._updateUngrouped();var s=new g(D,null,this);s.show(),this.groups[D]=s,this.hammer=new d(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:d.DIRECTION_HORIZONTAL}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.options.rtl?this.groupHammer=new d(this.body.dom.rightContainer):this.groupHammer=new d(this.body.dom.leftContainer),this.groupHammer.on("tap",this._onGroupClick.bind(this)),this.groupHammer.on("panstart",this._onGroupDragStart.bind(this)),this.groupHammer.on("panmove",this._onGroupDrag.bind(this)),this.groupHammer.on("panend",this._onGroupDragEnd.bind(this)),this.groupHammer.get("pan").set({threshold:5,direction:d.DIRECTION_VERTICAL}),this.body.dom.centerContainer.addEventListener("mouseover",this._onMouseOver.bind(this)),this.body.dom.centerContainer.addEventListener("mouseout",this._onMouseOut.bind(this)),this.body.dom.centerContainer.addEventListener("mousemove",this._onMouseMove.bind(this)),this.body.dom.centerContainer.addEventListener("contextmenu",this._onDragEnd.bind(this)),this.body.dom.centerContainer.addEventListener("mousewheel",this._onMouseWheel.bind(this)),this.show()},n.prototype.setOptions=function(t){if(t){var e=["type","rtl","align","order","stack","stackSubgroups","selectable","multiselect","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","visibleFrameTemplate","hide","snap","groupOrderSwap","showTooltips","tooltip","tooltipOnItemUpdateTime"];l.selectiveExtend(e,this.options,t),"itemsAlwaysDraggable"in t&&("boolean"==typeof t.itemsAlwaysDraggable?(this.options.itemsAlwaysDraggable.item=t.itemsAlwaysDraggable,this.options.itemsAlwaysDraggable.range=!1):"object"===(0,h.default)(t.itemsAlwaysDraggable)&&(l.selectiveExtend(["item","range"],this.options.itemsAlwaysDraggable,t.itemsAlwaysDraggable),this.options.itemsAlwaysDraggable.item||(this.options.itemsAlwaysDraggable.range=!1))),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"===(0,h.default)(t.orientation)&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"===(0,h.default)(t.margin)&&(l.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"===(0,h.default)(t.margin.item)&&l.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable,this.options.editable.overrideItems=!1):"object"===(0,h.default)(t.editable)&&l.selectiveExtend(["updateTime","updateGroup","add","remove","overrideItems"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"===(0,h.default)(t.groupEditable)&&l.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));["onDropObjectOnItem","onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this)),this.markDirty()}},n.prototype.markDirty=function(t){this.groupIds=[],t&&t.refreshItems&&l.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},n.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},n.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},n.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||(this.options.rtl?this.body.dom.right.appendChild(this.dom.labelSet):this.body.dom.left.appendChild(this.dom.labelSet))},n.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;et&&o.push(h.id):h.lefte&&o.push(h.id)}return o},n.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;i0){for(var w={},x=0;x<_;x++)l.forEach(b,function(t,e){w[e]=t[x]()});l.forEach(this.groups,function(t,e){if(e!==D){var i=w[e];s=i||s,v+=t.height}}),v=Math.max(v,y)}return v=Math.max(v,y),r.style.height=i(v),this.props.width=r.offsetWidth,this.props.height=v,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right="0":this.dom.axis.style.left="0",this.initialItemSetDrawn=!0,s=this._isResized()||s},n.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t];return this.groups[e]||this.groups[x]||null},n.prototype._updateUngrouped=function(){var t,e,i=this.groups[x];if(this.groupsData){if(i){i.hide(),delete this.groups[x];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){i=new f(null,null,this),this.groups[x]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},n.prototype.getLabelSet=function(){return this.dom.labelSet},n.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof u||t instanceof p))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(l.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;l.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}this.body.emitter.emit("_change",{queue:!0})},n.prototype.getItems=function(){return this.itemsData},n.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(l.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof u||t instanceof p))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.groupsData;this.groupsData instanceof p&&(o=this.groupsData.getDataSet()),o.get().forEach(function(t){t.nestedGroups&&t.nestedGroups.forEach(function(e){var i=o.get(e);i.nestedInGroup=t.id,0==t.showNested&&(i.visible=!1),o.update(i)})});var n=this.id;l.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,n)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype.getGroups=function(){return this.groupsData},n.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},n.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},n.prototype._getGroupId=function(t){return"background"==this._getType(t)&&void 0==t.group?D:this.groupsData?t.group:x},n.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,o=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=o?e._getType(o):null,a=n.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,o):(i=s.selected,e._removeItem(s),s=null)),!s&&o){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(o,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onAdd=n.prototype._onUpdate,n.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.body.emitter.emit("_change",{queue:!0}))},n.prototype._order=function(){l.forEach(this.groups,function(t){t.order()})},n.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},n.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==x||t==D)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=(0,r.default)(e.options);l.extend(n,{height:null}),o=new f(t,i,e),e.groups[t]=o;for(var s in e.items)if(e.items.hasOwnProperty(s)){var a=e.items[s];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder});t=this._orderNestedGroups(t);var e=!l.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},n.prototype._orderNestedGroups=function(t){var e=[];return t.forEach(function(t){var i=this.groupsData.get(t);if(i.nestedInGroup||e.push(t),i.nestedGroups){var o=this.groupsData.get({filter:function(e){return e.nestedInGroup==t},order:this.options.groupOrder}),n=o.map(function(t){return t.id});e=e.concat(n)}},this),e},n.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i?i&&i.data&&i.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1,i&&i.add(t)},n.prototype._updateItem=function(t,e){t.setData(e);var i=this._getGroupId(t.data),o=this.groups[i];o?o&&o.data&&o.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1},n.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},n.prototype._constructByEndArray=function(t){for(var e=[],i=0;in)return}}if(i&&i!=this.groupTouchParams.group){var a=e.get(i.groupId),h=e.get(this.groupTouchParams.group.groupId);h&&a&&(this.options.groupOrderSwap(h,a,e),e.update(h),e.update(a));var d=e.getIds({order:this.options.groupOrder});if(!l.equalArray(d,this.groupTouchParams.originalOrder))for(var u=this.groupTouchParams.originalOrder,c=this.groupTouchParams.group.groupId,m=Math.min(u.length,d.length),f=0,g=0,v=0;f=m)break;if(d[f+g]==c)g=1;else if(u[f+v]==c)v=1;else{var y=d.indexOf(u[f+v]),b=e.get(d[f+g]),_=e.get(u[f+v]);this.options.groupOrderSwap(b,_,e),e.update(b),e.update(_);var w=d[f+g];d[f+g]=u[f+v],d[y]=w,f++}}}}},n.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=l.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!l.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,r=Math.min(s.length,n.length),a=0;a=r)break;var h=n.indexOf(s[a]),d=o.get(n[a]),u=o.get(s[a]);e.options.groupOrderSwap(d,u,o),o.update(d),o.update(u);var p=n[a];n[a]=s[a],n[h]=p,a++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},n.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},n.prototype._onMouseOver=function(t){var e=this.itemFromTarget(t);if(e){if(e!==this.itemFromRelatedTarget(t)){var i=e.getTitle();if(this.options.showTooltips&&i){null==this.popup&&(this.popup=new w(this.body.dom.root,this.options.tooltip.overflowMethod||"flip")),this.popup.setText(i);var o=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(o)+o.offsetLeft,t.clientY-l.getAbsoluteTop(o)+o.offsetTop),this.popup.show()}else null!=this.popup&&this.popup.hide();this.body.emitter.emit("itemover",{item:e.id,event:t})}}},n.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);if(e){e!==this.itemFromRelatedTarget(t)&&(null!=this.popup&&this.popup.hide(),this.body.emitter.emit("itemout",{item:e.id,event:t}))}},n.prototype._onMouseMove=function(t){if(this.itemFromTarget(t)&&this.options.showTooltips&&this.options.tooltip.followMouse&&this.popup&&!this.popup.hidden){var e=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(e)+e.offsetLeft,t.clientY-l.getAbsoluteTop(e)+e.offsetTop),this.popup.show()}},n.prototype._onMouseWheel=function(t){this.touchParams.itemIsDragging&&this._onDragEnd(t)},n.prototype._onUpdateItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this;if(t){var i=e.itemsData.get(t.id);this.options.onUpdate(i,function(t){t&&e.itemsData.getDataSet().update(t)})}}},n.prototype._onDropObjectOnItem=function(t){var e=this.itemFromTarget(t),i=JSON.parse(t.dataTransfer.getData("text"));this.options.onDropObjectOnItem(i,e)},n.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e,i,o=this,n=this.options.snap||null;this.options.rtl?(e=l.getAbsoluteRight(this.dom.frame),i=e-t.center.x):(e=l.getAbsoluteLeft(this.dom.frame),i=t.center.x-e);var s,r,a=this.body.util.toTime(i),h=this.body.util.getScale(),d=this.body.util.getStep();"drop"==t.type?(r=JSON.parse(t.dataTransfer.getData("text")),r.content=r.content?r.content:"new item",r.start=r.start?r.start:n?n(a,h,d):a,r.type=r.type||"box",r[this.itemsData._fieldId]=r.id||l.randomUUID(),"range"!=r.type||r.end||(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s)):(r={start:n?n(a,h,d):a,content:"new item"},r[this.itemsData._fieldId]=l.randomUUID(),"range"===this.options.type&&(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s));var u=this.groupFromTarget(t);u&&(r.group=u.groupId),r=this._cloneItemData(r),this.options.onAdd(r,function(e){e&&(o.itemsData.getDataSet().add(e),"drop"==t.type&&o.setSelection([e.id]))})}},n.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[];if((t.srcEvent&&t.srcEvent.shiftKey||!1)&&this.options.multiselect){var o=this.itemsData.get(e.id).group,s=void 0;this.options.multiselectPerGroup&&i.length>0&&(s=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=s&&s!=o||i.push(e.id);var r=n._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||s==o){i=[];for(var a in this.items)if(this.items.hasOwnProperty(a)){var h=this.items[a],d=h.data.start,l=void 0!==h.data.end?h.data.end:d;!(d>=r.min&&l<=r.max)||this.options.multiselectPerGroup&&s!=this.itemsData.get(h.id).group||h instanceof _||i.push(h.id)}}}else{var u=i.indexOf(e.id);-1==u?i.push(e.id):i.splice(u,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},n._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},n.prototype.itemFromElement=function(t){for(var e=t;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},n.prototype.itemFromTarget=function(t){return this.itemFromElement(t.target)},n.prototype.itemFromRelatedTarget=function(t){return this.itemFromElement(t.relatedTarget)},n.prototype.groupFromTarget=function(t){var e=t.center?t.center.y:t.clientY,i=this.groupIds;i.length<=0&&this.groupsData&&(i=this.groupsData.getIds({order:this.options.groupOrder}));for(var o=0;oa&&ea)return s}else if(0===o&&es&&(s=r.top+r.height)}while(a)}}o.height=s-o.top+.5*i.item.vertical},e.nostack=function(t,i,o,n){for(var s=0;so[r].index&&e.collisionByTimes(o[n],o[r])){s=o[r];break}null!=s&&(o[n].top=s.top+s.height)}while(s)}for(var a=0;ao[h].index&&(o[r].top+=o[h].height);for(var d=t[r],l=0;le.right&&t.top-i.vertical+.001e.top:t.left-i.horizontal+.001e.left&&t.top-i.vertical+.001e.top},e.collisionByTimes=function(t,e){return t.start<=e.start&&t.end>=e.start&&t.tope.top||e.start<=t.start&&e.end>=t.start&&e.topt.top}},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(22);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=this.options.align,i=this.width*t.getMillisecondsPerPixel();return"right"==e?this.data.start.getTime()>t.start&&this.data.start.getTime()-it.start&&this.data.start.getTime()t.start&&this.data.start.getTime()-i/2t.start&&this.data.startt.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.background;if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var t=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");this.dom.box.className=this.baseClassName+t}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.content).overflow,{content:{width:this.dom.content.offsetWidth}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=0,this.dirty=!1},o.prototype._repaintDomAdditionals=function(){},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e,i=this.options.orientation.item;if(void 0!==this.data.subgroup){var o=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[o].height+"px",this.dom.box.style.top="top"==i?this.parent.top+this.parent.subgroups[o].top+"px":this.parent.top+this.parent.height-this.parent.subgroups[o].top-this.parent.subgroups[o].height+"px",this.dom.box.style.bottom=""}else this.parent instanceof s?(e=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom="bottom"==i?"0":"",this.dom.box.style.top="top"==i?"0":""):(e=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=e+"px"},t.exports=o},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r="object",a={configure:{enabled:{boolean:n},filter:{boolean:n,function:"function"},container:{dom:"dom"},__type__:{object:r,boolean:n,function:"function"}},align:{string:o},rtl:{boolean:n,undefined:"undefined"},rollingMode:{follow:{boolean:n},offset:{number:s,undefined:"undefined"},__type__:{object:r}},verticalScroll:{boolean:n,undefined:"undefined"},horizontalScroll:{boolean:n,undefined:"undefined"},autoResize:{boolean:n},throttleRedraw:{number:s},clickToUse:{boolean:n},dataAttributes:{string:o,array:"array"},editable:{add:{boolean:n,undefined:"undefined"},remove:{boolean:n,undefined:"undefined"},updateGroup:{boolean:n,undefined:"undefined"},updateTime:{boolean:n,undefined:"undefined"},overrideItems:{boolean:n,undefined:"undefined"},__type__:{boolean:n,object:r}},end:{number:s,date:"date",string:o,moment:"moment"},format:{minorLabels:{millisecond:{string:o,undefined:"undefined"},second:{string:o,undefined:"undefined"},minute:{string:o,undefined:"undefined"},hour:{string:o,undefined:"undefined"},weekday:{string:o,undefined:"undefined"},day:{string:o,undefined:"undefined"},week:{string:o,undefined:"undefined"},month:{string:o,undefined:"undefined"},year:{string:o,undefined:"undefined"},__type__:{object:r,function:"function"}},majorLabels:{millisecond:{string:o,undefined:"undefined"},second:{string:o,undefined:"undefined"},minute:{string:o,undefined:"undefined"},hour:{string:o,undefined:"undefined"},weekday:{string:o,undefined:"undefined"},day:{string:o,undefined:"undefined"},week:{string:o,undefined:"undefined"},month:{string:o,undefined:"undefined"},year:{string:o,undefined:"undefined"},__type__:{object:r,function:"function"}},__type__:{object:r}},moment:{function:"function"},groupOrder:{string:o,function:"function"},groupEditable:{add:{boolean:n,undefined:"undefined"},remove:{boolean:n,undefined:"undefined"},order:{boolean:n,undefined:"undefined"},__type__:{boolean:n,object:r}},groupOrderSwap:{function:"function"},height:{string:o,number:s},hiddenDates:{start:{date:"date",number:s,string:o,moment:"moment"},end:{date:"date",number:s,string:o,moment:"moment"},repeat:{string:o},__type__:{object:r,array:"array"}},itemsAlwaysDraggable:{item:{boolean:n,undefined:"undefined"},range:{boolean:n,undefined:"undefined"},__type__:{boolean:n,object:r}},limitSize:{boolean:n},locale:{string:o},locales:{__any__:{any:"any"},__type__:{object:r}},margin:{axis:{number:s},item:{horizontal:{number:s,undefined:"undefined"},vertical:{number:s,undefined:"undefined"},__type__:{object:r,number:s}},__type__:{object:r,number:s}},max:{date:"date",number:s,string:o,moment:"moment"},maxHeight:{number:s,string:o},maxMinorChars:{number:s},min:{date:"date",number:s,string:o,moment:"moment"},minHeight:{number:s,string:o},moveable:{boolean:n},multiselect:{boolean:n},multiselectPerGroup:{boolean:n},onAdd:{function:"function"},onDropObjectOnItem:{function:"function"},onUpdate:{function:"function"},onMove:{function:"function"},onMoving:{function:"function"},onRemove:{function:"function"},onAddGroup:{function:"function"},onMoveGroup:{function:"function"},onRemoveGroup:{function:"function"},onInitialDrawComplete:{function:"function"},order:{function:"function"},orientation:{axis:{string:o,undefined:"undefined"},item:{string:o,undefined:"undefined"},__type__:{string:o,object:r}},selectable:{boolean:n},showCurrentTime:{boolean:n},showMajorLabels:{boolean:n},showMinorLabels:{boolean:n},stack:{boolean:n},stackSubgroups:{boolean:n},snap:{function:"function",null:"null"},start:{date:"date",number:s,string:o,moment:"moment"},template:{function:"function"},groupTemplate:{function:"function"},visibleFrameTemplate:{string:o,function:"function"},showTooltips:{boolean:n},tooltip:{followMouse:{boolean:n},overflowMethod:{string:["cap","flip"]},__type__:{object:r}},tooltipOnItemUpdateTime:{template:{function:"function"},__type__:{boolean:n,object:r}},timeAxis:{scale:{string:o,undefined:"undefined"},step:{number:s,undefined:"undefined"},__type__:{object:r}},type:{string:o},width:{string:o,number:s},zoomable:{boolean:n},zoomKey:{string:["ctrlKey","altKey","metaKey",""]},zoomMax:{number:s},zoomMin:{number:s},__type__:{object:r}},h={global:{align:["center","left","right"],direction:!1,autoResize:!0,clickToUse:!1,editable:{add:!1,remove:!1,updateGroup:!1,updateTime:!1},end:"",format:{minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",week:"w",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",week:"MMMM YYYY",month:"YYYY",year:""}},groupsDraggable:!1,height:"",locale:"",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:"",maxHeight:"",maxMinorChars:[7,0,20,1],min:"",minHeight:"",moveable:!1,multiselect:!1,multiselectPerGroup:!1,orientation:{axis:["both","bottom","top"],item:["bottom","top"]},selectable:!0,showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,stack:!0,stackSubgroups:!0,start:"",showTooltips:!0,tooltip:{followMouse:!1,overflowMethod:"flip"},tooltipOnItemUpdateTime:!1,type:["box","point","range","background"],width:"100%",zoomable:!0,zoomKey:["ctrlKey","altKey","metaKey",""],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}};e.allOptions=a,e.configureOptions=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(16),s=o(n),r=i(1),a=o(r),h=i(30),d=o(h),l=i(31),u=o(l),p=i(0),c=i(137).default,m=function(){function t(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,d.default)(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},p.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new c(n),this.wrapper=void 0}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===(void 0===t?"undefined":(0,a.default)(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),!1===this.options.filter&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):!0!==e&&-1===e.indexOf(n)||(o=!0),!1!==o&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);if(!0===this.options.showButton){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){t._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?i-1:0),n=1;n2&&void 0!==arguments[2]&&arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,o.innerHTML=!0===i?""+t+":":t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(1.2*e),d=a.max,h="range increased"),a.value=e}else a.value=o;var l=document.createElement("input");l.className="vis-configuration vis-config-rangeinput",l.value=a.value;var u=this;a.onchange=function(){l.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){l.value=this.value};var p=this._makeLabel(i[i.length-1],i),c=this._makeItem(i,p,a,l);""!==h&&this.popupHistory[c]!==d&&(this.popupHistory[c]=d,this._setupPopup(h,c))}},{key:"_setupPopup",value:function(t,e){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=p.copyAndExtendArray(e,r);if("function"==typeof n&&!1===(o=n(r,e))&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=!1===i),!1!==o){s=!0;var d=this._getValue(h);if(a instanceof Array)this._handleArray(a,d,h);else if("string"==typeof a)this._makeTextInput(a,d,h);else if("boolean"==typeof a)this._makeCheckbox(a,d,h);else if(a instanceof Object){var l=!0;if(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(l=!1),!0===l)if(void 0!==a.enabled){var u=p.copyAndExtendArray(h,"enabled"),c=this._getValue(u);if(!0===c){var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,c,h)}else{var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;nvar options = "+(0,s.default)(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;e0){var r={};for(this._getRelevantData(s,r,o,n),this._applySampling(s,r),e=0;e0)switch(t.options.style){case"line":d.hasOwnProperty(s[e])||(d[s[e]]=f.calcPath(r[s[e]],t)),f.draw(d[s[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||g.draw(r[s[e]],t,this.framework)}}}return a.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,t[a].y=0==o?t[a].orginalY+r.y:t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(t,e,i,o){var n,s,a,h;if(t.length>0)for(s=0;s0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;l0){for(s=0;s0&&(n=this.groups[t[s]],!0===r.stack&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(o):h=h.concat(o):i[t[s]]=n.getYRange(o,t[s]));m.getStackedYRange(a,i,t,"__barStackLeft","left"),m.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=di?i:h,l=l=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),!0===t.master&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var r=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(r=this.props.titleCharHeight);var h=!0===this.options.icons?Math.max(this.options.iconWidth,r)+this.options.labelOffsetX+15:r+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-h&&!0===this.options.visible?(this.width=this.maxLabelSize+h,this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+h),this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),e=!1),e},o.prototype.convertValue=function(t){return this.scale.convertValue(t)},o.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},o.prototype._redrawLabel=function(t,e,i,o,n){var s=a.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=e,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>h.magnitudefactor*h.minorSteps[h.minorStepIdx]*.5?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}o.prototype.setCharHeight=function(t){this.majorCharHeight=t},o.prototype.setHeight=function(t){this.containerHeight=t},o.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;i<0&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(!0===n)break}},o.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])==0},o.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},o.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},o.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},o.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},o.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&ue.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(t){this.zeroPosition=t},o.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];r.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),r.mergeOptions(this.options,t,"interpolation"),r.mergeOptions(this.options,t,"drawPoints"),r.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==(0,s.default)(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible||t.visible,this.style=t.style,this.setOptions(t.options)},o.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){i={svg:document.createElementNS("http://www.w3.org/2000/svg","svg"),svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":h.drawIcon(this,o,n,t,e,i);break;case"points":case"point":d.drawIcon(this,o,n,t,e,i);break;case"bar":a.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=t0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){return 1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var u={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,u,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o,n=e;if(i)for(o=t.length-2;o>0;o--)n+=t[o][0]+","+t[o][1]+" ";else for(o=1;o0&&(m=1/m),f=3*g*(g+v),f>0&&(f=1/f),a={screen_x:(-b*o.screen_x+p*n.screen_x+_*s.screen_x)*m,screen_y:(-b*o.screen_y+p*n.screen_y+_*s.screen_y)*m},h={screen_x:(y*n.screen_x+c*s.screen_x-b*r.screen_x)*f,screen_y:(y*n.screen_y+c*s.screen_y-b*r.screen_y)*f},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;i");this.dom.textArea.innerHTML=r,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=(0,s.default)(this.groups);t.sort(function(t,e){return t=t.length?(this._t=void 0,n(1)):"keys"==e?n(0,i):"values"==e?n(0,t[i]):n(0,[i,t[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,i){var o=i(33);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==o(t)?t.split(""):Object(t)}},function(t,e,i){var o=i(93);t.exports=function(t,e,i){if(o(t),void 0===e)return t;switch(i){case 1:return function(i){return t.call(e,i)};case 2:return function(i,o){return t.call(e,i,o)};case 3:return function(i,o,n){return t.call(e,i,o,n)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){var o=i(37),n=i(25),s=i(42),r={};i(14)(r,i(7)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=o(r,{next:n(1,i)}),s(t,e+" Iterator")}},function(t,e,i){var o=i(8),n=i(18),s=i(26);t.exports=i(9)?Object.defineProperties:function(t,e){n(t);for(var i,r=s(e),a=r.length,h=0;a>h;)o.f(t,i=r[h++],e[i]);return t}},function(t,e,i){var o=i(13),n=i(97),s=i(98);t.exports=function(t){return function(e,i,r){var a,h=o(e),d=n(h.length),l=s(r,d);if(t&&i!=i){for(;d>l;)if((a=h[l++])!=a)return!0}else for(;d>l;l++)if((t||l in h)&&h[l]===i)return t||l||0;return!t&&-1}}},function(t,e,i){var o=i(38),n=Math.min;t.exports=function(t){return t>0?n(o(t),9007199254740991):0}},function(t,e,i){var o=i(38),n=Math.max,s=Math.min;t.exports=function(t,e){return t=o(t),t<0?n(t+e,0):s(t,e)}},function(t,e,i){var o=i(6).document;t.exports=o&&o.documentElement},function(t,e,i){var o=i(10),n=i(61),s=i(39)("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=n(t),o(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},function(t,e,i){var o=i(38),n=i(34);t.exports=function(t){return function(e,i){var s,r,a=String(n(e)),h=o(i),d=a.length;return h<0||h>=d?t?"":void 0:(s=a.charCodeAt(h),s<55296||s>56319||h+1===d||(r=a.charCodeAt(h+1))<56320||r>57343?t?a.charAt(h):s:t?a.slice(h,h+2):r-56320+(s-55296<<10)+65536)}}},function(t,e,i){var o=i(18),n=i(103);t.exports=i(2).getIterator=function(t){var e=n(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return o(e.call(t))}},function(t,e,i){var o=i(104),n=i(7)("iterator"),s=i(23);t.exports=i(2).getIteratorMethod=function(t){if(void 0!=t)return t[n]||t["@@iterator"]||s[o(t)]}},function(t,e,i){var o=i(33),n=i(7)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=r(e=Object(t),n))?i:s?o(e):"Object"==(a=o(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,i){i(106);var o=i(2).Object;t.exports=function(t,e){return o.create(t,e)}},function(t,e,i){var o=i(17);o(o.S,"Object",{create:i(37)})},function(t,e,i){i(108),t.exports=i(2).Object.keys},function(t,e,i){var o=i(61),n=i(26);i(109)("keys",function(){return function(t){return n(o(t))}})},function(t,e,i){var o=i(17),n=i(2),s=i(19);t.exports=function(t,e){var i=(n.Object||{})[t]||Object[t],r={};r[t]=e(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(t,e,i){t.exports={default:i(111),__esModule:!0}},function(t,e,i){i(62),i(55),t.exports=i(44).f("iterator")},function(t,e,i){t.exports={default:i(113),__esModule:!0}},function(t,e,i){i(114),i(120),i(121),i(122),t.exports=i(2).Symbol},function(t,e,i){var o=i(6),n=i(10),s=i(9),r=i(17),a=i(59),h=i(115).KEY,d=i(19),l=i(40),u=i(42),p=i(27),c=i(7),m=i(44),f=i(45),g=i(116),v=i(117),y=i(18),b=i(13),_=i(36),w=i(25),x=i(37),D=i(118),S=i(119),k=i(8),C=i(26),T=S.f,M=k.f,O=D.f,E=o.Symbol,P=o.JSON,I=P&&P.stringify,N=c("_hidden"),A=c("toPrimitive"),R={}.propertyIsEnumerable,L=l("symbol-registry"),F=l("symbols"),H=l("op-symbols"),j=Object.prototype,Y="function"==typeof E,G=o.QObject,z=!G||!G.prototype||!G.prototype.findChild,W=s&&d(function(){return 7!=x(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(t,e,i){var o=T(j,e);o&&delete j[e],M(t,e,i),o&&t!==j&&M(j,e,o)}:M,V=function(t){var e=F[t]=x(E.prototype);return e._k=t,e},B=Y&&"symbol"==typeof E.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof E},U=function(t,e,i){return t===j&&U(H,e,i),y(t),e=_(e,!0),y(i),n(F,e)?(i.enumerable?(n(t,N)&&t[N][e]&&(t[N][e]=!1),i=x(i,{enumerable:w(0,!1)})):(n(t,N)||M(t,N,w(1,{})),t[N][e]=!0),W(t,e,i)):M(t,e,i)},q=function(t,e){y(t);for(var i,o=g(e=b(e)),n=0,s=o.length;s>n;)U(t,i=o[n++],e[i]);return t},X=function(t,e){return void 0===e?x(t):q(x(t),e)},Z=function(t){var e=R.call(this,t=_(t,!0));return!(this===j&&n(F,t)&&!n(H,t))&&(!(e||!n(this,t)||!n(F,t)||n(this,N)&&this[N][t])||e)},K=function(t,e){if(t=b(t),e=_(e,!0),t!==j||!n(F,e)||n(H,e)){var i=T(t,e);return!i||!n(F,e)||n(t,N)&&t[N][e]||(i.enumerable=!0),i}},J=function(t){for(var e,i=O(b(t)),o=[],s=0;i.length>s;)n(F,e=i[s++])||e==N||e==h||o.push(e);return o},$=function(t){for(var e,i=t===j,o=O(i?H:b(t)),s=[],r=0;o.length>r;)!n(F,e=o[r++])||i&&!n(j,e)||s.push(F[e]);return s};Y||(E=function(){if(this instanceof E)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(i){this===j&&e.call(H,i),n(this,N)&&n(this[N],t)&&(this[N][t]=!1),W(this,t,w(1,i))};return s&&z&&W(j,t,{configurable:!0,set:e}),V(t)},a(E.prototype,"toString",function(){return this._k}),S.f=K,k.f=U,i(64).f=D.f=J,i(46).f=Z,i(63).f=$,s&&!i(35)&&a(j,"propertyIsEnumerable",Z,!0),m.f=function(t){return V(c(t))}),r(r.G+r.W+r.F*!Y,{Symbol:E});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Q.length>tt;)c(Q[tt++]);for(var et=C(c.store),it=0;et.length>it;)f(et[it++]);r(r.S+r.F*!Y,"Symbol",{for:function(t){return n(L,t+="")?L[t]:L[t]=E(t)},keyFor:function(t){if(!B(t))throw TypeError(t+" is not a symbol!");for(var e in L)if(L[e]===t)return e},useSetter:function(){z=!0},useSimple:function(){z=!1}}),r(r.S+r.F*!Y,"Object",{create:X,defineProperty:U,defineProperties:q,getOwnPropertyDescriptor:K,getOwnPropertyNames:J,getOwnPropertySymbols:$}),P&&r(r.S+r.F*(!Y||d(function(){var t=E();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!B(t)){for(var e,i,o=[t],n=1;arguments.length>n;)o.push(arguments[n++]);return e=o[1],"function"==typeof e&&(i=e),!i&&v(e)||(e=function(t,e){if(i&&(e=i.call(this,t,e)),!B(e))return e}),o[1]=e,I.apply(P,o)}}}),E.prototype[A]||i(14)(E.prototype,A,E.prototype.valueOf),u(E,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(t,e,i){var o=i(27)("meta"),n=i(24),s=i(10),r=i(8).f,a=0,h=Object.isExtensible||function(){return!0},d=!i(19)(function(){return h(Object.preventExtensions({}))}),l=function(t){r(t,o,{value:{i:"O"+ ++a,w:{}}})},u=function(t,e){if(!n(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!s(t,o)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[o].i},p=function(t,e){if(!s(t,o)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[o].w},c=function(t){return d&&m.NEED&&h(t)&&!s(t,o)&&l(t),t},m=t.exports={KEY:o,NEED:!1,fastKey:u,getWeak:p,onFreeze:c}},function(t,e,i){var o=i(26),n=i(63),s=i(46);t.exports=function(t){var e=o(t),i=n.f;if(i)for(var r,a=i(t),h=s.f,d=0;a.length>d;)h.call(t,r=a[d++])&&e.push(r);return e}},function(t,e,i){var o=i(33);t.exports=Array.isArray||function(t){return"Array"==o(t)}},function(t,e,i){var o=i(13),n=i(64).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return n(t)}catch(t){return r.slice()}};t.exports.f=function(t){return r&&"[object Window]"==s.call(t)?a(t):n(o(t))}},function(t,e,i){var o=i(46),n=i(25),s=i(13),r=i(36),a=i(10),h=i(57),d=Object.getOwnPropertyDescriptor;e.f=i(9)?d:function(t,e){if(t=s(t),e=r(e,!0),h)try{return d(t,e)}catch(t){}if(a(t,e))return n(!o.f.call(t,e),t[e])}},function(t,e){},function(t,e,i){i(45)("asyncIterator")},function(t,e,i){i(45)("observable")},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(0,function(){function e(){return To.apply(null,arguments)}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function n(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function s(t){return void 0===t}function r(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function a(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function h(t,e){var i,o=[];for(i=0;i0)for(i=0;i0?"future":"past"];return k(i)?i(e):i.replace(/%s/i,e)}function R(t,e){var i=t.toLowerCase();Fo[i]=Fo[i+"s"]=Fo[e]=t}function L(t){return"string"==typeof t?Fo[t]||Fo[t.toLowerCase()]:void 0}function F(t){var e,i,o={};for(i in t)d(t,i)&&(e=L(i))&&(o[e]=t[i]);return o}function H(t,e){Ho[t]=e}function j(t){var e=[];for(var i in t)e.push({unit:i,priority:Ho[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function Y(t,e,i){var o=""+Math.abs(t),n=e-o.length;return(t>=0?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function G(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(zo[t]=n),e&&(zo[e[0]]=function(){return Y(n.apply(this,arguments),e[1],e[2])}),i&&(zo[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function z(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function W(t){var e,i,o=t.match(jo);for(e=0,i=o.length;e=0&&Yo.test(t);)t=t.replace(Yo,i),Yo.lastIndex=0,o-=1;return t}function U(t,e,i){an[t]=k(e)?e:function(t,o){return t&&i?i:e}}function q(t,e){return d(an,t)?an[t](e._strict,e._locale):new RegExp(X(t))}function X(t){return Z(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function Z(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function K(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),r(e)&&(o=function(t,i){i[e]=_(t)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function _t(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function wt(t,e,i){var o=7+e-i;return-(7+_t(t,0,o).getUTCDay()-e)%7+o-1}function xt(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return d<=0?(s=t-1,r=Q(s)+d):d>Q(t)?(s=t+1,r=d-Q(t)):(s=t,r=d),{year:s,dayOfYear:r}}function Dt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return r<1?(n=t.year()-1,o=r+St(n,e,i)):r>St(t.year(),e,i)?(o=r-St(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function St(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return(Q(t)-o+n)/7}function kt(t){return Dt(t,this._week.dow,this._week.doy).week}function Ct(){return this._week.dow}function Tt(){return this._week.doy}function Mt(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ot(t){var e=Dt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Et(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function It(t,e){return t?i(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone}function Nt(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function At(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function Rt(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=u([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=yn.call(this._weekdaysParse,r),-1!==n?n:null):"ddd"===e?(n=yn.call(this._shortWeekdaysParse,r),-1!==n?n:null):(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):"dddd"===e?-1!==(n=yn.call(this._weekdaysParse,r))?n:-1!==(n=yn.call(this._shortWeekdaysParse,r))?n:(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):"ddd"===e?-1!==(n=yn.call(this._shortWeekdaysParse,r))?n:-1!==(n=yn.call(this._weekdaysParse,r))?n:(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):-1!==(n=yn.call(this._minWeekdaysParse,r))?n:-1!==(n=yn.call(this._weekdaysParse,r))?n:(n=yn.call(this._shortWeekdaysParse,r),-1!==n?n:null)}function Lt(t,e,i){var o,n,s;if(this._weekdaysParseExact)return Rt.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=u([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function Ft(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Et(t,this.localeData()),this.add(t-e,"d")):e}function Ht(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function jt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function Yt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=On),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Gt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=En),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function zt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Pn),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Wt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=u([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=Z(a[e]),h[e]=Z(h[e]),d[e]=Z(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Vt(){return this.hours()%12||12}function Bt(){return this.hours()||24}function Ut(t,e){G(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function qt(t,e){return e._meridiemParse}function Xt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Zt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Kt(t){return t?t.toLowerCase().replace("_","-"):t}function Jt(t){for(var e,i,o,n,s=0;s0;){if(o=$t(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&w(n,i,!0)>=e-1)break;e--}s++}return null}function $t(e){var i=null;if(!Ln[e]&&void 0!==t&&t&&t.exports)try{i=In._abbr;!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Qt(i)}catch(t){}return Ln[e]}function Qt(t,e){var i;return t&&(i=s(e)?ie(t):te(t,e))&&(In=i),In._abbr}function te(t,e){if(null!==e){var i=Rn;if(e.abbr=t,null!=Ln[t])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=Ln[t]._config;else if(null!=e.parentLocale){if(null==Ln[e.parentLocale])return Fn[e.parentLocale]||(Fn[e.parentLocale]=[]),Fn[e.parentLocale].push({name:t,config:e}),null;i=Ln[e.parentLocale]._config}return Ln[t]=new M(T(i,e)),Fn[t]&&Fn[t].forEach(function(t){te(t.name,t.config)}),Qt(t),Ln[t]}return delete Ln[t],null}function ee(t,e){if(null!=e){var i,o=Rn;null!=Ln[t]&&(o=Ln[t]._config),e=T(o,e),i=new M(e),i.parentLocale=Ln[t],Ln[t]=i,Qt(t)}else null!=Ln[t]&&(null!=Ln[t].parentLocale?Ln[t]=Ln[t].parentLocale:null!=Ln[t]&&delete Ln[t]);return Ln[t]}function ie(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return In;if(!i(t)){if(e=$t(t))return e;t=[t]}return Jt(t)}function oe(){return Io(Ln)}function ne(t){var e,i=t._a;return i&&-2===c(t).overflow&&(e=i[ln]<0||i[ln]>11?ln:i[un]<1||i[un]>ht(i[dn],i[ln])?un:i[pn]<0||i[pn]>24||24===i[pn]&&(0!==i[cn]||0!==i[mn]||0!==i[fn])?pn:i[cn]<0||i[cn]>59?cn:i[mn]<0||i[mn]>59?mn:i[fn]<0||i[fn]>999?fn:-1,c(t)._overflowDayOfYear&&(eun)&&(e=un),c(t)._overflowWeeks&&-1===e&&(e=gn),c(t)._overflowWeekday&&-1===e&&(e=vn),c(t).overflow=e),t}function se(t,e,i){return null!=t?t:null!=e?e:i}function re(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function ae(t){var e,i,o,n,s=[];if(!t._d){for(o=re(t),t._w&&null==t._a[un]&&null==t._a[ln]&&he(t),null!=t._dayOfYear&&(n=se(t._a[dn],o[dn]),(t._dayOfYear>Q(n)||0===t._dayOfYear)&&(c(t)._overflowDayOfYear=!0),i=_t(n,0,t._dayOfYear),t._a[ln]=i.getUTCMonth(),t._a[un]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[pn]&&0===t._a[cn]&&0===t._a[mn]&&0===t._a[fn]&&(t._nextDay=!0,t._a[pn]=0),t._d=(t._useUTC?_t:bt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[pn]=24),t._w&&void 0!==t._w.d&&t._w.d!==t._d.getDay()&&(c(t).weekdayMismatch=!0)}}function he(t){var e,i,o,n,s,r,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)s=1,r=4,i=se(e.GG,t._a[dn],Dt(ke(),1,4).year),o=se(e.W,1),((n=se(e.E,1))<1||n>7)&&(h=!0);else{s=t._locale._week.dow,r=t._locale._week.doy;var d=Dt(ke(),s,r);i=se(e.gg,t._a[dn],d.year),o=se(e.w,d.week),null!=e.d?((n=e.d)<0||n>6)&&(h=!0):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s}o<1||o>St(i,s,r)?c(t)._overflowWeeks=!0:null!=h?c(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[dn]=a.year,t._dayOfYear=a.dayOfYear)}function de(t){var e,i,o,n,s,r,a=t._i,h=Hn.exec(a)||jn.exec(a);if(h){for(c(t).iso=!0,e=0,i=Gn.length;e0&&c(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),zo[s]?(o?c(t).empty=!1:c(t).unusedTokens.push(s),$(s,o,t)):t._strict&&!o&&c(t).unusedTokens.push(s);c(t).charsLeftOver=h-d,a.length>0&&c(t).unusedInput.push(a),t._a[pn]<=12&&!0===c(t).bigHour&&t._a[pn]>0&&(c(t).bigHour=void 0),c(t).parsedDateParts=t._a.slice(0),c(t).meridiem=t._meridiem,t._a[pn]=ye(t._locale,t._a[pn],t._meridiem),ae(t),ne(t)}function ye(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function be(t){var e,i,o,n,s;if(0===t._f.length)return c(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ue(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(g(t,this),t=xe(t),t._a){var e=t._isUTC?u(t._a):ke(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function qe(){return!!this.isValid()&&!this._isUTC}function Xe(){return!!this.isValid()&&this._isUTC}function Ze(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ke(t,e){var i,o,n,s=t,a=null;return Ne(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:r(t)?(s={},e?s[e]=t:s.milliseconds=t):(a=Jn.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:_(a[un])*i,h:_(a[pn])*i,m:_(a[cn])*i,s:_(a[mn])*i,ms:_(Ae(1e3*a[fn]))*i}):(a=$n.exec(t))?(i="-"===a[1]?-1:(a[1],1),s={y:Je(a[2],i),M:Je(a[3],i),w:Je(a[4],i),d:Je(a[5],i),h:Je(a[6],i),m:Je(a[7],i),s:Je(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Qe(ke(s.from),ke(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Ie(s),Ne(t)&&d(t,"_locale")&&(o._locale=t._locale),o}function Je(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function $e(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function Qe(t,e){var i;return t.isValid()&&e.isValid()?(e=Fe(e,t),t.isBefore(e)?i=$e(t,e):(i=$e(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ti(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(S(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Ke(i,o),ei(this,n,t),this}}function ei(t,i,o,n){var s=i._milliseconds,r=Ae(i._days),a=Ae(i._months);t.isValid()&&(n=null==n||n,a&&ct(t,ot(t,"Month")+a*o),r&&nt(t,"Date",ot(t,"Date")+r*o),s&&t._d.setTime(t._d.valueOf()+s*o),n&&e.updateOffset(t,r||a))}function ii(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function oi(t,i){var o=t||ke(),n=Fe(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(k(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,ke(o)))}function ni(){return new v(this)}function si(t,e){var i=y(t)?t:ke(t);return!(!this.isValid()||!i.isValid())&&(e=L(s(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()9999?V(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):k(Date.prototype.toISOString)?this.toDate().toISOString():V(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function fi(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(i+o+"-MM-DD[T]HH:mm:ss.SSS"+n)}function gi(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=V(this,t);return this.localeData().postformat(i)}function vi(t,e){return this.isValid()&&(y(t)&&t.isValid()||ke(t).isValid())?Ke({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function yi(t){return this.from(ke(),t)}function bi(t,e){return this.isValid()&&(y(t)&&t.isValid()||ke(t).isValid())?Ke({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function _i(t){return this.to(ke(),t)}function wi(t){var e;return void 0===t?this._locale._abbr:(e=ie(t),null!=e&&(this._locale=e),this)}function xi(){return this._locale}function Di(t){switch(t=L(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function Si(t){return void 0===(t=L(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function ki(){return this._d.valueOf()-6e4*(this._offset||0)}function Ci(){return Math.floor(this.valueOf()/1e3)}function Ti(){return new Date(this.valueOf())}function Mi(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Oi(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Ei(){return this.isValid()?this.toISOString():null}function Pi(){return m(this)}function Ii(){return l({},c(this))}function Ni(){return c(this).overflow}function Ai(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ri(t,e){G(0,[t,t.length],0,e)}function Li(t){return Yi.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fi(t){return Yi.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Hi(){return St(this.year(),1,4)}function ji(){var t=this.localeData()._week;return St(this.year(),t.dow,t.doy)}function Yi(t,e,i,o,n){var s;return null==t?Dt(this,o,n).year:(s=St(t,o,n),e>s&&(e=s),Gi.call(this,t,e,i,o,n))}function Gi(t,e,i,o,n){var s=xt(t,e,i,o,n),r=_t(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function zi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Wi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Vi(t,e){e[fn]=_(1e3*("0."+t))}function Bi(){return this._isUTC?"UTC":""}function Ui(){return this._isUTC?"Coordinated Universal Time":""}function qi(t){return ke(1e3*t)}function Xi(){return ke.apply(null,arguments).parseZone()}function Zi(t){return t}function Ki(t,e,i,o){var n=ie(),s=u().set(o,e);return n[i](s,t)}function Ji(t,e,i){if(r(t)&&(e=t,t=void 0),t=t||"",null!=e)return Ki(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Ki(t,o,i,"month");return n}function $i(t,e,i,o){"boolean"==typeof t?(r(e)&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,r(e)&&(i=e,e=void 0),e=e||"");var n=ie(),s=t?n._week.dow:0;if(null!=i)return Ki(e,(i+s)%7,o,"day");var a,h=[];for(a=0;a<7;a++)h[a]=Ki(e,(a+s)%7,o,"day");return h}function Qi(t,e){return Ji(t,e,"months")}function to(t,e){return Ji(t,e,"monthsShort")}function eo(t,e,i){return $i(t,e,i,"weekdays")}function io(t,e,i){return $i(t,e,i,"weekdaysShort")}function oo(t,e,i){return $i(t,e,i,"weekdaysMin")}function no(){var t=this._data;return this._milliseconds=ds(this._milliseconds),this._days=ds(this._days),this._months=ds(this._months),t.milliseconds=ds(t.milliseconds),t.seconds=ds(t.seconds),t.minutes=ds(t.minutes),t.hours=ds(t.hours),t.months=ds(t.months),t.years=ds(t.years),this}function so(t,e,i,o){var n=Ke(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function ro(t,e){return so(this,t,e,1)}function ao(t,e){return so(this,t,e,-1)}function ho(t){return t<0?Math.floor(t):Math.ceil(t)}function lo(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*ho(po(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=b(s/1e3),h.seconds=t%60,e=b(t/60),h.minutes=e%60,i=b(e/60),h.hours=i%24,r+=b(i/24),n=b(uo(r)),a+=n,r-=ho(po(n)),o=b(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function uo(t){return 4800*t/146097}function po(t){return 146097*t/4800}function co(t){if(!this.isValid())return NaN;var e,i,o=this._milliseconds;if("month"===(t=L(t))||"year"===t)return e=this._days+o/864e5,i=this._months+uo(e),"month"===t?i:i/12;switch(e=this._days+Math.round(po(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function mo(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN}function fo(t){return function(){return this.as(t)}}function go(){return Ke(this)}function vo(t){return t=L(t),this.isValid()?this[t+"s"]():NaN}function yo(t){return function(){return this.isValid()?this._data[t]:NaN}}function bo(){return b(this.days()/7)}function _o(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function wo(t,e,i){var o=Ke(t).abs(),n=ks(o.as("s")),s=ks(o.as("m")),r=ks(o.as("h")),a=ks(o.as("d")),h=ks(o.as("M")),d=ks(o.as("y")),l=n<=Cs.ss&&["s",n]||n0,l[4]=i,_o.apply(null,l)}function xo(t){return void 0===t?ks:"function"==typeof t&&(ks=t,!0)}function Do(t,e){return void 0!==Cs[t]&&(void 0===e?Cs[t]:(Cs[t]=e,"s"===t&&(Cs.ss=e-1),!0))}function So(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=wo(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function ko(t){return(t>0)-(t<0)||+t}function Co(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i,o=Ts(this._milliseconds)/1e3,n=Ts(this._days),s=Ts(this._months);t=b(o/60),e=b(t/60),o%=60,t%=60,i=b(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o?o.toFixed(3).replace(/\.?0+$/,""):"",p=this.asSeconds();if(!p)return"P0D";var c=p<0?"-":"",m=ko(this._months)!==ko(p)?"-":"",f=ko(this._days)!==ko(p)?"-":"",g=ko(this._milliseconds)!==ko(p)?"-":"";return c+"P"+(r?m+r+"Y":"")+(a?m+a+"M":"")+(h?f+h+"D":"")+(d||l||u?"T":"")+(d?g+d+"H":"")+(l?g+l+"M":"")+(u?g+u+"S":"")}var To,Mo;Mo=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o68?1900:2e3)};var yn,bn=it("FullYear",!0);yn=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;ethis?this:t:f()}),Xn=function(){return Date.now?Date.now():+new Date},Zn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Re("Z",":"),Re("ZZ",""),U("Z",nn),U("ZZ",nn),K(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Le(nn,t)});var Kn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Jn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,$n=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Ke.fn=Ie.prototype,Ke.invalid=Pe;var Qn=ti(1,"add"),ts=ti(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var es=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});G(0,["gg",2],0,function(){return this.weekYear()%100}),G(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ri("gggg","weekYear"),Ri("ggggg","weekYear"),Ri("GGGG","isoWeekYear"),Ri("GGGGG","isoWeekYear"),R("weekYear","gg"),R("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),U("G",en),U("g",en),U("GG",Xo,Vo),U("gg",Xo,Vo),U("GGGG",$o,Uo),U("gggg",$o,Uo),U("GGGGG",Qo,qo),U("ggggg",Qo,qo),J(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=_(t)}),J(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),G("Q",0,"Qo","quarter"),R("quarter","Q"),H("quarter",7),U("Q",Wo),K("Q",function(t,e){e[ln]=3*(_(t)-1)}),G("D",["DD",2],"Do","date"),R("date","D"),H("date",9),U("D",Xo),U("DD",Xo,Vo),U("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),K(["D","DD"],un),K("Do",function(t,e){e[un]=_(t.match(Xo)[0],10)});var is=it("Date",!0);G("DDD",["DDDD",3],"DDDo","dayOfYear"),R("dayOfYear","DDD"),H("dayOfYear",4),U("DDD",Jo),U("DDDD",Bo),K(["DDD","DDDD"],function(t,e,i){i._dayOfYear=_(t)}),G("m",["mm",2],0,"minute"),R("minute","m"),H("minute",14),U("m",Xo),U("mm",Xo,Vo),K(["m","mm"],cn);var os=it("Minutes",!1);G("s",["ss",2],0,"second"),R("second","s"),H("second",15),U("s",Xo),U("ss",Xo,Vo),K(["s","ss"],mn);var ns=it("Seconds",!1);G("S",0,0,function(){return~~(this.millisecond()/100)}),G(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),G(0,["SSS",3],0,"millisecond"),G(0,["SSSS",4],0,function(){return 10*this.millisecond()}),G(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),G(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),G(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),G(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),G(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),R("millisecond","ms"),H("millisecond",16),U("S",Jo,Wo),U("SS",Jo,Vo),U("SSS",Jo,Bo);var ss;for(ss="SSSS";ss.length<=9;ss+="S")U(ss,tn);for(ss="S";ss.length<=9;ss+="S")K(ss,Vi);var rs=it("Milliseconds",!1);G("z",0,0,"zoneAbbr"),G("zz",0,0,"zoneName");var as=v.prototype;as.add=Qn,as.calendar=oi,as.clone=ni,as.diff=ui,as.endOf=Si,as.format=gi,as.from=vi,as.fromNow=yi,as.to=bi,as.toNow=_i,as.get=st,as.invalidAt=Ni,as.isAfter=si,as.isBefore=ri,as.isBetween=ai,as.isSame=hi,as.isSameOrAfter=di,as.isSameOrBefore=li,as.isValid=Pi,as.lang=es,as.locale=wi,as.localeData=xi,as.max=qn,as.min=Un,as.parsingFlags=Ii,as.set=rt,as.startOf=Di,as.subtract=ts,as.toArray=Mi,as.toObject=Oi,as.toDate=Ti,as.toISOString=mi,as.inspect=fi,as.toJSON=Ei,as.toString=ci,as.unix=Ci,as.valueOf=ki,as.creationData=Ai,as.year=bn,as.isLeapYear=et,as.weekYear=Li,as.isoWeekYear=Fi,as.quarter=as.quarters=zi,as.month=mt,as.daysInMonth=ft,as.week=as.weeks=Mt,as.isoWeek=as.isoWeeks=Ot,as.weeksInYear=ji,as.isoWeeksInYear=Hi,as.date=is,as.day=as.days=Ft,as.weekday=Ht,as.isoWeekday=jt,as.dayOfYear=Wi,as.hour=as.hours=An,as.minute=as.minutes=os,as.second=as.seconds=ns,as.millisecond=as.milliseconds=rs,as.utcOffset=je,as.utc=Ge,as.local=ze,as.parseZone=We,as.hasAlignedHourOffset=Ve,as.isDST=Be,as.isLocal=qe,as.isUtcOffset=Xe,as.isUtc=Ze,as.isUTC=Ze,as.zoneAbbr=Bi,as.zoneName=Ui,as.dates=D("dates accessor is deprecated. Use date instead.",is),as.months=D("months accessor is deprecated. Use month instead",mt),as.years=D("years accessor is deprecated. Use year instead",bn),as.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ye),as.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ue);var hs=M.prototype;hs.calendar=O,hs.longDateFormat=E,hs.invalidDate=P,hs.ordinal=I,hs.preparse=Zi,hs.postformat=Zi,hs.relativeTime=N,hs.pastFuture=A,hs.set=C,hs.months=dt,hs.monthsShort=lt,hs.monthsParse=pt,hs.monthsRegex=vt,hs.monthsShortRegex=gt,hs.week=kt,hs.firstDayOfYear=Tt,hs.firstDayOfWeek=Ct,hs.weekdays=It,hs.weekdaysMin=At,hs.weekdaysShort=Nt,hs.weekdaysParse=Lt,hs.weekdaysRegex=Yt,hs.weekdaysShortRegex=Gt,hs.weekdaysMinRegex=zt,hs.isPM=Xt,hs.meridiem=Zt,Qt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),e.lang=D("moment.lang is deprecated. Use moment.locale instead.",Qt),e.langData=D("moment.langData is deprecated. Use moment.localeData instead.",ie);var ds=Math.abs,ls=fo("ms"),us=fo("s"),ps=fo("m"),cs=fo("h"),ms=fo("d"),fs=fo("w"),gs=fo("M"),vs=fo("y"),ys=yo("milliseconds"),bs=yo("seconds"),_s=yo("minutes"),ws=yo("hours"),xs=yo("days"),Ds=yo("months"),Ss=yo("years"),ks=Math.round,Cs={ss:44,s:45,m:45,h:22,d:26,M:11},Ts=Math.abs,Ms=Ie.prototype;return Ms.isValid=Ee,Ms.abs=no,Ms.add=ro,Ms.subtract=ao,Ms.as=co,Ms.asMilliseconds=ls,Ms.asSeconds=us,Ms.asMinutes=ps,Ms.asHours=cs,Ms.asDays=ms,Ms.asWeeks=fs,Ms.asMonths=gs,Ms.asYears=vs,Ms.valueOf=mo,Ms._bubble=lo,Ms.clone=go,Ms.get=vo,Ms.milliseconds=ys,Ms.seconds=bs,Ms.minutes=_s,Ms.hours=ws,Ms.days=xs,Ms.weeks=bo,Ms.months=Ds,Ms.years=Ss,Ms.humanize=So,Ms.toISOString=Co,Ms.toString=Co,Ms.toJSON=Co,Ms.locale=wi,Ms.localeData=xi,Ms.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Co),Ms.lang=es,G("X",0,0,"unix"),G("x",0,0,"valueOf"),U("x",en),U("X",sn),K("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),K("x",function(t,e,i){i._d=new Date(_(t))}),e.version="2.19.1",function(t){To=t}(ke),e.fn=as,e.min=Te,e.max=Me,e.now=Xn,e.utc=u,e.unix=qi,e.months=Qi,e.isDate=a,e.locale=Qt,e.invalid=f,e.duration=Ke,e.isMoment=y,e.weekdays=eo,e.parseZone=Xi,e.localeData=ie,e.isDuration=Ne,e.monthsShort=to,e.weekdaysMin=oo,e.defineLocale=te,e.updateLocale=ee,e.locales=oe,e.weekdaysShort=io,e.normalizeUnits=L,e.relativeTimeRounding=xo,e.relativeTimeThreshold=Do,e.calendarFormat=ii,e.prototype=as,e})}).call(e,i(124)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=125},function(t,e,i){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){n<16&&(e[o+n++]=u[t])});n<16;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:f,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:v+1,d=a-g+(h-v)/1e4;if(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||a>g)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");g=a,v=h,f=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var p=t.node||m,c=0;c<6;c++)s[n+c]=p[c];return e||o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;a<16;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:void 0!==e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},p=0;p<256;p++)l[p]=(p+256).toString(16).substr(1),u[l[p]]=p;var c=r(),m=[1|c[0],c[1],c[2],c[3],c[4],c[5]],f=16383&(c[6]<<8|c[7]),g=0,v=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,i(127))},function(t,e){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){var o=i(2),n=o.JSON||(o.JSON={stringify:JSON.stringify});t.exports=function(t){return n.stringify.apply(n,arguments)}},function(t,e,i){function o(t,e,i,n){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof d||i instanceof l)&&i instanceof Object){var s=n;n=i,i=s}n&&n.throttleRedraw&&console.warn('Timeline option "throttleRedraw" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.');var r=this;if(this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"bottom"},moment:a,width:null,height:null,maxHeight:null,minHeight:null},this.options=h.deepExtend({},this.defaultOptions),this._create(t),!n||n&&void 0===n.rtl){this.dom.root.style.visibility="hidden";for(var p,f=this.dom.root;!p&&f;)p=window.getComputedStyle(f,null).direction,f=f.parentElement;this.options.rtl=p&&"rtl"==p.toLowerCase()}else this.options.rtl=n.rtl;this.options.rollingMode=n&&n.rollingMode,this.options.onInitialDrawComplete=n&&n.onInitialDrawComplete,this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return r.timeAxis.step.scale},getStep:function(){return r.timeAxis.step.step},toScreen:r._toScreen.bind(r),toGlobalScreen:r._toGlobalScreen.bind(r),toTime:r._toTime.bind(r),toGlobalTime:r._toGlobalTime.bind(r)}},this.range=new u(this.body,this.options),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new c(this.body,this.options),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new m(this.body,this.options),this.components.push(this.currentTime),this.itemSet=new g(this.body,this.options),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.dom.root.onclick=function(t){r.emit("click",r.getEventProperties(t))},this.dom.root.ondblclick=function(t){r.emit("doubleClick",r.getEventProperties(t))},this.dom.root.oncontextmenu=function(t){r.emit("contextmenu",r.getEventProperties(t))},this.dom.root.onmouseover=function(t){r.emit("mouseOver",r.getEventProperties(t))},window.PointerEvent?(this.dom.root.onpointerdown=function(t){r.emit("mouseDown",r.getEventProperties(t))},this.dom.root.onpointermove=function(t){r.emit("mouseMove",r.getEventProperties(t))},this.dom.root.onpointerup=function(t){r.emit("mouseUp",r.getEventProperties(t))}):(this.dom.root.onmousemove=function(t){r.emit("mouseMove",r.getEventProperties(t))},this.dom.root.onmousedown=function(t){r.emit("mouseDown",r.getEventProperties(t))},this.dom.root.onmouseup=function(t){r.emit("mouseUp",r.getEventProperties(t))}),this.initialFitDone=!1,this.on("changed",function(){if(null!=this.itemsData&&!this.options.rollingMode){if(!r.initialFitDone)if(r.initialFitDone=!0,void 0!=r.options.start||void 0!=r.options.end){if(void 0==r.options.start||void 0==r.options.end)var t=r.getItemRange();var e=void 0!=r.options.start?r.options.start:t.min,i=void 0!=r.options.end?r.options.end:t.max;r.setWindow(e,i,{animation:!1})}else r.fit({animation:!1});!r.initialDrawDone&&r.initialRangeChangeDone&&(r.initialDrawDone=!0,r.dom.root.style.visibility="visible",r.options.onInitialDrawComplete&&setTimeout(function(){return r.options.onInitialDrawComplete()},0))}}),n&&this.setOptions(n),i&&this.setGroups(i),e&&this.setItems(e),this._redraw()}function n(t){return h.convert(t.data.start,"Date").valueOf()}function s(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return h.convert(e,"Date").valueOf()}function r(t,e){var i=t.props.leftContainer.height,o=t.props.left.height,n=e.parent,s=n.top,r=!0,a=t.timeAxis.options.orientation.axis,h=function(){return"bottom"==a?n.height-e.top-e.height:e.top},d=-1*t._getScrollTop(),l=s+h(),u=e.height;return ld+i?s+=h()+u-i+t.itemSet.options.margin.item.vertical:r=!1,s=Math.min(s,o-i),{shouldScroll:r,scrollOffset:s,itemTop:l}}var a=i(3),h=i(0),d=i(15),l=i(20),u=i(47),p=i(48),c=i(28),m=i(50),f=i(29),g=i(70),v=i(32).printStyle,y=i(75).allOptions,b=i(75).configureOptions,_=i(76).default,w=i(32).default;o.prototype=new p,o.prototype._createConfigurator=function(){return new _(this,this.dom.container,b)},o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){if(!0===w.validate(t,y)&&console.log("%cErrors have been found in the supplied options object.",v),p.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var e=this.itemsData;if(e){var i=this.getSelection();this.setItems(null),this.setItems(e),this.setSelection(i)}}},o.prototype.setItems=function(t){var e;e=t?t instanceof d||t instanceof l?t:new d(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e)},o.prototype.setGroups=function(t){var e;if(t){var i=function(t){return!1!==t.visible};e=t instanceof d||t instanceof l?new l(t,{filter:i}):new d(t.filter(i))}else e=null;this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||es)&&(s=i)}),null!==n&&null!==s){var a=this,h=this.itemSet.items[i[0]],d=-1*this._getScrollTop(),l=null,u=function(t,e,i){var o=r(a,h);if(l||(l=o),l.itemTop!=o.itemTop||l.shouldScroll){l.itemTop!=o.itemTop&&o.shouldScroll&&(l=o,d=-1*a._getScrollTop());var n=d,s=l.scrollOffset,u=i?s:n+(s-n)*t;a._setScrollTop(-u),e||a._redraw()}},p=function(){var t=r(a,h);t.shouldScroll&&t.itemTop!=l.itemTop&&(a._setScrollTop(-t.scrollOffset),a._redraw())},c=function(){p(),setTimeout(p,100)},m=(n+s)/2,f=Math.max(this.range.end-this.range.start,1.1*(s-n)),g=!e||void 0===e.animation||e.animation;g||(l={shouldScroll:!1,scrollOffset:-1,itemTop:-1}),this.range.setRange(m-f/2,m+f/2,{animation:g},c,u)}}},o.prototype.fit=function(t,e){var i,o=!t||void 0===t.animation||t.animation,n=this.itemsData&&this.itemsData.getDataSet();1===n.length&&void 0===n.get()[0].end?(i=this.getDataRange(),this.moveTo(i.min.valueOf(),{animation:o},e)):(i=this.getItemRange(),this.range.setRange(i.min,i.max,{animation:o},e))},o.prototype.getItemRange=function(){var t=this.getDataRange(),e=null!==t.min?t.min.valueOf():null,i=null!==t.max?t.max.valueOf():null,o=null,r=null;if(null!=e&&null!=i){var a=i-e;a<=0&&(a=10);var d=a/this.props.center.width,l={},u=0;h.forEach(this.itemSet.items,function(t,e){if(t.groupShowing){l[e]=t.redraw(!0),u=l[e].length}});if(u>0)for(var p=0;pi&&(i=h,r=t)}.bind(this)),o&&r){var c=o.getWidthLeft()+10,m=r.getWidthRight()+10,f=this.props.center.width-c-m;f>0&&(this.options.rtl?(e=n(o)-m*a/f,i=s(r)+c*a/f):(e=n(o)-c*a/f,i=s(r)+m*a/f))}}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=h.convert(i.start,"Date").valueOf(),n=h.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||oe)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e,i=t.center?t.center.x:t.clientX,o=t.center?t.center.y:t.clientY;e=this.options.rtl?h.getAbsoluteRight(this.dom.centerContainer)-i:i-h.getAbsoluteLeft(this.dom.centerContainer);var n=o-h.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=f.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),p=this._toTime(e),c=d?d(p,l,u):p,m=h.getTarget(t),g=null;return null!=s?g="item":null!=a?g="custom-time":h.hasParent(m,this.timeAxis.dom.foreground)?g="axis":this.timeAxis2&&h.hasParent(m,this.timeAxis2.dom.foreground)?g="axis":h.hasParent(m,this.itemSet.dom.labelSet)?g="group-label":h.hasParent(m,this.currentTime.bar)?g="current-time":h.hasParent(m,this.dom.center)&&(g="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:g,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:e,y:n,time:p,snappedTime:c}},o.prototype.toggleRollingMode=function(){this.range.rolling?this.range.stopRolling():(void 0==this.options.rollingMode&&this.setOptions(this.options),this.range.startRolling())},t.exports=o},function(t,e,i){var o,n,s;!function(i){n=[],o=i,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var o=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof o&&(e.srcEvent.stopPropagation=function(){o(),e.stopPropagation()}),e.firstTarget=t;for(var n=t;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;/*! Hammer.JS - v2.0.7 - 2016-04-22 +"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}("undefined"!=typeof self?self:this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,e),n.l=!0,n.exports}var i={};return e.m=t,e.c=i,e.d=function(t,i,o){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=85)}([function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e,i,o){var n=!1;!0===o&&(n=null===e[i]&&void 0!==t[i]),n?delete t[i]:t[i]=e[i]}var s=i(86),r=o(s),a=i(44),h=o(a),d=i(4),l=o(d),u=i(1),p=o(u),c=i(3),m=i(126);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;!0===t.hasChildNodes();)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,o){if(e==t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){if(f.exec(t))return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return m.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!==(0,p.default)(t[i])&&(t[i]=e)},e.fillIfDefined=function(t,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var s in t)void 0!==i[s]&&(null===i[s]||"object"!==(0,p.default)(i[s])?n(t,i,s,o):"object"===(0,p.default)(t[s])&&e.fillIfDefined(t[s],i[s],o))},e.extend=function(t,e){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r=0;r3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r in o)if(o.hasOwnProperty(r)&&-1===t.indexOf(r))if(o[r]&&o[r].constructor===Object)void 0===i[r]&&(i[r]={}),i[r].constructor===Object?e.deepExtend(i[r],o[r]):n(i,o,r,s);else if(Array.isArray(o[r])){i[r]=[];for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var r in i)if(i.hasOwnProperty(r)||!0===o)if(i[r]&&i[r].constructor===Object)void 0===t[r]&&(t[r]={}),t[r].constructor===Object?e.deepExtend(t[r],i[r],o):n(t,i,r,s);else if(Array.isArray(i[r])){t[r]=[];for(var a=0;a=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){var o;return-1!=t.indexOf("rgba")?t:-1!=t.indexOf("rgb")?(o=t.substr(t.indexOf("(")+1).replace(")","").split(","),"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"):(o=e.hexToRGB(t),null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")")},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(!0===e.isString(t)){if(!0===e.isValidRGB(t)){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(!0===e.isValidHex(t)){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t;return{h:60*((t==o?3:i==o?1:5)-s/(n-o))/360,s:(n-o)/n,v:n}};var g={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return(0,l.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=g.split(t.style.cssText),n=g.split(i),s=e.extend(o,n);t.style.cssText=g.join(s)},e.removeCssText=function(t,e){var i=g.split(t.style.cssText),o=g.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=g.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},e.isValidRGB=function(t){return t=t.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t)},e.isValidRGBA=function(t){return t=t.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t)},e.selectiveBridgeObject=function(t,i){if(null!==i&&"object"===(void 0===i?"undefined":(0,p.default)(i))){for(var o=(0,h.default)(i),n=0;n0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=function(t){return null!==t&&void 0!==t},s=function(t){return null!==t&&"object"===(void 0===t?"undefined":(0,p.default)(t))};if(!s(t))throw new Error("Parameter mergeTarget must be an object");if(!s(e))throw new Error("Parameter options must be an object");if(!n(i))throw new Error("Parameter option must have a value");if(!s(o))throw new Error("Parameter globalOptions must be an object");var r=e[i],a=s(o)&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(o),d=a?o[i]:void 0,l=d?d.enabled:void 0;if(void 0!==r){if("boolean"==typeof r)return s(t[i])||(t[i]={}),void(t[i].enabled=r);if(null===r&&!s(t[i])){if(!n(d))return;t[i]=(0,h.default)(d)}if(s(r)){var u=!0;void 0!==r.enabled?u=r.enabled:void 0!==l&&(u=d.enabled),function(t,e,i){s(t[i])||(t[i]={});var o=e[i],n=t[i];for(var r in o)o.hasOwnProperty(r)&&(n[r]=o[r])}(t,e,i),t[i].enabled=u}}},e.binarySearchCustom=function(t,e,i,o){for(var n=0,s=0,r=t.length-1;s<=r&&n<1e4;){var a=Math.floor((s+r)/2),h=t[a],d=void 0===o?h[i]:h[i][o],l=e(d);if(0==l)return a;-1==l?s=a+1:r=a-1,n++}return-1},e.binarySearchValue=function(t,e,i,o,n){var s,r,a,h,d=0,l=0,u=t.length-1;for(n=void 0!=n?n:function(t,e){return t==e?0:t0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?l=h+1:u=h-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o},e.topMost=function(t,e){var i=void 0;Array.isArray(e)||(e=[e]);var o=!0,n=!1,s=void 0;try{for(var a,h=(0,r.default)(t);!(o=(a=h.next()).done);o=!0){var d=a.value;if(d){i=d[e[0]];for(var l=1;l0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){n<0&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(){var t=function(){};return{on:t,off:t,destroy:t,emit:t,get:function(e){return{set:t}}}}if("undefined"!=typeof window){var n=i(130),s=window.Hammer||i(131);t.exports=n(s,{preventDefault:"mouse"})}else t.exports=function(){return o()}},function(t,e,i){var o=i(91),n=i(35);t.exports=function(t){return o(n(t))}},function(t,e,i){var o=i(8),n=i(26);t.exports=i(9)?function(t,e,i){return o.f(t,e,n(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=(0,l.default)(this._options.type),o=0,n=i.length;on?1:or)&&(s=h,r=d)}return s},n.prototype.min=function(t){var e,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(e=0,i=n.length;e=4*a){var p=0,c=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(p=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-p,"days"),c.add(1,"weeks");break;case"weekly":var m=l.diff(d,"days"),f=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(f),l.day(f),l.add(m,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),c.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(p=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(p,"months"),c.add(1,"months");break;case"yearly":d.year()!=l.year()&&(p=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(p,"years"),c.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;d=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(o=0;o=r&&nt.range.end){var h={start:t.range.start,end:i};return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale}return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a);return new Date(h+a+t.range.start)},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n=e&&r=e&&r<=i&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?o<0?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&t0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=(0,h.default)(this.data)}for(var i=0;i=.4*g}if(this.options.showMinorLabels&&f){var D=this._repaintMinorText(p,y,t,b);D.style.width=_+"px"}m&&this.options.showMajorLabels?(p>0&&(void 0==w&&(w=p),D=this._repaintMajorText(p,s.getLabelMajor(),t,b)),v=this._repaintMajorLine(p,_,t,b)):f?v=this._repaintMinorLine(p,_,t,b):v&&(v.style.width=parseInt(v.style.width)+_+"px")}if(1e3!==x||u||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to 1000 lines."),u=!0),this.options.showMajorLabels){var S=this.body.util.toTime(0),k=s.getLabelMajor(S),T=k.length*(this.props.majorCharWidth||10)+10;(void 0==w||Ts.distance?" in "+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""):n.distance<=8?'. Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e):". Did you mean one of these: "+t.print((0,d.default)(i))+t.printLocation(o,e),console.log('%cUnknown option detected: "'+e+'"'+r,v),f=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],h=e.toLowerCase(),d=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&!0===n){var p=t.findInOptions(e,i[l],m.copyAndExtendArray(o,l));s>p.distance&&(r=p.closestMatch,a=p.path,s=p.distance,d=p.indexMatch)}else-1!==l.toLowerCase().indexOf(h)&&(d=l),u=t.levenshteinDistance(e,l),s>u&&(r=l,a=m.copyArray(o),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:d}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;ndocument.F=Object<\/script>"),t.close(),h=t.F;o--;)delete h.prototype[s[o]];return h()};t.exports=Object.create||function(t,e){var i;return null!==t?(a.prototype=o(t),i=new a,a.prototype=null,i[r]=t):i=h(),void 0===e?i:n(i,e)}},function(t,e){var i=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:i)(t)}},function(t,e,i){var o=i(40)("keys"),n=i(28);t.exports=function(t){return o[t]||(o[t]=n(t))}},function(t,e,i){var o=i(2),n=i(6),s=n["__core-js_shared__"]||(n["__core-js_shared__"]={});(t.exports=function(t,e){return s[t]||(s[t]=void 0!==e?e:{})})("versions",[]).push({version:o.version,mode:i(25)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){var o=i(8).f,n=i(10),s=i(7)("toStringTag");t.exports=function(t,e,i){t&&!n(t=i?t:t.prototype,s)&&o(t,s,{configurable:!0,value:e})}},function(t,e,i){var o=i(35);t.exports=function(t){return Object(o(t))}},function(t,e,i){t.exports={default:i(105),__esModule:!0}},function(t,e,i){e.f=i(7)},function(t,e,i){var o=i(6),n=i(2),s=i(25),r=i(45),a=i(8).f;t.exports=function(t){var e=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:r.f(t)})}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){var i=c().hours(0).minutes(0).seconds(0).milliseconds(0),o=i.clone().add(-3,"days").valueOf(),n=i.clone().add(3,"days").valueOf();this.millisecondsPerPixelCache=void 0,void 0===e?(this.start=o,this.end=n):(this.start=e.start||o,this.end=e.end||n),this.rolling=!1,this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={rtl:!1,start:null,end:null,moment:c,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10,rollingMode:{follow:!1,offset:.5}},this.options=p.extend({},this.defaultOptions),this.props={touch:{}},this.animationTimer=null,this.body.emitter.on("panstart",this._onDragStart.bind(this)),this.body.emitter.on("panmove",this._onDrag.bind(this)),this.body.emitter.on("panend",this._onDragEnd.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.body.dom.rollingModeBtn.addEventListener("click",this.startRolling.bind(this)),this.setOptions(e)}function s(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}var r=i(4),a=o(r),h=i(16),d=o(h),l=i(1),u=o(l),p=i(0),c=i(3),m=i(5),f=i(22);n.prototype=new m,n.prototype.setOptions=function(t){if(t){var e=["animation","direction","min","max","zoomMin","zoomMax","moveable","zoomable","moment","activate","hiddenDates","zoomKey","rtl","showCurrentTime","rollingMode","horizontalScroll"];p.selectiveExtend(e,this.options,t),t.rollingMode&&t.rollingMode.follow&&this.startRolling(),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},n.prototype.startRolling=function(){function t(){e.stopRolling(),e.rolling=!0;var i=e.end-e.start,o=p.convert(new Date,"Date").valueOf(),n=o-i*e.options.rollingMode.offset,s=o+i*(1-e.options.rollingMode.offset),r={animation:!1};e.setRange(n,s,r),i=1/e.conversion(e.body.domProps.center.width).scale/10,i<30&&(i=30),i>1e3&&(i=1e3),e.body.dom.rollingModeBtn.style.visibility="hidden",e.currentTimeTimer=setTimeout(t,i)}var e=this;t()},n.prototype.stopRolling=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility="visible")},n.prototype.setRange=function(t,e,i,o,n){i||(i={}),!0!==i.byUser&&(i.byUser=!1);var s=this,r=void 0!=t?p.convert(t,"Date").valueOf():null,h=void 0!=e?p.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,i.animation){var l=this.start,c=this.end,m="object"===(0,u.default)(i.animation)&&"duration"in i.animation?i.animation.duration:500,g="object"===(0,u.default)(i.animation)&&"easingFunction"in i.animation?i.animation.easingFunction:"easeInOutQuad",v=p.easingFunctions[g];if(!v)throw new Error("Unknown easing function "+(0,d.default)(g)+". Choose from: "+(0,a.default)(p.easingFunctions).join(", "));var y=(new Date).valueOf(),b=!1;return function t(){if(!s.props.touch.dragging){var e=(new Date).valueOf(),a=e-y,d=v(a/m),u=a>m,p=u||null===r?r:l+(r-l)*d,g=u||null===h?h:c+(h-c)*d;_=s._applyRange(p,g),f.updateHiddenDates(s.options.moment,s.body,s.options.hiddenDates),b=b||_;var w={start:new Date(s.start),end:new Date(s.end),byUser:i.byUser,event:i.event};if(n&&n(d,_,u),_&&s.body.emitter.emit("rangechange",w),u){if(b&&(s.body.emitter.emit("rangechanged",w),o))return o()}else s.animationTimer=setTimeout(t,20)}}()}var _=this._applyRange(r,h);if(f.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),_){var w={start:new Date(this.start),end:new Date(this.end),byUser:i.byUser,event:i.event};if(this.body.emitter.emit("rangechange",w),clearTimeout(s.timeoutID),s.timeoutID=setTimeout(function(){s.body.emitter.emit("rangechanged",w)},200),o)return o()}},n.prototype.getMillisecondsPerPixel=function(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache},n.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},n.prototype._applyRange=function(t,e){var i,o=null!=t?p.convert(t,"Date").valueOf():this.start,n=null!=e?p.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?p.convert(this.options.max,"Date").valueOf():null,r=null!=this.options.min?p.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(ns&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=r&&o=this.start-.5&&n<=this.end?(o=this.start,n=this.end):(i=a-(n-o),o-=i/2,n+=i/2)}}if(null!==this.options.zoomMax){var h=parseFloat(this.options.zoomMax);h<0&&(h=0),n-o>h&&(this.end-this.start===h&&othis.end?(o=this.start,n=this.end):(i=n-o-h,o+=i/2,n-=i/2))}var d=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,d},n.prototype.getRange=function(){return{start:this.start,end:this.end}},n.prototype.conversion=function(t,e){return n.conversion(this.start,this.end,t,e)},n.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},n.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},n.prototype._onDrag=function(t){if(t&&this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;s(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start;o-=f.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var n,r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;n=this.options.rtl?i/r*o:-i/r*o;var a=this.props.touch.start+n,h=this.props.touch.end+n,d=f.snapAwayFromHidden(this.body.hiddenDates,a,this.previousDelta-i,!0),l=f.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0);if(d!=a||l!=h)return this.deltaDifference+=i,this.props.touch.start=d,this.props.touch.end=l,void this._onDrag(t);this.previousDelta=i,this._applyRange(a,h);var u=new Date(this.start),p=new Date(this.end);this.body.emitter.emit("rangechange",{start:u,end:p,byUser:!0,event:t}),this.body.emitter.emit("panmove")}},n.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:t}))},n.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),!(this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable)&&this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var i;i=e<0?1-e/5:1/(1+e/5);var o;if(this.rolling)o=this.start+(this.end-this.start)*this.options.rollingMode.offset;else{var n=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center);o=this._pointerToDate(n)}this.zoom(i,o,e,t),t.preventDefault()}},n.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0,p.preventDefault(t)},n.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){p.preventDefault(t),this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center)),this.stopRolling();var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=f.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=f.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=1-e<=0,this.endToFront=e-1<=0;var h=f.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),d=f.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&d==a||(this.props.touch.start=h,this.props.touch.end=d,this.scaleOffset=1-t.scale,r=h,a=d);var l={animation:!1,byUser:!0,event:t};this.setRange(r,a,l),this.startToFront=!1,this.endToFront=!0}},n.prototype._isInsideRange=function(t){var e,i=t.center?t.center.x:t.clientX;e=this.options.rtl?i-p.getAbsoluteLeft(this.body.dom.centerContainer):p.getAbsoluteRight(this.body.dom.centerContainer)-i;var o=this.body.util.toTime(e);return o>=this.start&&o<=this.end},n.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(s(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},n.prototype.getPointer=function(t,e){return this.options.rtl?{x:p.getAbsoluteRight(e)-t.x,y:t.y-p.getAbsoluteTop(e)}:{x:t.x-p.getAbsoluteLeft(e),y:t.y-p.getAbsoluteTop(e)}},n.prototype.zoom=function(t,e,i,o){null==e&&(e=(this.start+this.end)/2);var n=f.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=f.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),r=n-s,a=e-s+(this.start-(e-s))*t,h=e+r+(this.end-(e+r))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0);var d=f.snapAwayFromHidden(this.body.hiddenDates,a,i,!0),l=f.snapAwayFromHidden(this.body.hiddenDates,h,-i,!0);d==a&&l==h||(a=d,h=l);var u={animation:!1,byUser:!0,event:o};this.setRange(a,h,u),this.startToFront=!1,this.endToFront=!0},n.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},n.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:null};this.setRange(o,n,s)},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){}var s=i(16),r=o(s),a=i(1),h=o(a),d=i(66),l=i(12),u=i(67),p=i(0),c=i(29),m=i(132),f=i(22),g=i(30);d(n.prototype),n.prototype._create=function(t){function e(t){this.isActive()&&this.emit("mousewheel",t);var e=0,i=0;if("detail"in t&&(i=-1*t.detail),"wheelDelta"in t&&(i=t.wheelDelta),"wheelDeltaY"in t&&(i=t.wheelDeltaY),"wheelDeltaX"in t&&(e=-1*t.wheelDeltaX),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=-1*i,i=0),"deltaY"in t&&(i=-1*t.deltaY),"deltaX"in t&&(e=t.deltaX),this.options.zoomKey&&!t[this.options.zoomKey])if(t.preventDefault(),this.options.verticalScroll&&Math.abs(i)>=Math.abs(e)){var o=this.props.scrollTop,n=o+i;this.isActive()&&(this._setScrollTop(n),this._redraw(),this.emit("scroll",t))}else if(this.options.horizontalScroll){var s=Math.abs(e)>=Math.abs(i)?e:i,r=s/120*(this.range.end-this.range.start)/20,a=this.range.start+r,h=this.range.end+r,d={animation:!1,byUser:!0,event:t};this.range.setRange(a,h,d)}}function i(t){if(s.options.verticalScroll&&(t.preventDefault(),s.isActive())){var e=-t.target.scrollTop;s._setScrollTop(e),s._redraw(),s.emit("scrollSide",t)}}function o(t){if(t.preventDefault&&t.preventDefault(),!(!t.target.className.indexOf("vis")>-1||a))return t.dataTransfer.dropEffect="move",a=!0,!1}function n(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation();try{var e=JSON.parse(t.dataTransfer.getData("text"));if(!e||!e.content)return}catch(t){return!1}return a=!1,t.center={x:t.clientX,y:t.clientY},"item"!==e.target?s.itemSet._onAddItem(t):s.itemSet._onDropObjectOnItem(t),s.emit("drop",s.getEventProperties(t)),!1}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.rollingModeBtn=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.rollingModeBtn.className="vis-rolling-mode-btn",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on("rangechange",function(){!0===this.initialDrawDone&&this._redraw()}.bind(this)),this.on("rangechanged",function(){this.initialRangeChangeDone||(this.initialRangeChangeDone=!0)}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("panmove",this._onDrag.bind(this));var s=this;this._origRedraw=this._redraw.bind(this),this._redraw=p.throttle(this._origRedraw),this.on("_change",function(t){s.itemSet&&s.itemSet.initialItemSetDrawn&&t&&1==t.queue?s._redraw():s._origRedraw()}),this.hammer=new l(this.dom.root);var r=this.hammer.get("pinch").set({enable:!0});u.disablePreventDefaultVertically(r),this.hammer.get("pan").set({threshold:5,direction:l.DIRECTION_HORIZONTAL}),this.listeners={},["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach(function(t){var e=function(e){s.isActive()&&s.emit(t,e)};s.hammer.on(t,e),s.listeners[t]=e}),u.onTouch(this.hammer,function(t){s.emit("touch",t)}.bind(this)),u.onRelease(this.hammer,function(t){s.emit("release",t)}.bind(this)),this.dom.centerContainer.addEventListener?(this.dom.centerContainer.addEventListener("mousewheel",e.bind(this),!1),this.dom.centerContainer.addEventListener("DOMMouseScroll",e.bind(this),!1)):this.dom.centerContainer.attachEvent("onmousewheel",e.bind(this)),this.dom.left.parentNode.addEventListener("scroll",i.bind(this)),this.dom.right.parentNode.addEventListener("scroll",i.bind(this));var a=!1;if(this.dom.center.addEventListener("dragover",o.bind(this),!1),this.dom.center.addEventListener("drop",n.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,this.initialRangeChangeDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},n.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","zoomKey","horizontalScroll","verticalScroll"];if(p.selectiveExtend(e,this.options,t),this.dom.rollingModeBtn.style.visibility="hidden",this.options.rtl&&(this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className="vis-panel vis-right vis-vertical-scroll":this.dom.leftContainer.className="vis-panel vis-left vis-vertical-scroll"),"object"!==(0,h.default)(this.options.orientation)&&(this.options.orientation={item:void 0,axis:void 0}),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===(0,h.default)(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new c(this.body);i.setOptions=function(t){var e=t?p.extend({},t):{};e.orientation="top",c.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&f.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new m(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=p.deepExtend({},this.options);this.components.forEach(function(t){p.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},n.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));i.length>0&&i[0].setCustomTime(t)},n.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));return e[0].getCustomTime()},n.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));if(i.length>0)return i[0].setCustomTitle(t)},n.prototype.getEventProperties=function(t){return{event:t}},n.prototype.addCustomTime=function(t,e){var i=void 0!==t?p.convert(t,"Date").valueOf():new Date;if(this.customTimes.some(function(t){return t.options.id===e}))throw new Error("A custom time with id "+(0,r.default)(e)+" already exists");var o=new g(this.body,p.extend({},this.options,{time:i,id:e}));return this.customTimes.push(o),this.components.push(o),this._redraw(),e},n.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},n.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},n.prototype.fit=function(t,e){var i=this.getDataRange();if(null!==i.min||null!==i.max){var o=i.max-i.min,n=new Date(i.min.valueOf()-.01*o),s=new Date(i.max.valueOf()+.01*o),r=!t||void 0===t.animation||t.animation;this.range.setRange(n,s,{animation:r},e)}},n.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},n.prototype.setWindow=function(t,e,i,o){"function"==typeof arguments[2]&&(o=arguments[2],i={});var n,s;1==arguments.length?(s=arguments[0],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n})):2==arguments.length&&"function"==typeof arguments[1]?(s=arguments[0],o=arguments[1],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n},o)):(n=!i||void 0===i.animation||i.animation,this.range.setRange(t,e,{animation:n},o))},n.prototype.moveTo=function(t,e,i){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.range.end-this.range.start,n=p.convert(t,"Date").valueOf(),s=n-o/2,r=n+o/2,a=!e||void 0===e.animation||e.animation;this.range.setRange(s,r,{animation:a},i)},n.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},n.prototype.zoomIn=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=r/(1+t),h=(r-a)/2,d=n+h,l=s-h;this.setWindow(d,l,e,i)}},n.prototype.zoomOut=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=n-r*t/2,h=s+r*t/2;this.setWindow(a,h,e,i)}},n.prototype.redraw=function(){this._redraw()},n.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.offsetWidth){f.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(p.addClassName(o.root,"vis-top"),p.removeClassName(o.root,"vis-bottom")):(p.removeClassName(o.root,"vis-top"),p.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=p.option.asSize(e.maxHeight,""),o.root.style.minHeight=p.option.asSize(e.minHeight,""),o.root.style.width=p.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top,i.borderRootHeight=o.root.offsetHeight-o.root.clientHeight,i.borderRootWidth=o.root.offsetWidth-o.root.clientWidth,0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(i.borderRootWidth=i.borderRootHeight),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var n=Math.max(i.left.height,i.center.height,i.right.height),s=i.top.height+n+i.bottom.height+i.borderRootHeight+i.border.top+i.border.bottom;o.root.style.height=p.option.asSize(e.height,s+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-i.borderRootHeight;var r=i.root.height-i.top.height-i.bottom.height-i.borderRootHeight;i.centerContainer.height=r,i.leftContainer.height=r,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-i.borderRootWidth,this.initialDrawDone||(i.scrollbarWidth=p.getScrollBarWidth()),e.verticalScroll?e.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),this._setDOM();var a=this._updateScrollTop();"top"!=e.orientation.item&&(a+=Math.max(i.centerContainer.height-i.center.height-i.border.top-i.border.bottom,0)),o.center.style.top=a+"px";var h=0==i.scrollTop?"hidden":"",d=i.scrollTop==i.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=h,o.shadowBottom.style.visibility=d,o.shadowTopLeft.style.visibility=h,o.shadowBottomLeft.style.visibility=d,o.shadowTopRight.style.visibility=h,o.shadowBottomRight.style.visibility=d,e.verticalScroll&&(o.rightContainer.className="vis-panel vis-right vis-vertical-scroll",o.leftContainer.className="vis-panel vis-left vis-vertical-scroll",o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden",o.left.style.top="0px",o.right.style.top="0px"),(!e.verticalScroll||i.center.heighti.centerContainer.height;this.hammer.get("pan").set({direction:u?l.DIRECTION_ALL:l.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});if(t){if(this.redrawCount<5)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.body.emitter.emit("changed")}},n.prototype._setDOM=function(){var t=this.props,e=this.dom;t.leftContainer.width=t.left.width,t.rightContainer.width=t.right.width;var i=t.root.width-t.left.width-t.right.width-t.borderRootWidth;t.center.width=i,t.centerContainer.width=i,t.top.width=i,t.bottom.width=i,e.background.style.height=t.background.height+"px",e.backgroundVertical.style.height=t.background.height+"px",e.backgroundHorizontal.style.height=t.centerContainer.height+"px",e.centerContainer.style.height=t.centerContainer.height+"px",e.leftContainer.style.height=t.leftContainer.height+"px",e.rightContainer.style.height=t.rightContainer.height+"px",e.background.style.width=t.background.width+"px",e.backgroundVertical.style.width=t.centerContainer.width+"px",e.backgroundHorizontal.style.width=t.background.width+"px",e.centerContainer.style.width=t.center.width+"px",e.top.style.width=t.top.width+"px",e.bottom.style.width=t.bottom.width+"px",e.background.style.left="0",e.background.style.top="0",e.backgroundVertical.style.left=t.left.width+t.border.left+"px",e.backgroundVertical.style.top="0",e.backgroundHorizontal.style.left="0",e.backgroundHorizontal.style.top=t.top.height+"px",e.centerContainer.style.left=t.left.width+"px",e.centerContainer.style.top=t.top.height+"px",e.leftContainer.style.left="0",e.leftContainer.style.top=t.top.height+"px",e.rightContainer.style.left=t.left.width+t.center.width+"px",e.rightContainer.style.top=t.top.height+"px",e.top.style.left=t.left.width+"px",e.top.style.top="0",e.bottom.style.left=t.left.width+"px",e.bottom.style.top=t.top.height+t.centerContainer.height+"px",e.center.style.left="0",e.left.style.left="0",e.right.style.left="0"},n.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},n.prototype.setCurrentTime=function(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)},n.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},n.prototype._toTime=function(t){return f.toTime(this,t,this.props.center.width)},n.prototype._toGlobalTime=function(t){return f.toTime(this,t,this.props.root.width)},n.prototype._toScreen=function(t){return f.toScreen(this,t,this.props.center.width)},n.prototype._toGlobalScreen=function(t){return f.toScreen(this,t,this.props.root.width)},n.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},n.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){if(1!=t.options.autoResize)return void t._stopAutoResize();t.dom.root&&(t.dom.root.offsetWidth==t.props.lastWidth&&t.dom.root.offsetHeight==t.props.lastHeight||(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight,t.props.scrollbarWidth=p.getScrollBarWidth(),t.body.emitter.emit("_change")))},p.addEventListener(window,"resize",this._onResize),t.dom.root&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},n.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(p.removeEventListener(window,"resize",this._onResize),this._onResize=null)},n.prototype._onTouch=function(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},n.prototype._onPinch=function(t){this.touch.allowDragging=!1},n.prototype._onDrag=function(t){if(t&&this.touch.allowDragging){var e=t.deltaY,i=this._getScrollTop(),o=this._setScrollTop(this.touch.initialScrollTop+e);this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),o!=i&&this.emit("verticalDrag")}},n.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},n.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop0&&this.current.milliseconds()0&&this.current.seconds()0&&this.current.minutes()0&&this.current.hours()0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){31104e9>t&&(this.scale="year",this.step=1e3),15552e9>t&&(this.scale="year",this.step=500),31104e8>t&&(this.scale="year",this.step=100),15552e8>t&&(this.scale="year",this.step=50),31104e7>t&&(this.scale="year",this.step=10),15552e7>t&&(this.scale="year",this.step=5),31104e6>t&&(this.scale="year",this.step=1),7776e6>t&&(this.scale="month",this.step=3),2592e6>t&&(this.scale="month",this.step=1),432e6>t&&(this.scale="day",this.step=5),1728e5>t&&(this.scale="day",this.step=2),864e5>t&&(this.scale="day",this.step=1),432e5>t&&(this.scale="weekday",this.step=1),144e5>t&&(this.scale="hour",this.step=4),36e5>t&&(this.scale="hour",this.step=1),9e5>t&&(this.scale="minute",this.step=15),6e5>t&&(this.scale="minute",this.step=10),3e5>t&&(this.scale="minute",this.step=5),6e4>t&&(this.scale="minute",this.step=1),15e3>t&&(this.scale="second",this.step=15),1e4>t&&(this.scale="second",this.step=10),5e3>t&&(this.scale="second",this.step=5),1e3>t&&(this.scale="second",this.step=1),200>t&&(this.scale="millisecond",this.step=200),100>t&&(this.scale="millisecond",this.step=100),50>t&&(this.scale="millisecond",this.step=50),10>t&&(this.scale="millisecond",this.step=10),5>t&&(this.scale="millisecond",this.step=5),1>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("week"==e)o.weekday()>2?(o.weekday(0),o.add(1,"week")):o.weekday(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.scale){case"year":case"month":case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.scale){case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":case"week":return 1==t.date();case"month":return 0==t.month();case"year":default:return!1}},o.prototype.getLabelMinor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];switch(this.scale){case"week":if(this.isMajor()&&0!==t.weekday())return"";default:return e&&e.length>0?this.moment(t).format(e):""}},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/a%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(n().add(1,"day"),"day")?" vis-tomorrow":t.isSame(n().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}var n=this.moment,s=this.moment(this.current),r=s.locale?s.locale("en"):s.lang("en"),a=this.step,h=[];switch(this.scale){case"millisecond":h.push(e(r)),h.push(t(r.milliseconds()));break;case"second":h.push(e(r)),h.push(t(r.seconds()));break;case"minute":h.push(e(r)),h.push(t(r.minutes()));break;case"hour":h.push("vis-h"+r.hours()+(4==this.step?"-h"+(r.hours()+4):"")),h.push(e(r)),h.push(t(r.hours()));break;case"weekday":h.push("vis-"+r.format("dddd").toLowerCase()),h.push(e(r)),h.push(i(r)),h.push(t(r.date()));break;case"day":h.push("vis-day"+r.date()),h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(e(r)),h.push(o(r)),h.push(this.step<=2?e(r):""),h.push(this.step<=2?"vis-"+r.format("dddd").toLowerCase():""),h.push(t(r.date()-1));break;case"week":h.push("vis-week"+r.format("w")),h.push(i(r)),h.push(t(r.week()));break;case"month":h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(o(r)),h.push(t(r.month()));break;case"year":h.push("vis-year"+r.year()),h.push(function(t){return t.isSame(new Date,"year")?" vis-current-year":""}(r)),h.push(t(r.year()))}return h.filter(String).join(" ")},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={rtl:!1,showCurrentTime:!0,moment:r,locales:a,locale:"en"},this.options=n.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var n=i(0),s=i(5),r=i(3),a=i(69);o.prototype=new s,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-current-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},o.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},o.prototype.setOptions=function(t){t&&n.selectiveExtend(["rtl","showCurrentTime","moment","locale","locales"],this.options,t)},o.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=this.options.moment((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),o=this.options.locales[this.options.locale];o||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline/#Localization"),this.warned=!0),o=this.options.locales.en);var n=o.current+" "+o.time+": "+e.format("dddd, MMMM Do YYYY, H:mm:ss");n=n.charAt(0).toUpperCase()+n.substring(1),this.options.rtl?this.bar.style.right=i+"px":this.bar.style.left=i+"px",this.bar.title=n}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},o.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,o=1/i/10;o<30&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.groupId=t,this.subgroups={},this.subgroupStack={},this.subgroupStackAll=!1,this.doInnerStack=!1,this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.isVisible=null,this.stackDirty=!0,e&&e.nestedGroups&&(this.nestedGroups=e.nestedGroups,0==e.showNested?this.showNested=!1:this.showNested=!0),e&&e.subgroupStack)if("boolean"==typeof e.subgroupStack)this.doInnerStack=e.subgroupStack,this.subgroupStackAll=e.subgroupStack;else for(var o in e.subgroupStack)this.subgroupStack[o]=e.subgroupStack[o],this.doInnerStack=this.doInnerStack||e.subgroupStack[o];this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var n=this;this.itemSet.body.emitter.on("checkRangedItems",function(){n.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(4),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(0),a=i(71);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.style.position="absolute",this.dom.marker.innerHTML="",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else e instanceof Object?i(t,this.dom.inner):this.dom.inner.innerHTML=void 0!==e&&null!==e?e:this.groupId||"";if(this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?r.removeClassName(this.dom.inner,"vis-hidden"):r.addClassName(this.dom.inner,"vis-hidden"),t&&t.nestedGroups){this.nestedGroups&&this.nestedGroups==t.nestedGroups||(this.nestedGroups=t.nestedGroups),void 0===t.showNested&&void 0!==this.showNested||(0==t.showNested?this.showNested=!1:this.showNested=!0),r.addClassName(this.dom.label,"vis-nesting-group");var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";this.showNested?(r.removeClassName(this.dom.label,o),r.addClassName(this.dom.label,"expanded")):(r.removeClassName(this.dom.label,"expanded"),r.addClassName(this.dom.label,o))}else this.nestedGroups&&(this.nestedGroups=null,o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed",r.removeClassName(this.dom.label,o),r.removeClassName(this.dom.label,"expanded"),r.removeClassName(this.dom.label,"vis-nesting-group"));t&&t.nestedInGroup&&(r.addClassName(this.dom.label,"vis-nested-group"),this.itemSet.options&&this.itemSet.options.rtl?this.dom.inner.style.paddingRight="30px":this.dom.inner.style.paddingLeft="30px");var n=t&&t.className||null;n!=this.className&&(this.className&&(r.removeClassName(this.dom.label,this.className),r.removeClassName(this.dom.foreground,this.className),r.removeClassName(this.dom.background,this.className),r.removeClassName(this.dom.axis,this.className)),r.addClassName(this.dom.label,n),r.addClassName(this.dom.foreground,n),r.addClassName(this.dom.background,n),r.addClassName(this.dom.axis,n),this.className=n),this.style&&(r.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(r.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype._didMarkerHeightChange=function(){var t=this.dom.marker.clientHeight;if(t!=this.lastMarkerHeight){this.lastMarkerHeight=t;var e={},i=0;r.forEach(this.items,function(t,o){if(t.dirty=!0,t.displayed){e[o]=t.redraw(!0),i=e[o].length}});if(i>0)for(var o=0;o0)for(var u=0;u0){var e=this;this.resetSubgroups(),r.forEach(this.visibleItems,function(i){void 0!==i.data.subgroup&&(e.subgroups[i.data.subgroup].height=Math.max(e.subgroups[i.data.subgroup].height,i.height+t.item.vertical),e.subgroups[i.data.subgroup].visible=!0)})}},o.prototype._isGroupVisible=function(t,e){return this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,n=i[0].top+i[0].height;if(r.forEach(i,function(t){o=Math.min(o,t.top),n=Math.max(n,t.top+t.height)}),o>t.axis){var s=o-t.axis;n-=s,r.forEach(i,function(t){t.top-=s})}e=n+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),this.stackDirty=!0,void 0!==t.data.subgroup&&(this._addToSubgroup(t),this.orderSubgroups()),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype._addToSubgroup=function(t,e){e=e||t.data.subgroup,void 0!=e&&void 0===this.subgroups[e]&&(this.subgroups[e]={height:0,top:0,start:t.data.start,end:t.data.end||t.data.start,visible:!1,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[e]||!1},this.subgroupIndex++),new Date(t.data.start)new Date(this.subgroups[e].end)&&(this.subgroups[e].end=i),this.subgroups[e].items.push(t)},o.prototype._updateSubgroupsSizes=function(){var t=this;if(t.subgroups)for(var e in t.subgroups){var i=t.subgroups[e].items[0].data.end||t.subgroups[e].items[0].data.start,o=t.subgroups[e].items[0].data.start,n=i-1;t.subgroups[e].items.forEach(function(t){new Date(t.data.start)new Date(n)&&(n=e)}),t.subgroups[e].start=o,t.subgroups[e].end=new Date(n-1)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t,e=[];if("string"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push({subgroup:t,sortField:this.subgroups[t].items[0].data[this.subgroupOrderer]});e.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push(this.subgroups[t].items[0].data);e.sort(this.subgroupOrderer)}if(e.length>0)for(var i=0;i=0&&(i.items.splice(o,1),i.items.length?this._updateSubgroupsSizes():delete this.subgroups[e])}}},o.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},o.prototype.order=function(){for(var t=r.toArray(this.items),e=[],i=[],o=0;o0)for(var l=0;lh}),1==this.checkRangedItems)for(this.checkRangedItems=!1,l=0;lh})}var c={},m=0;for(l=0;l0)for(var g=0;g=0&&(r=e[s],!n(r));s--)void 0===o[r.id]&&(o[r.id]=!0,i.push(r));for(s=t+1;st.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.visibleFrame=document.createElement("div"),this.dom.visibleFrame.className="vis-item-visible-frame",this.dom.box.appendChild(this.dom.visibleFrame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dom.box["timeline-item"]=this,this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var t=this.editable.updateTime||this.editable.updateGroup,e=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(t?" vis-editable":" vis-readonly");this.dom.box.className=this.baseClassName+e,this.dom.content.style.maxWidth="none"}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.frame).overflow,{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=t.box.height,this.dom.content.style.maxWidth="",this.dirty=!1},o.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDeleteButton(this.dom.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end),r=void 0===this.data.align?this.options.align:this.data.align;!1===this.data.limitSize||void 0!==t&&!0!==t||(n<-o&&(n=-o),s>2*o&&(s=2*o));var a=Math.max(s-n+.5,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=a+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=a,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=a+"px",r){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(a-i,0)+"px":this.dom.content.style.left=Math.max(a-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((a-i)/2,0)+"px":this.dom.content.style.left=Math.max((a-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+e+"px)")}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t,e){}function n(t,e){return e=void 0===e?{}:e,{style:e.style||t.options.drawPoints.style,styles:e.styles||t.options.drawPoints.styles,size:e.size||t.options.drawPoints.size,className:e.className||t.className}}function s(t,e){var i=void 0;return t.options&&t.options.drawPoints&&t.options.drawPoints.onRender&&"function"==typeof t.options.drawPoints.onRender&&(i=t.options.drawPoints.onRender),e.group.options&&e.group.options.drawPoints&&e.group.options.drawPoints.onRender&&"function"==typeof e.group.options.drawPoints.onRender&&(i=e.group.options.drawPoints.onRender),i}var r=i(1),a=function(t){return t&&t.__esModule?t:{default:t}}(r),h=i(11);o.draw=function(t,e,i,o){o=o||0;for(var r=s(i,e),d=0;dh;)o(a,i=e[h++])&&(~s(d,i)||d.push(i));return d}},function(t,e,i){var o=i(101)(!0);i(57)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=o(e,i),this._i+=t.length,{value:t,done:!1})})},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,i){var o=i(61),n=i(41).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return o(t,n)}},function(t,e,i){function o(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}o.prototype.setOptions=function(t){t&&void 0!==t.delay&&(this.delay=t.delay),t&&void 0!==t.max&&(this.max=t.max),this._flushIfNeeded()},o.extend=function(t,e){var i=new o(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){i.flush()};var n=[{name:"flush",original:void 0}];if(e&&e.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},o.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=o},function(t,e){function i(t){if(t)return o(t)}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;n0){var n=i.groupsData.getDataSet();n.get().forEach(function(t){if(t.nestedGroups){0!=t.showNested&&(t.showNested=!0);var e=[];t.nestedGroups.forEach(function(i){var o=n.get(i);o&&(o.nestedInGroup=t.id,0==t.showNested&&(o.visible=!1),e=e.concat(o))}),n.update(e,o)}})}},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.popup=null,this.touchParams={},this.groupTouchParams={},this._create(),this.setOptions(e)}var s=i(44),r=o(s),a=i(1),h=o(a),d=i(12),l=i(0),u=i(15),p=i(21),c=i(50),m=i(5),f=i(52),g=i(53),v=i(72),y=i(73),b=i(54),_=i(74),w=i(133).default,x="__ungrouped__",D="__background__";n.prototype=new m,n.types={background:_,box:v,range:b,point:y},n.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var n=document.createElement("div");n.className="vis-labelset",this.dom.labelSet=n,this._updateUngrouped();var s=new g(D,null,this);s.show(),this.groups[D]=s,this.hammer=new d(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:d.DIRECTION_HORIZONTAL}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.options.rtl?this.groupHammer=new d(this.body.dom.rightContainer):this.groupHammer=new d(this.body.dom.leftContainer),this.groupHammer.on("tap",this._onGroupClick.bind(this)),this.groupHammer.on("panstart",this._onGroupDragStart.bind(this)),this.groupHammer.on("panmove",this._onGroupDrag.bind(this)),this.groupHammer.on("panend",this._onGroupDragEnd.bind(this)),this.groupHammer.get("pan").set({threshold:5,direction:d.DIRECTION_VERTICAL}),this.body.dom.centerContainer.addEventListener("mouseover",this._onMouseOver.bind(this)),this.body.dom.centerContainer.addEventListener("mouseout",this._onMouseOut.bind(this)),this.body.dom.centerContainer.addEventListener("mousemove",this._onMouseMove.bind(this)),this.body.dom.centerContainer.addEventListener("contextmenu",this._onDragEnd.bind(this)),this.body.dom.centerContainer.addEventListener("mousewheel",this._onMouseWheel.bind(this)),this.show()},n.prototype.setOptions=function(t){if(t){var e=["type","rtl","align","order","stack","stackSubgroups","selectable","multiselect","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","visibleFrameTemplate","hide","snap","groupOrderSwap","showTooltips","tooltip","tooltipOnItemUpdateTime"];l.selectiveExtend(e,this.options,t),"itemsAlwaysDraggable"in t&&("boolean"==typeof t.itemsAlwaysDraggable?(this.options.itemsAlwaysDraggable.item=t.itemsAlwaysDraggable,this.options.itemsAlwaysDraggable.range=!1):"object"===(0,h.default)(t.itemsAlwaysDraggable)&&(l.selectiveExtend(["item","range"],this.options.itemsAlwaysDraggable,t.itemsAlwaysDraggable),this.options.itemsAlwaysDraggable.item||(this.options.itemsAlwaysDraggable.range=!1))),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"===(0,h.default)(t.orientation)&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"===(0,h.default)(t.margin)&&(l.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"===(0,h.default)(t.margin.item)&&l.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable,this.options.editable.overrideItems=!1):"object"===(0,h.default)(t.editable)&&l.selectiveExtend(["updateTime","updateGroup","add","remove","overrideItems"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"===(0,h.default)(t.groupEditable)&&l.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));["onDropObjectOnItem","onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this)),this.markDirty()}},n.prototype.markDirty=function(t){this.groupIds=[],t&&t.refreshItems&&l.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},n.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},n.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},n.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||(this.options.rtl?this.body.dom.right.appendChild(this.dom.labelSet):this.body.dom.left.appendChild(this.dom.labelSet))},n.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;et&&o.push(h.id):h.lefte&&o.push(h.id)}return o},n.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;i0){for(var w={},x=0;x<_;x++)l.forEach(b,function(t,e){w[e]=t[x]()});l.forEach(this.groups,function(t,e){if(e!==D){var i=w[e];s=i||s,v+=t.height}}),v=Math.max(v,y)}return v=Math.max(v,y),r.style.height=i(v),this.props.width=r.offsetWidth,this.props.height=v,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right="0":this.dom.axis.style.left="0",this.initialItemSetDrawn=!0,s=this._isResized()||s},n.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t];return this.groups[e]||this.groups[x]||null},n.prototype._updateUngrouped=function(){var t,e,i=this.groups[x];if(this.groupsData){if(i){i.hide(),delete this.groups[x];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){i=new f(null,null,this),this.groups[x]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},n.prototype.getLabelSet=function(){return this.dom.labelSet},n.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof u||t instanceof p))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(l.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;l.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}this.body.emitter.emit("_change",{queue:!0})},n.prototype.getItems=function(){return this.itemsData},n.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(l.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof u||t instanceof p))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.groupsData;this.groupsData instanceof p&&(o=this.groupsData.getDataSet()),o.get().forEach(function(t){t.nestedGroups&&t.nestedGroups.forEach(function(e){var i=o.get(e);i.nestedInGroup=t.id,0==t.showNested&&(i.visible=!1),o.update(i)})});var n=this.id;l.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,n)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype.getGroups=function(){return this.groupsData},n.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},n.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},n.prototype._getGroupId=function(t){return"background"==this._getType(t)&&void 0==t.group?D:this.groupsData?t.group:x},n.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,o=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=o?e._getType(o):null,a=n.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,o):(i=s.selected,e._removeItem(s),s=null)),!s&&o){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(o,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onAdd=n.prototype._onUpdate,n.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.body.emitter.emit("_change",{queue:!0}))},n.prototype._order=function(){l.forEach(this.groups,function(t){t.order()})},n.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},n.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==x||t==D)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=(0,r.default)(e.options);l.extend(n,{height:null}),o=new f(t,i,e),e.groups[t]=o;for(var s in e.items)if(e.items.hasOwnProperty(s)){var a=e.items[s];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder});t=this._orderNestedGroups(t);var e=!l.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},n.prototype._orderNestedGroups=function(t){var e=[];return t.forEach(function(t){var i=this.groupsData.get(t);if(i.nestedInGroup||e.push(t),i.nestedGroups){var o=this.groupsData.get({filter:function(e){return e.nestedInGroup==t},order:this.options.groupOrder}),n=o.map(function(t){return t.id});e=e.concat(n)}},this),e},n.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i?i&&i.data&&i.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1,i&&i.add(t)},n.prototype._updateItem=function(t,e){t.setData(e);var i=this._getGroupId(t.data),o=this.groups[i];o?o&&o.data&&o.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1},n.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},n.prototype._constructByEndArray=function(t){for(var e=[],i=0;in)return}}if(i&&i!=this.groupTouchParams.group){var a=e.get(i.groupId),h=e.get(this.groupTouchParams.group.groupId);h&&a&&(this.options.groupOrderSwap(h,a,e),e.update(h),e.update(a));var d=e.getIds({order:this.options.groupOrder});if(!l.equalArray(d,this.groupTouchParams.originalOrder))for(var u=this.groupTouchParams.originalOrder,c=this.groupTouchParams.group.groupId,m=Math.min(u.length,d.length),f=0,g=0,v=0;f=m)break;if(d[f+g]==c)g=1;else if(u[f+v]==c)v=1;else{var y=d.indexOf(u[f+v]),b=e.get(d[f+g]),_=e.get(u[f+v]);this.options.groupOrderSwap(b,_,e),e.update(b),e.update(_);var w=d[f+g];d[f+g]=u[f+v],d[y]=w,f++}}}}},n.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=l.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!l.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,r=Math.min(s.length,n.length),a=0;a=r)break;var h=n.indexOf(s[a]),d=o.get(n[a]),u=o.get(s[a]);e.options.groupOrderSwap(d,u,o),o.update(d),o.update(u);var p=n[a];n[a]=s[a],n[h]=p,a++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},n.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},n.prototype._onMouseOver=function(t){var e=this.itemFromTarget(t);if(e){if(e!==this.itemFromRelatedTarget(t)){var i=e.getTitle();if(this.options.showTooltips&&i){null==this.popup&&(this.popup=new w(this.body.dom.root,this.options.tooltip.overflowMethod||"flip")),this.popup.setText(i);var o=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(o)+o.offsetLeft,t.clientY-l.getAbsoluteTop(o)+o.offsetTop),this.popup.show()}else null!=this.popup&&this.popup.hide();this.body.emitter.emit("itemover",{item:e.id,event:t})}}},n.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);if(e){e!==this.itemFromRelatedTarget(t)&&(null!=this.popup&&this.popup.hide(),this.body.emitter.emit("itemout",{item:e.id,event:t}))}},n.prototype._onMouseMove=function(t){if(this.itemFromTarget(t)&&this.options.showTooltips&&this.options.tooltip.followMouse&&this.popup&&!this.popup.hidden){var e=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(e)+e.offsetLeft,t.clientY-l.getAbsoluteTop(e)+e.offsetTop),this.popup.show()}},n.prototype._onMouseWheel=function(t){this.touchParams.itemIsDragging&&this._onDragEnd(t)},n.prototype._onUpdateItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this;if(t){var i=e.itemsData.get(t.id);this.options.onUpdate(i,function(t){t&&e.itemsData.getDataSet().update(t)})}}},n.prototype._onDropObjectOnItem=function(t){var e=this.itemFromTarget(t),i=JSON.parse(t.dataTransfer.getData("text"));this.options.onDropObjectOnItem(i,e)},n.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e,i,o=this,n=this.options.snap||null;this.options.rtl?(e=l.getAbsoluteRight(this.dom.frame),i=e-t.center.x):(e=l.getAbsoluteLeft(this.dom.frame),i=t.center.x-e);var s,r,a=this.body.util.toTime(i),h=this.body.util.getScale(),d=this.body.util.getStep();"drop"==t.type?(r=JSON.parse(t.dataTransfer.getData("text")),r.content=r.content?r.content:"new item",r.start=r.start?r.start:n?n(a,h,d):a,r.type=r.type||"box",r[this.itemsData._fieldId]=r.id||l.randomUUID(),"range"!=r.type||r.end||(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s)):(r={start:n?n(a,h,d):a,content:"new item"},r[this.itemsData._fieldId]=l.randomUUID(),"range"===this.options.type&&(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s));var u=this.groupFromTarget(t);u&&(r.group=u.groupId),r=this._cloneItemData(r),this.options.onAdd(r,function(e){e&&(o.itemsData.getDataSet().add(e),"drop"==t.type&&o.setSelection([e.id]))})}},n.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[];if((t.srcEvent&&t.srcEvent.shiftKey||!1)&&this.options.multiselect){var o=this.itemsData.get(e.id).group,s=void 0;this.options.multiselectPerGroup&&i.length>0&&(s=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=s&&s!=o||i.push(e.id);var r=n._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||s==o){i=[];for(var a in this.items)if(this.items.hasOwnProperty(a)){var h=this.items[a],d=h.data.start,l=void 0!==h.data.end?h.data.end:d;!(d>=r.min&&l<=r.max)||this.options.multiselectPerGroup&&s!=this.itemsData.get(h.id).group||h instanceof _||i.push(h.id)}}}else{var u=i.indexOf(e.id);-1==u?i.push(e.id):i.splice(u,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},n._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},n.prototype.itemFromElement=function(t){for(var e=t;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},n.prototype.itemFromTarget=function(t){return this.itemFromElement(t.target)},n.prototype.itemFromRelatedTarget=function(t){return this.itemFromElement(t.relatedTarget)},n.prototype.groupFromTarget=function(t){var e=t.center?t.center.y:t.clientY,i=this.groupIds;i.length<=0&&this.groupsData&&(i=this.groupsData.getIds({order:this.options.groupOrder}));for(var o=0;oa&&ea)return s}else if(0===o&&es&&(s=r.top+r.height)}while(a)}}o.height=s-o.top+.5*i.item.vertical},e.nostack=function(t,i,o,n){for(var s=0;so[r].index&&e.collisionByTimes(o[n],o[r])){s=o[r];break}null!=s&&(o[n].top=s.top+s.height)}while(s)}for(var a=0;ao[h].index&&(o[r].top+=o[h].height);for(var d=t[r],l=0;le.right&&t.top-i.vertical+.001e.top:t.left-i.horizontal+.001e.left&&t.top-i.vertical+.001e.top},e.collisionByTimes=function(t,e){return t.start<=e.start&&t.end>=e.start&&t.tope.top||e.start<=t.start&&e.end>=t.start&&e.topt.top}},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(23);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=this.options.align,i=this.width*t.getMillisecondsPerPixel();return"right"==e?this.data.start.getTime()>t.start&&this.data.start.getTime()-it.start&&this.data.start.getTime()t.start&&this.data.start.getTime()-i/2t.start&&this.data.startt.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.background;if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var t=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");this.dom.box.className=this.baseClassName+t}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.content).overflow,{content:{width:this.dom.content.offsetWidth}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=0,this.dirty=!1},o.prototype._repaintDomAdditionals=function(){},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e,i=this.options.orientation.item;if(void 0!==this.data.subgroup){var o=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[o].height+"px",this.dom.box.style.top="top"==i?this.parent.top+this.parent.subgroups[o].top+"px":this.parent.top+this.parent.height-this.parent.subgroups[o].top-this.parent.subgroups[o].height+"px",this.dom.box.style.bottom=""}else this.parent instanceof s?(e=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom="bottom"==i?"0":"",this.dom.box.style.top="top"==i?"0":""):(e=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=e+"px"},t.exports=o},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r="object",a={configure:{enabled:{boolean:n},filter:{boolean:n,function:"function"},container:{dom:"dom"},__type__:{object:r,boolean:n,function:"function"}},align:{string:o},rtl:{boolean:n,undefined:"undefined"},rollingMode:{follow:{boolean:n},offset:{number:s,undefined:"undefined"},__type__:{object:r}},verticalScroll:{boolean:n,undefined:"undefined"},horizontalScroll:{boolean:n,undefined:"undefined"},autoResize:{boolean:n},throttleRedraw:{number:s},clickToUse:{boolean:n},dataAttributes:{string:o,array:"array"},editable:{add:{boolean:n,undefined:"undefined"},remove:{boolean:n,undefined:"undefined"},updateGroup:{boolean:n,undefined:"undefined"},updateTime:{boolean:n,undefined:"undefined"},overrideItems:{boolean:n,undefined:"undefined"},__type__:{boolean:n,object:r}},end:{number:s,date:"date",string:o,moment:"moment"},format:{minorLabels:{millisecond:{string:o,undefined:"undefined"},second:{string:o,undefined:"undefined"},minute:{string:o,undefined:"undefined"},hour:{string:o,undefined:"undefined"},weekday:{string:o,undefined:"undefined"},day:{string:o,undefined:"undefined"},week:{string:o,undefined:"undefined"},month:{string:o,undefined:"undefined"},year:{string:o,undefined:"undefined"},__type__:{object:r,function:"function"}},majorLabels:{millisecond:{string:o,undefined:"undefined"},second:{string:o,undefined:"undefined"},minute:{string:o,undefined:"undefined"},hour:{string:o,undefined:"undefined"},weekday:{string:o,undefined:"undefined"},day:{string:o,undefined:"undefined"},week:{string:o,undefined:"undefined"},month:{string:o,undefined:"undefined"},year:{string:o,undefined:"undefined"},__type__:{object:r,function:"function"}},__type__:{object:r}},moment:{function:"function"},groupOrder:{string:o,function:"function"},groupEditable:{add:{boolean:n,undefined:"undefined"},remove:{boolean:n,undefined:"undefined"},order:{boolean:n,undefined:"undefined"},__type__:{boolean:n,object:r}},groupOrderSwap:{function:"function"},height:{string:o,number:s},hiddenDates:{start:{date:"date",number:s,string:o,moment:"moment"},end:{date:"date",number:s,string:o,moment:"moment"},repeat:{string:o},__type__:{object:r,array:"array"}},itemsAlwaysDraggable:{item:{boolean:n,undefined:"undefined"},range:{boolean:n,undefined:"undefined"},__type__:{boolean:n,object:r}},limitSize:{boolean:n},locale:{string:o},locales:{__any__:{any:"any"},__type__:{object:r}},margin:{axis:{number:s},item:{horizontal:{number:s,undefined:"undefined"},vertical:{number:s,undefined:"undefined"},__type__:{object:r,number:s}},__type__:{object:r,number:s}},max:{date:"date",number:s,string:o,moment:"moment"},maxHeight:{number:s,string:o},maxMinorChars:{number:s},min:{date:"date",number:s,string:o,moment:"moment"},minHeight:{number:s,string:o},moveable:{boolean:n},multiselect:{boolean:n},multiselectPerGroup:{boolean:n},onAdd:{function:"function"},onDropObjectOnItem:{function:"function"},onUpdate:{function:"function"},onMove:{function:"function"},onMoving:{function:"function"},onRemove:{function:"function"},onAddGroup:{function:"function"},onMoveGroup:{function:"function"},onRemoveGroup:{function:"function"},onInitialDrawComplete:{function:"function"},order:{function:"function"},orientation:{axis:{string:o,undefined:"undefined"},item:{string:o,undefined:"undefined"},__type__:{string:o,object:r}},selectable:{boolean:n},showCurrentTime:{boolean:n},showMajorLabels:{boolean:n},showMinorLabels:{boolean:n},stack:{boolean:n},stackSubgroups:{boolean:n},snap:{function:"function",null:"null"},start:{date:"date",number:s,string:o,moment:"moment"},template:{function:"function"},groupTemplate:{function:"function"},visibleFrameTemplate:{string:o,function:"function"},showTooltips:{boolean:n},tooltip:{followMouse:{boolean:n},overflowMethod:{string:["cap","flip"]},__type__:{object:r}},tooltipOnItemUpdateTime:{template:{function:"function"},__type__:{boolean:n,object:r}},timeAxis:{scale:{string:o,undefined:"undefined"},step:{number:s,undefined:"undefined"},__type__:{object:r}},type:{string:o},width:{string:o,number:s},zoomable:{boolean:n},zoomKey:{string:["ctrlKey","altKey","metaKey",""]},zoomMax:{number:s},zoomMin:{number:s},__type__:{object:r}},h={global:{align:["center","left","right"],direction:!1,autoResize:!0,clickToUse:!1,editable:{add:!1,remove:!1,updateGroup:!1,updateTime:!1},end:"",format:{minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",week:"w",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",week:"MMMM YYYY",month:"YYYY",year:""}},groupsDraggable:!1,height:"",locale:"",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:"",maxHeight:"",maxMinorChars:[7,0,20,1],min:"",minHeight:"",moveable:!1,multiselect:!1,multiselectPerGroup:!1,orientation:{axis:["both","bottom","top"],item:["bottom","top"]},selectable:!0,showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,stack:!0,stackSubgroups:!0,start:"",showTooltips:!0,tooltip:{followMouse:!1,overflowMethod:"flip"},tooltipOnItemUpdateTime:!1,type:["box","point","range","background"],width:"100%",zoomable:!0,zoomKey:["ctrlKey","altKey","metaKey",""],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}};e.allOptions=a,e.configureOptions=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(16),s=o(n),r=i(1),a=o(r),h=i(31),d=o(h),l=i(32),u=o(l),p=i(0),c=i(137).default,m=function(){function t(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,d.default)(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},p.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new c(n),this.wrapper=void 0}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===(void 0===t?"undefined":(0,a.default)(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),!1===this.options.filter&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):!0!==e&&-1===e.indexOf(n)||(o=!0),!1!==o&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);if(!0===this.options.showButton){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){t._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?i-1:0),n=1;n2&&void 0!==arguments[2]&&arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,o.innerHTML=!0===i?""+t+":":t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(1.2*e),d=a.max,h="range increased"),a.value=e}else a.value=o;var l=document.createElement("input");l.className="vis-configuration vis-config-rangeinput",l.value=a.value;var u=this;a.onchange=function(){l.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){l.value=this.value};var p=this._makeLabel(i[i.length-1],i),c=this._makeItem(i,p,a,l);""!==h&&this.popupHistory[c]!==d&&(this.popupHistory[c]=d,this._setupPopup(h,c))}},{key:"_setupPopup",value:function(t,e){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=p.copyAndExtendArray(e,r);if("function"==typeof n&&!1===(o=n(r,e))&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=!1===i),!1!==o){s=!0;var d=this._getValue(h);if(a instanceof Array)this._handleArray(a,d,h);else if("string"==typeof a)this._makeTextInput(a,d,h);else if("boolean"==typeof a)this._makeCheckbox(a,d,h);else if(a instanceof Object){var l=!0;if(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(l=!1),!0===l)if(void 0!==a.enabled){var u=p.copyAndExtendArray(h,"enabled"),c=this._getValue(u);if(!0===c){var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,c,h)}else{var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;nvar options = "+(0,s.default)(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;e0){var r={};for(this._getRelevantData(s,r,o,n),this._applySampling(s,r),e=0;e0)switch(t.options.style){case"line":d.hasOwnProperty(s[e])||(d[s[e]]=f.calcPath(r[s[e]],t)),f.draw(d[s[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||g.draw(r[s[e]],t,this.framework)}}}return a.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,t[a].y=0==o?t[a].orginalY+r.y:t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(t,e,i,o){var n,s,a,h;if(t.length>0)for(s=0;s0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;l0){for(s=0;s0&&(n=this.groups[t[s]],!0===r.stack&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(o):h=h.concat(o):i[t[s]]=n.getYRange(o,t[s]));m.getStackedYRange(a,i,t,"__barStackLeft","left"),m.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=di?i:h,l=l=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),!0===t.master&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var r=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(r=this.props.titleCharHeight);var h=!0===this.options.icons?Math.max(this.options.iconWidth,r)+this.options.labelOffsetX+15:r+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-h&&!0===this.options.visible?(this.width=this.maxLabelSize+h,this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+h),this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),e=!1),e},o.prototype.convertValue=function(t){return this.scale.convertValue(t)},o.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},o.prototype._redrawLabel=function(t,e,i,o,n){var s=a.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=e,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>h.magnitudefactor*h.minorSteps[h.minorStepIdx]*.5?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}o.prototype.setCharHeight=function(t){this.majorCharHeight=t},o.prototype.setHeight=function(t){this.containerHeight=t},o.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;i<0&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(!0===n)break}},o.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])==0},o.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},o.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},o.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},o.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},o.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&ue.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(t){this.zeroPosition=t},o.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];r.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),r.mergeOptions(this.options,t,"interpolation"),r.mergeOptions(this.options,t,"drawPoints"),r.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==(0,s.default)(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible||t.visible,this.style=t.style,this.setOptions(t.options)},o.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){i={svg:document.createElementNS("http://www.w3.org/2000/svg","svg"),svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":h.drawIcon(this,o,n,t,e,i);break;case"points":case"point":d.drawIcon(this,o,n,t,e,i);break;case"bar":a.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=t0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){return 1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var u={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,u,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o,n=e;if(i)for(o=t.length-2;o>0;o--)n+=t[o][0]+","+t[o][1]+" ";else for(o=1;o0&&(m=1/m),f=3*g*(g+v),f>0&&(f=1/f),a={screen_x:(-b*o.screen_x+p*n.screen_x+_*s.screen_x)*m,screen_y:(-b*o.screen_y+p*n.screen_y+_*s.screen_y)*m},h={screen_x:(y*n.screen_x+c*s.screen_x-b*r.screen_x)*f,screen_y:(y*n.screen_y+c*s.screen_y-b*r.screen_y)*f},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;i");this.dom.textArea.innerHTML=r,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=(0,s.default)(this.groups);t.sort(function(t,e){return t=t.length?(this._t=void 0,n(1)):"keys"==e?n(0,i):"values"==e?n(0,t[i]):n(0,[i,t[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,i){var o=i(34);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==o(t)?t.split(""):Object(t)}},function(t,e,i){var o=i(93);t.exports=function(t,e,i){if(o(t),void 0===e)return t;switch(i){case 1:return function(i){return t.call(e,i)};case 2:return function(i,o){return t.call(e,i,o)};case 3:return function(i,o,n){return t.call(e,i,o,n)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){var o=i(37),n=i(26),s=i(42),r={};i(14)(r,i(7)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=o(r,{next:n(1,i)}),s(t,e+" Iterator")}},function(t,e,i){var o=i(8),n=i(18),s=i(27);t.exports=i(9)?Object.defineProperties:function(t,e){n(t);for(var i,r=s(e),a=r.length,h=0;a>h;)o.f(t,i=r[h++],e[i]);return t}},function(t,e,i){var o=i(13),n=i(97),s=i(98);t.exports=function(t){return function(e,i,r){var a,h=o(e),d=n(h.length),l=s(r,d);if(t&&i!=i){for(;d>l;)if((a=h[l++])!=a)return!0}else for(;d>l;l++)if((t||l in h)&&h[l]===i)return t||l||0;return!t&&-1}}},function(t,e,i){var o=i(38),n=Math.min;t.exports=function(t){return t>0?n(o(t),9007199254740991):0}},function(t,e,i){var o=i(38),n=Math.max,s=Math.min;t.exports=function(t,e){return t=o(t),t<0?n(t+e,0):s(t,e)}},function(t,e,i){var o=i(6).document;t.exports=o&&o.documentElement},function(t,e,i){var o=i(10),n=i(43),s=i(39)("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=n(t),o(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},function(t,e,i){var o=i(38),n=i(35);t.exports=function(t){return function(e,i){var s,r,a=String(n(e)),h=o(i),d=a.length;return h<0||h>=d?t?"":void 0:(s=a.charCodeAt(h),s<55296||s>56319||h+1===d||(r=a.charCodeAt(h+1))<56320||r>57343?t?a.charAt(h):s:t?a.slice(h,h+2):r-56320+(s-55296<<10)+65536)}}},function(t,e,i){var o=i(18),n=i(103);t.exports=i(2).getIterator=function(t){var e=n(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return o(e.call(t))}},function(t,e,i){var o=i(104),n=i(7)("iterator"),s=i(24);t.exports=i(2).getIteratorMethod=function(t){if(void 0!=t)return t[n]||t["@@iterator"]||s[o(t)]}},function(t,e,i){var o=i(34),n=i(7)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=r(e=Object(t),n))?i:s?o(e):"Object"==(a=o(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,i){i(106);var o=i(2).Object;t.exports=function(t,e){return o.create(t,e)}},function(t,e,i){var o=i(17);o(o.S,"Object",{create:i(37)})},function(t,e,i){i(108),t.exports=i(2).Object.keys},function(t,e,i){var o=i(43),n=i(27);i(109)("keys",function(){return function(t){return n(o(t))}})},function(t,e,i){var o=i(17),n=i(2),s=i(20);t.exports=function(t,e){var i=(n.Object||{})[t]||Object[t],r={};r[t]=e(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(t,e,i){t.exports={default:i(111),__esModule:!0}},function(t,e,i){i(62),i(56),t.exports=i(45).f("iterator")},function(t,e,i){t.exports={default:i(113),__esModule:!0}},function(t,e,i){i(114),i(120),i(121),i(122),t.exports=i(2).Symbol},function(t,e,i){var o=i(6),n=i(10),s=i(9),r=i(17),a=i(60),h=i(115).KEY,d=i(20),l=i(40),u=i(42),p=i(28),c=i(7),m=i(45),f=i(46),g=i(116),v=i(117),y=i(18),b=i(19),_=i(43),w=i(13),x=i(36),D=i(26),S=i(37),k=i(118),T=i(119),C=i(63),M=i(8),O=i(27),E=T.f,P=M.f,I=k.f,A=o.Symbol,N=o.JSON,R=N&&N.stringify,L=c("_hidden"),F=c("toPrimitive"),H={}.propertyIsEnumerable,Y=l("symbol-registry"),j=l("symbols"),G=l("op-symbols"),z=Object.prototype,W="function"==typeof A&&!!C.f,V=o.QObject,U=!V||!V.prototype||!V.prototype.findChild,B=s&&d(function(){return 7!=S(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(t,e,i){var o=E(z,e);o&&delete z[e],P(t,e,i),o&&t!==z&&P(z,e,o)}:P,q=function(t){var e=j[t]=S(A.prototype);return e._k=t,e},X=W&&"symbol"==typeof A.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof A},Z=function(t,e,i){return t===z&&Z(G,e,i),y(t),e=x(e,!0),y(i),n(j,e)?(i.enumerable?(n(t,L)&&t[L][e]&&(t[L][e]=!1),i=S(i,{enumerable:D(0,!1)})):(n(t,L)||P(t,L,D(1,{})),t[L][e]=!0),B(t,e,i)):P(t,e,i)},K=function(t,e){y(t);for(var i,o=g(e=w(e)),n=0,s=o.length;s>n;)Z(t,i=o[n++],e[i]);return t},J=function(t,e){return void 0===e?S(t):K(S(t),e)},$=function(t){var e=H.call(this,t=x(t,!0));return!(this===z&&n(j,t)&&!n(G,t))&&(!(e||!n(this,t)||!n(j,t)||n(this,L)&&this[L][t])||e)},Q=function(t,e){if(t=w(t),e=x(e,!0),t!==z||!n(j,e)||n(G,e)){var i=E(t,e);return!i||!n(j,e)||n(t,L)&&t[L][e]||(i.enumerable=!0),i}},tt=function(t){for(var e,i=I(w(t)),o=[],s=0;i.length>s;)n(j,e=i[s++])||e==L||e==h||o.push(e);return o},et=function(t){for(var e,i=t===z,o=I(i?G:w(t)),s=[],r=0;o.length>r;)!n(j,e=o[r++])||i&&!n(z,e)||s.push(j[e]);return s};W||(A=function(){if(this instanceof A)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(i){this===z&&e.call(G,i),n(this,L)&&n(this[L],t)&&(this[L][t]=!1),B(this,t,D(1,i))};return s&&U&&B(z,t,{configurable:!0,set:e}),q(t)},a(A.prototype,"toString",function(){return this._k}),T.f=Q,M.f=Z,i(64).f=k.f=tt,i(47).f=$,C.f=et,s&&!i(25)&&a(z,"propertyIsEnumerable",$,!0),m.f=function(t){return q(c(t))}),r(r.G+r.W+r.F*!W,{Symbol:A});for(var it="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ot=0;it.length>ot;)c(it[ot++]);for(var nt=O(c.store),st=0;nt.length>st;)f(nt[st++]);r(r.S+r.F*!W,"Symbol",{for:function(t){return n(Y,t+="")?Y[t]:Y[t]=A(t)},keyFor:function(t){if(!X(t))throw TypeError(t+" is not a symbol!");for(var e in Y)if(Y[e]===t)return e},useSetter:function(){U=!0},useSimple:function(){U=!1}}),r(r.S+r.F*!W,"Object",{create:J,defineProperty:Z,defineProperties:K,getOwnPropertyDescriptor:Q,getOwnPropertyNames:tt,getOwnPropertySymbols:et});var rt=d(function(){C.f(1)});r(r.S+r.F*rt,"Object",{getOwnPropertySymbols:function(t){return C.f(_(t))}}),N&&r(r.S+r.F*(!W||d(function(){var t=A();return"[null]"!=R([t])||"{}"!=R({a:t})||"{}"!=R(Object(t))})),"JSON",{stringify:function(t){for(var e,i,o=[t],n=1;arguments.length>n;)o.push(arguments[n++]);if(i=e=o[1],(b(e)||void 0!==t)&&!X(t))return v(e)||(e=function(t,e){if("function"==typeof i&&(e=i.call(this,t,e)),!X(e))return e}),o[1]=e,R.apply(N,o)}}),A.prototype[F]||i(14)(A.prototype,F,A.prototype.valueOf),u(A,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(t,e,i){var o=i(28)("meta"),n=i(19),s=i(10),r=i(8).f,a=0,h=Object.isExtensible||function(){return!0},d=!i(20)(function(){return h(Object.preventExtensions({}))}),l=function(t){r(t,o,{value:{i:"O"+ ++a,w:{}}})},u=function(t,e){if(!n(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!s(t,o)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[o].i},p=function(t,e){if(!s(t,o)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[o].w},c=function(t){return d&&m.NEED&&h(t)&&!s(t,o)&&l(t),t},m=t.exports={KEY:o,NEED:!1,fastKey:u,getWeak:p,onFreeze:c}},function(t,e,i){var o=i(27),n=i(63),s=i(47);t.exports=function(t){var e=o(t),i=n.f;if(i)for(var r,a=i(t),h=s.f,d=0;a.length>d;)h.call(t,r=a[d++])&&e.push(r);return e}},function(t,e,i){var o=i(34);t.exports=Array.isArray||function(t){return"Array"==o(t)}},function(t,e,i){var o=i(13),n=i(64).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return n(t)}catch(t){return r.slice()}};t.exports.f=function(t){return r&&"[object Window]"==s.call(t)?a(t):n(o(t))}},function(t,e,i){var o=i(47),n=i(26),s=i(13),r=i(36),a=i(10),h=i(58),d=Object.getOwnPropertyDescriptor;e.f=i(9)?d:function(t,e){if(t=s(t),e=r(e,!0),h)try{return d(t,e)}catch(t){}if(a(t,e))return n(!o.f.call(t,e),t[e])}},function(t,e){},function(t,e,i){i(46)("asyncIterator")},function(t,e,i){i(46)("observable")},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(0,function(){function e(){return Po.apply(null,arguments)}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function n(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function s(t){return void 0===t}function r(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function a(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function h(t,e){var i,o=[];for(i=0;i0)for(i=0;i0?"future":"past"];return k(i)?i(e):i.replace(/%s/i,e)}function R(t,e){var i=t.toLowerCase();Go[i]=Go[i+"s"]=Go[e]=t}function L(t){return"string"==typeof t?Go[t]||Go[t.toLowerCase()]:void 0}function F(t){var e,i,o={};for(i in t)d(t,i)&&(e=L(i))&&(o[e]=t[i]);return o}function H(t,e){zo[t]=e}function Y(t){var e=[];for(var i in t)e.push({unit:i,priority:zo[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function j(t,e,i){var o=""+Math.abs(t),n=e-o.length;return(t>=0?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function G(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Bo[t]=n),e&&(Bo[e[0]]=function(){return j(n.apply(this,arguments),e[1],e[2])}),i&&(Bo[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function z(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function W(t){var e,i,o=t.match(Wo);for(e=0,i=o.length;e=0&&Vo.test(t);)t=t.replace(Vo,i),Vo.lastIndex=0,o-=1;return t}function B(t,e,i){un[t]=k(e)?e:function(t,o){return t&&i?i:e}}function q(t,e){return d(un,t)?un[t](e._strict,e._locale):new RegExp(X(t))}function X(t){return Z(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function Z(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function K(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),r(e)&&(o=function(t,i){i[e]=_(t)}),i=0;i=0?(a=new Date(t+400,e,i,o,n,s,r),isFinite(a.getFullYear())&&a.setFullYear(t)):a=new Date(t,e,i,o,n,s,r),a}function _t(t){var e;if(t<100&&t>=0){var i=Array.prototype.slice.call(arguments);i[0]=t+400,e=new Date(Date.UTC.apply(null,i)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function wt(t,e,i){var o=7+e-i;return-(7+_t(t,0,o).getUTCDay()-e)%7+o-1}function xt(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return d<=0?(s=t-1,r=Q(s)+d):d>Q(t)?(s=t+1,r=d-Q(t)):(s=t,r=d),{year:s,dayOfYear:r}}function Dt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return r<1?(n=t.year()-1,o=r+St(n,e,i)):r>St(t.year(),e,i)?(o=r-St(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function St(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return(Q(t)-o+n)/7}function kt(t){return Dt(t,this._week.dow,this._week.doy).week}function Tt(){return this._week.dow}function Ct(){return this._week.doy}function Mt(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ot(t){var e=Dt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Et(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function It(t,e){return t.slice(e,7).concat(t.slice(0,e))}function At(t,e){var o=i(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?It(o,this._week.dow):t?o[t.day()]:o}function Nt(t){return!0===t?It(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Rt(t){return!0===t?It(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin}function Lt(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=u([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=xn.call(this._weekdaysParse,r),-1!==n?n:null):"ddd"===e?(n=xn.call(this._shortWeekdaysParse,r),-1!==n?n:null):(n=xn.call(this._minWeekdaysParse,r),-1!==n?n:null):"dddd"===e?-1!==(n=xn.call(this._weekdaysParse,r))?n:-1!==(n=xn.call(this._shortWeekdaysParse,r))?n:(n=xn.call(this._minWeekdaysParse,r),-1!==n?n:null):"ddd"===e?-1!==(n=xn.call(this._shortWeekdaysParse,r))?n:-1!==(n=xn.call(this._weekdaysParse,r))?n:(n=xn.call(this._minWeekdaysParse,r),-1!==n?n:null):-1!==(n=xn.call(this._minWeekdaysParse,r))?n:-1!==(n=xn.call(this._weekdaysParse,r))?n:(n=xn.call(this._shortWeekdaysParse,r),-1!==n?n:null)}function Ft(t,e,i){var o,n,s;if(this._weekdaysParseExact)return Lt.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=u([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function Ht(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Et(t,this.localeData()),this.add(t-e,"d")):e}function Yt(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function jt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function Gt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Vt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=An),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function zt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Vt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Nn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Wt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Vt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Rn),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Vt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=u([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=Z(a[e]),h[e]=Z(h[e]),d[e]=Z(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ut(){return this.hours()%12||12}function Bt(){return this.hours()||24}function qt(t,e){G(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Xt(t,e){return e._meridiemParse}function Zt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Kt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Jt(t){return t?t.toLowerCase().replace("_","-"):t}function $t(t){for(var e,i,o,n,s=0;s0;){if(o=Qt(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&w(n,i,!0)>=e-1)break;e--}s++}return Ln}function Qt(e){var i=null;if(!jn[e]&&void 0!==t&&t&&t.exports)try{i=Ln._abbr;!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),te(i)}catch(t){}return jn[e]}function te(t,e){var i;return t&&(i=s(e)?oe(t):ee(t,e),i?Ln=i:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Ln._abbr}function ee(t,e){if(null!==e){var i,o=Yn;if(e.abbr=t,null!=jn[t])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),o=jn[t]._config;else if(null!=e.parentLocale)if(null!=jn[e.parentLocale])o=jn[e.parentLocale]._config;else{if(null==(i=Qt(e.parentLocale)))return Gn[e.parentLocale]||(Gn[e.parentLocale]=[]),Gn[e.parentLocale].push({name:t,config:e}),null;o=i._config}return jn[t]=new M(C(o,e)),Gn[t]&&Gn[t].forEach(function(t){ee(t.name,t.config)}),te(t),jn[t]}return delete jn[t],null}function ie(t,e){if(null!=e){var i,o,n=Yn;o=Qt(t),null!=o&&(n=o._config),e=C(n,e),i=new M(e),i.parentLocale=jn[t],jn[t]=i,te(t)}else null!=jn[t]&&(null!=jn[t].parentLocale?jn[t]=jn[t].parentLocale:null!=jn[t]&&delete jn[t]);return jn[t]}function oe(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Ln;if(!i(t)){if(e=Qt(t))return e;t=[t]}return $t(t)}function ne(){return Lo(jn)}function se(t){var e,i=t._a;return i&&-2===c(t).overflow&&(e=i[mn]<0||i[mn]>11?mn:i[fn]<1||i[fn]>ht(i[cn],i[mn])?fn:i[gn]<0||i[gn]>24||24===i[gn]&&(0!==i[vn]||0!==i[yn]||0!==i[bn])?gn:i[vn]<0||i[vn]>59?vn:i[yn]<0||i[yn]>59?yn:i[bn]<0||i[bn]>999?bn:-1,c(t)._overflowDayOfYear&&(efn)&&(e=fn),c(t)._overflowWeeks&&-1===e&&(e=_n),c(t)._overflowWeekday&&-1===e&&(e=wn),c(t).overflow=e),t}function re(t,e,i){return null!=t?t:null!=e?e:i}function ae(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function he(t){var e,i,o,n,s,r=[];if(!t._d){for(o=ae(t),t._w&&null==t._a[fn]&&null==t._a[mn]&&de(t),null!=t._dayOfYear&&(s=re(t._a[cn],o[cn]),(t._dayOfYear>Q(s)||0===t._dayOfYear)&&(c(t)._overflowDayOfYear=!0),i=_t(s,0,t._dayOfYear),t._a[mn]=i.getUTCMonth(),t._a[fn]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=r[e]=o[e];for(;e<7;e++)t._a[e]=r[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[gn]&&0===t._a[vn]&&0===t._a[yn]&&0===t._a[bn]&&(t._nextDay=!0,t._a[gn]=0),t._d=(t._useUTC?_t:bt).apply(null,r),n=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[gn]=24),t._w&&void 0!==t._w.d&&t._w.d!==n&&(c(t).weekdayMismatch=!0)}}function de(t){var e,i,o,n,s,r,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)s=1,r=4,i=re(e.GG,t._a[cn],Dt(Te(),1,4).year),o=re(e.W,1),((n=re(e.E,1))<1||n>7)&&(h=!0);else{s=t._locale._week.dow,r=t._locale._week.doy;var d=Dt(Te(),s,r);i=re(e.gg,t._a[cn],d.year),o=re(e.w,d.week),null!=e.d?((n=e.d)<0||n>6)&&(h=!0):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s}o<1||o>St(i,s,r)?c(t)._overflowWeeks=!0:null!=h?c(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[cn]=a.year,t._dayOfYear=a.dayOfYear)}function le(t){var e,i,o,n,s,r,a=t._i,h=zn.exec(a)||Wn.exec(a);if(h){for(c(t).iso=!0,e=0,i=Un.length;e0&&c(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Bo[s]?(o?c(t).empty=!1:c(t).unusedTokens.push(s),$(s,o,t)):t._strict&&!o&&c(t).unusedTokens.push(s);c(t).charsLeftOver=h-d,a.length>0&&c(t).unusedInput.push(a),t._a[gn]<=12&&!0===c(t).bigHour&&t._a[gn]>0&&(c(t).bigHour=void 0),c(t).parsedDateParts=t._a.slice(0),c(t).meridiem=t._meridiem,t._a[gn]=be(t._locale,t._a[gn],t._meridiem),he(t),se(t)}function be(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function _e(t){var e,i,o,n,s;if(0===t._f.length)return c(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function qe(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(g(t,this),t=De(t),t._a){var e=t._isUTC?u(t._a):Te(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Xe(){return!!this.isValid()&&!this._isUTC}function Ze(){return!!this.isValid()&&this._isUTC}function Ke(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Je(t,e){var i,o,n,s=t,a=null;return Ne(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:r(t)?(s={},e?s[e]=t:s.milliseconds=t):(a=es.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:_(a[fn])*i,h:_(a[gn])*i,m:_(a[vn])*i,s:_(a[yn])*i,ms:_(Re(1e3*a[bn]))*i}):(a=is.exec(t))?(i="-"===a[1]?-1:1,s={y:$e(a[2],i),M:$e(a[3],i),w:$e(a[4],i),d:$e(a[5],i),h:$e(a[6],i),m:$e(a[7],i),s:$e(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=ti(Te(s.from),Te(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Ae(s),Ne(t)&&d(t,"_locale")&&(o._locale=t._locale),o}function $e(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function Qe(t,e){var i={};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function ti(t,e){var i;return t.isValid()&&e.isValid()?(e=He(e,t),t.isBefore(e)?i=Qe(t,e):(i=Qe(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ei(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(S(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Je(i,o),ii(this,n,t),this}}function ii(t,i,o,n){var s=i._milliseconds,r=Re(i._days),a=Re(i._months);t.isValid()&&(n=null==n||n,a&&ct(t,ot(t,"Month")+a*o),r&&nt(t,"Date",ot(t,"Date")+r*o),s&&t._d.setTime(t._d.valueOf()+s*o),n&&e.updateOffset(t,r||a))}function oi(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function ni(t,i){var o=t||Te(),n=He(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(k(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,Te(o)))}function si(){return new v(this)}function ri(t,e){var i=y(t)?t:Te(t);return!(!this.isValid()||!i.isValid())&&(e=L(e)||"millisecond","millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()9999?V(i,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):k(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",V(i,"Z")):V(i,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function gi(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(i+o+"-MM-DD[T]HH:mm:ss.SSS"+n)}function vi(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=V(this,t);return this.localeData().postformat(i)}function yi(t,e){return this.isValid()&&(y(t)&&t.isValid()||Te(t).isValid())?Je({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function bi(t){return this.from(Te(),t)}function _i(t,e){return this.isValid()&&(y(t)&&t.isValid()||Te(t).isValid())?Je({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function wi(t){return this.to(Te(),t)}function xi(t){var e;return void 0===t?this._locale._abbr:(e=oe(t),null!=e&&(this._locale=e),this)}function Di(){return this._locale}function Si(t,e){return(t%e+e)%e}function ki(t,e,i){return t<100&&t>=0?new Date(t+400,e,i)-ds:new Date(t,e,i).valueOf()}function Ti(t,e,i){return t<100&&t>=0?Date.UTC(t+400,e,i)-ds:Date.UTC(t,e,i)}function Ci(t){var i;if(void 0===(t=L(t))||"millisecond"===t||!this.isValid())return this;var o=this._isUTC?Ti:ki;switch(t){case"year":i=o(this.year(),0,1);break;case"quarter":i=o(this.year(),this.month()-this.month()%3,1);break;case"month":i=o(this.year(),this.month(),1);break;case"week":i=o(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":i=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":i=o(this.year(),this.month(),this.date());break;case"hour":i=this._d.valueOf(),i-=Si(i+(this._isUTC?0:this.utcOffset()*as),hs);break;case"minute":i=this._d.valueOf(),i-=Si(i,as);break;case"second":i=this._d.valueOf(),i-=Si(i,rs)}return this._d.setTime(i),e.updateOffset(this,!0),this}function Mi(t){var i;if(void 0===(t=L(t))||"millisecond"===t||!this.isValid())return this;var o=this._isUTC?Ti:ki;switch(t){case"year":i=o(this.year()+1,0,1)-1;break;case"quarter":i=o(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":i=o(this.year(),this.month()+1,1)-1;break;case"week":i=o(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":i=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":i=o(this.year(),this.month(),this.date()+1)-1;break;case"hour":i=this._d.valueOf(),i+=hs-Si(i+(this._isUTC?0:this.utcOffset()*as),hs)-1;break;case"minute":i=this._d.valueOf(),i+=as-Si(i,as)-1;break;case"second":i=this._d.valueOf(),i+=rs-Si(i,rs)-1}return this._d.setTime(i),e.updateOffset(this,!0),this}function Oi(){return this._d.valueOf()-6e4*(this._offset||0)}function Ei(){return Math.floor(this.valueOf()/1e3)}function Pi(){return new Date(this.valueOf())}function Ii(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Ai(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Ni(){return this.isValid()?this.toISOString():null}function Ri(){return m(this)}function Li(){return l({},c(this))}function Fi(){return c(this).overflow}function Hi(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Yi(t,e){G(0,[t,t.length],0,e)}function ji(t){return Vi.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Gi(t){return Vi.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function zi(){return St(this.year(),1,4)}function Wi(){var t=this.localeData()._week;return St(this.year(),t.dow,t.doy)}function Vi(t,e,i,o,n){var s;return null==t?Dt(this,o,n).year:(s=St(t,o,n),e>s&&(e=s),Ui.call(this,t,e,i,o,n))}function Ui(t,e,i,o,n){var s=xt(t,e,i,o,n),r=_t(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Bi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function qi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Xi(t,e){e[bn]=_(1e3*("0."+t))}function Zi(){return this._isUTC?"UTC":""}function Ki(){return this._isUTC?"Coordinated Universal Time":""}function Ji(t){return Te(1e3*t)}function $i(){return Te.apply(null,arguments).parseZone()}function Qi(t){return t}function to(t,e,i,o){var n=oe(),s=u().set(o,e);return n[i](s,t)}function eo(t,e,i){if(r(t)&&(e=t,t=void 0),t=t||"",null!=e)return to(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=to(t,o,i,"month");return n}function io(t,e,i,o){"boolean"==typeof t?(r(e)&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,r(e)&&(i=e,e=void 0),e=e||"");var n=oe(),s=t?n._week.dow:0;if(null!=i)return to(e,(i+s)%7,o,"day");var a,h=[];for(a=0;a<7;a++)h[a]=to(e,(a+s)%7,o,"day");return h}function oo(t,e){return eo(t,e,"months")}function no(t,e){return eo(t,e,"monthsShort")}function so(t,e,i){return io(t,e,i,"weekdays")}function ro(t,e,i){return io(t,e,i,"weekdaysShort")}function ao(t,e,i){return io(t,e,i,"weekdaysMin")}function ho(){var t=this._data;return this._milliseconds=vs(this._milliseconds),this._days=vs(this._days),this._months=vs(this._months),t.milliseconds=vs(t.milliseconds),t.seconds=vs(t.seconds),t.minutes=vs(t.minutes),t.hours=vs(t.hours),t.months=vs(t.months),t.years=vs(t.years),this}function lo(t,e,i,o){var n=Je(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function uo(t,e){return lo(this,t,e,1)}function po(t,e){return lo(this,t,e,-1)}function co(t){return t<0?Math.floor(t):Math.ceil(t)}function mo(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*co(go(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=b(s/1e3),h.seconds=t%60,e=b(t/60),h.minutes=e%60,i=b(e/60),h.hours=i%24,r+=b(i/24),n=b(fo(r)),a+=n,r-=co(go(n)),o=b(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function fo(t){return 4800*t/146097}function go(t){return 146097*t/4800}function vo(t){if(!this.isValid())return NaN;var e,i,o=this._milliseconds;if("month"===(t=L(t))||"quarter"===t||"year"===t)switch(e=this._days+o/864e5,i=this._months+fo(e),t){case"month":return i;case"quarter":return i/3;case"year":return i/12}else switch(e=this._days+Math.round(go(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function yo(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN}function bo(t){return function(){return this.as(t)}}function _o(){return Je(this)}function wo(t){return t=L(t),this.isValid()?this[t+"s"]():NaN}function xo(t){return function(){return this.isValid()?this._data[t]:NaN}}function Do(){return b(this.days()/7)}function So(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function ko(t,e,i){var o=Je(t).abs(),n=Ns(o.as("s")),s=Ns(o.as("m")),r=Ns(o.as("h")),a=Ns(o.as("d")),h=Ns(o.as("M")),d=Ns(o.as("y")),l=n<=Rs.ss&&["s",n]||n0,l[4]=i,So.apply(null,l)}function To(t){return void 0===t?Ns:"function"==typeof t&&(Ns=t,!0)}function Co(t,e){return void 0!==Rs[t]&&(void 0===e?Rs[t]:(Rs[t]=e,"s"===t&&(Rs.ss=e-1),!0))}function Mo(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=ko(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Oo(t){return(t>0)-(t<0)||+t}function Eo(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i,o=Ls(this._milliseconds)/1e3,n=Ls(this._days),s=Ls(this._months);t=b(o/60),e=b(t/60),o%=60,t%=60,i=b(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o?o.toFixed(3).replace(/\.?0+$/,""):"",p=this.asSeconds();if(!p)return"P0D";var c=p<0?"-":"",m=Oo(this._months)!==Oo(p)?"-":"",f=Oo(this._days)!==Oo(p)?"-":"",g=Oo(this._milliseconds)!==Oo(p)?"-":"";return c+"P"+(r?m+r+"Y":"")+(a?m+a+"M":"")+(h?f+h+"D":"")+(d||l||u?"T":"")+(d?g+d+"H":"")+(l?g+l+"M":"")+(u?g+u+"S":"")}var Po,Io;Io=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o68?1900:2e3)};var xn,Dn=it("FullYear",!0);xn=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;ethis?this:t:f()}),$n=function(){return Date.now?Date.now():+new Date},Qn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Le("Z",":"),Le("ZZ",""),B("Z",hn),B("ZZ",hn),K(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Fe(hn,t)});var ts=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var es=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,is=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Je.fn=Ae.prototype,Je.invalid=Ie;var os=ei(1,"add"),ns=ei(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ss=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)}),rs=1e3,as=60*rs,hs=60*as,ds=3506328*hs;G(0,["gg",2],0,function(){return this.weekYear()%100}),G(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Yi("gggg","weekYear"),Yi("ggggg","weekYear"),Yi("GGGG","isoWeekYear"),Yi("GGGGG","isoWeekYear"),R("weekYear","gg"),R("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),B("G",rn),B("g",rn),B("GG",$o,Xo),B("gg",$o,Xo),B("GGGG",on,Ko),B("gggg",on,Ko),B("GGGGG",nn,Jo),B("ggggg",nn,Jo),J(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=_(t)}),J(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),G("Q",0,"Qo","quarter"),R("quarter","Q"),H("quarter",7),B("Q",qo),K("Q",function(t,e){e[mn]=3*(_(t)-1)}),G("D",["DD",2],"Do","date"),R("date","D"),H("date",9),B("D",$o),B("DD",$o,Xo),B("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),K(["D","DD"],fn),K("Do",function(t,e){e[fn]=_(t.match($o)[0])});var ls=it("Date",!0);G("DDD",["DDDD",3],"DDDo","dayOfYear"),R("dayOfYear","DDD"),H("dayOfYear",4),B("DDD",en),B("DDDD",Zo),K(["DDD","DDDD"],function(t,e,i){i._dayOfYear=_(t)}),G("m",["mm",2],0,"minute"),R("minute","m"),H("minute",14),B("m",$o),B("mm",$o,Xo),K(["m","mm"],vn);var us=it("Minutes",!1);G("s",["ss",2],0,"second"),R("second","s"),H("second",15),B("s",$o),B("ss",$o,Xo),K(["s","ss"],yn);var ps=it("Seconds",!1);G("S",0,0,function(){return~~(this.millisecond()/100)}),G(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),G(0,["SSS",3],0,"millisecond"),G(0,["SSSS",4],0,function(){return 10*this.millisecond()}),G(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),G(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),G(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),G(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),G(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),R("millisecond","ms"),H("millisecond",16),B("S",en,qo),B("SS",en,Xo),B("SSS",en,Zo);var cs;for(cs="SSSS";cs.length<=9;cs+="S")B(cs,sn);for(cs="S";cs.length<=9;cs+="S")K(cs,Xi);var ms=it("Milliseconds",!1);G("z",0,0,"zoneAbbr"),G("zz",0,0,"zoneName");var fs=v.prototype;fs.add=os,fs.calendar=ni,fs.clone=si,fs.diff=pi,fs.endOf=Mi,fs.format=vi,fs.from=yi,fs.fromNow=bi,fs.to=_i,fs.toNow=wi,fs.get=st,fs.invalidAt=Fi,fs.isAfter=ri,fs.isBefore=ai,fs.isBetween=hi,fs.isSame=di,fs.isSameOrAfter=li,fs.isSameOrBefore=ui,fs.isValid=Ri,fs.lang=ss,fs.locale=xi,fs.localeData=Di,fs.max=Jn,fs.min=Kn,fs.parsingFlags=Li,fs.set=rt,fs.startOf=Ci,fs.subtract=ns,fs.toArray=Ii,fs.toObject=Ai,fs.toDate=Pi,fs.toISOString=fi,fs.inspect=gi,fs.toJSON=Ni,fs.toString=mi,fs.unix=Ei,fs.valueOf=Oi,fs.creationData=Hi,fs.year=Dn,fs.isLeapYear=et,fs.weekYear=ji,fs.isoWeekYear=Gi,fs.quarter=fs.quarters=Bi,fs.month=mt,fs.daysInMonth=ft,fs.week=fs.weeks=Mt,fs.isoWeek=fs.isoWeeks=Ot,fs.weeksInYear=Wi,fs.isoWeeksInYear=zi,fs.date=ls,fs.day=fs.days=Ht,fs.weekday=Yt,fs.isoWeekday=jt,fs.dayOfYear=qi,fs.hour=fs.hours=Hn,fs.minute=fs.minutes=us,fs.second=fs.seconds=ps,fs.millisecond=fs.milliseconds=ms,fs.utcOffset=je,fs.utc=ze,fs.local=We,fs.parseZone=Ve,fs.hasAlignedHourOffset=Ue,fs.isDST=Be,fs.isLocal=Xe,fs.isUtcOffset=Ze,fs.isUtc=Ke,fs.isUTC=Ke,fs.zoneAbbr=Zi,fs.zoneName=Ki,fs.dates=D("dates accessor is deprecated. Use date instead.",ls),fs.months=D("months accessor is deprecated. Use month instead",mt),fs.years=D("years accessor is deprecated. Use year instead",Dn),fs.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ge),fs.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",qe);var gs=M.prototype;gs.calendar=O,gs.longDateFormat=E,gs.invalidDate=P,gs.ordinal=I,gs.preparse=Qi,gs.postformat=Qi,gs.relativeTime=A,gs.pastFuture=N,gs.set=T,gs.months=dt,gs.monthsShort=lt,gs.monthsParse=pt,gs.monthsRegex=vt,gs.monthsShortRegex=gt,gs.week=kt,gs.firstDayOfYear=Ct,gs.firstDayOfWeek=Tt,gs.weekdays=At,gs.weekdaysMin=Rt,gs.weekdaysShort=Nt,gs.weekdaysParse=Ft,gs.weekdaysRegex=Gt,gs.weekdaysShortRegex=zt,gs.weekdaysMinRegex=Wt,gs.isPM=Zt,gs.meridiem=Kt,te("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),e.lang=D("moment.lang is deprecated. Use moment.locale instead.",te),e.langData=D("moment.langData is deprecated. Use moment.localeData instead.",oe);var vs=Math.abs,ys=bo("ms"),bs=bo("s"),_s=bo("m"),ws=bo("h"),xs=bo("d"),Ds=bo("w"),Ss=bo("M"),ks=bo("Q"),Ts=bo("y"),Cs=xo("milliseconds"),Ms=xo("seconds"),Os=xo("minutes"),Es=xo("hours"),Ps=xo("days"),Is=xo("months"),As=xo("years"),Ns=Math.round,Rs={ss:44,s:45,m:45,h:22,d:26,M:11},Ls=Math.abs,Fs=Ae.prototype;return Fs.isValid=Pe,Fs.abs=ho,Fs.add=uo,Fs.subtract=po,Fs.as=vo,Fs.asMilliseconds=ys,Fs.asSeconds=bs,Fs.asMinutes=_s,Fs.asHours=ws,Fs.asDays=xs,Fs.asWeeks=Ds,Fs.asMonths=Ss,Fs.asQuarters=ks,Fs.asYears=Ts,Fs.valueOf=yo,Fs._bubble=mo,Fs.clone=_o,Fs.get=wo,Fs.milliseconds=Cs,Fs.seconds=Ms,Fs.minutes=Os,Fs.hours=Es,Fs.days=Ps,Fs.weeks=Do,Fs.months=Is,Fs.years=As,Fs.humanize=Mo,Fs.toISOString=Eo,Fs.toString=Eo,Fs.toJSON=Eo,Fs.locale=xi,Fs.localeData=Di,Fs.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Eo),Fs.lang=ss,G("X",0,0,"unix"),G("x",0,0,"valueOf"),B("x",rn),B("X",dn),K("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),K("x",function(t,e,i){i._d=new Date(_(t))}),e.version="2.24.0",function(t){Po=t}(Te),e.fn=fs,e.min=Me,e.max=Oe,e.now=$n,e.utc=u,e.unix=Ji,e.months=oo,e.isDate=a,e.locale=te,e.invalid=f,e.duration=Je,e.isMoment=y,e.weekdays=so,e.parseZone=$i,e.localeData=oe,e.isDuration=Ne,e.monthsShort=no,e.weekdaysMin=ao,e.defineLocale=ee,e.updateLocale=ie,e.locales=ne,e.weekdaysShort=ro,e.normalizeUnits=L,e.relativeTimeRounding=To,e.relativeTimeThreshold=Co,e.calendarFormat=oi,e.prototype=fs,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},e})}).call(e,i(124)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=125},function(t,e,i){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){n<16&&(e[o+n++]=u[t])});n<16;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:f,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:v+1,d=a-g+(h-v)/1e4;if(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||a>g)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");g=a,v=h,f=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var p=t.node||m,c=0;c<6;c++)s[n+c]=p[c];return e||o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;a<16;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:void 0!==e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},p=0;p<256;p++)l[p]=(p+256).toString(16).substr(1),u[l[p]]=p;var c=r(),m=[1|c[0],c[1],c[2],c[3],c[4],c[5]],f=16383&(c[6]<<8|c[7]),g=0,v=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,i(127))},function(t,e){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){var o=i(2),n=o.JSON||(o.JSON={stringify:JSON.stringify});t.exports=function(t){return n.stringify.apply(n,arguments)}},function(t,e,i){function o(t,e,i,n){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof d||i instanceof l)&&i instanceof Object){var s=n;n=i,i=s}n&&n.throttleRedraw&&console.warn('Timeline option "throttleRedraw" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.');var r=this;if(this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"bottom"},moment:a,width:null,height:null,maxHeight:null,minHeight:null},this.options=h.deepExtend({},this.defaultOptions),this._create(t),!n||n&&void 0===n.rtl){this.dom.root.style.visibility="hidden";for(var p,f=this.dom.root;!p&&f;)p=window.getComputedStyle(f,null).direction,f=f.parentElement;this.options.rtl=p&&"rtl"==p.toLowerCase()}else this.options.rtl=n.rtl;this.options.rollingMode=n&&n.rollingMode,this.options.onInitialDrawComplete=n&&n.onInitialDrawComplete,this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return r.timeAxis.step.scale},getStep:function(){return r.timeAxis.step.step},toScreen:r._toScreen.bind(r),toGlobalScreen:r._toGlobalScreen.bind(r),toTime:r._toTime.bind(r),toGlobalTime:r._toGlobalTime.bind(r)}},this.range=new u(this.body,this.options),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new c(this.body,this.options),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new m(this.body,this.options),this.components.push(this.currentTime),this.itemSet=new g(this.body,this.options),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.dom.root.onclick=function(t){r.emit("click",r.getEventProperties(t))},this.dom.root.ondblclick=function(t){r.emit("doubleClick",r.getEventProperties(t))},this.dom.root.oncontextmenu=function(t){r.emit("contextmenu",r.getEventProperties(t))},this.dom.root.onmouseover=function(t){r.emit("mouseOver",r.getEventProperties(t))},window.PointerEvent?(this.dom.root.onpointerdown=function(t){r.emit("mouseDown",r.getEventProperties(t))},this.dom.root.onpointermove=function(t){r.emit("mouseMove",r.getEventProperties(t))},this.dom.root.onpointerup=function(t){r.emit("mouseUp",r.getEventProperties(t))}):(this.dom.root.onmousemove=function(t){r.emit("mouseMove",r.getEventProperties(t))},this.dom.root.onmousedown=function(t){r.emit("mouseDown",r.getEventProperties(t))},this.dom.root.onmouseup=function(t){r.emit("mouseUp",r.getEventProperties(t))}),this.initialFitDone=!1,this.on("changed",function(){if(null!=this.itemsData&&!this.options.rollingMode){if(!r.initialFitDone)if(r.initialFitDone=!0,void 0!=r.options.start||void 0!=r.options.end){if(void 0==r.options.start||void 0==r.options.end)var t=r.getItemRange();var e=void 0!=r.options.start?r.options.start:t.min,i=void 0!=r.options.end?r.options.end:t.max;r.setWindow(e,i,{animation:!1})}else r.fit({animation:!1});!r.initialDrawDone&&r.initialRangeChangeDone&&(r.initialDrawDone=!0,r.dom.root.style.visibility="visible",r.options.onInitialDrawComplete&&setTimeout(function(){return r.options.onInitialDrawComplete()},0))}}),n&&this.setOptions(n),i&&this.setGroups(i),e&&this.setItems(e),this._redraw()}function n(t){return h.convert(t.data.start,"Date").valueOf()}function s(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return h.convert(e,"Date").valueOf()}function r(t,e){var i=t.props.leftContainer.height,o=t.props.left.height,n=e.parent,s=n.top,r=!0,a=t.timeAxis.options.orientation.axis,h=function(){return"bottom"==a?n.height-e.top-e.height:e.top},d=-1*t._getScrollTop(),l=s+h(),u=e.height;return ld+i?s+=h()+u-i+t.itemSet.options.margin.item.vertical:r=!1,s=Math.min(s,o-i),{shouldScroll:r,scrollOffset:s,itemTop:l}}var a=i(3),h=i(0),d=i(15),l=i(21),u=i(48),p=i(49),c=i(29),m=i(51),f=i(30),g=i(70),v=i(33).printStyle,y=i(75).allOptions,b=i(75).configureOptions,_=i(76).default,w=i(33).default;o.prototype=new p,o.prototype._createConfigurator=function(){return new _(this,this.dom.container,b)},o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){if(!0===w.validate(t,y)&&console.log("%cErrors have been found in the supplied options object.",v),p.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var e=this.itemsData;if(e){var i=this.getSelection();this.setItems(null),this.setItems(e),this.setSelection(i)}}},o.prototype.setItems=function(t){var e;e=t?t instanceof d||t instanceof l?t:new d(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e)},o.prototype.setGroups=function(t){var e;if(t){var i=function(t){return!1!==t.visible};e=t instanceof d||t instanceof l?new l(t,{filter:i}):new d(t.filter(i))}else e=null;this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||es)&&(s=i)}),null!==n&&null!==s){var a=this,h=this.itemSet.items[i[0]],d=-1*this._getScrollTop(),l=null,u=function(t,e,i){var o=r(a,h);if(l||(l=o),l.itemTop!=o.itemTop||l.shouldScroll){l.itemTop!=o.itemTop&&o.shouldScroll&&(l=o,d=-1*a._getScrollTop());var n=d,s=l.scrollOffset,u=i?s:n+(s-n)*t;a._setScrollTop(-u),e||a._redraw()}},p=function(){var t=r(a,h);t.shouldScroll&&t.itemTop!=l.itemTop&&(a._setScrollTop(-t.scrollOffset),a._redraw())},c=function(){p(),setTimeout(p,100)},m=(n+s)/2,f=Math.max(this.range.end-this.range.start,1.1*(s-n)),g=!e||void 0===e.animation||e.animation;g||(l={shouldScroll:!1,scrollOffset:-1,itemTop:-1}),this.range.setRange(m-f/2,m+f/2,{animation:g},c,u)}}},o.prototype.fit=function(t,e){var i,o=!t||void 0===t.animation||t.animation,n=this.itemsData&&this.itemsData.getDataSet();1===n.length&&void 0===n.get()[0].end?(i=this.getDataRange(),this.moveTo(i.min.valueOf(),{animation:o},e)):(i=this.getItemRange(),this.range.setRange(i.min,i.max,{animation:o},e))},o.prototype.getItemRange=function(){var t=this.getDataRange(),e=null!==t.min?t.min.valueOf():null,i=null!==t.max?t.max.valueOf():null,o=null,r=null;if(null!=e&&null!=i){var a=i-e;a<=0&&(a=10);var d=a/this.props.center.width,l={},u=0;h.forEach(this.itemSet.items,function(t,e){if(t.groupShowing){l[e]=t.redraw(!0),u=l[e].length}});if(u>0)for(var p=0;pi&&(i=h,r=t)}.bind(this)),o&&r){var c=o.getWidthLeft()+10,m=r.getWidthRight()+10,f=this.props.center.width-c-m;f>0&&(this.options.rtl?(e=n(o)-m*a/f,i=s(r)+c*a/f):(e=n(o)-c*a/f,i=s(r)+m*a/f))}}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=h.convert(i.start,"Date").valueOf(),n=h.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||oe)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e,i=t.center?t.center.x:t.clientX,o=t.center?t.center.y:t.clientY;e=this.options.rtl?h.getAbsoluteRight(this.dom.centerContainer)-i:i-h.getAbsoluteLeft(this.dom.centerContainer);var n=o-h.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=f.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),p=this._toTime(e),c=d?d(p,l,u):p,m=h.getTarget(t),g=null;return null!=s?g="item":null!=a?g="custom-time":h.hasParent(m,this.timeAxis.dom.foreground)?g="axis":this.timeAxis2&&h.hasParent(m,this.timeAxis2.dom.foreground)?g="axis":h.hasParent(m,this.itemSet.dom.labelSet)?g="group-label":h.hasParent(m,this.currentTime.bar)?g="current-time":h.hasParent(m,this.dom.center)&&(g="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:g,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:e,y:n,time:p,snappedTime:c}},o.prototype.toggleRollingMode=function(){this.range.rolling?this.range.stopRolling():(void 0==this.options.rollingMode&&this.setOptions(this.options),this.range.startRolling())},t.exports=o},function(t,e,i){var o,n,s;!function(i){n=[],o=i,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var o=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof o&&(e.srcEvent.stopPropagation=function(){o(),e.stopPropagation()}),e.firstTarget=t;for(var n=t;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;/*! Hammer.JS - v2.0.7 - 2016-04-22 * http://hammerjs.github.io/ * * Copyright (c) 2016 Jorik Tangelder; * Licensed under the MIT license */ -!function(n,s,r,a){function h(t,e,i){return setTimeout(c(t,i),e)}function d(t,e,i){return!!Array.isArray(t)&&(l(t,i[e],i),!0)}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function p(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&mt(o,i)}function c(t,e){return function(){return t.apply(e,arguments)}}function m(t,e){return typeof t==vt?t.apply(e?e[0]||a:a,e):t}function f(t,e){return t===a?e:t}function g(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function v(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function S(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=N(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=A(o);e.timeStamp=_t(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=H(a,h),e.distance=F(a,h),P(i,e),e.offsetDirection=L(e.deltaX,e.deltaY);var d=R(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=bt(d.x)>bt(d.y)?d.x:d.y,e.scale=r?Y(r.pointers,o):1,e.rotation=r?j(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,I(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Ot&&s.eventType!==Pt||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function I(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=It&&(h>Mt||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,u=R(h,d,l);o=u.x,n=u.y,i=bt(u.x)>bt(u.y)?u.x:u.y,s=L(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function N(t){for(var e=[],i=0;i=bt(e)?t<0?At:Rt:e<0?Lt:Ft}function F(t,e,i){i||(i=Gt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function H(t,e,i){i||(i=Gt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function j(t,e){return H(e[1],e[0],zt)+H(t[1],t[0],zt)}function Y(t,e){return F(e[0],e[1],zt)/F(t[0],t[1],zt)}function G(){this.evEl=Vt,this.evWin=Bt,this.pressed=!1,T.apply(this,arguments)}function z(){this.evEl=Xt,this.evWin=Zt,T.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function W(){this.evTarget=Jt,this.evWin=$t,this.started=!1,T.apply(this,arguments)}function V(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Pt|It)&&(i=D(i.concat(o),"identifier",!0)),[i,o]}function B(){this.evTarget=te,this.targetIds={},T.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Ot|Et)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===Ot)for(n=0;n-1&&o.splice(t,1)};setTimeout(n,ee)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,o=this.state;o=me&&e(i.options.event+tt(o))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&n&e.direction},attrTest:function(t){return ot.prototype.attrTest.call(this,t)&&(this.state&pe||!(this.state&pe)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),p(st,ot,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&pe)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),p(rt,Q,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(Pt|It)&&!n)this.reset();else if(t.eventType&Ot)this.reset(),this._timer=h(function(){this.state=fe,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return fe;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===fe&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=_t(),this.manager.emit(this.options.event,this._input)))}}),p(at,ot,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&pe)}}),p(ht,ot,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ht|jt,pointers:1},getTouchAction:function(){return nt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Ht|jt)?e=t.overallVelocity:i&Ht?e=t.overallVelocityX:i&jt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&bt(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(dt,Q,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancen-this.padding&&(a=!0),s=a?this.x-i:this.x,r=h?this.y-e:this.y}else r=this.y-e,r+e+this.padding>o&&(r=o-e-this.padding),rn&&(s=n-i-this.padding),s0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,d.default)(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),!0===p.isString(t)){if(!0===p.isValidRGB(t)){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(!0===p.isValidRGBA(t)){var r=t.substr(5).substr(0,t.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===p.isValidHex(t)){var a=p.hexToRGB(t);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this;!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=p.extend({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=p.extend({},t)),this.color=t;var e=p.RGBToHSV(t.r,t.g,t.b),i=2*Math.PI,o=this.r*e.s,n=this.centerCoordinates.x+o*Math.sin(i*e.h),s=this.centerCoordinates.y+o*Math.cos(i*e.h);this.colorPickerSelector.style.left=n-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=s-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=p.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=p.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=p.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(!1===this.generated){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var a=2*Math.PI/360,h=1/this.r,d=void 0;for(s=0;s<360;s++)for(r=0;rr?r:t,e=null==e?r:e0&&l.push(u.screenToValue(n)),!c.hidden&&this.itemsData.length>0&&l.push(c.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new v(this,this.dom.container,g)},t.exports=o}])}); \ No newline at end of file +!function(n,s,r,a){function h(t,e,i){return setTimeout(c(t,i),e)}function d(t,e,i){return!!Array.isArray(t)&&(l(t,i[e],i),!0)}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function p(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&mt(o,i)}function c(t,e){return function(){return t.apply(e,arguments)}}function m(t,e){return typeof t==vt?t.apply(e?e[0]||a:a,e):t}function f(t,e){return t===a?e:t}function g(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function v(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function S(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=A(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=N(o);e.timeStamp=_t(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=H(a,h),e.distance=F(a,h),P(i,e),e.offsetDirection=L(e.deltaX,e.deltaY);var d=R(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=bt(d.x)>bt(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?Y(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,I(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Ot&&s.eventType!==Pt||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function I(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=It&&(h>Mt||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,u=R(h,d,l);o=u.x,n=u.y,i=bt(u.x)>bt(u.y)?u.x:u.y,s=L(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function A(t){for(var e=[],i=0;i=bt(e)?t<0?Nt:Rt:e<0?Lt:Ft}function F(t,e,i){i||(i=Gt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function H(t,e,i){i||(i=Gt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function Y(t,e){return H(e[1],e[0],zt)+H(t[1],t[0],zt)}function j(t,e){return F(e[0],e[1],zt)/F(t[0],t[1],zt)}function G(){this.evEl=Vt,this.evWin=Ut,this.pressed=!1,C.apply(this,arguments)}function z(){this.evEl=Xt,this.evWin=Zt,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function W(){this.evTarget=Jt,this.evWin=$t,this.started=!1,C.apply(this,arguments)}function V(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Pt|It)&&(i=D(i.concat(o),"identifier",!0)),[i,o]}function U(){this.evTarget=te,this.targetIds={},C.apply(this,arguments)}function B(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Ot|Et)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===Ot)for(n=0;n-1&&o.splice(t,1)};setTimeout(n,ee)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,o=this.state;o=me&&e(i.options.event+tt(o))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&n&e.direction},attrTest:function(t){return ot.prototype.attrTest.call(this,t)&&(this.state&pe||!(this.state&pe)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),p(st,ot,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&pe)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),p(rt,Q,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(Pt|It)&&!n)this.reset();else if(t.eventType&Ot)this.reset(),this._timer=h(function(){this.state=fe,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return fe;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===fe&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=_t(),this.manager.emit(this.options.event,this._input)))}}),p(at,ot,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&pe)}}),p(ht,ot,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ht|Yt,pointers:1},getTouchAction:function(){return nt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Ht|Yt)?e=t.overallVelocity:i&Ht?e=t.overallVelocityX:i&Yt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&bt(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(dt,Q,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancen-this.padding&&(a=!0),s=a?this.x-i:this.x,r=h?this.y-e:this.y}else r=this.y-e,r+e+this.padding>o&&(r=o-e-this.padding),rn&&(s=n-i-this.padding),s0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,d.default)(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),!0===p.isString(t)){if(!0===p.isValidRGB(t)){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(!0===p.isValidRGBA(t)){var r=t.substr(5).substr(0,t.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===p.isValidHex(t)){var a=p.hexToRGB(t);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this;!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=p.extend({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=p.extend({},t)),this.color=t;var e=p.RGBToHSV(t.r,t.g,t.b),i=2*Math.PI,o=this.r*e.s,n=this.centerCoordinates.x+o*Math.sin(i*e.h),s=this.centerCoordinates.y+o*Math.cos(i*e.h);this.colorPickerSelector.style.left=n-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=s-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=p.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=p.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=p.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(!1===this.generated){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var a=2*Math.PI/360,h=1/this.r,d=void 0;for(s=0;s<360;s++)for(r=0;rr?r:t,e=null==e?r:e0&&l.push(u.screenToValue(n)),!c.hidden&&this.itemsData.length>0&&l.push(c.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new v(this,this.dom.container,g)},t.exports=o}])}); \ No newline at end of file diff --git a/dist/vis.js b/dist/vis.js index 01faf1a66..a63e5c12e 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.21.0 - * @date 2017-10-12 + * @version 4.21.0+az.1.0.0 + * @date 2019-06-06 * * @license * Copyright (C) 2011-2017 Almende B.V, http://almende.com @@ -34,7 +34,7 @@ exports["vis"] = factory(); else root["vis"] = factory(); -})(this, function() { +})(typeof self !== 'undefined' ? self : this, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -159,7 +159,7 @@ var _getIterator2 = __webpack_require__(77); var _getIterator3 = _interopRequireDefault(_getIterator2); -var _create = __webpack_require__(29); +var _create = __webpack_require__(30); var _create2 = _interopRequireDefault(_create); @@ -1799,7 +1799,7 @@ var _setPrototypeOf = __webpack_require__(196); var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); -var _create = __webpack_require__(29); +var _create = __webpack_require__(30); var _create2 = _interopRequireDefault(_create); @@ -1856,7 +1856,7 @@ exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.d /* 7 */ /***/ (function(module, exports) { -var core = module.exports = { version: '2.5.1' }; +var core = module.exports = { version: '2.6.9' }; if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef @@ -1929,7 +1929,7 @@ if (typeof window !== 'undefined') { "use strict"; -var _stringify = __webpack_require__(19); +var _stringify = __webpack_require__(20); var _stringify2 = _interopRequireDefault(_stringify); @@ -1944,7 +1944,7 @@ var _keys2 = _interopRequireDefault(_keys); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var util = __webpack_require__(2); -var Queue = __webpack_require__(43); +var Queue = __webpack_require__(44); /** * DataSet @@ -3278,7 +3278,7 @@ module.exports = DataView; /***/ (function(module, exports, __webpack_require__) { var store = __webpack_require__(57)('wks'); -var uid = __webpack_require__(40); +var uid = __webpack_require__(42); var Symbol = __webpack_require__(18).Symbol; var USE_SYMBOL = typeof Symbol == 'function'; @@ -3521,7 +3521,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.printStyle = undefined; -var _stringify = __webpack_require__(19); +var _stringify = __webpack_require__(20); var _stringify2 = _interopRequireDefault(_stringify); @@ -3987,6 +3987,7 @@ var global = __webpack_require__(18); var core = __webpack_require__(7); var ctx = __webpack_require__(80); var hide = __webpack_require__(26); +var has = __webpack_require__(22); var PROTOTYPE = 'prototype'; var $export = function (type, name, source) { @@ -4004,7 +4005,7 @@ var $export = function (type, name, source) { for (key in source) { // contains in native own = !IS_FORCED && target && target[key] !== undefined; - if (own && key in exports) continue; + if (own && has(exports, key)) continue; // export native or passed out = own ? target[key] : source[key]; // prevent global pollution for namespaces @@ -4062,18 +4063,28 @@ if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef /* 19 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = { "default": __webpack_require__(160), __esModule: true }; +// Thank's IE8 for his funny defineProperty +module.exports = !__webpack_require__(29)(function () { + return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; +}); + /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { +module.exports = { "default": __webpack_require__(160), __esModule: true }; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + var anObject = __webpack_require__(27); var IE8_DOM_DEFINE = __webpack_require__(81); var toPrimitive = __webpack_require__(53); var dP = Object.defineProperty; -exports.f = __webpack_require__(21) ? Object.defineProperty : function defineProperty(O, P, Attributes) { +exports.f = __webpack_require__(19) ? Object.defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); @@ -4086,16 +4097,6 @@ exports.f = __webpack_require__(21) ? Object.defineProperty : function definePro }; -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(28)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - /***/ }), /* 22 */ /***/ (function(module, exports) { @@ -4615,7 +4616,7 @@ exports['default'] = ShapeBase; // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(78); -var defined = __webpack_require__(51); +var defined = __webpack_require__(52); module.exports = function (it) { return IObject(defined(it)); }; @@ -4625,9 +4626,9 @@ module.exports = function (it) { /* 26 */ /***/ (function(module, exports, __webpack_require__) { -var dP = __webpack_require__(20); -var createDesc = __webpack_require__(39); -module.exports = __webpack_require__(21) ? function (object, key, value) { +var dP = __webpack_require__(21); +var createDesc = __webpack_require__(41); +module.exports = __webpack_require__(19) ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); } : function (object, key, value) { object[key] = value; @@ -4639,7 +4640,7 @@ module.exports = __webpack_require__(21) ? function (object, key, value) { /* 27 */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(32); +var isObject = __webpack_require__(28); module.exports = function (it) { if (!isObject(it)) throw TypeError(it + ' is not an object!'); return it; @@ -4650,6 +4651,15 @@ module.exports = function (it) { /* 28 */ /***/ (function(module, exports) { +module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + + +/***/ }), +/* 29 */ +/***/ (function(module, exports) { + module.exports = function (exec) { try { return !!exec(); @@ -4660,13 +4670,13 @@ module.exports = function (exec) { /***/ }), -/* 29 */ +/* 30 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(138), __esModule: true }; /***/ }), -/* 30 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4722,20 +4732,11 @@ exports.default = function () { }; }(); -/***/ }), -/* 31 */ -/***/ (function(module, exports) { - -module.exports = {}; - - /***/ }), /* 32 */ /***/ (function(module, exports) { -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; +module.exports = {}; /***/ }), @@ -4755,6 +4756,17 @@ module.exports = Object.keys || function keys(O) { /* 34 */ /***/ (function(module, exports, __webpack_require__) { +// 7.1.13 ToObject(argument) +var defined = __webpack_require__(52); +module.exports = function (it) { + return Object(defined(it)); +}; + + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + "use strict"; @@ -4836,7 +4848,7 @@ Point3d.prototype.length = function () { module.exports = Point3d; /***/ }), -/* 35 */ +/* 36 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5039,7 +5051,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 36 */ +/* 37 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5549,7 +5561,7 @@ exports.isHidden = function (time, hiddenDates) { }; /***/ }), -/* 37 */ +/* 38 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5623,7 +5635,7 @@ exports.disablePreventDefaultVertically = function (pinchRecognizer) { }; /***/ }), -/* 38 */ +/* 39 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6142,7 +6154,14 @@ Item.prototype.getTitle = function () { module.exports = Item; /***/ }), -/* 39 */ +/* 40 */ +/***/ (function(module, exports) { + +module.exports = true; + + +/***/ }), +/* 41 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { @@ -6156,7 +6175,7 @@ module.exports = function (bitmap, value) { /***/ }), -/* 40 */ +/* 42 */ /***/ (function(module, exports) { var id = 0; @@ -6167,25 +6186,14 @@ module.exports = function (key) { /***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__(51); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), -/* 42 */ +/* 43 */ /***/ (function(module, exports) { exports.f = {}.propertyIsEnumerable; /***/ }), -/* 43 */ +/* 44 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6390,7 +6398,7 @@ Queue.prototype.flush = function () { module.exports = Queue; /***/ }), -/* 44 */ +/* 45 */ /***/ (function(module, exports) { @@ -6560,7 +6568,7 @@ Emitter.prototype.hasListeners = function(event){ /***/ }), -/* 45 */ +/* 46 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6575,7 +6583,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd var util = __webpack_require__(2); var Component = __webpack_require__(16); var TimeStep = __webpack_require__(66); -var DateUtil = __webpack_require__(36); +var DateUtil = __webpack_require__(37); var moment = __webpack_require__(9); /** @@ -7072,7 +7080,7 @@ var warnedForOverflow = false; module.exports = TimeAxis; /***/ }), -/* 46 */ +/* 47 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7345,7 +7353,7 @@ CustomTime.customTimeFromTarget = function (event) { module.exports = CustomTime; /***/ }), -/* 47 */ +/* 48 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7368,7 +7376,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd var util = __webpack_require__(2); var Label = __webpack_require__(117)['default']; -var ComponentUtil = __webpack_require__(48)['default']; +var ComponentUtil = __webpack_require__(49)['default']; var Box = __webpack_require__(193)['default']; var Circle = __webpack_require__(200)['default']; var CircularImage = __webpack_require__(201)['default']; @@ -8073,7 +8081,7 @@ var Node = function () { exports['default'] = Node; /***/ }), -/* 48 */ +/* 49 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -8246,13 +8254,13 @@ var ComponentUtil = function () { exports['default'] = ComponentUtil; /***/ }), -/* 49 */ +/* 50 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(125); var global = __webpack_require__(18); var hide = __webpack_require__(26); -var Iterators = __webpack_require__(31); +var Iterators = __webpack_require__(32); var TO_STRING_TAG = __webpack_require__(13)('toStringTag'); var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + @@ -8271,7 +8279,7 @@ for (var i = 0; i < DOMIterables.length; i++) { /***/ }), -/* 50 */ +/* 51 */ /***/ (function(module, exports) { var toString = {}.toString; @@ -8282,7 +8290,7 @@ module.exports = function (it) { /***/ }), -/* 51 */ +/* 52 */ /***/ (function(module, exports) { // 7.2.1 RequireObjectCoercible(argument) @@ -8292,19 +8300,12 @@ module.exports = function (it) { }; -/***/ }), -/* 52 */ -/***/ (function(module, exports) { - -module.exports = true; - - /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(32); +var isObject = __webpack_require__(28); // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (it, S) { @@ -8381,7 +8382,7 @@ module.exports = function (it) { /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(57)('keys'); -var uid = __webpack_require__(40); +var uid = __webpack_require__(42); module.exports = function (key) { return shared[key] || (shared[key] = uid(key)); }; @@ -8391,12 +8392,18 @@ module.exports = function (key) { /* 57 */ /***/ (function(module, exports, __webpack_require__) { +var core = __webpack_require__(7); var global = __webpack_require__(18); var SHARED = '__core-js_shared__'; var store = global[SHARED] || (global[SHARED] = {}); -module.exports = function (key) { - return store[key] || (store[key] = {}); -}; + +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: core.version, + mode: __webpack_require__(40) ? 'pure' : 'global', + copyright: '© 2019 Denis Pushkarev (zloirock.ru)' +}); /***/ }), @@ -8413,7 +8420,7 @@ module.exports = ( /* 59 */ /***/ (function(module, exports, __webpack_require__) { -var def = __webpack_require__(20).f; +var def = __webpack_require__(21).f; var has = __webpack_require__(22); var TAG = __webpack_require__(13)('toStringTag'); @@ -8459,9 +8466,9 @@ exports.f = __webpack_require__(13); var global = __webpack_require__(18); var core = __webpack_require__(7); -var LIBRARY = __webpack_require__(52); +var LIBRARY = __webpack_require__(40); var wksExt = __webpack_require__(61); -var defineProperty = __webpack_require__(20).f; +var defineProperty = __webpack_require__(21).f; module.exports = function (name) { var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); @@ -8486,7 +8493,7 @@ var _keys = __webpack_require__(8); var _keys2 = _interopRequireDefault(_keys); -var _stringify = __webpack_require__(19); +var _stringify = __webpack_require__(20); var _stringify2 = _interopRequireDefault(_stringify); @@ -8499,7 +8506,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd var util = __webpack_require__(2); var moment = __webpack_require__(9); var Component = __webpack_require__(16); -var DateUtil = __webpack_require__(36); +var DateUtil = __webpack_require__(37); /** * A Range controls a numeric range with a start and end value. @@ -9392,7 +9399,7 @@ module.exports = Range; "use strict"; -var _stringify = __webpack_require__(19); +var _stringify = __webpack_require__(20); var _stringify2 = _interopRequireDefault(_stringify); @@ -9402,14 +9409,14 @@ var _typeof3 = _interopRequireDefault(_typeof2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } -var Emitter = __webpack_require__(44); +var Emitter = __webpack_require__(45); var Hammer = __webpack_require__(10); -var hammerUtil = __webpack_require__(37); +var hammerUtil = __webpack_require__(38); var util = __webpack_require__(2); -var TimeAxis = __webpack_require__(45); +var TimeAxis = __webpack_require__(46); var Activator = __webpack_require__(97); -var DateUtil = __webpack_require__(36); -var CustomTime = __webpack_require__(46); +var DateUtil = __webpack_require__(37); +var CustomTime = __webpack_require__(47); /** * Create a timeline visualization @@ -10740,7 +10747,7 @@ module.exports = Core; var moment = __webpack_require__(9); -var DateUtil = __webpack_require__(36); +var DateUtil = __webpack_require__(37); var util = __webpack_require__(2); /** @@ -12666,7 +12673,7 @@ module.exports = Group; "use strict"; -var _create = __webpack_require__(29); +var _create = __webpack_require__(30); var _create2 = _interopRequireDefault(_create); @@ -12738,7 +12745,7 @@ module.exports = BackgroundGroup; "use strict"; -var Item = __webpack_require__(38); +var Item = __webpack_require__(39); /** * @constructor RangeItem @@ -13128,7 +13135,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _stringify = __webpack_require__(19); +var _stringify = __webpack_require__(20); var _stringify2 = _interopRequireDefault(_stringify); @@ -14336,7 +14343,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _stringify = __webpack_require__(19); +var _stringify = __webpack_require__(20); var _stringify2 = _interopRequireDefault(_stringify); @@ -14344,7 +14351,7 @@ var _typeof2 = __webpack_require__(6); var _typeof3 = _interopRequireDefault(_typeof2); -var _create = __webpack_require__(29); +var _create = __webpack_require__(30); var _create2 = _interopRequireDefault(_create); @@ -14360,7 +14367,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd var util = __webpack_require__(2); var Label = __webpack_require__(117)['default']; -var ComponentUtil = __webpack_require__(48)['default']; +var ComponentUtil = __webpack_require__(49)['default']; var CubicBezierEdge = __webpack_require__(215)['default']; var BezierEdgeDynamic = __webpack_require__(217)['default']; var BezierEdgeStatic = __webpack_require__(218)['default']; @@ -14830,8 +14837,12 @@ var Edge = function () { ctx.save(); var rotationPoint = this._getRotation(ctx); - if (rotationPoint.angle != 0) { + if (!isNaN(rotationPoint.x) && !isNaN(rotationPoint.y)) { ctx.translate(rotationPoint.x, rotationPoint.y); + } else { + ctx.translate(node1.x, node1.y); + } + if (rotationPoint.angle != 0) { ctx.rotate(rotationPoint.angle); } @@ -15553,7 +15564,7 @@ module.exports = { "default": __webpack_require__(124), __esModule: true }; /***/ (function(module, exports, __webpack_require__) { // fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(50); +var cof = __webpack_require__(51); // eslint-disable-next-line no-prototype-builtins module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { return cof(it) == 'String' ? it.split('') : Object(it); @@ -15566,12 +15577,11 @@ module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { "use strict"; -var LIBRARY = __webpack_require__(52); +var LIBRARY = __webpack_require__(40); var $export = __webpack_require__(17); var redefine = __webpack_require__(83); var hide = __webpack_require__(26); -var has = __webpack_require__(22); -var Iterators = __webpack_require__(31); +var Iterators = __webpack_require__(32); var $iterCreate = __webpack_require__(129); var setToStringTag = __webpack_require__(59); var getPrototypeOf = __webpack_require__(85); @@ -15608,7 +15618,7 @@ module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE // Set @@toStringTag to native iterators setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines - if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis); + if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); } } // fix Array#{values, @@iterator}.name in V8 / FF @@ -15667,7 +15677,7 @@ module.exports = function (fn, that, length) { /* 81 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = !__webpack_require__(21) && !__webpack_require__(28)(function () { +module.exports = !__webpack_require__(19) && !__webpack_require__(29)(function () { return Object.defineProperty(__webpack_require__(82)('div'), 'a', { get: function () { return 7; } }).a != 7; }); @@ -15676,7 +15686,7 @@ module.exports = !__webpack_require__(21) && !__webpack_require__(28)(function ( /* 82 */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(32); +var isObject = __webpack_require__(28); var document = __webpack_require__(18).document; // typeof document.createElement is 'object' in old IE var is = isObject(document) && isObject(document.createElement); @@ -15721,7 +15731,7 @@ module.exports = function (object, names) { // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) var has = __webpack_require__(22); -var toObject = __webpack_require__(41); +var toObject = __webpack_require__(34); var IE_PROTO = __webpack_require__(56)('IE_PROTO'); var ObjectProto = Object.prototype; @@ -15739,7 +15749,7 @@ module.exports = Object.getPrototypeOf || function (O) { /***/ (function(module, exports, __webpack_require__) { // getting tag from 19.1.3.6 Object.prototype.toString() -var cof = __webpack_require__(50); +var cof = __webpack_require__(51); var TAG = __webpack_require__(13)('toStringTag'); // ES3 wrong here var ARG = cof(function () { return arguments; }()) == 'Arguments'; @@ -15770,7 +15780,7 @@ module.exports = function (it) { // most Object methods by ES6 should accept primitives var $export = __webpack_require__(17); var core = __webpack_require__(7); -var fails = __webpack_require__(28); +var fails = __webpack_require__(29); module.exports = function (KEY, exec) { var fn = (core.Object || {})[KEY] || Object[KEY]; var exp = {}; @@ -15796,15 +15806,15 @@ exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { /* 89 */ /***/ (function(module, exports, __webpack_require__) { -var pIE = __webpack_require__(42); -var createDesc = __webpack_require__(39); +var pIE = __webpack_require__(43); +var createDesc = __webpack_require__(41); var toIObject = __webpack_require__(25); var toPrimitive = __webpack_require__(53); var has = __webpack_require__(22); var IE8_DOM_DEFINE = __webpack_require__(81); var gOPD = Object.getOwnPropertyDescriptor; -exports.f = __webpack_require__(21) ? gOPD : function getOwnPropertyDescriptor(O, P) { +exports.f = __webpack_require__(19) ? gOPD : function getOwnPropertyDescriptor(O, P) { O = toIObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { @@ -16395,7 +16405,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd //////////////////////////////////////////////////////////////////////////////// var util = __webpack_require__(2); var Camera = __webpack_require__(95); -var Point3d = __webpack_require__(34); +var Point3d = __webpack_require__(35); // enumerate the available styles var STYLE = { @@ -16825,7 +16835,7 @@ var _sign2 = _interopRequireDefault(_sign); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } -var Point3d = __webpack_require__(34); +var Point3d = __webpack_require__(35); /** * The camera is mounted on a (virtual) camera arm. The camera arm can rotate @@ -17219,8 +17229,8 @@ module.exports = Filter; "use strict"; -var keycharm = __webpack_require__(35); -var Emitter = __webpack_require__(44); +var keycharm = __webpack_require__(36); +var Emitter = __webpack_require__(45); var Hammer = __webpack_require__(10); var util = __webpack_require__(2); @@ -17433,7 +17443,7 @@ exports['es_ES'] = exports['es']; "use strict"; -var _create = __webpack_require__(29); +var _create = __webpack_require__(30); var _create2 = _interopRequireDefault(_create); @@ -20077,7 +20087,7 @@ exports.collisionByTimes = function (a, b) { "use strict"; -var Item = __webpack_require__(38); +var Item = __webpack_require__(39); /** * @constructor BoxItem @@ -20434,7 +20444,7 @@ module.exports = BoxItem; "use strict"; -var Item = __webpack_require__(38); +var Item = __webpack_require__(39); /** * @constructor PointItem @@ -20714,7 +20724,7 @@ module.exports = PointItem; "use strict"; -var Item = __webpack_require__(38); +var Item = __webpack_require__(39); var BackgroundGroup = __webpack_require__(69); var RangeItem = __webpack_require__(70); @@ -24578,7 +24588,7 @@ exports.configureOptions = configureOptions; "use strict"; -var _create = __webpack_require__(29); +var _create = __webpack_require__(30); var _create2 = _interopRequireDefault(_create); @@ -25770,7 +25780,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _slicedToArray2 = __webpack_require__(30); +var _slicedToArray2 = __webpack_require__(31); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); @@ -25789,7 +25799,7 @@ var _createClass3 = _interopRequireDefault(_createClass2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var util = __webpack_require__(2); -var ComponentUtil = __webpack_require__(48)['default']; +var ComponentUtil = __webpack_require__(49)['default']; var LabelSplitter = __webpack_require__(191)['default']; /** @@ -26685,7 +26695,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _slicedToArray2 = __webpack_require__(30); +var _slicedToArray2 = __webpack_require__(31); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); @@ -28984,7 +28994,7 @@ util.extend(exports, __webpack_require__(181)); /* 124 */ /***/ (function(module, exports, __webpack_require__) { -__webpack_require__(49); +__webpack_require__(50); __webpack_require__(60); module.exports = __webpack_require__(136); @@ -28997,7 +29007,7 @@ module.exports = __webpack_require__(136); var addToUnscopables = __webpack_require__(126); var step = __webpack_require__(127); -var Iterators = __webpack_require__(31); +var Iterators = __webpack_require__(32); var toIObject = __webpack_require__(25); // 22.1.3.4 Array.prototype.entries() @@ -29063,7 +29073,7 @@ module.exports = function (it) { "use strict"; var create = __webpack_require__(54); -var descriptor = __webpack_require__(39); +var descriptor = __webpack_require__(41); var setToStringTag = __webpack_require__(59); var IteratorPrototype = {}; @@ -29080,11 +29090,11 @@ module.exports = function (Constructor, NAME, next) { /* 130 */ /***/ (function(module, exports, __webpack_require__) { -var dP = __webpack_require__(20); +var dP = __webpack_require__(21); var anObject = __webpack_require__(27); var getKeys = __webpack_require__(33); -module.exports = __webpack_require__(21) ? Object.defineProperties : function defineProperties(O, Properties) { +module.exports = __webpack_require__(19) ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var keys = getKeys(Properties); var length = keys.length; @@ -29162,7 +29172,7 @@ module.exports = document && document.documentElement; /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(55); -var defined = __webpack_require__(51); +var defined = __webpack_require__(52); // true -> String#at // false -> String#codePointAt module.exports = function (TO_STRING) { @@ -29199,7 +29209,7 @@ module.exports = __webpack_require__(7).getIterator = function (it) { var classof = __webpack_require__(86); var ITERATOR = __webpack_require__(13)('iterator'); -var Iterators = __webpack_require__(31); +var Iterators = __webpack_require__(32); module.exports = __webpack_require__(7).getIteratorMethod = function (it) { if (it != undefined) return it[ITERATOR] || it['@@iterator'] @@ -29240,7 +29250,7 @@ module.exports = __webpack_require__(7).Object.keys; /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 Object.keys(O) -var toObject = __webpack_require__(41); +var toObject = __webpack_require__(34); var $keys = __webpack_require__(33); __webpack_require__(87)('keys', function () { @@ -29261,7 +29271,7 @@ module.exports = { "default": __webpack_require__(143), __esModule: true }; /***/ (function(module, exports, __webpack_require__) { __webpack_require__(60); -__webpack_require__(49); +__webpack_require__(50); module.exports = __webpack_require__(61).f('iterator'); @@ -29291,27 +29301,30 @@ module.exports = __webpack_require__(7).Symbol; // ECMAScript 6 symbols shim var global = __webpack_require__(18); var has = __webpack_require__(22); -var DESCRIPTORS = __webpack_require__(21); +var DESCRIPTORS = __webpack_require__(19); var $export = __webpack_require__(17); var redefine = __webpack_require__(83); var META = __webpack_require__(147).KEY; -var $fails = __webpack_require__(28); +var $fails = __webpack_require__(29); var shared = __webpack_require__(57); var setToStringTag = __webpack_require__(59); -var uid = __webpack_require__(40); +var uid = __webpack_require__(42); var wks = __webpack_require__(13); var wksExt = __webpack_require__(61); var wksDefine = __webpack_require__(62); var enumKeys = __webpack_require__(148); var isArray = __webpack_require__(149); var anObject = __webpack_require__(27); +var isObject = __webpack_require__(28); +var toObject = __webpack_require__(34); var toIObject = __webpack_require__(25); var toPrimitive = __webpack_require__(53); -var createDesc = __webpack_require__(39); +var createDesc = __webpack_require__(41); var _create = __webpack_require__(54); var gOPNExt = __webpack_require__(150); var $GOPD = __webpack_require__(89); -var $DP = __webpack_require__(20); +var $GOPS = __webpack_require__(63); +var $DP = __webpack_require__(21); var $keys = __webpack_require__(33); var gOPD = $GOPD.f; var dP = $DP.f; @@ -29327,7 +29340,7 @@ var SymbolRegistry = shared('symbol-registry'); var AllSymbols = shared('symbols'); var OPSymbols = shared('op-symbols'); var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; +var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; var QObject = global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; @@ -29436,10 +29449,10 @@ if (!USE_NATIVE) { $GOPD.f = $getOwnPropertyDescriptor; $DP.f = $defineProperty; __webpack_require__(88).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(42).f = $propertyIsEnumerable; - __webpack_require__(63).f = $getOwnPropertySymbols; + __webpack_require__(43).f = $propertyIsEnumerable; + $GOPS.f = $getOwnPropertySymbols; - if (DESCRIPTORS && !__webpack_require__(52)) { + if (DESCRIPTORS && !__webpack_require__(40)) { redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); } @@ -29488,6 +29501,16 @@ $export($export.S + $export.F * !USE_NATIVE, 'Object', { getOwnPropertySymbols: $getOwnPropertySymbols }); +// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives +// https://bugs.chromium.org/p/v8/issues/detail?id=3443 +var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); }); + +$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + return $GOPS.f(toObject(it)); + } +}); + // 24.3.2 JSON.stringify(value [, replacer [, space]]) $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { var S = $Symbol(); @@ -29497,15 +29520,14 @@ $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; })), 'JSON', { stringify: function stringify(it) { - if (it === undefined || isSymbol(it)) return; // IE8 returns string on undefined var args = [it]; var i = 1; var replacer, $replacer; while (arguments.length > i) args.push(arguments[i++]); - replacer = args[1]; - if (typeof replacer == 'function') $replacer = replacer; - if ($replacer || !isArray(replacer)) replacer = function (key, value) { - if ($replacer) value = $replacer.call(this, key, value); + $replacer = replacer = args[1]; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + if (!isArray(replacer)) replacer = function (key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); if (!isSymbol(value)) return value; }; args[1] = replacer; @@ -29527,15 +29549,15 @@ setToStringTag(global.JSON, 'JSON', true); /* 147 */ /***/ (function(module, exports, __webpack_require__) { -var META = __webpack_require__(40)('meta'); -var isObject = __webpack_require__(32); +var META = __webpack_require__(42)('meta'); +var isObject = __webpack_require__(28); var has = __webpack_require__(22); -var setDesc = __webpack_require__(20).f; +var setDesc = __webpack_require__(21).f; var id = 0; var isExtensible = Object.isExtensible || function () { return true; }; -var FREEZE = !__webpack_require__(28)(function () { +var FREEZE = !__webpack_require__(29)(function () { return isExtensible(Object.preventExtensions({})); }); var setMeta = function (it) { @@ -29589,7 +29611,7 @@ var meta = module.exports = { // all enumerable object keys, includes symbols var getKeys = __webpack_require__(33); var gOPS = __webpack_require__(63); -var pIE = __webpack_require__(42); +var pIE = __webpack_require__(43); module.exports = function (it) { var result = getKeys(it); var getSymbols = gOPS.f; @@ -29608,7 +29630,7 @@ module.exports = function (it) { /***/ (function(module, exports, __webpack_require__) { // 7.2.2 IsArray(argument) -var cof = __webpack_require__(50); +var cof = __webpack_require__(51); module.exports = Array.isArray || function isArray(arg) { return cof(arg) == 'Array'; }; @@ -29664,10 +29686,6 @@ __webpack_require__(62)('observable'); /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js -//! version : 2.19.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com ;(function (global, factory) { true ? module.exports = factory() : @@ -29675,4506 +29693,4598 @@ __webpack_require__(62)('observable'); global.moment = factory() }(this, (function () { 'use strict'; -var hookCallback; + var hookCallback; -function hooks () { - return hookCallback.apply(null, arguments); -} + function hooks () { + return hookCallback.apply(null, arguments); + } -// This is done to register the method called with moment() -// without creating circular dependencies. -function setHookCallback (callback) { - hookCallback = callback; -} + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } -function isArray(input) { - return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; -} + function isArray(input) { + return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; + } -function isObject(input) { - // IE8 will treat undefined and null as object if it wasn't for - // input != null - return input != null && Object.prototype.toString.call(input) === '[object Object]'; -} + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return input != null && Object.prototype.toString.call(input) === '[object Object]'; + } -function isObjectEmpty(obj) { - if (Object.getOwnPropertyNames) { - return (Object.getOwnPropertyNames(obj).length === 0); - } else { - var k; - for (k in obj) { - if (obj.hasOwnProperty(k)) { - return false; + function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return (Object.getOwnPropertyNames(obj).length === 0); + } else { + var k; + for (k in obj) { + if (obj.hasOwnProperty(k)) { + return false; + } } + return true; } - return true; } -} -function isUndefined(input) { - return input === void 0; -} + function isUndefined(input) { + return input === void 0; + } -function isNumber(input) { - return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; -} + function isNumber(input) { + return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; + } -function isDate(input) { - return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; -} + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } -function map(arr, fn) { - var res = [], i; - for (i = 0; i < arr.length; ++i) { - res.push(fn(arr[i], i)); + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); } - return res; -} -function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); -} + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } -function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; } + + return a; } - if (hasOwnProp(b, 'toString')) { - a.toString = b.toString; + function createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); } - if (hasOwnProp(b, 'valueOf')) { - a.valueOf = b.valueOf; + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false, + parsedDateParts : [], + meridiem : null, + rfc2822 : false, + weekdayMismatch : false + }; } - return a; -} + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } -function createUTC (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, true).utc(); -} + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this); + var len = t.length >>> 0; -function defaultParsingFlags() { - // We need to deep clone this object. - return { - empty : false, - unusedTokens : [], - unusedInput : [], - overflow : -2, - charsLeftOver : 0, - nullInput : false, - invalidMonth : null, - invalidFormat : false, - userInvalidated : false, - iso : false, - parsedDateParts : [], - meridiem : null, - rfc2822 : false, - weekdayMismatch : false - }; -} + for (var i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } -function getParsingFlags(m) { - if (m._pf == null) { - m._pf = defaultParsingFlags(); + return false; + }; } - return m._pf; -} -var some; -if (Array.prototype.some) { - some = Array.prototype.some; -} else { - some = function (fun) { - var t = Object(this); - var len = t.length >>> 0; + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + var parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }); + var isNowValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } - for (var i = 0; i < len; i++) { - if (i in t && fun.call(this, t[i], i, t)) { - return true; + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } + else { + return isNowValid; } } + return m._isValid; + } - return false; - }; -} - -function isValid(m) { - if (m._isValid == null) { - var flags = getParsingFlags(m); - var parsedParts = some.call(flags.parsedDateParts, function (i) { - return i != null; - }); - var isNowValid = !isNaN(m._d.getTime()) && - flags.overflow < 0 && - !flags.empty && - !flags.invalidMonth && - !flags.invalidWeekday && - !flags.weekdayMismatch && - !flags.nullInput && - !flags.invalidFormat && - !flags.userInvalidated && - (!flags.meridiem || (flags.meridiem && parsedParts)); - - if (m._strict) { - isNowValid = isNowValid && - flags.charsLeftOver === 0 && - flags.unusedTokens.length === 0 && - flags.bigHour === undefined; - } - - if (Object.isFrozen == null || !Object.isFrozen(m)) { - m._isValid = isNowValid; + function createInvalid (flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); } else { - return isNowValid; + getParsingFlags(m).userInvalidated = true; } - } - return m._isValid; -} -function createInvalid (flags) { - var m = createUTC(NaN); - if (flags != null) { - extend(getParsingFlags(m), flags); - } - else { - getParsingFlags(m).userInvalidated = true; + return m; } - return m; -} - -// Plugins that add properties should also add the key here (null value), -// so we can properly clone ourselves. -var momentProperties = hooks.momentProperties = []; + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = hooks.momentProperties = []; -function copyConfig(to, from) { - var i, prop, val; + function copyConfig(to, from) { + var i, prop, val; - if (!isUndefined(from._isAMomentObject)) { - to._isAMomentObject = from._isAMomentObject; - } - if (!isUndefined(from._i)) { - to._i = from._i; - } - if (!isUndefined(from._f)) { - to._f = from._f; - } - if (!isUndefined(from._l)) { - to._l = from._l; - } - if (!isUndefined(from._strict)) { - to._strict = from._strict; - } - if (!isUndefined(from._tzm)) { - to._tzm = from._tzm; - } - if (!isUndefined(from._isUTC)) { - to._isUTC = from._isUTC; - } - if (!isUndefined(from._offset)) { - to._offset = from._offset; - } - if (!isUndefined(from._pf)) { - to._pf = getParsingFlags(from); - } - if (!isUndefined(from._locale)) { - to._locale = from._locale; - } + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } - if (momentProperties.length > 0) { - for (i = 0; i < momentProperties.length; i++) { - prop = momentProperties[i]; - val = from[prop]; - if (!isUndefined(val)) { - to[prop] = val; + if (momentProperties.length > 0) { + for (i = 0; i < momentProperties.length; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } } } - } - return to; -} + return to; + } -var updateInProgress = false; + var updateInProgress = false; -// Moment prototype object -function Moment(config) { - copyConfig(this, config); - this._d = new Date(config._d != null ? config._d.getTime() : NaN); - if (!this.isValid()) { - this._d = new Date(NaN); - } - // Prevent infinite loop in case updateOffset creates new moment - // objects. - if (updateInProgress === false) { - updateInProgress = true; - hooks.updateOffset(this); - updateInProgress = false; + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } } -} -function isMoment (obj) { - return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); -} + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } -function absFloor (number) { - if (number < 0) { - // -0 -> 0 - return Math.ceil(number) || 0; - } else { - return Math.floor(number); + function absFloor (number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } } -} -function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - value = absFloor(coercedNumber); - } + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } - return value; -} + return value; + } -// compare two arrays, return the number of differences -function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ((dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { - diffs++; + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } } + return diffs + lengthDiff; } - return diffs + lengthDiff; -} -function warn(msg) { - if (hooks.suppressDeprecationWarnings === false && - (typeof console !== 'undefined') && console.warn) { - console.warn('Deprecation warning: ' + msg); + function warn(msg) { + if (hooks.suppressDeprecationWarnings === false && + (typeof console !== 'undefined') && console.warn) { + console.warn('Deprecation warning: ' + msg); + } } -} -function deprecate(msg, fn) { - var firstTime = true; + function deprecate(msg, fn) { + var firstTime = true; - return extend(function () { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(null, msg); - } - if (firstTime) { - var args = []; - var arg; - for (var i = 0; i < arguments.length; i++) { - arg = ''; - if (typeof arguments[i] === 'object') { - arg += '\n[' + i + '] '; - for (var key in arguments[0]) { - arg += key + ': ' + arguments[0][key] + ', '; + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = []; + var arg; + for (var i = 0; i < arguments.length; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (var key in arguments[0]) { + arg += key + ': ' + arguments[0][key] + ', '; + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; } - arg = arg.slice(0, -2); // Remove trailing comma and space - } else { - arg = arguments[i]; + args.push(arg); } - args.push(arg); + warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); + firstTime = false; } - warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); -} + return fn.apply(this, arguments); + }, fn); + } -var deprecations = {}; + var deprecations = {}; -function deprecateSimple(name, msg) { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(name, msg); - } - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } } -} - -hooks.suppressDeprecationWarnings = false; -hooks.deprecationHandler = null; -function isFunction(input) { - return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; -} + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; -function set (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this['_' + i] = prop; - } + function isFunction(input) { + return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; } - this._config = config; - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. - // TODO: Remove "ordinalParse" fallback in next major release. - this._dayOfMonthOrdinalParseLenient = new RegExp( - (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + - '|' + (/\d{1,2}/).source); -} -function mergeConfigs(parentConfig, childConfig) { - var res = extend({}, parentConfig), prop; - for (prop in childConfig) { - if (hasOwnProp(childConfig, prop)) { - if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { - res[prop] = {}; - extend(res[prop], parentConfig[prop]); - extend(res[prop], childConfig[prop]); - } else if (childConfig[prop] != null) { - res[prop] = childConfig[prop]; + function set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; } else { - delete res[prop]; + this['_' + i] = prop; } } - } - for (prop in parentConfig) { - if (hasOwnProp(parentConfig, prop) && - !hasOwnProp(childConfig, prop) && - isObject(parentConfig[prop])) { - // make sure changes to properties don't modify parent config - res[prop] = extend({}, res[prop]); + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + (/\d{1,2}/).source); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if (hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop])) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } } + return res; } - return res; -} -function Locale(config) { - if (config != null) { - this.set(config); + function Locale(config) { + if (config != null) { + this.set(config); + } } -} -var keys; + var keys; -if (Object.keys) { - keys = Object.keys; -} else { - keys = function (obj) { - var i, res = []; - for (i in obj) { - if (hasOwnProp(obj, i)) { - res.push(i); + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } } - } - return res; + return res; + }; + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' }; -} -var defaultCalendar = { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' -}; + function calendar (key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } -function calendar (key, mom, now) { - var output = this._calendar[key] || this._calendar['sameElse']; - return isFunction(output) ? output.call(mom, now) : output; -} + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; -var defaultLongDateFormat = { - LTS : 'h:mm:ss A', - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' -}; + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; -function longDateFormat (key) { - var format = this._longDateFormat[key], - formatUpper = this._longDateFormat[key.toUpperCase()]; + if (format || !formatUpper) { + return format; + } - if (format || !formatUpper) { - return format; - } + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); - this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { - return val.slice(1); - }); + return this._longDateFormat[key]; + } - return this._longDateFormat[key]; -} + var defaultInvalidDate = 'Invalid date'; -var defaultInvalidDate = 'Invalid date'; + function invalidDate () { + return this._invalidDate; + } -function invalidDate () { - return this._invalidDate; -} + var defaultOrdinal = '%d'; + var defaultDayOfMonthOrdinalParse = /\d{1,2}/; -var defaultOrdinal = '%d'; -var defaultDayOfMonthOrdinalParse = /\d{1,2}/; + function ordinal (number) { + return this._ordinal.replace('%d', number); + } -function ordinal (number) { - return this._ordinal.replace('%d', number); -} + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + ss : '%d seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; -var defaultRelativeTime = { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' -}; - -function relativeTime (number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return (isFunction(output)) ? - output(number, withoutSuffix, string, isFuture) : - output.replace(/%d/i, number); -} + function relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (isFunction(output)) ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } -function pastFuture (diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return isFunction(format) ? format(output) : format.replace(/%s/i, output); -} + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } -var aliases = {}; + var aliases = {}; -function addUnitAlias (unit, shorthand) { - var lowerCase = unit.toLowerCase(); - aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; -} + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } -function normalizeUnits(units) { - return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; -} + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } -function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } } } - } - return normalizedInput; -} + return normalizedInput; + } -var priorities = {}; + var priorities = {}; -function addUnitPriority(unit, priority) { - priorities[unit] = priority; -} + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } -function getPrioritizedUnits(unitsObj) { - var units = []; - for (var u in unitsObj) { - units.push({unit: u, priority: priorities[u]}); + function getPrioritizedUnits(unitsObj) { + var units = []; + for (var u in unitsObj) { + units.push({unit: u, priority: priorities[u]}); + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; } - units.sort(function (a, b) { - return a.priority - b.priority; - }); - return units; -} -function zeroFill(number, targetLength, forceSign) { - var absNumber = '' + Math.abs(number), - zerosToFill = targetLength - absNumber.length, - sign = number >= 0; - return (sign ? (forceSign ? '+' : '') : '-') + - Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; -} + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } -var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; -var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; -var formatFunctions = {}; + var formatFunctions = {}; -var formatTokenFunctions = {}; + var formatTokenFunctions = {}; -// token: 'M' -// padded: ['MM', 2] -// ordinal: 'Mo' -// callback: function () { this.month() + 1 } -function addFormatToken (token, padded, ordinal, callback) { - var func = callback; - if (typeof callback === 'string') { - func = function () { - return this[callback](); - }; - } - if (token) { - formatTokenFunctions[token] = func; - } - if (padded) { - formatTokenFunctions[padded[0]] = function () { - return zeroFill(func.apply(this, arguments), padded[1], padded[2]); - }; - } - if (ordinal) { - formatTokenFunctions[ordinal] = function () { - return this.localeData().ordinal(func.apply(this, arguments), token); - }; + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } } -} -function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); } - return input.replace(/\\/g, ''); -} -function makeFormatFunction(format) { - var array = format.match(formattingTokens), i, length; + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } } + + return function (mom) { + var output = '', i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; + } + return output; + }; } - return function (mom) { - var output = '', i; - for (i = 0; i < length; i++) { - output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); } - return output; - }; -} -// format date using native date object -function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); - } - - format = expandFormat(format, m.localeData()); - formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); - return formatFunctions[format](m); -} + return formatFunctions[format](m); + } -function expandFormat(format, locale) { - var i = 5; + function expandFormat(format, locale) { + var i = 5; - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); localFormattingTokens.lastIndex = 0; - i -= 1; - } + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } - return format; -} + return format; + } -var match1 = /\d/; // 0 - 9 -var match2 = /\d\d/; // 00 - 99 -var match3 = /\d{3}/; // 000 - 999 -var match4 = /\d{4}/; // 0000 - 9999 -var match6 = /[+-]?\d{6}/; // -999999 - 999999 -var match1to2 = /\d\d?/; // 0 - 99 -var match3to4 = /\d\d\d\d?/; // 999 - 9999 -var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 -var match1to3 = /\d{1,3}/; // 0 - 999 -var match1to4 = /\d{1,4}/; // 0 - 9999 -var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match3to4 = /\d\d\d\d?/; // 999 - 9999 + var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 -var matchUnsigned = /\d+/; // 0 - inf -var matchSigned = /[+-]?\d+/; // -inf - inf + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf -var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z -var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z -var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 -// any word (or two) characters or numbers including two/three word month in arabic. -// includes scottish gaelic two word and hyphenated months -var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; + var regexes = {}; -var regexes = {}; + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } -function addRegexToken (token, regex, strictRegex) { - regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { - return (isStrict && strictRegex) ? strictRegex : regex; - }; -} + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } -function getParseRegexForToken (token, config) { - if (!hasOwnProp(regexes, token)) { - return new RegExp(unescapeFormat(token)); + return regexes[token](config._strict, config._locale); } - return regexes[token](config._strict, config._locale); -} - -// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript -function unescapeFormat(s) { - return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { - return p1 || p2 || p3 || p4; - })); -} + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + })); + } -function regexEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); -} + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } -var tokens = {}; + var tokens = {}; -function addParseToken (token, callback) { - var i, func = callback; - if (typeof token === 'string') { - token = [token]; - } - if (isNumber(callback)) { - func = function (input, array) { - array[callback] = toInt(input); - }; - } - for (i = 0; i < token.length; i++) { - tokens[token[i]] = func; + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } } -} -function addWeekParseToken (token, callback) { - addParseToken(token, function (input, array, config, token) { - config._w = config._w || {}; - callback(input, config._w, config, token); - }); -} + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } -function addTimeToArrayFromToken(token, input, config) { - if (input != null && hasOwnProp(tokens, token)) { - tokens[token](input, config._a, config, token); + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } } -} -var YEAR = 0; -var MONTH = 1; -var DATE = 2; -var HOUR = 3; -var MINUTE = 4; -var SECOND = 5; -var MILLISECOND = 6; -var WEEK = 7; -var WEEKDAY = 8; - -// FORMATTING - -addFormatToken('Y', 0, 0, function () { - var y = this.year(); - return y <= 9999 ? '' + y : '+' + y; -}); + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + var WEEK = 7; + var WEEKDAY = 8; -addFormatToken(0, ['YY', 2], 0, function () { - return this.year() % 100; -}); + // FORMATTING -addFormatToken(0, ['YYYY', 4], 0, 'year'); -addFormatToken(0, ['YYYYY', 5], 0, 'year'); -addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? '' + y : '+' + y; + }); -// ALIASES + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); -addUnitAlias('year', 'y'); + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); -// PRIORITIES + // ALIASES -addUnitPriority('year', 1); + addUnitAlias('year', 'y'); -// PARSING + // PRIORITIES -addRegexToken('Y', matchSigned); -addRegexToken('YY', match1to2, match2); -addRegexToken('YYYY', match1to4, match4); -addRegexToken('YYYYY', match1to6, match6); -addRegexToken('YYYYYY', match1to6, match6); + addUnitPriority('year', 1); -addParseToken(['YYYYY', 'YYYYYY'], YEAR); -addParseToken('YYYY', function (input, array) { - array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); -}); -addParseToken('YY', function (input, array) { - array[YEAR] = hooks.parseTwoDigitYear(input); -}); -addParseToken('Y', function (input, array) { - array[YEAR] = parseInt(input, 10); -}); + // PARSING -// HELPERS + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); -function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; -} + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); -function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; -} + // HELPERS -// HOOKS + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } -hooks.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); -}; + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } -// MOMENTS + // HOOKS -var getSetYear = makeGetSet('FullYear', true); + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; -function getIsLeapYear () { - return isLeapYear(this.year()); -} + // MOMENTS -function makeGetSet (unit, keepTime) { - return function (value) { - if (value != null) { - set$1(this, unit, value); - hooks.updateOffset(this, keepTime); - return this; - } else { - return get(this, unit); - } - }; -} + var getSetYear = makeGetSet('FullYear', true); -function get (mom, unit) { - return mom.isValid() ? - mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; -} + function getIsLeapYear () { + return isLeapYear(this.year()); + } -function set$1 (mom, unit, value) { - if (mom.isValid() && !isNaN(value)) { - if (unit === 'FullYear' && isLeapYear(mom.year())) { - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month())); - } - else { - mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; } -} -// MOMENTS + function get (mom, unit) { + return mom.isValid() ? + mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; + } -function stringGet (units) { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](); + function set$1 (mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month())); + } + else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } } - return this; -} + // MOMENTS -function stringSet (units, value) { - if (typeof units === 'object') { - units = normalizeObjectUnits(units); - var prioritized = getPrioritizedUnits(units); - for (var i = 0; i < prioritized.length; i++) { - this[prioritized[i].unit](units[prioritized[i].unit]); - } - } else { + function stringGet (units) { units = normalizeUnits(units); if (isFunction(this[units])) { - return this[units](value); + return this[units](); } + return this; } - return this; -} - -function mod(n, x) { - return ((n % x) + x) % x; -} -var indexOf; -if (Array.prototype.indexOf) { - indexOf = Array.prototype.indexOf; -} else { - indexOf = function (o) { - // I know - var i; - for (i = 0; i < this.length; ++i) { - if (this[i] === o) { - return i; + function stringSet (units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units); + for (var i = 0; i < prioritized.length; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); } } - return -1; - }; -} + return this; + } -function daysInMonth(year, month) { - if (isNaN(year) || isNaN(month)) { - return NaN; + function mod(n, x) { + return ((n % x) + x) % x; } - var modMonth = mod(month, 12); - year += (month - modMonth) / 12; - return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2); -} -// FORMATTING + var indexOf; -addFormatToken('M', ['MM', 2], 'Mo', function () { - return this.month() + 1; -}); + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } -addFormatToken('MMM', 0, 0, function (format) { - return this.localeData().monthsShort(this, format); -}); + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2); + } -addFormatToken('MMMM', 0, 0, function (format) { - return this.localeData().months(this, format); -}); + // FORMATTING -// ALIASES + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); -addUnitAlias('month', 'M'); + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); -// PRIORITY + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); -addUnitPriority('month', 8); + // ALIASES -// PARSING + addUnitAlias('month', 'M'); -addRegexToken('M', match1to2); -addRegexToken('MM', match1to2, match2); -addRegexToken('MMM', function (isStrict, locale) { - return locale.monthsShortRegex(isStrict); -}); -addRegexToken('MMMM', function (isStrict, locale) { - return locale.monthsRegex(isStrict); -}); + // PRIORITY -addParseToken(['M', 'MM'], function (input, array) { - array[MONTH] = toInt(input) - 1; -}); + addUnitPriority('month', 8); -addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { - var month = config._locale.monthsParse(input, token, config._strict); - // if we didn't find a month name, mark the date as invalid. - if (month != null) { - array[MONTH] = month; - } else { - getParsingFlags(config).invalidMonth = input; - } -}); + // PARSING -// LOCALES + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); -var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; -var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); -function localeMonths (m, format) { - if (!m) { - return isArray(this._months) ? this._months : - this._months['standalone']; - } - return isArray(this._months) ? this._months[m.month()] : - this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; -} + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); -var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); -function localeMonthsShort (m, format) { - if (!m) { - return isArray(this._monthsShort) ? this._monthsShort : - this._monthsShort['standalone']; + // LOCALES + + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m, format) { + if (!m) { + return isArray(this._months) ? this._months : + this._months['standalone']; + } + return isArray(this._months) ? this._months[m.month()] : + this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; } - return isArray(this._monthsShort) ? this._monthsShort[m.month()] : - this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; -} -function handleStrictParse(monthName, format, strict) { - var i, ii, mom, llc = monthName.toLocaleLowerCase(); - if (!this._monthsParse) { - // this is not used - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - for (i = 0; i < 12; ++i) { - mom = createUTC([2000, i]); - this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); - this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m, format) { + if (!m) { + return isArray(this._monthsShort) ? this._monthsShort : + this._monthsShort['standalone']; } + return isArray(this._monthsShort) ? this._monthsShort[m.month()] : + this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; } - if (strict) { - if (format === 'MMM') { - ii = indexOf.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; + function handleStrictParse(monthName, format, strict) { + var i, ii, mom, llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } } - } else { - if (format === 'MMM') { - ii = indexOf.call(this._shortMonthsParse, llc); - if (ii !== -1) { - return ii; + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; } - ii = indexOf.call(this._longMonthsParse, llc); - return ii !== -1 ? ii : null; } else { - ii = indexOf.call(this._longMonthsParse, llc); - if (ii !== -1) { - return ii; + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; } - ii = indexOf.call(this._shortMonthsParse, llc); - return ii !== -1 ? ii : null; } } -} - -function localeMonthsParse (monthName, format, strict) { - var i, mom, regex; - - if (this._monthsParseExact) { - return handleStrictParse.call(this, monthName, format, strict); - } - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; - // TODO: add sorting - // Sorting makes sure if one month (or abbr) is a prefix of another - // see sorting in computeMonthsParse - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); - this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); } - if (!strict && !this._monthsParse[i]) { - regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; } - // test the regex - if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { - return i; - } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } } } -} -// MOMENTS + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } -function setMonth (mom, value) { - var dayOfMonth; + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } - if (!mom.isValid()) { - // No op + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); return mom; } - if (typeof value === 'string') { - if (/^\d+$/.test(value)) { - value = toInt(value); + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; } else { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (!isNumber(value)) { - return mom; - } + return get(this, 'Month'); } } - dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; -} - -function getSetMonth (value) { - if (value != null) { - setMonth(this, value); - hooks.updateOffset(this, true); - return this; - } else { - return get(this, 'Month'); + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); } -} - -function getDaysInMonth () { - return daysInMonth(this.year(), this.month()); -} -var defaultMonthsShortRegex = matchWord; -function monthsShortRegex (isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsShortStrictRegex; + var defaultMonthsShortRegex = matchWord; + function monthsShortRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } } else { - return this._monthsShortRegex; - } - } else { - if (!hasOwnProp(this, '_monthsShortRegex')) { - this._monthsShortRegex = defaultMonthsShortRegex; + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict ? + this._monthsShortStrictRegex : this._monthsShortRegex; } - return this._monthsShortStrictRegex && isStrict ? - this._monthsShortStrictRegex : this._monthsShortRegex; } -} -var defaultMonthsRegex = matchWord; -function monthsRegex (isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, '_monthsRegex')) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsStrictRegex; + var defaultMonthsRegex = matchWord; + function monthsRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } } else { - return this._monthsRegex; + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict ? + this._monthsStrictRegex : this._monthsRegex; } - } else { - if (!hasOwnProp(this, '_monthsRegex')) { - this._monthsRegex = defaultMonthsRegex; - } - return this._monthsStrictRegex && isStrict ? - this._monthsStrictRegex : this._monthsRegex; } -} -function computeMonthsParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var shortPieces = [], longPieces = [], mixedPieces = [], - i, mom; - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, i]); - shortPieces.push(this.monthsShort(mom, '')); - longPieces.push(this.months(mom, '')); - mixedPieces.push(this.months(mom, '')); - mixedPieces.push(this.monthsShort(mom, '')); - } - // Sorting makes sure if one month (or abbr) is a prefix of another it - // will match the longer piece. - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 12; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - } - for (i = 0; i < 24; i++) { - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._monthsShortRegex = this._monthsRegex; - this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); -} + function computeMonthsParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } -function createDate (y, m, d, h, M, s, ms) { - // can't just apply() to create a date: - // https://stackoverflow.com/q/181348 - var date = new Date(y, m, d, h, M, s, ms); + var shortPieces = [], longPieces = [], mixedPieces = [], + i, mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + } + + function createDate (y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } - // the date constructor remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { - date.setFullYear(y); + return date; } - return date; -} -function createUTCDate (y) { - var date = new Date(Date.UTC.apply(null, arguments)); + function createUTCDate (y) { + var date; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + var args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } - // the Date.UTC function remaps years 0-99 to 1900-1999 - if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { - date.setUTCFullYear(y); + return date; } - return date; -} -// start-of-first-week - start-of-year -function firstWeekOffset(year, dow, doy) { - var // first-week day -- which january is always in the first week (4 for iso, 1 for other) - fwd = 7 + dow - doy, - // first-week day local weekday -- which local weekday is fwd - fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; - return -fwdlw + fwd - 1; -} + return -fwdlw + fwd - 1; + } -// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday -function dayOfYearFromWeeks(year, week, weekday, dow, doy) { - var localWeekday = (7 + weekday - dow) % 7, - weekOffset = firstWeekOffset(year, dow, doy), - dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, - resYear, resDayOfYear; - - if (dayOfYear <= 0) { - resYear = year - 1; - resDayOfYear = daysInYear(resYear) + dayOfYear; - } else if (dayOfYear > daysInYear(year)) { - resYear = year + 1; - resDayOfYear = dayOfYear - daysInYear(year); - } else { - resYear = year; - resDayOfYear = dayOfYear; + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear + }; } - return { - year: resYear, - dayOfYear: resDayOfYear - }; -} + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, resYear; -function weekOfYear(mom, dow, doy) { - var weekOffset = firstWeekOffset(mom.year(), dow, doy), - week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, - resWeek, resYear; - - if (week < 1) { - resYear = mom.year() - 1; - resWeek = week + weeksInYear(resYear, dow, doy); - } else if (week > weeksInYear(mom.year(), dow, doy)) { - resWeek = week - weeksInYear(mom.year(), dow, doy); - resYear = mom.year() + 1; - } else { - resYear = mom.year(); - resWeek = week; + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear + }; } - return { - week: resWeek, - year: resYear - }; -} + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } -function weeksInYear(year, dow, doy) { - var weekOffset = firstWeekOffset(year, dow, doy), - weekOffsetNext = firstWeekOffset(year + 1, dow, doy); - return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; -} + // FORMATTING -// FORMATTING + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); -addFormatToken('w', ['ww', 2], 'wo', 'week'); -addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + // ALIASES -// ALIASES + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); -addUnitAlias('week', 'w'); -addUnitAlias('isoWeek', 'W'); + // PRIORITIES -// PRIORITIES + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); -addUnitPriority('week', 5); -addUnitPriority('isoWeek', 5); + // PARSING -// PARSING + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); -addRegexToken('w', match1to2); -addRegexToken('ww', match1to2, match2); -addRegexToken('W', match1to2); -addRegexToken('WW', match1to2, match2); + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); -addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { - week[token.substr(0, 1)] = toInt(input); -}); + // HELPERS -// HELPERS + // LOCALES -// LOCALES + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } -function localeWeek (mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; -} + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 6th is the first week of the year. + }; -var defaultLocaleWeek = { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. -}; + function localeFirstDayOfWeek () { + return this._week.dow; + } -function localeFirstDayOfWeek () { - return this._week.dow; -} + function localeFirstDayOfYear () { + return this._week.doy; + } -function localeFirstDayOfYear () { - return this._week.doy; -} + // MOMENTS -// MOMENTS + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } -function getSetWeek (input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); -} + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } -function getSetISOWeek (input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); -} + // FORMATTING -// FORMATTING + addFormatToken('d', 0, 'do', 'day'); -addFormatToken('d', 0, 'do', 'day'); + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); -addFormatToken('dd', 0, 0, function (format) { - return this.localeData().weekdaysMin(this, format); -}); + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); -addFormatToken('ddd', 0, 0, function (format) { - return this.localeData().weekdaysShort(this, format); -}); + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); -addFormatToken('dddd', 0, 0, function (format) { - return this.localeData().weekdays(this, format); -}); + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); -addFormatToken('e', 0, 0, 'weekday'); -addFormatToken('E', 0, 0, 'isoWeekday'); + // ALIASES -// ALIASES + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); -addUnitAlias('day', 'd'); -addUnitAlias('weekday', 'e'); -addUnitAlias('isoWeekday', 'E'); + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); -// PRIORITY -addUnitPriority('day', 11); -addUnitPriority('weekday', 11); -addUnitPriority('isoWeekday', 11); + // PARSING -// PARSING + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); -addRegexToken('d', match1to2); -addRegexToken('e', match1to2); -addRegexToken('E', match1to2); -addRegexToken('dd', function (isStrict, locale) { - return locale.weekdaysMinRegex(isStrict); -}); -addRegexToken('ddd', function (isStrict, locale) { - return locale.weekdaysShortRegex(isStrict); -}); -addRegexToken('dddd', function (isStrict, locale) { - return locale.weekdaysRegex(isStrict); -}); + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); -addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { - var weekday = config._locale.weekdaysParse(input, token, config._strict); - // if we didn't get a weekday name, mark the date as invalid - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; - } -}); + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); -addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { - week[token] = toInt(input); -}); + // HELPERS -// HELPERS + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } -function parseWeekday(input, locale) { - if (typeof input !== 'string') { - return input; - } + if (!isNaN(input)) { + return parseInt(input, 10); + } - if (!isNaN(input)) { - return parseInt(input, 10); - } + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } - input = locale.weekdaysParse(input); - if (typeof input === 'number') { - return input; + return null; } - return null; -} - -function parseIsoWeekday(input, locale) { - if (typeof input === 'string') { - return locale.weekdaysParse(input) % 7 || 7; + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; } - return isNaN(input) ? null : input; -} -// LOCALES + // LOCALES + function shiftWeekdays (ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } -var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); -function localeWeekdays (m, format) { - if (!m) { - return isArray(this._weekdays) ? this._weekdays : - this._weekdays['standalone']; + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m, format) { + var weekdays = isArray(this._weekdays) ? this._weekdays : + this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone']; + return (m === true) ? shiftWeekdays(weekdays, this._week.dow) + : (m) ? weekdays[m.day()] : weekdays; } - return isArray(this._weekdays) ? this._weekdays[m.day()] : - this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; -} -var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); -function localeWeekdaysShort (m) { - return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; -} + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; + } -var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); -function localeWeekdaysMin (m) { - return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; -} + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; + } -function handleStrictParse$1(weekdayName, format, strict) { - var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._shortWeekdaysParse = []; - this._minWeekdaysParse = []; + function handleStrictParse$1(weekdayName, format, strict) { + var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; - for (i = 0; i < 7; ++i) { - mom = createUTC([2000, 1]).day(i); - this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); - this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); - this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } } - } - if (strict) { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } - } else { - if (format === 'dddd') { - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; - } else if (format === 'ddd') { - ii = indexOf.call(this._shortWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; } - ii = indexOf.call(this._minWeekdaysParse, llc); - return ii !== -1 ? ii : null; } else { - ii = indexOf.call(this._minWeekdaysParse, llc); - if (ii !== -1) { - return ii; - } - ii = indexOf.call(this._weekdaysParse, llc); - if (ii !== -1) { - return ii; + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; } - ii = indexOf.call(this._shortWeekdaysParse, llc); - return ii !== -1 ? ii : null; } } -} -function localeWeekdaysParse (weekdayName, format, strict) { - var i, mom, regex; + function localeWeekdaysParse (weekdayName, format, strict) { + var i, mom, regex; - if (this._weekdaysParseExact) { - return handleStrictParse$1.call(this, weekdayName, format, strict); - } + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._minWeekdaysParse = []; - this._shortWeekdaysParse = []; - this._fullWeekdaysParse = []; - } + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already - mom = createUTC([2000, 1]).day(i); - if (strict && !this._fullWeekdaysParse[i]) { - this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); - this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); - this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); - } - if (!this._weekdaysParse[i]) { - regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { - return i; + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i'); + this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i'); + this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i'); + } + if (!this._weekdaysParse[i]) { + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } } } -} -// MOMENTS + // MOMENTS -function getSetDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; + function getSetDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } } -} -function getSetLocaleDayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; + function getSetLocaleDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); } - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); -} -function getSetISODayOfWeek (input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } + function getSetISODayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. - if (input != null) { - var weekday = parseIsoWeekday(input, this.localeData()); - return this.day(this.day() % 7 ? weekday : weekday - 7); - } else { - return this.day() || 7; + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } } -} -var defaultWeekdaysRegex = matchWord; -function weekdaysRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysStrictRegex; + var defaultWeekdaysRegex = matchWord; + function weekdaysRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } } else { - return this._weekdaysRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysRegex')) { - this._weekdaysRegex = defaultWeekdaysRegex; + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict ? + this._weekdaysStrictRegex : this._weekdaysRegex; } - return this._weekdaysStrictRegex && isStrict ? - this._weekdaysStrictRegex : this._weekdaysRegex; } -} -var defaultWeekdaysShortRegex = matchWord; -function weekdaysShortRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysShortStrictRegex; + var defaultWeekdaysShortRegex = matchWord; + function weekdaysShortRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } } else { - return this._weekdaysShortRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysShortRegex')) { - this._weekdaysShortRegex = defaultWeekdaysShortRegex; + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict ? + this._weekdaysShortStrictRegex : this._weekdaysShortRegex; } - return this._weekdaysShortStrictRegex && isStrict ? - this._weekdaysShortStrictRegex : this._weekdaysShortRegex; } -} -var defaultWeekdaysMinRegex = matchWord; -function weekdaysMinRegex (isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, '_weekdaysRegex')) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysMinStrictRegex; + var defaultWeekdaysMinRegex = matchWord; + function weekdaysMinRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } } else { - return this._weekdaysMinRegex; - } - } else { - if (!hasOwnProp(this, '_weekdaysMinRegex')) { - this._weekdaysMinRegex = defaultWeekdaysMinRegex; + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict ? + this._weekdaysMinStrictRegex : this._weekdaysMinRegex; } - return this._weekdaysMinStrictRegex && isStrict ? - this._weekdaysMinStrictRegex : this._weekdaysMinRegex; } -} -function computeWeekdaysParse () { - function cmpLenRev(a, b) { - return b.length - a.length; - } - - var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], - i, mom, minp, shortp, longp; - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - mom = createUTC([2000, 1]).day(i); - minp = this.weekdaysMin(mom, ''); - shortp = this.weekdaysShort(mom, ''); - longp = this.weekdays(mom, ''); - minPieces.push(minp); - shortPieces.push(shortp); - longPieces.push(longp); - mixedPieces.push(minp); - mixedPieces.push(shortp); - mixedPieces.push(longp); - } - // Sorting makes sure if one weekday (or abbr) is a prefix of another it - // will match the longer piece. - minPieces.sort(cmpLenRev); - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 7; i++) { - shortPieces[i] = regexEscape(shortPieces[i]); - longPieces[i] = regexEscape(longPieces[i]); - mixedPieces[i] = regexEscape(mixedPieces[i]); - } - - this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); - this._weekdaysShortRegex = this._weekdaysRegex; - this._weekdaysMinRegex = this._weekdaysRegex; - - this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); - this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); - this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); -} - -// FORMATTING + function computeWeekdaysParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } -function hFormat() { - return this.hours() % 12 || 12; -} + var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], + i, mom, minp, shortp, longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = this.weekdaysMin(mom, ''); + shortp = this.weekdaysShort(mom, ''); + longp = this.weekdays(mom, ''); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 7; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } -function kFormat() { - return this.hours() || 24; -} + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; -addFormatToken('H', ['HH', 2], 0, 'hour'); -addFormatToken('h', ['hh', 2], 0, hFormat); -addFormatToken('k', ['kk', 2], 0, kFormat); + this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); + } -addFormatToken('hmm', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); -}); + // FORMATTING -addFormatToken('hmmss', 0, 0, function () { - return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); -}); + function hFormat() { + return this.hours() % 12 || 12; + } -addFormatToken('Hmm', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2); -}); + function kFormat() { + return this.hours() || 24; + } -addFormatToken('Hmmss', 0, 0, function () { - return '' + this.hours() + zeroFill(this.minutes(), 2) + - zeroFill(this.seconds(), 2); -}); + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); -function meridiem (token, lowercase) { - addFormatToken(token, 0, 0, function () { - return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); }); -} -meridiem('a', true); -meridiem('A', false); + addFormatToken('hmmss', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); -// ALIASES + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); -addUnitAlias('hour', 'h'); + addFormatToken('Hmmss', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); -// PRIORITY -addUnitPriority('hour', 13); + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } -// PARSING + meridiem('a', true); + meridiem('A', false); -function matchMeridiem (isStrict, locale) { - return locale._meridiemParse; -} + // ALIASES -addRegexToken('a', matchMeridiem); -addRegexToken('A', matchMeridiem); -addRegexToken('H', match1to2); -addRegexToken('h', match1to2); -addRegexToken('k', match1to2); -addRegexToken('HH', match1to2, match2); -addRegexToken('hh', match1to2, match2); -addRegexToken('kk', match1to2, match2); - -addRegexToken('hmm', match3to4); -addRegexToken('hmmss', match5to6); -addRegexToken('Hmm', match3to4); -addRegexToken('Hmmss', match5to6); - -addParseToken(['H', 'HH'], HOUR); -addParseToken(['k', 'kk'], function (input, array, config) { - var kInput = toInt(input); - array[HOUR] = kInput === 24 ? 0 : kInput; -}); -addParseToken(['a', 'A'], function (input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; -}); -addParseToken(['h', 'hh'], function (input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; -}); -addParseToken('hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - getParsingFlags(config).bigHour = true; -}); -addParseToken('hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - getParsingFlags(config).bigHour = true; -}); -addParseToken('Hmm', function (input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); -}); -addParseToken('Hmmss', function (input, array, config) { - var pos1 = input.length - 4; - var pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); -}); + addUnitAlias('hour', 'h'); -// LOCALES + // PRIORITY + addUnitPriority('hour', 13); -function localeIsPM (input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return ((input + '').toLowerCase().charAt(0) === 'p'); -} + // PARSING -var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; -function localeMeridiem (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; } -} + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('k', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); -// MOMENTS + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); -// Setting the hour should keep the time, because the user explicitly -// specified which hour he wants. So trying to maintain the same hour (in -// a new timezone) makes sense. Adding/subtracting hours does not follow -// this rule. -var getSetHour = makeGetSet('Hours', true); - -// months -// week -// weekdays -// meridiem -var baseConfig = { - calendar: defaultCalendar, - longDateFormat: defaultLongDateFormat, - invalidDate: defaultInvalidDate, - ordinal: defaultOrdinal, - dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, - relativeTime: defaultRelativeTime, + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); - months: defaultLocaleMonths, - monthsShort: defaultLocaleMonthsShort, + // LOCALES - week: defaultLocaleWeek, + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } - weekdays: defaultLocaleWeekdays, - weekdaysMin: defaultLocaleWeekdaysMin, - weekdaysShort: defaultLocaleWeekdaysShort, + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } - meridiemParse: defaultLocaleMeridiemParse -}; -// internal storage for locale config files -var locales = {}; -var localeFamilies = {}; -var globalLocale; + // MOMENTS -function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; -} + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); -// pick the locale from the array -// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each -// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root -function chooseLocale(names) { - var i = 0, j, next, locale, split; - - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return null; -} + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, -function loadLocale(name) { - var oldLocale = null; - // TODO: Find a better way to register and load all the locales in Node - if (!locales[name] && (typeof module !== 'undefined') && - module && module.exports) { - try { - oldLocale = globalLocale._abbr; - var aliasedRequire = require; - !(function webpackMissingModule() { var e = new Error("Cannot find module \"./locale\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); - getSetGlobalLocale(oldLocale); - } catch (e) {} - } - return locales[name]; -} + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, -// This function will load locale and then set the global locale. If -// no arguments are passed in, it will simply return the current global -// locale key. -function getSetGlobalLocale (key, values) { - var data; - if (key) { - if (isUndefined(values)) { - data = getLocale(key); - } - else { - data = defineLocale(key, values); - } + week: defaultLocaleWeek, - if (data) { - // moment.duration._locale = moment._locale = data; - globalLocale = data; - } - } + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, - return globalLocale._abbr; -} + meridiemParse: defaultLocaleMeridiemParse + }; -function defineLocale (name, config) { - if (config !== null) { - var parentConfig = baseConfig; - config.abbr = name; - if (locales[name] != null) { - deprecateSimple('defineLocaleOverride', - 'use moment.updateLocale(localeName, config) to change ' + - 'an existing locale. moment.defineLocale(localeName, ' + - 'config) should only be used for creating a new locale ' + - 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); - parentConfig = locales[name]._config; - } else if (config.parentLocale != null) { - if (locales[config.parentLocale] != null) { - parentConfig = locales[config.parentLocale]._config; - } else { - if (!localeFamilies[config.parentLocale]) { - localeFamilies[config.parentLocale] = []; + // internal storage for locale config files + var locales = {}; + var localeFamilies = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; } - localeFamilies[config.parentLocale].push({ - name: name, - config: config - }); - return null; + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; } + i++; } - locales[name] = new Locale(mergeConfigs(parentConfig, config)); + return globalLocale; + } - if (localeFamilies[name]) { - localeFamilies[name].forEach(function (x) { - defineLocale(x.name, x.config); - }); + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && (typeof module !== 'undefined') && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + var aliasedRequire = require; + !(function webpackMissingModule() { var e = new Error("Cannot find module \"./locale\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); + getSetGlobalLocale(oldLocale); + } catch (e) {} } - - // backwards compat for now: also set the locale - // make sure we set the locale AFTER all child locales have been - // created, so we won't end up with the child locale set. - getSetGlobalLocale(name); - - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; } -} -function updateLocale(name, config) { - if (config != null) { - var locale, parentConfig = baseConfig; - // MERGE - if (locales[name] != null) { - parentConfig = locales[name]._config; - } - config = mergeConfigs(parentConfig, config); - locale = new Locale(config); - locale.parentLocale = locales[name]; - locales[name] = locale; + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale (key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } + else { + data = defineLocale(key, values); + } - // backwards compat for now: also set the locale - getSetGlobalLocale(name); - } else { - // pass null for config to unupdate, useful for tests - if (locales[name] != null) { - if (locales[name].parentLocale != null) { - locales[name] = locales[name].parentLocale; - } else if (locales[name] != null) { - delete locales[name]; + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + else { + if ((typeof console !== 'undefined') && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn('Locale ' + key + ' not found. Did you forget to load it?'); + } } } + + return globalLocale._abbr; } - return locales[name]; -} -// returns locale data -function getLocale (key) { - var locale; + function defineLocale (name, config) { + if (config !== null) { + var locale, parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple('defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); - if (!key) { - return globalLocale; - } - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; } - key = [key]; } - return chooseLocale(key); -} - -function listLocales() { - return keys(locales); -} + function updateLocale(name, config) { + if (config != null) { + var locale, tmpLocale, parentConfig = baseConfig; + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; -function checkOverflow (m) { - var overflow; - var a = m._a; + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } - if (a && getParsingFlags(m).overflow === -2) { - overflow = - a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : - a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : - a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : - a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : - a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : - a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : - -1; + // returns locale data + function getLocale (key) { + var locale; - if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; } - if (getParsingFlags(m)._overflowWeeks && overflow === -1) { - overflow = WEEK; + + if (!key) { + return globalLocale; } - if (getParsingFlags(m)._overflowWeekday && overflow === -1) { - overflow = WEEKDAY; + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; } - getParsingFlags(m).overflow = overflow; + return chooseLocale(key); } - return m; -} - -// Pick the first defined of two or three arguments. -function defaults(a, b, c) { - if (a != null) { - return a; - } - if (b != null) { - return b; + function listLocales() { + return keys(locales); } - return c; -} -function currentDateArray(config) { - // hooks is actually the exported moment object - var nowValue = new Date(hooks.now()); - if (config._useUTC) { - return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; - } - return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; -} + function checkOverflow (m) { + var overflow; + var a = m._a; -// convert an array to a date. -// the array should mirror the parameters below -// note: all values past the year are optional and will default to the lowest possible value. -// [year, month, day , hour, minute, second, millisecond] -function configFromArray (config) { - var i, date, input = [], currentDate, yearToUse; + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; - if (config._d) { - return; + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; } - currentDate = currentDateArray(config); + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; } - //if the day of the year is set, figure out what it is - if (config._dayOfYear != null) { - yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, expectedWeekday, yearToUse; - if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { - getParsingFlags(config)._overflowDayOfYear = true; + if (config._d) { + return; } - date = createUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } + currentDate = currentDateArray(config); - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; - } + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); - // Check for 24:00:00.000 - if (config._a[HOUR] === 24 && - config._a[MINUTE] === 0 && - config._a[SECOND] === 0 && - config._a[MILLISECOND] === 0) { - config._nextDay = true; - config._a[HOUR] = 0; - } + if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { + getParsingFlags(config)._overflowDayOfYear = true; + } - config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); - // Apply timezone offset from input. The actual utcOffset can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - } + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } - if (config._nextDay) { - config._a[HOUR] = 24; - } + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } - // check for mismatching day of week - if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== config._d.getDay()) { - getParsingFlags(config).weekdayMismatch = true; - } -} + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } -function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); - week = defaults(w.W, 1); - weekday = defaults(w.E, 1); - if (weekday < 1 || weekday > 7) { - weekdayOverflow = true; + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); } - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - var curWeek = weekOfYear(createLocal(), dow, doy); + if (config._nextDay) { + config._a[HOUR] = 24; + } - weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + // check for mismatching day of week + if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) { + getParsingFlags(config).weekdayMismatch = true; + } + } - // Default to current week. - week = defaults(w.w, curWeek.week); + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < 0 || weekday > 6) { - weekdayOverflow = true; - } - } else if (w.e != null) { - // local weekday -- counting starts from begining of week - weekday = w.e + dow; - if (w.e < 0 || w.e > 6) { + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { weekdayOverflow = true; } } else { - // default to begining of week - weekday = dow; - } - } - if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { - getParsingFlags(config)._overflowWeeks = true; - } else if (weekdayOverflow != null) { - getParsingFlags(config)._overflowWeekday = true; - } else { - temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } -} + dow = config._locale._week.dow; + doy = config._locale._week.doy; -// iso 8601 regex -// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) -var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; -var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; - -var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; - -var isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], - ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], - ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], - ['GGGG-[W]WW', /\d{4}-W\d\d/, false], - ['YYYY-DDD', /\d{4}-\d{3}/], - ['YYYY-MM', /\d{4}-\d\d/, false], - ['YYYYYYMMDD', /[+-]\d{10}/], - ['YYYYMMDD', /\d{8}/], - // YYYYMM is NOT allowed by the standard - ['GGGG[W]WWE', /\d{4}W\d{3}/], - ['GGGG[W]WW', /\d{4}W\d{2}/, false], - ['YYYYDDD', /\d{7}/] -]; - -// iso time formats and regexes -var isoTimes = [ - ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], - ['HH:mm:ss', /\d\d:\d\d:\d\d/], - ['HH:mm', /\d\d:\d\d/], - ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], - ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], - ['HHmmss', /\d\d\d\d\d\d/], - ['HHmm', /\d\d\d\d/], - ['HH', /\d\d/] -]; - -var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; - -// date from iso format -function configFromISO(config) { - var i, l, - string = config._i, - match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), - allowTime, dateFormat, timeFormat, tzFormat; + var curWeek = weekOfYear(createLocal(), dow, doy); - if (match) { - getParsingFlags(config).iso = true; + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(match[1])) { - dateFormat = isoDates[i][0]; - allowTime = isoDates[i][2] !== false; - break; + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; } } - if (dateFormat == null) { - config._isValid = false; - return; - } - if (match[3]) { - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(match[3])) { - // match[2] should be 'T' or space - timeFormat = (match[2] || ' ') + isoTimes[i][0]; + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + // YYYYMM is NOT allowed by the standard + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, dateFormat, timeFormat, tzFormat; + + if (match) { + getParsingFlags(config).iso = true; + + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; break; } } - if (timeFormat == null) { + if (dateFormat == null) { config._isValid = false; return; } - } - if (!allowTime && timeFormat != null) { - config._isValid = false; - return; - } - if (match[4]) { - if (tzRegex.exec(match[4])) { - tzFormat = 'Z'; - } else { + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { config._isValid = false; return; } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; } - config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); - configFromStringAndFormat(config); - } else { - config._isValid = false; } -} -// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 -var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; -function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { - var result = [ - untruncateYear(yearStr), - defaultLocaleMonthsShort.indexOf(monthStr), - parseInt(dayStr, 10), - parseInt(hourStr, 10), - parseInt(minuteStr, 10) - ]; + function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10) + ]; - if (secondStr) { - result.push(parseInt(secondStr, 10)); - } - - return result; -} + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } -function untruncateYear(yearStr) { - var year = parseInt(yearStr, 10); - if (year <= 49) { - return 2000 + year; - } else if (year <= 999) { - return 1900 + year; + return result; } - return year; -} - -function preprocessRFC2822(s) { - // Remove comments and folding whitespace and replace multiple-spaces with a single space - return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').trim(); -} -function checkWeekday(weekdayStr, parsedInput, config) { - if (weekdayStr) { - // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. - var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), - weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); - if (weekdayProvided !== weekdayActual) { - getParsingFlags(config).weekdayMismatch = true; - config._isValid = false; - return false; + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; } + return year; } - return true; -} -var obsOffsets = { - UT: 0, - GMT: 0, - EDT: -4 * 60, - EST: -5 * 60, - CDT: -5 * 60, - CST: -6 * 60, - MDT: -6 * 60, - MST: -7 * 60, - PDT: -7 * 60, - PST: -8 * 60 -}; - -function calculateOffset(obsOffset, militaryOffset, numOffset) { - if (obsOffset) { - return obsOffsets[obsOffset]; - } else if (militaryOffset) { - // the only allowed military tz is Z - return 0; - } else { - var hm = parseInt(numOffset, 10); - var m = hm % 100, h = (hm - m) / 100; - return h * 60 + m; + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, ''); } -} -// date and time from ref 2822 format -function configFromRFC2822(config) { - var match = rfc2822.exec(preprocessRFC2822(config._i)); - if (match) { - var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]); - if (!checkWeekday(match[1], parsedArray, config)) { - return; + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } } - - config._a = parsedArray; - config._tzm = calculateOffset(match[8], match[9], match[10]); - - config._d = createUTCDate.apply(null, config._a); - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - - getParsingFlags(config).rfc2822 = true; - } else { - config._isValid = false; + return true; } -} -// date from iso format or fallback -function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); + var obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60 + }; - if (matched !== null) { - config._d = new Date(+matched[1]); - return; + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10); + var m = hm % 100, h = (hm - m) / 100; + return h * 60 + m; + } } - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)); + if (match) { + var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } - configFromRFC2822(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); - // Final attempt, use Input Fallback - hooks.createFromInputFallback(config); -} + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); -hooks.createFromInputFallback = deprecate( - 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + - 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + - 'discouraged and will be removed in an upcoming major release. Please refer to ' + - 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', - function (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } } -); -// constant that refers to the ISO standard -hooks.ISO_8601 = function () {}; + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); -// constant that refers to the RFC 2822 form -hooks.RFC_2822 = function () {}; + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } -// date from string and format string -function configFromStringAndFormat(config) { - // TODO: Move this to another part of the creation flow to prevent circular deps - if (config._f === hooks.ISO_8601) { configFromISO(config); - return; - } - if (config._f === hooks.RFC_2822) { + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + configFromRFC2822(config); - return; + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); } - config._a = []; - getParsingFlags(config).empty = true; - - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, parsedInput, tokens, token, skipped, - stringLength = string.length, - totalParsedInputLength = 0; - - tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; - - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; - // console.log('token', token, 'parsedInput', parsedInput, - // 'regex', getParseRegexForToken(token, config)); - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - getParsingFlags(config).unusedInput.push(skipped); - } - string = string.slice(string.indexOf(parsedInput) + parsedInput.length); - totalParsedInputLength += parsedInput.length; + + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged and will be removed in an upcoming major release. Please refer to ' + + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { + ); + + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; + + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + // console.log('token', token, 'parsedInput', parsedInput, + // 'regex', getParseRegexForToken(token, config)); if (parsedInput) { - getParsingFlags(config).empty = false; + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; } - else { + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { getParsingFlags(config).unusedTokens.push(token); } - addTimeToArrayFromToken(token, parsedInput, config); - } - else if (config._strict && !parsedInput) { - getParsingFlags(config).unusedTokens.push(token); } - } - // add remaining unparsed input length to the string - getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; - if (string.length > 0) { - getParsingFlags(config).unusedInput.push(string); - } + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } - // clear _12h flag if hour is <= 12 - if (config._a[HOUR] <= 12 && - getParsingFlags(config).bigHour === true && - config._a[HOUR] > 0) { - getParsingFlags(config).bigHour = undefined; - } + // clear _12h flag if hour is <= 12 + if (config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } - getParsingFlags(config).parsedDateParts = config._a.slice(0); - getParsingFlags(config).meridiem = config._meridiem; - // handle meridiem - config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); - configFromArray(config); - checkOverflow(config); -} + configFromArray(config); + checkOverflow(config); + } -function meridiemFixWrap (locale, hour, meridiem) { - var isPm; + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; - if (meridiem == null) { - // nothing to do - return hour; - } - if (locale.meridiemHour != null) { - return locale.meridiemHour(hour, meridiem); - } else if (locale.isPM != null) { - // Fallback - isPm = locale.isPM(meridiem); - if (isPm && hour < 12) { - hour += 12; + if (meridiem == null) { + // nothing to do + return hour; } - if (!isPm && hour === 12) { - hour = 0; + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; } - return hour; - } else { - // this is not supposed to happen - return hour; } -} -// date from string and array of format strings -function configFromStringAndArray(config) { - var tempConfig, - bestMoment, + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, - scoreToBeat, - i, - currentScore; - - if (config._f.length === 0) { - getParsingFlags(config).invalidFormat = true; - config._d = new Date(NaN); - return; - } + scoreToBeat, + i, + currentScore; - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - tempConfig = copyConfig({}, config); - if (config._useUTC != null) { - tempConfig._useUTC = config._useUTC; + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; } - tempConfig._f = config._f[i]; - configFromStringAndFormat(tempConfig); - if (!isValid(tempConfig)) { - continue; - } + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!isValid(tempConfig)) { + continue; + } - // if there is any input that was not parsed add a penalty for that format - currentScore += getParsingFlags(tempConfig).charsLeftOver; + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; - //or tokens - currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; - getParsingFlags(tempConfig).score = currentScore; + getParsingFlags(tempConfig).score = currentScore; - if (scoreToBeat == null || currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } } + + extend(config, bestMoment || tempConfig); } - extend(config, bestMoment || tempConfig); -} + function configFromObject(config) { + if (config._d) { + return; + } -function configFromObject(config) { - if (config._d) { - return; - } + var i = normalizeObjectUnits(config._i); + config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { + return obj && parseInt(obj, 10); + }); - var i = normalizeObjectUnits(config._i); - config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { - return obj && parseInt(obj, 10); - }); + configFromArray(config); + } - configFromArray(config); -} + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } -function createFromConfig (config) { - var res = new Moment(checkOverflow(prepareConfig(config))); - if (res._nextDay) { - // Adding is smart enough around DST - res.add(1, 'd'); - res._nextDay = undefined; + return res; } - return res; -} + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({nullInput: true}); + } -function prepareConfig (config) { - var input = config._i, - format = config._f; + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } - config._locale = config._locale || getLocale(config._l); + if (!isValid(config)) { + config._d = null; + } - if (input === null || (format === undefined && input === '')) { - return createInvalid({nullInput: true}); + return config; } - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } } - if (isMoment(input)) { - return new Moment(checkOverflow(input)); - } else if (isDate(input)) { - config._d = input; - } else if (isArray(format)) { - configFromStringAndArray(config); - } else if (format) { - configFromStringAndFormat(config); - } else { - configFromInput(config); + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ((isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0)) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); } - if (!isValid(config)) { - config._d = null; + function createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); } - return config; -} + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ); -function configFromInput(config) { - var input = config._i; - if (isUndefined(input)) { - config._d = new Date(hooks.now()); - } else if (isDate(input)) { - config._d = new Date(input.valueOf()); - } else if (typeof input === 'string') { - configFromString(config); - } else if (isArray(input)) { - config._a = map(input.slice(0), function (obj) { - return parseInt(obj, 10); - }); - configFromArray(config); - } else if (isObject(input)) { - configFromObject(config); - } else if (isNumber(input)) { - // from milliseconds - config._d = new Date(input); - } else { - hooks.createFromInputFallback(config); + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; } -} -function createLocalOrUTC (input, format, locale, strict, isUTC) { - var c = {}; + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); - if (locale === true || locale === false) { - strict = locale; - locale = undefined; + return pickBy('isBefore', args); } - if ((isObject(input) && isObjectEmpty(input)) || - (isArray(input) && input.length === 0)) { - input = undefined; + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c._isAMomentObject = true; - c._useUTC = c._isUTC = isUTC; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; - return createFromConfig(c); -} + var now = function () { + return Date.now ? Date.now() : +(new Date()); + }; -function createLocal (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, false); -} + var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; -var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other < this ? this : other; - } else { - return createInvalid(); + function isDurationValid(m) { + for (var key in m) { + if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { + return false; + } } - } -); -var prototypeMax = deprecate( - 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', - function () { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other > this ? this : other; - } else { - return createInvalid(); + var unitHasDecimal = false; + for (var i = 0; i < ordering.length; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } } - } -); -// Pick a moment m from moments so that m[fn](other) is true for all -// other. This relies on the function fn to be transitive. -// -// moments should either be an array of moment objects or an array, whose -// first element is an array of moment objects. -function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; + return true; } - if (!moments.length) { - return createLocal(); + + function isValid$1() { + return this._isValid; } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (!moments[i].isValid() || moments[i][fn](res)) { - res = moments[i]; - } + + function createInvalid$1() { + return createDuration(NaN); } - return res; -} -// TODO: Use [].sort instead? -function min () { - var args = [].slice.call(arguments, 0); + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; - return pickBy('isBefore', args); -} + this._isValid = isDurationValid(normalizedInput); -function max () { - var args = [].slice.call(arguments, 0); + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; - return pickBy('isAfter', args); -} + this._data = {}; -var now = function () { - return Date.now ? Date.now() : +(new Date()); -}; + this._locale = getLocale(); -var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; + this._bubble(); + } -function isDurationValid(m) { - for (var key in m) { - if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { - return false; - } + function isDuration (obj) { + return obj instanceof Duration; } - var unitHasDecimal = false; - for (var i = 0; i < ordering.length; ++i) { - if (m[ordering[i]]) { - if (unitHasDecimal) { - return false; // only allow non-integers for smallest unit - } - if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { - unitHasDecimal = true; - } + function absRound (number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); } } - return true; -} - -function isValid$1() { - return this._isValid; -} - -function createInvalid$1() { - return createDuration(NaN); -} - -function Duration (duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - this._isValid = isDurationValid(normalizedInput); - - // representation for dateAddRemove - this._milliseconds = +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + - weeks * 7; - // It is impossible to translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + - quarters * 3 + - years * 12; - - this._data = {}; - - this._locale = getLocale(); - - this._bubble(); -} - -function isDuration (obj) { - return obj instanceof Duration; -} + // FORMATTING -function absRound (number) { - if (number < 0) { - return Math.round(-1 * number) * -1; - } else { - return Math.round(number); + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); } -} -// FORMATTING + offset('Z', ':'); + offset('ZZ', ''); -function offset (token, separator) { - addFormatToken(token, 0, 0, function () { - var offset = this.utcOffset(); - var sign = '+'; - if (offset < 0) { - offset = -offset; - sign = '-'; - } - return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); - }); -} + // PARSING -offset('Z', ':'); -offset('ZZ', ''); + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); -// PARSING + // HELPERS -addRegexToken('Z', matchShortOffset); -addRegexToken('ZZ', matchShortOffset); -addParseToken(['Z', 'ZZ'], function (input, array, config) { - config._useUTC = true; - config._tzm = offsetFromString(matchShortOffset, input); -}); + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; -// HELPERS + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher); -// timezone chunker -// '+10:00' > ['10', '00'] -// '-1530' > ['-15', '30'] -var chunkOffset = /([\+\-]|\d\d)/gi; + if (matches === null) { + return null; + } -function offsetFromString(matcher, string) { - var matches = (string || '').match(matcher); + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); - if (matches === null) { - return null; + return minutes === 0 ? + 0 : + parts[0] === '+' ? minutes : -minutes; } - var chunk = matches[matches.length - 1] || []; - var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; - var minutes = +(parts[1] * 60) + toInt(parts[2]); - - return minutes === 0 ? - 0 : - parts[0] === '+' ? minutes : -minutes; -} - -// Return a moment from input, that is local/utc/zone equivalent to model. -function cloneWithOffset(input, model) { - var res, diff; - if (model._isUTC) { - res = model.clone(); - diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); - // Use low-level api, because this fn is low-level api. - res._d.setTime(res._d.valueOf() + diff); - hooks.updateOffset(res, false); - return res; - } else { - return createLocal(input).local(); + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } } -} -function getDateOffset (m) { - // On Firefox.24 Date#getTimezoneOffset returns a floating point. - // https://github.com/moment/moment/pull/1871 - return -Math.round(m._d.getTimezoneOffset() / 15) * 15; -} + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } -// HOOKS + // HOOKS -// This function will be called whenever a moment is mutated. -// It is intended to keep the offset in sync with the timezone. -hooks.updateOffset = function () {}; + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; -// MOMENTS + // MOMENTS -// keepLocalTime = true means only change the timezone, without -// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> -// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset -// +0200, so we adjust the time as needed, to be valid. -// -// Keeping the time actually adds/subtracts (one hour) -// from the actual represented time. That is why we call updateOffset -// a second time. In case it wants us to change the offset again -// _changeInProgress == true case, then we have to adjust, because -// there is no such time in the given timezone. -function getSetOffset (input, keepLocalTime, keepMinutes) { - var offset = this._offset || 0, - localAdjust; - if (!this.isValid()) { - return input != null ? this : NaN; - } - if (input != null) { - if (typeof input === 'string') { - input = offsetFromString(matchShortOffset, input); - if (input === null) { - return this; + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; } - } else if (Math.abs(input) < 16 && !keepMinutes) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = getDateOffset(this); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addSubtract(this, createDuration(input - offset, 'm'), 1, false); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - hooks.updateOffset(this, true); - this._changeInProgress = null; + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract(this, createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); } - return this; - } else { - return this._isUTC ? offset : getDateOffset(this); } -} -function getSetZone (input, keepLocalTime) { - if (input != null) { - if (typeof input !== 'string') { - input = -input; - } + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } - this.utcOffset(input, keepLocalTime); + this.utcOffset(input, keepLocalTime); - return this; - } else { - return -this.utcOffset(); + return this; + } else { + return -this.utcOffset(); + } } -} -function setOffsetToUTC (keepLocalTime) { - return this.utcOffset(0, keepLocalTime); -} + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } -function setOffsetToLocal (keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; - if (keepLocalTime) { - this.subtract(getDateOffset(this), 'm'); + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } } + return this; } - return this; -} -function setOffsetToParsedOffset () { - if (this._tzm != null) { - this.utcOffset(this._tzm, false, true); - } else if (typeof this._i === 'string') { - var tZone = offsetFromString(matchOffset, this._i); - if (tZone != null) { - this.utcOffset(tZone); - } - else { - this.utcOffset(0, true); + function setOffsetToParsedOffset () { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } + else { + this.utcOffset(0, true); + } } + return this; } - return this; -} - -function hasAlignedHourOffset (input) { - if (!this.isValid()) { - return false; - } - input = input ? createLocal(input).utcOffset() : 0; - - return (this.utcOffset() - input) % 60 === 0; -} -function isDaylightSavingTime () { - return ( - this.utcOffset() > this.clone().month(0).utcOffset() || - this.utcOffset() > this.clone().month(5).utcOffset() - ); -} + function hasAlignedHourOffset (input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; -function isDaylightSavingTimeShifted () { - if (!isUndefined(this._isDSTShifted)) { - return this._isDSTShifted; + return (this.utcOffset() - input) % 60 === 0; } - var c = {}; - - copyConfig(c, this); - c = prepareConfig(c); - - if (c._a) { - var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); - this._isDSTShifted = this.isValid() && - compareArrays(c._a, other.toArray()) > 0; - } else { - this._isDSTShifted = false; + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); } - return this._isDSTShifted; -} - -function isLocal () { - return this.isValid() ? !this._isUTC : false; -} + function isDaylightSavingTimeShifted () { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } -function isUtcOffset () { - return this.isValid() ? this._isUTC : false; -} + var c = {}; -function isUtc () { - return this.isValid() ? this._isUTC && this._offset === 0 : false; -} + copyConfig(c, this); + c = prepareConfig(c); -// ASP.NET json date format regex -var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; - -// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html -// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere -// and further modified to allow for strings containing both week and day -var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; - -function createDuration (input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - diffRes; - - if (isDuration(input)) { - duration = { - ms : input._milliseconds, - d : input._days, - M : input._months - }; - } else if (isNumber(input)) { - duration = {}; - if (key) { - duration[key] = input; + if (c._a) { + var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; } else { - duration.milliseconds = input; - } - } else if (!!(match = aspNetRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : 0, - d : toInt(match[DATE]) * sign, - h : toInt(match[HOUR]) * sign, - m : toInt(match[MINUTE]) * sign, - s : toInt(match[SECOND]) * sign, - ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match - }; - } else if (!!(match = isoRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1; - duration = { - y : parseIso(match[2], sign), - M : parseIso(match[3], sign), - w : parseIso(match[4], sign), - d : parseIso(match[5], sign), - h : parseIso(match[6], sign), - m : parseIso(match[7], sign), - s : parseIso(match[8], sign) - }; - } else if (duration == null) {// checks for null or undefined - duration = {}; - } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { - diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); + this._isDSTShifted = false; + } - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; + return this._isDSTShifted; } - ret = new Duration(duration); - - if (isDuration(input) && hasOwnProp(input, '_locale')) { - ret._locale = input._locale; + function isLocal () { + return this.isValid() ? !this._isUTC : false; } - return ret; -} - -createDuration.fn = Duration.prototype; -createDuration.invalid = createInvalid$1; - -function parseIso (inp, sign) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; -} - -function positiveMomentsDifference(base, other) { - var res = {milliseconds: 0, months: 0}; - - res.months = other.month() - base.month() + - (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; + function isUtcOffset () { + return this.isValid() ? this._isUTC : false; } - res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + function isUtc () { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } - return res; -} + // ASP.NET json date format regex + var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; -function momentsDifference(base, other) { - var res; - if (!(base.isValid() && other.isValid())) { - return {milliseconds: 0, months: 0}; - } + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; - other = cloneWithOffset(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } + function createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; - return res; -} + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (isNumber(input)) { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match + }; + } else if (!!(match = isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + w : parseIso(match[4], sign), + d : parseIso(match[5], sign), + h : parseIso(match[6], sign), + m : parseIso(match[7], sign), + s : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); -// TODO: remove 'name' arg after deprecation is removed -function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + - 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); - tmp = val; val = period; period = tmp; + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; } - val = typeof val === 'string' ? +val : val; - dur = createDuration(val, period); - addSubtract(this, dur, direction); - return this; - }; -} + ret = new Duration(duration); -function addSubtract (mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = absRound(duration._days), - months = absRound(duration._months); + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } - if (!mom.isValid()) { - // No op - return; + return ret; } - updateOffset = updateOffset == null ? true : updateOffset; + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; - if (months) { - setMonth(mom, get(mom, 'Month') + months * isAdding); - } - if (days) { - set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; } - if (milliseconds) { - mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); - } - if (updateOffset) { - hooks.updateOffset(mom, days || months); - } -} -var add = createAdder(1, 'add'); -var subtract = createAdder(-1, 'subtract'); - -function getCalendarFormat(myMoment, now) { - var diff = myMoment.diff(now, 'days', true); - return diff < -6 ? 'sameElse' : - diff < -1 ? 'lastWeek' : - diff < 0 ? 'lastDay' : - diff < 1 ? 'sameDay' : - diff < 2 ? 'nextDay' : - diff < 7 ? 'nextWeek' : 'sameElse'; -} + function positiveMomentsDifference(base, other) { + var res = {}; -function calendar$1 (time, formats) { - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're local/utc/offset or not. - var now = time || createLocal(), - sod = cloneWithOffset(now, this).startOf('day'), - format = hooks.calendarFormat(this, sod) || 'sameElse'; + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } - var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); - return this.format(output || this.localeData().calendar(format, this, createLocal(now))); -} + return res; + } -function clone () { - return new Moment(this); -} + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return {milliseconds: 0, months: 0}; + } -function isAfter (input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() > localInput.valueOf(); - } else { - return localInput.valueOf() < this.clone().startOf(units).valueOf(); - } -} + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } -function isBefore (input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() < localInput.valueOf(); - } else { - return this.clone().endOf(units).valueOf() < localInput.valueOf(); + return res; } -} -function isBetween (from, to, units, inclusivity) { - inclusivity = inclusivity || '()'; - return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && - (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); -} + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); + tmp = val; val = period; period = tmp; + } -function isSame (input, units) { - var localInput = isMoment(input) ? input : createLocal(input), - inputMs; - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units || 'millisecond'); - if (units === 'millisecond') { - return this.valueOf() === localInput.valueOf(); - } else { - inputMs = localInput.valueOf(); - return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); + val = typeof val === 'string' ? +val : val; + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; } -} -function isSameOrAfter (input, units) { - return this.isSame(input, units) || this.isAfter(input,units); -} + function addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); -function isSameOrBefore (input, units) { - return this.isSame(input, units) || this.isBefore(input,units); -} + if (!mom.isValid()) { + // No op + return; + } -function diff (input, units, asFloat) { - var that, - zoneDelta, - delta, output; + updateOffset = updateOffset == null ? true : updateOffset; - if (!this.isValid()) { - return NaN; + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } } - that = cloneWithOffset(input, this); + var add = createAdder(1, 'add'); + var subtract = createAdder(-1, 'subtract'); - if (!that.isValid()) { - return NaN; + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; } - zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + function calendar$1 (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse'; - units = normalizeUnits(units); + var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); - switch (units) { - case 'year': output = monthDiff(this, that) / 12; break; - case 'month': output = monthDiff(this, that); break; - case 'quarter': output = monthDiff(this, that) / 3; break; - case 'second': output = (this - that) / 1e3; break; // 1000 - case 'minute': output = (this - that) / 6e4; break; // 1000 * 60 - case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60 - case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst - case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst - default: output = this - that; + return this.format(output || this.localeData().calendar(format, this, createLocal(now))); } - return asFloat ? output : absFloor(output); -} - -function monthDiff (a, b) { - // difference in months - var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), - // b is in (anchor - 1 month, anchor + 1 month) - anchor = a.clone().add(wholeMonthDiff, 'months'), - anchor2, adjust; - - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor2 - anchor); + function clone () { + return new Moment(this); } - //check for negative zero, return zero if negative zero - return -(wholeMonthDiff + adjust) || 0; -} - -hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; -hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; - -function toString () { - return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); -} - -function toISOString() { - if (!this.isValid()) { - return null; - } - var m = this.clone().utc(); - if (m.year() < 0 || m.year() > 9999) { - return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - if (isFunction(Date.prototype.toISOString)) { - // native implementation is ~50x faster, use it when we can - return this.toDate().toISOString(); + function isAfter (input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } } - return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); -} -/** - * Return a human readable representation of a moment that can - * also be evaluated to get a new moment which is the same - * - * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects - */ -function inspect () { - if (!this.isValid()) { - return 'moment.invalid(/* ' + this._i + ' */)'; - } - var func = 'moment'; - var zone = ''; - if (!this.isLocal()) { - func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; - zone = 'Z'; + function isBefore (input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } } - var prefix = '[' + func + '("]'; - var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; - var datetime = '-MM-DD[T]HH:mm:ss.SSS'; - var suffix = zone + '[")]'; - - return this.format(prefix + year + datetime + suffix); -} -function format (inputString) { - if (!inputString) { - inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; + function isBetween (from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units)); } - var output = formatMoment(this, inputString); - return this.localeData().postformat(output); -} -function from (time, withoutSuffix) { - if (this.isValid() && - ((isMoment(time) && time.isValid()) || - createLocal(time).isValid())) { - return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); + function isSame (input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); + } } -} -function fromNow (withoutSuffix) { - return this.from(createLocal(), withoutSuffix); -} + function isSameOrAfter (input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } -function to (time, withoutSuffix) { - if (this.isValid() && - ((isMoment(time) && time.isValid()) || - createLocal(time).isValid())) { - return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); + function isSameOrBefore (input, units) { + return this.isSame(input, units) || this.isBefore(input, units); } -} -function toNow (withoutSuffix) { - return this.to(createLocal(), withoutSuffix); -} + function diff (input, units, asFloat) { + var that, + zoneDelta, + output; -// If passed a locale key, it will set the locale for this -// instance. Otherwise, it will return the locale configuration -// variables for this instance. -function locale (key) { - var newLocaleData; + if (!this.isValid()) { + return NaN; + } - if (key === undefined) { - return this._locale._abbr; - } else { - newLocaleData = getLocale(key); - if (newLocaleData != null) { - this._locale = newLocaleData; + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; } - return this; - } -} -var lang = deprecate( - 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', - function (key) { - if (key === undefined) { - return this.localeData(); + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': output = monthDiff(this, that) / 12; break; + case 'month': output = monthDiff(this, that); break; + case 'quarter': output = monthDiff(this, that) / 3; break; + case 'second': output = (this - that) / 1e3; break; // 1000 + case 'minute': output = (this - that) / 6e4; break; // 1000 * 60 + case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60 + case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst + case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: output = this - that; + } + + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); } else { - return this.locale(key); + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); } - } -); - -function localeData () { - return this._locale; -} -function startOf (units) { - units = normalizeUnits(units); - // the following switch intentionally omits break keywords - // to utilize falling through the cases. - switch (units) { - case 'year': - this.month(0); - /* falls through */ - case 'quarter': - case 'month': - this.date(1); - /* falls through */ - case 'week': - case 'isoWeek': - case 'day': - case 'date': - this.hours(0); - /* falls through */ - case 'hour': - this.minutes(0); - /* falls through */ - case 'minute': - this.seconds(0); - /* falls through */ - case 'second': - this.milliseconds(0); - } - - // weeks are a special case - if (units === 'week') { - this.weekday(0); - } - if (units === 'isoWeek') { - this.isoWeekday(1); - } - - // quarters are also special - if (units === 'quarter') { - this.month(Math.floor(this.month() / 3) * 3); + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; } - return this; -} + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; -function endOf (units) { - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond') { - return this; + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); } - // 'date' is an alias for 'day', so it should be considered as such. - if (units === 'date') { - units = 'day'; + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true; + var m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'); } - return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); -} - -function valueOf () { - return this._d.valueOf() - ((this._offset || 0) * 60000); -} + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect () { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment'; + var zone = ''; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + var prefix = '[' + func + '("]'; + var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; + var datetime = '-MM-DD[T]HH:mm:ss.SSS'; + var suffix = zone + '[")]'; -function unix () { - return Math.floor(this.valueOf() / 1000); -} + return this.format(prefix + year + datetime + suffix); + } -function toDate () { - return new Date(this.valueOf()); -} + function format (inputString) { + if (!inputString) { + inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } -function toArray () { - var m = this; - return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; -} + function from (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + createLocal(time).isValid())) { + return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } -function toObject () { - var m = this; - return { - years: m.year(), - months: m.month(), - date: m.date(), - hours: m.hours(), - minutes: m.minutes(), - seconds: m.seconds(), - milliseconds: m.milliseconds() - }; -} + function fromNow (withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } -function toJSON () { - // new Date(NaN).toJSON() === null - return this.isValid() ? this.toISOString() : null; -} + function to (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + createLocal(time).isValid())) { + return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } -function isValid$2 () { - return isValid(this); -} + function toNow (withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } -function parsingFlags () { - return extend({}, getParsingFlags(this)); -} + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale (key) { + var newLocaleData; -function invalidAt () { - return getParsingFlags(this).overflow; -} + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } -function creationData() { - return { - input: this._i, - format: this._f, - locale: this._locale, - isUTC: this._isUTC, - strict: this._strict - }; -} + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); -// FORMATTING + function localeData () { + return this._locale; + } -addFormatToken(0, ['gg', 2], 0, function () { - return this.weekYear() % 100; -}); + var MS_PER_SECOND = 1000; + var MS_PER_MINUTE = 60 * MS_PER_SECOND; + var MS_PER_HOUR = 60 * MS_PER_MINUTE; + var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; -addFormatToken(0, ['GG', 2], 0, function () { - return this.isoWeekYear() % 100; -}); + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return (dividend % divisor + divisor) % divisor; + } -function addWeekYearFormatToken (token, getter) { - addFormatToken(0, [token, token.length], 0, getter); -} + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } + } -addWeekYearFormatToken('gggg', 'weekYear'); -addWeekYearFormatToken('ggggg', 'weekYear'); -addWeekYearFormatToken('GGGG', 'isoWeekYear'); -addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } + } -// ALIASES + function startOf (units) { + var time; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } -addUnitAlias('weekYear', 'gg'); -addUnitAlias('isoWeekYear', 'GG'); + var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; -// PRIORITY + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate(this.year(), this.month() - this.month() % 3, 1); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate(this.year(), this.month(), this.date() - this.weekday()); + break; + case 'isoWeek': + time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } -addUnitPriority('weekYear', 1); -addUnitPriority('isoWeekYear', 1); + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + function endOf (units) { + var time; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } -// PARSING + var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; -addRegexToken('G', matchSigned); -addRegexToken('g', matchSigned); -addRegexToken('GG', match1to2, match2); -addRegexToken('gg', match1to2, match2); -addRegexToken('GGGG', match1to4, match4); -addRegexToken('gggg', match1to4, match4); -addRegexToken('GGGGG', match1to6, match6); -addRegexToken('ggggg', match1to6, match6); + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; + break; + case 'isoWeek': + time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } -addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { - week[token.substr(0, 2)] = toInt(input); -}); + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } -addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { - week[token] = hooks.parseTwoDigitYear(input); -}); + function valueOf () { + return this._d.valueOf() - ((this._offset || 0) * 60000); + } -// MOMENTS + function unix () { + return Math.floor(this.valueOf() / 1000); + } -function getSetWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, - this.week(), - this.weekday(), - this.localeData()._week.dow, - this.localeData()._week.doy); -} + function toDate () { + return new Date(this.valueOf()); + } -function getSetISOWeekYear (input) { - return getSetWeekYearHelper.call(this, - input, this.isoWeek(), this.isoWeekday(), 1, 4); -} + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } -function getISOWeeksInYear () { - return weeksInYear(this.year(), 1, 4); -} + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } -function getWeeksInYear () { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); -} + function toJSON () { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } -function getSetWeekYearHelper(input, week, weekday, dow, doy) { - var weeksTarget; - if (input == null) { - return weekOfYear(this, dow, doy).year; - } else { - weeksTarget = weeksInYear(input, dow, doy); - if (week > weeksTarget) { - week = weeksTarget; - } - return setWeekAll.call(this, input, week, weekday, dow, doy); + function isValid$2 () { + return isValid(this); } -} -function setWeekAll(weekYear, week, weekday, dow, doy) { - var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), - date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } - this.year(date.getUTCFullYear()); - this.month(date.getUTCMonth()); - this.date(date.getUTCDate()); - return this; -} + function invalidAt () { + return getParsingFlags(this).overflow; + } -// FORMATTING + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + }; + } -addFormatToken('Q', 0, 'Qo', 'quarter'); + // FORMATTING -// ALIASES + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); -addUnitAlias('quarter', 'Q'); + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); -// PRIORITY + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } -addUnitPriority('quarter', 7); + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); -// PARSING + // ALIASES -addRegexToken('Q', match1); -addParseToken('Q', function (input, array) { - array[MONTH] = (toInt(input) - 1) * 3; -}); + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); -// MOMENTS + // PRIORITY -function getSetQuarter (input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); -} + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); -// FORMATTING -addFormatToken('D', ['DD', 2], 'Do', 'date'); + // PARSING -// ALIASES + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); -addUnitAlias('date', 'D'); + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); -// PRIOROITY -addUnitPriority('date', 9); + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); -// PARSING + // MOMENTS -addRegexToken('D', match1to2); -addRegexToken('DD', match1to2, match2); -addRegexToken('Do', function (isStrict, locale) { - // TODO: Remove "ordinalParse" fallback in next major release. - return isStrict ? - (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : - locale._dayOfMonthOrdinalParseLenient; -}); + function getSetWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy); + } -addParseToken(['D', 'DD'], DATE); -addParseToken('Do', function (input, array) { - array[DATE] = toInt(input.match(match1to2)[0], 10); -}); + function getSetISOWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, this.isoWeek(), this.isoWeekday(), 1, 4); + } -// MOMENTS + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } -var getSetDayOfMonth = makeGetSet('Date', true); + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } -// FORMATTING + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } -addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); -// ALIASES + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } -addUnitAlias('dayOfYear', 'DDD'); + // FORMATTING -// PRIORITY -addUnitPriority('dayOfYear', 4); + addFormatToken('Q', 0, 'Qo', 'quarter'); -// PARSING + // ALIASES -addRegexToken('DDD', match1to3); -addRegexToken('DDDD', match3); -addParseToken(['DDD', 'DDDD'], function (input, array, config) { - config._dayOfYear = toInt(input); -}); + addUnitAlias('quarter', 'Q'); -// HELPERS + // PRIORITY -// MOMENTS + addUnitPriority('quarter', 7); -function getSetDayOfYear (input) { - var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; - return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); -} + // PARSING -// FORMATTING + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); -addFormatToken('m', ['mm', 2], 0, 'minute'); + // MOMENTS -// ALIASES + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } -addUnitAlias('minute', 'm'); + // FORMATTING -// PRIORITY + addFormatToken('D', ['DD', 2], 'Do', 'date'); -addUnitPriority('minute', 14); + // ALIASES -// PARSING + addUnitAlias('date', 'D'); -addRegexToken('m', match1to2); -addRegexToken('mm', match1to2, match2); -addParseToken(['m', 'mm'], MINUTE); + // PRIORITY + addUnitPriority('date', 9); -// MOMENTS + // PARSING -var getSetMinute = makeGetSet('Minutes', false); + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict ? + (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : + locale._dayOfMonthOrdinalParseLenient; + }); -// FORMATTING + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); -addFormatToken('s', ['ss', 2], 0, 'second'); + // MOMENTS -// ALIASES + var getSetDayOfMonth = makeGetSet('Date', true); -addUnitAlias('second', 's'); + // FORMATTING -// PRIORITY + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); -addUnitPriority('second', 15); + // ALIASES -// PARSING + addUnitAlias('dayOfYear', 'DDD'); -addRegexToken('s', match1to2); -addRegexToken('ss', match1to2, match2); -addParseToken(['s', 'ss'], SECOND); + // PRIORITY + addUnitPriority('dayOfYear', 4); -// MOMENTS + // PARSING -var getSetSecond = makeGetSet('Seconds', false); + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); -// FORMATTING + // HELPERS -addFormatToken('S', 0, 0, function () { - return ~~(this.millisecond() / 100); -}); + // MOMENTS -addFormatToken(0, ['SS', 2], 0, function () { - return ~~(this.millisecond() / 10); -}); + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } -addFormatToken(0, ['SSS', 3], 0, 'millisecond'); -addFormatToken(0, ['SSSS', 4], 0, function () { - return this.millisecond() * 10; -}); -addFormatToken(0, ['SSSSS', 5], 0, function () { - return this.millisecond() * 100; -}); -addFormatToken(0, ['SSSSSS', 6], 0, function () { - return this.millisecond() * 1000; -}); -addFormatToken(0, ['SSSSSSS', 7], 0, function () { - return this.millisecond() * 10000; -}); -addFormatToken(0, ['SSSSSSSS', 8], 0, function () { - return this.millisecond() * 100000; -}); -addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { - return this.millisecond() * 1000000; -}); + // FORMATTING + addFormatToken('m', ['mm', 2], 0, 'minute'); -// ALIASES + // ALIASES -addUnitAlias('millisecond', 'ms'); + addUnitAlias('minute', 'm'); -// PRIORITY + // PRIORITY -addUnitPriority('millisecond', 16); + addUnitPriority('minute', 14); -// PARSING + // PARSING -addRegexToken('S', match1to3, match1); -addRegexToken('SS', match1to3, match2); -addRegexToken('SSS', match1to3, match3); + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); -var token; -for (token = 'SSSS'; token.length <= 9; token += 'S') { - addRegexToken(token, matchUnsigned); -} + // MOMENTS -function parseMs(input, array) { - array[MILLISECOND] = toInt(('0.' + input) * 1000); -} + var getSetMinute = makeGetSet('Minutes', false); -for (token = 'S'; token.length <= 9; token += 'S') { - addParseToken(token, parseMs); -} -// MOMENTS + // FORMATTING -var getSetMillisecond = makeGetSet('Milliseconds', false); + addFormatToken('s', ['ss', 2], 0, 'second'); -// FORMATTING + // ALIASES -addFormatToken('z', 0, 0, 'zoneAbbr'); -addFormatToken('zz', 0, 0, 'zoneName'); + addUnitAlias('second', 's'); -// MOMENTS + // PRIORITY -function getZoneAbbr () { - return this._isUTC ? 'UTC' : ''; -} + addUnitPriority('second', 15); -function getZoneName () { - return this._isUTC ? 'Coordinated Universal Time' : ''; -} + // PARSING -var proto = Moment.prototype; - -proto.add = add; -proto.calendar = calendar$1; -proto.clone = clone; -proto.diff = diff; -proto.endOf = endOf; -proto.format = format; -proto.from = from; -proto.fromNow = fromNow; -proto.to = to; -proto.toNow = toNow; -proto.get = stringGet; -proto.invalidAt = invalidAt; -proto.isAfter = isAfter; -proto.isBefore = isBefore; -proto.isBetween = isBetween; -proto.isSame = isSame; -proto.isSameOrAfter = isSameOrAfter; -proto.isSameOrBefore = isSameOrBefore; -proto.isValid = isValid$2; -proto.lang = lang; -proto.locale = locale; -proto.localeData = localeData; -proto.max = prototypeMax; -proto.min = prototypeMin; -proto.parsingFlags = parsingFlags; -proto.set = stringSet; -proto.startOf = startOf; -proto.subtract = subtract; -proto.toArray = toArray; -proto.toObject = toObject; -proto.toDate = toDate; -proto.toISOString = toISOString; -proto.inspect = inspect; -proto.toJSON = toJSON; -proto.toString = toString; -proto.unix = unix; -proto.valueOf = valueOf; -proto.creationData = creationData; - -// Year -proto.year = getSetYear; -proto.isLeapYear = getIsLeapYear; - -// Week Year -proto.weekYear = getSetWeekYear; -proto.isoWeekYear = getSetISOWeekYear; - -// Quarter -proto.quarter = proto.quarters = getSetQuarter; - -// Month -proto.month = getSetMonth; -proto.daysInMonth = getDaysInMonth; - -// Week -proto.week = proto.weeks = getSetWeek; -proto.isoWeek = proto.isoWeeks = getSetISOWeek; -proto.weeksInYear = getWeeksInYear; -proto.isoWeeksInYear = getISOWeeksInYear; - -// Day -proto.date = getSetDayOfMonth; -proto.day = proto.days = getSetDayOfWeek; -proto.weekday = getSetLocaleDayOfWeek; -proto.isoWeekday = getSetISODayOfWeek; -proto.dayOfYear = getSetDayOfYear; - -// Hour -proto.hour = proto.hours = getSetHour; - -// Minute -proto.minute = proto.minutes = getSetMinute; - -// Second -proto.second = proto.seconds = getSetSecond; - -// Millisecond -proto.millisecond = proto.milliseconds = getSetMillisecond; - -// Offset -proto.utcOffset = getSetOffset; -proto.utc = setOffsetToUTC; -proto.local = setOffsetToLocal; -proto.parseZone = setOffsetToParsedOffset; -proto.hasAlignedHourOffset = hasAlignedHourOffset; -proto.isDST = isDaylightSavingTime; -proto.isLocal = isLocal; -proto.isUtcOffset = isUtcOffset; -proto.isUtc = isUtc; -proto.isUTC = isUtc; - -// Timezone -proto.zoneAbbr = getZoneAbbr; -proto.zoneName = getZoneName; - -// Deprecations -proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); -proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); -proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); -proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); -proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); - -function createUnix (input) { - return createLocal(input * 1000); -} + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); -function createInZone () { - return createLocal.apply(null, arguments).parseZone(); -} + // MOMENTS -function preParsePostFormat (string) { - return string; -} + var getSetSecond = makeGetSet('Seconds', false); -var proto$1 = Locale.prototype; - -proto$1.calendar = calendar; -proto$1.longDateFormat = longDateFormat; -proto$1.invalidDate = invalidDate; -proto$1.ordinal = ordinal; -proto$1.preparse = preParsePostFormat; -proto$1.postformat = preParsePostFormat; -proto$1.relativeTime = relativeTime; -proto$1.pastFuture = pastFuture; -proto$1.set = set; - -// Month -proto$1.months = localeMonths; -proto$1.monthsShort = localeMonthsShort; -proto$1.monthsParse = localeMonthsParse; -proto$1.monthsRegex = monthsRegex; -proto$1.monthsShortRegex = monthsShortRegex; - -// Week -proto$1.week = localeWeek; -proto$1.firstDayOfYear = localeFirstDayOfYear; -proto$1.firstDayOfWeek = localeFirstDayOfWeek; - -// Day of Week -proto$1.weekdays = localeWeekdays; -proto$1.weekdaysMin = localeWeekdaysMin; -proto$1.weekdaysShort = localeWeekdaysShort; -proto$1.weekdaysParse = localeWeekdaysParse; - -proto$1.weekdaysRegex = weekdaysRegex; -proto$1.weekdaysShortRegex = weekdaysShortRegex; -proto$1.weekdaysMinRegex = weekdaysMinRegex; - -// Hours -proto$1.isPM = localeIsPM; -proto$1.meridiem = localeMeridiem; - -function get$1 (format, index, field, setter) { - var locale = getLocale(); - var utc = createUTC().set(setter, index); - return locale[field](utc, format); -} + // FORMATTING -function listMonthsImpl (format, index, field) { - if (isNumber(format)) { - index = format; - format = undefined; - } + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); - format = format || ''; + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); - if (index != null) { - return get$1(format, index, field, 'month'); - } + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); - var i; - var out = []; - for (i = 0; i < 12; i++) { - out[i] = get$1(format, i, field, 'month'); - } - return out; -} -// () -// (5) -// (fmt, 5) -// (fmt) -// (true) -// (true, 5) -// (true, fmt, 5) -// (true, fmt) -function listWeekdaysImpl (localeSorted, format, index, field) { - if (typeof localeSorted === 'boolean') { + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PRIORITY + + addUnitPriority('millisecond', 16); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); + proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); + + function createUnix (input) { + return createLocal(input * 1000); + } + + function createInZone () { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat (string) { + return string; + } + + var proto$1 = Locale.prototype; + + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1 (format, index, field, setter) { + var locale = getLocale(); + var utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl (format, index, field) { if (isNumber(format)) { index = format; format = undefined; } format = format || ''; - } else { - format = localeSorted; - index = format; - localeSorted = false; - if (isNumber(format)) { - index = format; - format = undefined; + if (index != null) { + return get$1(format, index, field, 'month'); } - format = format || ''; - } + var i; + var out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl (localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } - var locale = getLocale(), - shift = localeSorted ? locale._week.dow : 0; + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; - if (index != null) { - return get$1(format, (index + shift) % 7, field, 'day'); - } + if (isNumber(format)) { + index = format; + format = undefined; + } - var i; - var out = []; - for (i = 0; i < 7; i++) { - out[i] = get$1(format, (i + shift) % 7, field, 'day'); - } - return out; -} + format = format || ''; + } -function listMonths (format, index) { - return listMonthsImpl(format, index, 'months'); -} + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0; -function listMonthsShort (format, index) { - return listMonthsImpl(format, index, 'monthsShort'); -} + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } -function listWeekdays (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); -} + var i; + var out = []; + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } -function listWeekdaysShort (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); -} + function listMonths (format, index) { + return listMonthsImpl(format, index, 'months'); + } -function listWeekdaysMin (localeSorted, format, index) { - return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); -} + function listMonthsShort (format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } -getSetGlobalLocale('en', { - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (toInt(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; + function listWeekdays (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); } -}); -// Side effect imports -hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); -hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); + function listWeekdaysShort (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } -var mathAbs = Math.abs; + function listWeekdaysMin (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } -function abs () { - var data = this._data; + getSetGlobalLocale('en', { + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); - this._milliseconds = mathAbs(this._milliseconds); - this._days = mathAbs(this._days); - this._months = mathAbs(this._months); + // Side effect imports - data.milliseconds = mathAbs(data.milliseconds); - data.seconds = mathAbs(data.seconds); - data.minutes = mathAbs(data.minutes); - data.hours = mathAbs(data.hours); - data.months = mathAbs(data.months); - data.years = mathAbs(data.years); + hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); + hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); - return this; -} + var mathAbs = Math.abs; -function addSubtract$1 (duration, input, value, direction) { - var other = createDuration(input, value); + function abs () { + var data = this._data; - duration._milliseconds += direction * other._milliseconds; - duration._days += direction * other._days; - duration._months += direction * other._months; + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); - return duration._bubble(); -} + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); -// supports only 2.0-style add(1, 's') or add(duration) -function add$1 (input, value) { - return addSubtract$1(this, input, value, 1); -} + return this; + } -// supports only 2.0-style subtract(1, 's') or subtract(duration) -function subtract$1 (input, value) { - return addSubtract$1(this, input, value, -1); -} + function addSubtract$1 (duration, input, value, direction) { + var other = createDuration(input, value); -function absCeil (number) { - if (number < 0) { - return Math.floor(number); - } else { - return Math.ceil(number); + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); } -} -function bubble () { - var milliseconds = this._milliseconds; - var days = this._days; - var months = this._months; - var data = this._data; - var seconds, minutes, hours, years, monthsFromDays; + // supports only 2.0-style add(1, 's') or add(duration) + function add$1 (input, value) { + return addSubtract$1(this, input, value, 1); + } - // if we have a mix of positive and negative values, bubble down first - // check: https://github.com/moment/moment/issues/2166 - if (!((milliseconds >= 0 && days >= 0 && months >= 0) || - (milliseconds <= 0 && days <= 0 && months <= 0))) { - milliseconds += absCeil(monthsToDays(months) + days) * 864e5; - days = 0; - months = 0; + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1 (input, value) { + return addSubtract$1(this, input, value, -1); } - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } - seconds = absFloor(milliseconds / 1000); - data.seconds = seconds % 60; + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; - minutes = absFloor(seconds / 60); - data.minutes = minutes % 60; + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } - hours = absFloor(minutes / 60); - data.hours = hours % 24; + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; - days += absFloor(hours / 24); + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; - // convert days to months - monthsFromDays = absFloor(daysToMonths(days)); - months += monthsFromDays; - days -= absCeil(monthsToDays(monthsFromDays)); + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; + hours = absFloor(minutes / 60); + data.hours = hours % 24; - data.days = days; - data.months = months; - data.years = years; + days += absFloor(hours / 24); - return this; -} + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); -function daysToMonths (days) { - // 400 years have 146097 days (taking into account leap year rules) - // 400 years have 12 months === 4800 - return days * 4800 / 146097; -} + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; -function monthsToDays (months) { - // the reverse of daysToMonths - return months * 146097 / 4800; -} + data.days = days; + data.months = months; + data.years = years; -function as (units) { - if (!this.isValid()) { - return NaN; + return this; } - var days; - var months; - var milliseconds = this._milliseconds; - - units = normalizeUnits(units); - if (units === 'month' || units === 'year') { - days = this._days + milliseconds / 864e5; - months = this._months + daysToMonths(days); - return units === 'month' ? months : months / 12; - } else { - // handle milliseconds separately because of floating point math errors (issue #1867) - days = this._days + Math.round(monthsToDays(this._months)); - switch (units) { - case 'week' : return days / 7 + milliseconds / 6048e5; - case 'day' : return days + milliseconds / 864e5; - case 'hour' : return days * 24 + milliseconds / 36e5; - case 'minute' : return days * 1440 + milliseconds / 6e4; - case 'second' : return days * 86400 + milliseconds / 1000; - // Math.floor prevents floating point math errors here - case 'millisecond': return Math.floor(days * 864e5) + milliseconds; - default: throw new Error('Unknown unit ' + units); - } + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; } -} -// TODO: Use this.as('ms')? -function valueOf$1 () { - if (!this.isValid()) { - return NaN; + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; } - return ( - this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6 - ); -} - -function makeAs (alias) { - return function () { - return this.as(alias); - }; -} - -var asMilliseconds = makeAs('ms'); -var asSeconds = makeAs('s'); -var asMinutes = makeAs('m'); -var asHours = makeAs('h'); -var asDays = makeAs('d'); -var asWeeks = makeAs('w'); -var asMonths = makeAs('M'); -var asYears = makeAs('y'); - -function clone$1 () { - return createDuration(this); -} -function get$2 (units) { - units = normalizeUnits(units); - return this.isValid() ? this[units + 's']() : NaN; -} + function as (units) { + if (!this.isValid()) { + return NaN; + } + var days; + var months; + var milliseconds = this._milliseconds; -function makeGetter(name) { - return function () { - return this.isValid() ? this._data[name] : NaN; - }; -} + units = normalizeUnits(units); -var milliseconds = makeGetter('milliseconds'); -var seconds = makeGetter('seconds'); -var minutes = makeGetter('minutes'); -var hours = makeGetter('hours'); -var days = makeGetter('days'); -var months = makeGetter('months'); -var years = makeGetter('years'); + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': return months; + case 'quarter': return months / 3; + case 'year': return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } -function weeks () { - return absFloor(this.days() / 7); -} + // TODO: Use this.as('ms')? + function valueOf$1 () { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } -var round = Math.round; -var thresholds = { - ss: 44, // a few seconds to seconds - s : 45, // seconds to minute - m : 45, // minutes to hour - h : 22, // hours to day - d : 26, // days to month - M : 11 // months to year -}; - -// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize -function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); -} + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } -function relativeTime$1 (posNegDuration, withoutSuffix, locale) { - var duration = createDuration(posNegDuration).abs(); - var seconds = round(duration.as('s')); - var minutes = round(duration.as('m')); - var hours = round(duration.as('h')); - var days = round(duration.as('d')); - var months = round(duration.as('M')); - var years = round(duration.as('y')); - - var a = seconds <= thresholds.ss && ['s', seconds] || - seconds < thresholds.s && ['ss', seconds] || - minutes <= 1 && ['m'] || - minutes < thresholds.m && ['mm', minutes] || - hours <= 1 && ['h'] || - hours < thresholds.h && ['hh', hours] || - days <= 1 && ['d'] || - days < thresholds.d && ['dd', days] || - months <= 1 && ['M'] || - months < thresholds.M && ['MM', months] || - years <= 1 && ['y'] || ['yy', years]; - - a[2] = withoutSuffix; - a[3] = +posNegDuration > 0; - a[4] = locale; - return substituteTimeAgo.apply(null, a); -} + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asQuarters = makeAs('Q'); + var asYears = makeAs('y'); -// This function allows you to set the rounding function for relative time strings -function getSetRelativeTimeRounding (roundingFunction) { - if (roundingFunction === undefined) { - return round; - } - if (typeof(roundingFunction) === 'function') { - round = roundingFunction; - return true; + function clone$1 () { + return createDuration(this); } - return false; -} -// This function allows you to set a threshold for relative time strings -function getSetRelativeTimeThreshold (threshold, limit) { - if (thresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return thresholds[threshold]; - } - thresholds[threshold] = limit; - if (threshold === 's') { - thresholds.ss = limit - 1; + function get$2 (units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; } - return true; -} -function humanize (withSuffix) { - if (!this.isValid()) { - return this.localeData().invalidDate(); + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; } - var locale = this.localeData(); - var output = relativeTime$1(this, !withSuffix, locale); + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); - if (withSuffix) { - output = locale.pastFuture(+this, output); + function weeks () { + return absFloor(this.days() / 7); } - return locale.postformat(output); -} + var round = Math.round; + var thresholds = { + ss: 44, // a few seconds to seconds + s : 45, // seconds to minute + m : 45, // minutes to hour + h : 22, // hours to day + d : 26, // days to month + M : 11 // months to year + }; -var abs$1 = Math.abs; + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime$1 (posNegDuration, withoutSuffix, locale) { + var duration = createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds <= thresholds.ss && ['s', seconds] || + seconds < thresholds.s && ['ss', seconds] || + minutes <= 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours <= 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days <= 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months <= 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years <= 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding (roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof(roundingFunction) === 'function') { + round = roundingFunction; + return true; + } + return false; + } -function sign(x) { - return ((x > 0) - (x < 0)) || +x; -} + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; + } -function toISOString$1() { - // for ISO strings we do not use the normal bubbling rules: - // * milliseconds bubble up until they become hours - // * days do not bubble at all - // * months bubble up until they become years - // This is because there is no context-free conversion between hours and days - // (think of clock changes) - // and also not between days and months (28-31 days per month) - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - - var seconds = abs$1(this._milliseconds) / 1000; - var days = abs$1(this._days); - var months = abs$1(this._months); - var minutes, hours, years; - - // 3600 seconds -> 60 minutes -> 1 hour - minutes = absFloor(seconds / 60); - hours = absFloor(minutes / 60); - seconds %= 60; - minutes %= 60; - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - var Y = years; - var M = months; - var D = days; - var h = hours; - var m = minutes; - var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; - var total = this.asSeconds(); - - if (!total) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; - } - - var totalSign = total < 0 ? '-' : ''; - var ymSign = sign(this._months) !== sign(total) ? '-' : ''; - var daysSign = sign(this._days) !== sign(total) ? '-' : ''; - var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; - - return totalSign + 'P' + - (Y ? ymSign + Y + 'Y' : '') + - (M ? ymSign + M + 'M' : '') + - (D ? daysSign + D + 'D' : '') + - ((h || m || s) ? 'T' : '') + - (h ? hmsSign + h + 'H' : '') + - (m ? hmsSign + m + 'M' : '') + - (s ? hmsSign + s + 'S' : ''); -} + function humanize (withSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var locale = this.localeData(); + var output = relativeTime$1(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var abs$1 = Math.abs; + + function sign(x) { + return ((x > 0) - (x < 0)) || +x; + } + + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000; + var days = abs$1(this._days); + var months = abs$1(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + var totalSign = total < 0 ? '-' : ''; + var ymSign = sign(this._months) !== sign(total) ? '-' : ''; + var daysSign = sign(this._days) !== sign(total) ? '-' : ''; + var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return totalSign + 'P' + + (Y ? ymSign + Y + 'Y' : '') + + (M ? ymSign + M + 'M' : '') + + (D ? daysSign + D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? hmsSign + h + 'H' : '') + + (m ? hmsSign + m + 'M' : '') + + (s ? hmsSign + s + 'S' : ''); + } + + var proto$2 = Duration.prototype; + + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + + proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); + proto$2.lang = lang; + + // Side effect imports + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); -var proto$2 = Duration.prototype; - -proto$2.isValid = isValid$1; -proto$2.abs = abs; -proto$2.add = add$1; -proto$2.subtract = subtract$1; -proto$2.as = as; -proto$2.asMilliseconds = asMilliseconds; -proto$2.asSeconds = asSeconds; -proto$2.asMinutes = asMinutes; -proto$2.asHours = asHours; -proto$2.asDays = asDays; -proto$2.asWeeks = asWeeks; -proto$2.asMonths = asMonths; -proto$2.asYears = asYears; -proto$2.valueOf = valueOf$1; -proto$2._bubble = bubble; -proto$2.clone = clone$1; -proto$2.get = get$2; -proto$2.milliseconds = milliseconds; -proto$2.seconds = seconds; -proto$2.minutes = minutes; -proto$2.hours = hours; -proto$2.days = days; -proto$2.weeks = weeks; -proto$2.months = months; -proto$2.years = years; -proto$2.humanize = humanize; -proto$2.toISOString = toISOString$1; -proto$2.toString = toISOString$1; -proto$2.toJSON = toISOString$1; -proto$2.locale = locale; -proto$2.localeData = localeData; - -// Deprecations -proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); -proto$2.lang = lang; - -// Side effect imports - -// FORMATTING - -addFormatToken('X', 0, 0, 'unix'); -addFormatToken('x', 0, 0, 'valueOf'); - -// PARSING - -addRegexToken('x', matchSigned); -addRegexToken('X', matchTimestamp); -addParseToken('X', function (input, array, config) { - config._d = new Date(parseFloat(input, 10) * 1000); -}); -addParseToken('x', function (input, array, config) { - config._d = new Date(toInt(input)); -}); + // Side effect imports + + + hooks.version = '2.24.0'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM' // + }; -// Side effect imports - - -hooks.version = '2.19.1'; - -setHookCallback(createLocal); - -hooks.fn = proto; -hooks.min = min; -hooks.max = max; -hooks.now = now; -hooks.utc = createUTC; -hooks.unix = createUnix; -hooks.months = listMonths; -hooks.isDate = isDate; -hooks.locale = getSetGlobalLocale; -hooks.invalid = createInvalid; -hooks.duration = createDuration; -hooks.isMoment = isMoment; -hooks.weekdays = listWeekdays; -hooks.parseZone = createInZone; -hooks.localeData = getLocale; -hooks.isDuration = isDuration; -hooks.monthsShort = listMonthsShort; -hooks.weekdaysMin = listWeekdaysMin; -hooks.defineLocale = defineLocale; -hooks.updateLocale = updateLocale; -hooks.locales = listLocales; -hooks.weekdaysShort = listWeekdaysShort; -hooks.normalizeUnits = normalizeUnits; -hooks.relativeTimeRounding = getSetRelativeTimeRounding; -hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; -hooks.calendarFormat = getCalendarFormat; -hooks.prototype = proto; - -return hooks; + return hooks; }))); @@ -34480,7 +34590,7 @@ exports.DOMutil = __webpack_require__(14); // data exports.DataSet = __webpack_require__(11); exports.DataView = __webpack_require__(12); -exports.Queue = __webpack_require__(43); +exports.Queue = __webpack_require__(44); // Graph3d exports.Graph3d = __webpack_require__(161); @@ -34488,7 +34598,7 @@ exports.graph3d = { Camera: __webpack_require__(95), Filter: __webpack_require__(96), Point2d: __webpack_require__(91), - Point3d: __webpack_require__(34), + Point3d: __webpack_require__(35), Slider: __webpack_require__(92), StepNumber: __webpack_require__(93) }; @@ -34496,7 +34606,7 @@ exports.graph3d = { // bundled external libraries exports.moment = __webpack_require__(9); exports.Hammer = __webpack_require__(10); -exports.keycharm = __webpack_require__(35); +exports.keycharm = __webpack_require__(36); /***/ }), /* 160 */ @@ -34522,9 +34632,9 @@ var _assign2 = _interopRequireDefault(_assign); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } -var Emitter = __webpack_require__(44); +var Emitter = __webpack_require__(45); var util = __webpack_require__(2); -var Point3d = __webpack_require__(34); +var Point3d = __webpack_require__(35); var Point2d = __webpack_require__(91); var Slider = __webpack_require__(92); var StepNumber = __webpack_require__(93); @@ -36861,15 +36971,16 @@ $export($export.S + $export.F, 'Object', { assign: __webpack_require__(164) }); "use strict"; // 19.1.2.1 Object.assign(target, source, ...) +var DESCRIPTORS = __webpack_require__(19); var getKeys = __webpack_require__(33); var gOPS = __webpack_require__(63); -var pIE = __webpack_require__(42); -var toObject = __webpack_require__(41); +var pIE = __webpack_require__(43); +var toObject = __webpack_require__(34); var IObject = __webpack_require__(78); var $assign = Object.assign; // should work with symbols and should have deterministic property order (V8 bug) -module.exports = !$assign || __webpack_require__(28)(function () { +module.exports = !$assign || __webpack_require__(29)(function () { var A = {}; var B = {}; // eslint-disable-next-line no-undef @@ -36890,7 +37001,10 @@ module.exports = !$assign || __webpack_require__(28)(function () { var length = keys.length; var j = 0; var key; - while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; + } } return T; } : $assign; @@ -36953,7 +37067,7 @@ module.exports = function defineProperty(it, key, desc) { var $export = __webpack_require__(17); // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) -$export($export.S + $export.F * !__webpack_require__(21), 'Object', { defineProperty: __webpack_require__(20).f }); +$export($export.S + $export.F * !__webpack_require__(19), 'Object', { defineProperty: __webpack_require__(21).f }); /***/ }), @@ -37098,7 +37212,7 @@ var DataView = __webpack_require__(12); var Range = __webpack_require__(174); var Filter = __webpack_require__(96); var Settings = __webpack_require__(94); -var Point3d = __webpack_require__(34); +var Point3d = __webpack_require__(35); /** * Creates a container for all data of one specific 3D-graph. @@ -40543,9 +40657,9 @@ var freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'und freeGlobal.Hammer = Hammer; if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return Hammer; - }.call(exports, __webpack_require__, exports, module), + }).call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else if (typeof module != 'undefined' && module.exports) { module.exports = Hammer; @@ -40570,21 +40684,21 @@ exports.DOMutil = __webpack_require__(14); // data exports.DataSet = __webpack_require__(11); exports.DataView = __webpack_require__(12); -exports.Queue = __webpack_require__(43); +exports.Queue = __webpack_require__(44); // Timeline exports.Timeline = __webpack_require__(178); exports.Graph2d = __webpack_require__(180); exports.timeline = { Core: __webpack_require__(65), - DateUtil: __webpack_require__(36), + DateUtil: __webpack_require__(37), Range: __webpack_require__(64), stack: __webpack_require__(100), TimeStep: __webpack_require__(66), components: { items: { - Item: __webpack_require__(38), + Item: __webpack_require__(39), BackgroundItem: __webpack_require__(103), BoxItem: __webpack_require__(101), PointItem: __webpack_require__(102), @@ -40594,7 +40708,7 @@ exports.timeline = { BackgroundGroup: __webpack_require__(69), Component: __webpack_require__(16), CurrentTime: __webpack_require__(67), - CustomTime: __webpack_require__(46), + CustomTime: __webpack_require__(47), DataAxis: __webpack_require__(107), DataScale: __webpack_require__(108), GraphGroup: __webpack_require__(109), @@ -40602,14 +40716,14 @@ exports.timeline = { ItemSet: __webpack_require__(99), Legend: __webpack_require__(112), LineGraph: __webpack_require__(106), - TimeAxis: __webpack_require__(45) + TimeAxis: __webpack_require__(46) } }; // bundled external libraries exports.moment = __webpack_require__(9); exports.Hammer = __webpack_require__(10); -exports.keycharm = __webpack_require__(35); +exports.keycharm = __webpack_require__(36); /***/ }), /* 178 */ @@ -40624,9 +40738,9 @@ var DataSet = __webpack_require__(11); var DataView = __webpack_require__(12); var Range = __webpack_require__(64); var Core = __webpack_require__(65); -var TimeAxis = __webpack_require__(45); +var TimeAxis = __webpack_require__(46); var CurrentTime = __webpack_require__(67); -var CustomTime = __webpack_require__(46); +var CustomTime = __webpack_require__(47); var ItemSet = __webpack_require__(99); var printStyle = __webpack_require__(15).printStyle; @@ -41380,7 +41494,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _stringify = __webpack_require__(19); +var _stringify = __webpack_require__(20); var _stringify2 = _interopRequireDefault(_stringify); @@ -41395,7 +41509,7 @@ var _createClass3 = _interopRequireDefault(_createClass2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var Hammer = __webpack_require__(10); -var hammerUtil = __webpack_require__(37); +var hammerUtil = __webpack_require__(38); var util = __webpack_require__(2); /** @@ -42039,9 +42153,9 @@ var DataSet = __webpack_require__(11); var DataView = __webpack_require__(12); var Range = __webpack_require__(64); var Core = __webpack_require__(65); -var TimeAxis = __webpack_require__(45); +var TimeAxis = __webpack_require__(46); var CurrentTime = __webpack_require__(67); -var CustomTime = __webpack_require__(46); +var CustomTime = __webpack_require__(47); var LineGraph = __webpack_require__(106); var printStyle = __webpack_require__(15).printStyle; @@ -42389,7 +42503,7 @@ exports.DOMutil = __webpack_require__(14); // data exports.DataSet = __webpack_require__(11); exports.DataView = __webpack_require__(12); -exports.Queue = __webpack_require__(43); +exports.Queue = __webpack_require__(44); // Network exports.Network = __webpack_require__(182); @@ -42409,7 +42523,7 @@ exports.network.convertGephi = function (input, options) { // bundled external libraries exports.moment = __webpack_require__(9); exports.Hammer = __webpack_require__(10); -exports.keycharm = __webpack_require__(35); +exports.keycharm = __webpack_require__(36); /***/ }), /* 182 */ @@ -42421,7 +42535,7 @@ exports.keycharm = __webpack_require__(35); // Load custom shapes into CanvasRenderingContext2D __webpack_require__(183); -var Emitter = __webpack_require__(44); +var Emitter = __webpack_require__(45); var util = __webpack_require__(2); var dotparser = __webpack_require__(114); var gephiParser = __webpack_require__(115); @@ -43864,7 +43978,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd var util = __webpack_require__(2); var DataSet = __webpack_require__(11); var DataView = __webpack_require__(12); -var Node = __webpack_require__(47)['default']; +var Node = __webpack_require__(48)['default']; /** * Handler for Nodes @@ -44440,7 +44554,7 @@ module.exports = { "default": __webpack_require__(189), __esModule: true }; /* 189 */ /***/ (function(module, exports, __webpack_require__) { -__webpack_require__(49); +__webpack_require__(50); __webpack_require__(60); module.exports = __webpack_require__(190); @@ -44451,7 +44565,7 @@ module.exports = __webpack_require__(190); var classof = __webpack_require__(86); var ITERATOR = __webpack_require__(13)('iterator'); -var Iterators = __webpack_require__(31); +var Iterators = __webpack_require__(32); module.exports = __webpack_require__(7).isIterable = function (it) { var O = Object(it); return O[ITERATOR] !== undefined @@ -44483,7 +44597,7 @@ var _createClass3 = _interopRequireDefault(_createClass2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var LabelAccumulator = __webpack_require__(192)['default']; -var ComponentUtil = __webpack_require__(48)['default']; +var ComponentUtil = __webpack_require__(49)['default']; /** * Helper class for Label which explodes the label text into lines and blocks within lines @@ -45502,7 +45616,7 @@ module.exports = __webpack_require__(7).Object.getPrototypeOf; /***/ (function(module, exports, __webpack_require__) { // 19.1.2.9 Object.getPrototypeOf(O) -var toObject = __webpack_require__(41); +var toObject = __webpack_require__(34); var $getPrototypeOf = __webpack_require__(85); __webpack_require__(87)('getPrototypeOf', function () { @@ -45541,7 +45655,7 @@ $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(199).set }); // Works with __proto__ only. Old v8 can't work with null proto objects. /* eslint-disable no-proto */ -var isObject = __webpack_require__(32); +var isObject = __webpack_require__(28); var anObject = __webpack_require__(27); var check = function (O, proto) { anObject(O); @@ -47809,7 +47923,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _slicedToArray2 = __webpack_require__(30); +var _slicedToArray2 = __webpack_require__(31); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); @@ -48117,7 +48231,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _slicedToArray2 = __webpack_require__(30); +var _slicedToArray2 = __webpack_require__(31); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); @@ -50509,7 +50623,7 @@ var util = __webpack_require__(2); var NetworkUtil = __webpack_require__(76)['default']; var Cluster = __webpack_require__(228)['default']; var Edge = __webpack_require__(74)['default']; // Only needed for check on type! -var Node = __webpack_require__(47)['default']; // Only needed for check on type! +var Node = __webpack_require__(48)['default']; // Only needed for check on type! /** * The clustering engine @@ -52032,7 +52146,7 @@ var _inherits3 = _interopRequireDefault(_inherits2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var util = __webpack_require__(2); -var Node = __webpack_require__(47)["default"]; +var Node = __webpack_require__(48)["default"]; /** * A Cluster is a special Node that allows a group of Nodes positioned closely together @@ -52632,7 +52746,7 @@ var _createClass3 = _interopRequireDefault(_createClass2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var Hammer = __webpack_require__(10); -var hammerUtil = __webpack_require__(37); +var hammerUtil = __webpack_require__(38); var util = __webpack_require__(2); @@ -54390,8 +54504,8 @@ var _createClass3 = _interopRequireDefault(_createClass2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var Hammer = __webpack_require__(10); -var hammerUtil = __webpack_require__(37); -var keycharm = __webpack_require__(35); +var hammerUtil = __webpack_require__(38); +var keycharm = __webpack_require__(36); /** * Navigation Handler @@ -54806,7 +54920,7 @@ var _createClass3 = _interopRequireDefault(_createClass2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } -var Node = __webpack_require__(47)['default']; +var Node = __webpack_require__(48)['default']; var Edge = __webpack_require__(74)['default']; var util = __webpack_require__(2); @@ -55801,7 +55915,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _slicedToArray2 = __webpack_require__(30); +var _slicedToArray2 = __webpack_require__(31); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); @@ -58072,7 +58186,7 @@ var _keys = __webpack_require__(8); var _keys2 = _interopRequireDefault(_keys); -var _stringify = __webpack_require__(19); +var _stringify = __webpack_require__(20); var _stringify2 = _interopRequireDefault(_stringify); @@ -58092,7 +58206,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd var util = __webpack_require__(2); var Hammer = __webpack_require__(10); -var hammerUtil = __webpack_require__(37); +var hammerUtil = __webpack_require__(38); /** * Clears the toolbar div element of children @@ -59462,7 +59576,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _slicedToArray2 = __webpack_require__(30); +var _slicedToArray2 = __webpack_require__(31); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); diff --git a/dist/vis.map b/dist/vis.map index 98823da79..32faeffd6 100644 --- a/dist/vis.map +++ b/dist/vis.map @@ -1 +1 @@ -{"version":3,"sources":["C:\\Users\\yotamberk\\Desktop\\workspace\\vis/dist/vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","default","instance","Constructor","TypeError","_defineProperty","_defineProperty2","obj","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","_interopRequireDefault","copyOrDelete","a","b","prop","allowDeletion","doDeletion","undefined","_getIterator2","_getIterator3","_create","_create2","_keys","_keys2","_typeof2","_typeof3","moment","uuid","isNumber","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","fillIfDefined","arguments","extend","other","selectiveExtend","Array","isArray","Error","selectiveDeepExtend","constructor","deepExtend","selectiveNotDeepExtend","propsToExclude","indexOf","push","protoExtend","equalArray","len","convert","type","match","Boolean","valueOf","isMoment","toDate","getType","toISOString","format","copyAndExtendArray","arr","newValue","newArr","copyArray","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteRight","right","getAbsoluteTop","top","addClassName","classNames","classes","className","split","newClasses","concat","filter","join","removeClassName","oldClasses","forEach","callback","toArray","array","updateProperty","throttle","fn","scheduled","requestAnimationFrame","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","toString","slice","parseColor","isValidRGB","map","isValidHex","hsv","hexToHSV","lighterColorHSV","h","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","cssUtil","cssText","styles","style","trim","parts","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","bridgeObject","Element","insertSort","compare","k","j","mergeOptions","mergeTarget","options","globalOptions","isPresent","isObject","srcOption","globalPassed","x","globalOption","globalEnabled","enabled","src","dst","binarySearchCustom","orderedItems","comparator","field","field2","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getScrollBarWidth","inner","document","createElement","width","height","outer","position","visibility","overflow","appendChild","body","w1","offsetWidth","w2","clientWidth","topMost","pile","accessors","candidate","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","next","done","member","err","self","ReferenceError","_setPrototypeOf","_setPrototypeOf2","subClass","superClass","__proto__","_iterator2","_symbol","_symbol2","_typeof","core","version","__e","hammerMock","noop","on","off","destroy","emit","set","propagating","Hammer","DataSet","data","_options","_data","_fieldId","fieldId","_type","_subscribers","add","setOptions","_stringify","_stringify2","util","Queue","queue","_queue","subscribers","_trigger","params","senderId","subscriber","id","addedIds","me","_addItem","items","update","updatedIds","oldData","updatedData","addOrUpdate","oldItem","_updateItem","console","warn","args","ids","firstType","returnType","itemIds","itemId","_getItem","order","_sort","_filterFields","resultant","getIds","getDataSet","mappedItems","filteredItem","itemFields","sort","av","bv","remove","removedIds","removedItems","_remove","ident","clear","maxField","itemField","minField","distinct","values","fieldType","count","exists","types","raw","converted","DataView","_ids","_onEvent","apply","setData","refresh","oldIds","newIds","viewOptions","getArguments","defaultFilter","dataSet","oldItems","updatedItems","subscribe","unsubscribe","store","uid","Symbol","USE_SYMBOL","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","resetElements","getSVGElement","svgContainer","shift","createElementNS","getDOMElement","DOMContainer","insertBefore","drawPoint","y","groupTemplate","labelObj","point","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","rect","printStyle","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","errorFound","allOptions","Validator","referenceOptions","subObject","usedOptions","path","check","__any__","getSuggestion","referenceOption","is_object","refOptionObj","__type__","checkFields","log","message","printLocation","optionType","refOptionType","print","_isAMomentObject","localSearch","findInOptions","globalSearch","msg","indexMatch","distance","closestMatch","recursive","closestMatchPath","lowerCaseOption","toLowerCase","op","levenshteinDistance","prefix","str","_j","_i","_j2","matrix","charAt","Component","redraw","_isResized","resized","_previousWidth","_previousHeight","global","ctx","hide","$export","source","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","C","Function","virtual","R","U","__g","anObject","IE8_DOM_DEFINE","toPrimitive","dP","O","Attributes","it","NodeBase","labelModule","radius","margin","refreshNeeded","boundingBox","bottom","adjustSizes","angle","borderWidth","resize","abs","cos","sin","shadow","shadowColor","shadowBlur","shadowSize","shadowOffsetX","shadowX","shadowOffsetY","shadowY","borderDashes","setLineDash","dashes","shapeProperties","selected","differentState","view","lineWidth","strokeStyle","borderColor","fillStyle","save","enableBorderDashes","stroke","disableBorderDashes","restore","enableShadow","fill","disableShadow","performStroke","_updateBoundingBox","textSize","getTextSize","_getPrototypeOf","_getPrototypeOf2","_possibleConstructorReturn2","_possibleConstructorReturn3","_inherits2","_inherits3","_NodeBase2","_NodeBase3","ShapeBase","_NodeBase","needsRefresh","shape","sizeMultiplier","initContextForDraw","performFill","calculateLabelSize","yLabel","draw","updateBoundingBox","IObject","defined","createDesc","_isIterable2","_isIterable3","sliceIterator","_arr","_n","_d","_e","_s","$keys","enumBugKeys","keys","Point3d","z","subtract","sub","sum","avg","crossProduct","crossproduct","sqrt","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","keycharm","container","_exportFunctions","_bound","keydown","keyup","fromCharCode","code","down","handleEvent","up","keyCode","bound","shiftKey","bind","bindAll","getKey","unbind","newBindings","reset","convertHiddenOptions","hiddenDates","repeat","dateItem","start","end","updateHiddenDates","domProps","centerContainer","range","totalRange","pixelTime","startDate","endDate","duration","offset","runUntil","clone","day","dayOfYear","year","dayOffset","diff","date","month","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","_end","switchedYear","switchedMonth","switchedDay","toScreen","Core","time","conversion","getHiddenDurationBetween","hiddenBeforeStart","getHiddenDurationBeforeStart","rangeAfterEnd","correctTimeForHidden","toTime","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","onTouch","hammer","inputHandler","isFirst","onRelease","isFinal","offTouch","offRelease","disablePreventDefaultVertically","pinchRecognizer","getTouchAction","Item","dom","displayed","groupShowing","dirty","editable","_updateEditStatus","stack","select","unselect","group","itemSet","_moveToGroup","stackDirty","subgroup","changeSubgroup","setParent","show","isVisible","repositionX","repositionY","_repaintDragCenter","updateTime","dragCenter","dragCenterItem","emitter","stopPropagation","_onUpdateItem","box","dragLeft","_repaintDeleteButton","anchor","overrideItems","deleteButton","rtl","title","removeFromDataSet","_repaintOnItemUpdateTimeTooltip","tooltipOnItemUpdateTime","onItemUpdateTimeTooltip","touchParams","itemIsDragging","itemDistanceFromTop","scrollTop","orientation","templateFunction","template","innerHTML","_updateContents","itemVisibleFrameContent","visibleFrameTemplateFunction","itemData","itemsData","frameElement","itemVisibleFrameContentElement","getElementsByClassName","visibleFrameTemplate","_contentToString","_updateDataAttributes","dataAttributes","attributes","setAttribute","removeAttribute","_updateStyle","outerHTML","updateGroup","getWidthLeft","getWidthRight","getTitle","bitmap","px","random","propertyIsEnumerable","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","context","entry","clearTimeout","setTimeout","Emitter","mixin","_callbacks","once","removeListener","removeAllListeners","callbacks","cb","splice","listeners","hasListeners","TimeAxis","foreground","lines","majorTexts","minorTexts","minimumStep","lineTop","defaultOptions","axis","showMinorLabels","showMajorLabels","maxMinorChars","TimeStep","FORMAT","timeAxis","DateUtil","locale","lang","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","backgroundVertical","timeLabelsize","minorCharWidth","step","setMoment","setFormat","setScale","xNext","isMajor","showMinorGrid","prevWidth","line","labelMinor","xFirstMajorLabel","getCurrent","hasNext","getClassName","getLabelMinor","_repaintMinorText","_repaintMajorText","getLabelMajor","_repaintMajorLine","_repaintMinorLine","warnedForOverflow","leftTime","leftText","widthText","majorCharWidth","pop","text","createTextNode","childNodes","measureCharMinor","clientHeight","measureCharMajor","CustomTime","locales","customTime","eventParams","onMouseWheel","_onMouseWheel","bar","drag","_onDragStart","_onDrag","_onDragEnd","threshold","DIRECTION_HORIZONTAL","warned","toUpperCase","substring","setCustomTime","getCustomTime","setCustomTitle","dragging","deltaX","customTimeFromTarget","Label","ComponentUtil","Box","Circle","CircularImage","Database","Diamond","Dot","Ellipse","Icon","Image","Square","Hexagon","Star","Text","Triangle","TriangleDown","_require","Node","imagelist","grouplist","edges","baseSize","baseFontSize","font","predefinedPosition","edge","index","currentShape","checkMass","parseFloat","parseOptions","chooser","choosify","_load_images","updateLabelModule","updateShape","physics","image","imageObj","load","brokenImage","unselected","imageObjAlt","borderRadius","updateGroupOptions","currentGroup","distanceToBorder","fixed","scaling","customScalingFunction","sizeDiff","fontDiff","getFormattingValues","ret","visible","pointInRect","getSize","nodeId","labelId","parentOptions","newOptions","groupList","groupObj","parsedColor","mass","strId","subOption","allowed","chosen","chosenEdge","rotationPoint","tmp","Iterators","TO_STRING_TAG","DOMIterables","NAME","Collection","proto","val","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","contentWindow","open","write","lt","close","create","Properties","ceil","shared","def","has","TAG","tag","stat","$at","iterated","_t","LIBRARY","wksExt","$Symbol","getOwnPropertySymbols","Range","now","hours","minutes","seconds","milliseconds","millisecondsPerPixelCache","rolling","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","rollingMode","follow","touch","animationTimer","_onTouch","_onPinch","rollingModeBtn","startRolling","validateDirection","setRange","stopRolling","interval","animation","center","currentTimeTimer","frameCallback","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","initTime","anyChanged","ease","changed","timeoutID","getMillisecondsPerPixel","newStart","newEnd","getRange","totalHidden","previousDelta","_isInsideRange","allowDragging","cursor","delta","deltaY","diffRange","safeStart","safeEnd","wheelDelta","detail","zoomKey","pointerDate","pointer","getPointer","clientX","clientY","_pointerToDate","zoom","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","moveTo","hammerUtil","Activator","isActive","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","verticalScroll","adjusted","_setScrollTop","_redraw","horizontalScroll","onMouseScrollSide","handleDragOver","itemAddedToTimeline","dataTransfer","dropEffect","handleDrop","JSON","getData","_onAddItem","_onDropObjectOnItem","getEventProperties","backgroundHorizontal","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","scrollTopMin","initialDrawDone","initialRangeChangeDone","_origRedraw","properties","initialItemSetDrawn","enable","customTimes","redrawCount","timeAxis2","components","drawPoints","onRender","clickToUse","activator","_initAutoResize","component","configurator","_createConfigurator","configure","appliedOptions","setModuleOptions","active","setItems","setGroups","_stopAutoResize","setCustomTimeTitle","addCustomTime","timestamp","some","removeCustomTime","getVisibleItems","fit","getDataRange","setWindow","getWindow","zoomIn","percentage","newInterval","zoomOut","maxHeight","minHeight","offsetHeight","borderRootHeight","borderRootWidth","contentHeight","autoHeight","containerHeight","scrollbarWidth","_setDOM","_updateScrollTop","visibilityTop","visibilityBottom","RegExp","contentsOverflow","DIRECTION_ALL","centerWidth","repaint","setCurrentTime","currentTime","getCurrentTime","_toTime","_toGlobalTime","_toScreen","_toGlobalScreen","autoResize","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","clearInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_start","autoScale","minorLabels","millisecond","second","minute","hour","weekday","week","majorLabels","defaultFormat","setMinimumStep","roundToMinor","prev","nextWeek","isSame","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","snap","round","even","today","_moment","currentWeek","currentMonth","CurrentTime","showCurrentTime","stop","Group","groupId","subgroups","subgroupStack","subgroupStackAll","doInnerStack","subgroupIndex","subgroupOrderer","subgroupOrder","nestedGroups","showNested","nestedInGroup","visibleItems","itemsInRange","byStart","byEnd","checkRangedItems","groupEditable","marker","collapsedDirClassName","paddingRight","paddingLeft","getLabelWidth","_didMarkerHeightChange","markerHeight","lastMarkerHeight","redrawQueue","redrawQueueLength","fns","_calculateGroupSizeAndPosition","offsetTop","offsetLeft","_redrawItems","forceRestack","lastIsVisible","visibleSubgroups","stackSubgroups","stackSubgroupsWithInnerStack","customOrderedItems","_updateItemsInRange","nostack","_didResize","labelWidth","labelHeight","_applyGroupHeight","_updateItemsVerticalPosition","ii","returnQueue","_updateSubGroupHeights","_isGroupVisible","_updateSubgroupsSizes","_calculateHeight","resetSubgroups","vertical","labelSet","_addToSubgroup","orderSubgroups","_checkIfVisible","subgroupId","itemEnd","initialEnd","sortArray","sortField","_removeFromSubgroup","itemIndex","removeItem","startArray","endArray","orderByStart","orderByEnd","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","searchFunction","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","oldSubgroup","newSubgroup","BackgroundGroup","RangeItem","baseClassName","_createDomElement","frame","visibleFrame","_appendDomElement","_updateDirtyDomComponents","maxWidth","_getDomComponentsSizes","getComputedStyle","_updateDomComponentsSizes","sizes","_repaintDomAdditionals","_repaintDragLeft","_repaintDragRight","limitSize","contentStartPosition","contentWidth","parentWidth","align","boxWidth","itemsAlwaysDraggable","dragLeftItem","dragRight","dragRightItem","ColorPicker","Configurator","parentModule","defaultContainer","configureOptions","pixelRatio","changedOptions","allowCreation","initialized","popupCounter","showButton","moduleOptions","domElements","popupDiv","popupLimit","popupHistory","colorPicker","wrapper","_removePopup","_clean","_this","counter","_handleObject","_makeItem","_makeHeader","generateButton","onclick","_printOptions","onmouseover","onmouseout","optionsContainer","_push","_showPopupIfNeeded","base","_len","_key","div","objectLabel","selectedValue","onchange","_update","_makeLabel","popupString","popupValue","input","oninput","_setupPopup","string","_this2","html","hideTimeout","deleteTimeout","_this3","correspondingElement","checkbox","checked","_this4","defaultColor","backgroundColor","_showColorPicker","_this5","insertTo","setColor","setUpdateCallback","colorString","setCloseCallback","checkOnly","visibleInSet","subObj","newPath","_getValue","_handleArray","_makeTextInput","_makeCheckbox","solver","enabledPath","enabledValue","_label","error","_makeColorField","_makeDropdown","_makeRange","_constructOptions","optionsObj","getOptions","Points","getGroupTemplate","callbackResult","getCallback","framework","DOMutil","dataset","screen_x","screen_y","svgElements","svg","drawIcon","iconWidth","iconHeight","fillHeight","outline","CircleImageBase","labelOffset","setImages","selection_changed","imageTmp","useImageSize","ratio_width","ratio_height","circle","globalAlpha","factor","interpolation","drawImageAtPosition","labelDimensions","lineCount","CubicBezierEdge","BezierEdgeDynamic","BezierEdgeStatic","StraightEdge","Edge","fromId","toId","labelDirty","baseWidth","from","to","edgeType","connected","dataChanged","updateEdgeType","_setInteractionWidths","connect","toArrow","arrows","fromArrow","middleArrow","inheritsColor","inherit","toArrowScale","scaleFactor","toArrowType","middleArrowScale","middleArrowType","fromArrowScale","fromArrowType","arrowStrikethrough","selectedWidth","selectionWidth","hoverWidth","smooth","changeInType","cleanup","disconnect","nodes","attachEdge","detachEdge","widthDiff","viaNode","getViaNode","arrowData","fromPoint","toPoint","getArrowData","drawLine","drawArrows","drawLabel","drawArrowHead","node1","node2","pointToSelf","getPoint","_getRotation","translate","rotate","selfReferenceSize","_pointOnCircle","edgeId","isOverlappingWith","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","yLine","dy","dx","atan2","PI","copyFromGlobals","isValidLabel","fromColor","toColor","colorsDefined","_EdgeBase2","_EdgeBase3","BezierEdgeBase","_EdgeBase","nearNode","pos","distanceToPoint","difference","_getViaCoordinates","node","pow","x1","y1","x2","y2","x3","y3","via","minDistance","lastX","lastY","_getDistanceToLine","viaNode1","viaNode2","hasNode1","hasNode2","beginPath","bezierCurveTo","quadraticCurveTo","lineTo","NetworkUtil","allNodes","specificNodes","minY","maxY","minX","maxX","clonedOptions","amountOfConnections","cof","redefine","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","returnThis","Base","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","aFunction","that","is","toIObject","arrayIndexOf","names","toObject","ObjectProto","ARG","tryGet","T","callee","fails","KEY","exp","hiddenKeys","getOwnPropertyNames","pIE","gOPD","getOwnPropertyDescriptor","Point2d","Slider","play","MozBorderRadius","slide","onmousedown","_onMouseDown","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","getIndex","setIndex","playNext","setOnChangeCallback","setPlayInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","setValues","which","button","startClientX","startSlideX","onmousemove","_onMouseMove","onmouseup","_onMouseUp","leftToIndex","StepNumber","prettyStep","precision","_current","isNumeric","isFinite","setStep","calculatePrettyStep","log10","LN10","step1","step2","step5","toPrecision","getStep","checkFirst","isEmpty","capitalize","prefixFieldName","fieldName","forceCopy","srcKey","dstKey","safeCopy","setDefaults","DEFAULTS","OPTIONKEYS","PREFIXEDOPTIONKEYS","setSpecialSettings","showGrayBottom","showTooltip","onclick_callback","eye","setBackgroundColor","setDataColor","dataColor","setStyle","setShowLegend","showLegend","setCameraPosition","cameraPosition","tooltip","tooltipStyle","isLegendGraphStyle","STYLE","DOTCOLOR","DOTSIZE","getStyleNumberByName","styleName","number","STYLENAME","checkStyleNumber","valid","styleNumber","strokeWidth","borderStyle","camPos","camera","Camera","setArmRotation","horizontal","setArmLength","BAR","BARCOLOR","BARSIZE","DOT","DOTLINE","GRID","LINE","SURFACE","dot","dot-line","dot-color","dot-size","grid","surface","bar-color","bar-size","armLocation","armRotation","armLength","cameraOffset","offsetMultiplier","cameraLocation","cameraRotation","calculateCameraOrientation","_sign","_sign2","setOffset","sign","mul","getOffset","setArmLocation","getArmRotation","rot","getArmLength","getCameraLocation","getCameraRotation","xa","za","Filter","dataGroup","column","graph","getDistinctValues","selectValue","dataPoints","loaded","onLoadCallback","animationPreload","loadInBackground","isLoaded","getLoadedProgress","getLabel","filterLabel","getColumn","getSelectedValue","getValues","getValue","_getDataPoints","dataView","setOnLoadCallback","progress","overlay","_onTapOverlay","onClick","_hasParent","deactivate","escListener","activate","ItemSet","groupOrderSwap","fromGroup","toGroup","groups","targetOrder","groupOrder","selectable","multiselect","onDropObjectOnItem","objectData","onAdd","onUpdate","onMove","onRemove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup","showTooltips","followMouse","overflowMethod","itemOptions","groupsData","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","groupData","updatedGroups","nestedGroupId","updatedNestedGroup","_onUpdateGroups","_onRemoveGroups","groupIds","selection","popup","groupTouchParams","BoxItem","PointItem","BackgroundItem","Popup","UNGROUPED","BACKGROUND","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","groupHammer","_onGroupClick","_onGroupDragStart","_onGroupDrag","_onGroupDragEnd","DIRECTION_VERTICAL","_onMouseOver","_onMouseOut","markDirty","refreshItems","setSelection","getSelection","rawVisibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","scrolled","lastRangeStart","changedStackOption","lastStack","changedStackSubgroupsOption","lastStackSubgroups","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","redrawResults","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","_removeItem","groupOptions","_orderNestedGroups","newGroupIdsOrder","nestedGroup","nestedGroupIds","_constructByEndArray","itemFromTarget","itemProps","_getGroupIndex","selectedItem","initialX","_cloneItemData","srcEvent","ctrlKey","metaKey","_onDragStartAddItem","baseGroupIndex","itemsToDrag","groupIndex","groupOffset","xAbs","getScale","groupFromTarget","newItem","updateGroupAllowed","newGroupBase","initialStart","initial","newOffset","oldGroup","nestingGroup","originalOrder","movingUp","targetGroupTop","draggedGroupHeight","targetGroup","draggedGroup","newOrder","origOrder","draggedId","numGroups","curPos","orgOffset","slippedPosition","switchGroup","shouldBeGroup","switchGroupId","oldSelection","newSelection","itemFromRelatedTarget","setText","setPosition","newItemData","itemGroup","lastSelectedGroup","multiselectPerGroup","_getItemRange","_item","itemFromElement","cur","relatedTarget","itemSetFromTarget","force","collidingItem","jj","collision","substack","subgroupHeight","baseTop","newTop","otherSubgroup","collisionByTimes","subgroupItems","doSubStack","widthInMs","getTime","previous","itemSetHeight","lineHeight","marginLeft","marginRight","itemSubgroup","padding","doShow","isLeft","isTop","bool","boolean","function","throttleRedraw","any","onInitialDrawComplete","null","groupsDraggable","LineGraph","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","sideBySide","parametrization","alpha","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","forceGraphUpdate","lastStart","groupsUsingDefaultStyles","DataAxis","GraphGroup","Legend","Bars","Lines","yAxisLeft","yAxisRight","legendLeft","legendRight","_removeGroup","_updateAllGroupData","removeGroup","_updateGroup","addGroup","groupsContent","idMap","groupCounts","existingItemsMap","existing_items","newLength","extended","orginalY","_updateGraph","rangePerPixelInv","_getSortedGroupIds","zIndex","az","bz","groupRanges","minDate","toGlobalTime","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","below","excludeFromStacking","_stack","_convertYcoordinates","paths","calcPath","subGroupId","drawShading","subData","subPrevPoint","subNextPoint","dateComparator","first","last","dataContainer","increment","amountOfPoints","xDistance","toGlobalScreen","pointsPerPixel","sampledData","idx","combinedDataLeft","combinedDataRight","getYRange","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","master","masterAxis","lineOffset","tempGroups","axisUsed","datapoints","screen_end","svgHeight","convertValue","setZeroPosition","linegraphOptions","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","alignZeros","linegraphSVG","DOMelements","labels","conversionFactor","minWidth","stepPixels","zeroCrossing","amountOfSteps","iconsRemoved","amountOfGroups","lineContainer","DataScale","graphOptions","_redrawGroupIcons","iconOffset","groupArray","getLegend","_cleanupIcons","activeGroups","_redrawLabels","_redrawTitle","customRange","autoScaleEnd","autoScaleStart","followScale","maxLabelSize","getLines","major","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","screenToValue","characterHeight","textAlign","largestWidth","textMinor","textMajor","textTitle","measureCharTitle","titleCharWidth","zeroAlign","formattingFunction","majorSteps","minorSteps","customLines","minorStepIdx","magnitudefactor","determineScale","rounded","setCharHeight","setHeight","minimumStepValue","orderOfMagnitude","solutionFound","is_major","getFirstMajor","majorStep","formatValue","bottomOffset","oldStepIdx","oldStart","oldEnd","increaseMagnitude","decreaseMagnitude","otherZero","otherStep","newRange","myOriginalZero","majorOffset","zeroOffset","pixels","usingDefaultStyle","zeroPosition","icon","yMin","yMax","Bargraph","barWidth","originalWidth","bar1Height","bar2Height","processedGroupData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","accumulatedNegative","accumulatedPositive","dataWidth","pointData","groupLabel","_getStackedYRange","xpos","Line","_catmullRom","_linear","fillPath","pathArray","subPathArray","dFill","zero","serializePath","inverse","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","side","iconSize","iconSpacing","excludeFromLegend","textArea","scrollableHeight","drawLegendIcons","paddingTop","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","setValue","addNode","graphs","attr","addEdge","createEdge","getToken","tokenType","TOKENTYPE","NULL","token","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","SyntaxError","chop","strict","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","edgeStyles","dashed","solid","dotted","maxLength","forEach2","array1","array2","elem1","elem2","setProp","convertAttr","mapping","visProp","visPropI","DOTToGraph","dotData","graphData","dotNode","graphNode","NODE_ATTR_MAPPING","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","parseGephi","gephiJSON","inheritColor","gEdges","gNodes","gEdge","gNode","_CachedImage","_CachedImage2","Images","images","imageBroken","url","brokenUrl","imageToLoadBrokenUrlOn","onerror","imageToRedrawWith","cachedImage","img","onload","_fixImageCoordinates","init","_redrawWithImage","_tryloadBrokenUrl","imageToCache","_slicedToArray2","_slicedToArray3","LabelSplitter","multiFontStyle","edgelabel","fontOptions","isEdgeLabel","elementOptions","initFontOptions","newFontOptions","parseFontString","vadjust","constrainWidth","maxWdt","minWdt","constrainHeight","minHgt","valign","widthConstraint","widthConstraintMaximum","widthConstraintMinimum","heightConstraint","heightConstraintMinimum","heightConstraintValign","propagateFonts","constrain","margins","widthBias","heightBias","dstPile","srcPile","addFontToPile","tmpShorthand","opt","multiName","multiFont","optionNames","mod","getFontOption","fontPile","addFontOptionsToPile","getBasicOptions","modOptions","tmpMultiFontOptions","getFontOptions","baseline","viewFontSize","drawThreshold","maxVisible","_drawBackground","_drawText","fillRect","_setAlignment2","_setAlignment","_setAlignment3","blocks","block","_getColor2","_getColor","strokeColor","_getColor3","fontColor","lineJoin","strokeText","fillText","textBaseline","initialStrokeColor","_processLabel","face","labelHighlightBold","fontString","selectedState","hoverState","inText","process","state","_processLabelText","outOptions","inOptions","newOptionsArray","EndPoints","EdgeBase","colorDirty","getColor","_drawDashedLine","_drawLine","_line","_getCircleData2","_getCircleData","_getCircleData3","_circle","lineCap","pattern","lineDashOffset","_getCircleData4","_getCircleData5","dashedLine","_getCircleData6","_getCircleData7","_x","_y","_radius","_findBorderPosition","_findBorderPositionCircle","_getCircleData$slice","_getCircleData$slice2","grd","createLinearGradient","addColorStop","arc","_getDistanceToEdge","_getCircleData8","_getCircleData9","py","something","u","arrowPoint","guideOffset","findBorderPosition","guidePos","_getCircleData10","_getCircleData11","EndPoint","points","xt","yt","closePath","Arrow","_EndPoint","transform","drawPath","Bar","BarnesHutSolver","physicsBody","barnesHutTree","randomSeed","thetaInversed","theta","overlapAvoidanceFactor","avoidOverlap","gravitationalConstant","physicsNodeIndices","nodeIndices","nodeCount","_formBarnesHutTree","_getForceContributions","parentBranch","_getForceContribution","children","NW","NE","SW","SE","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fx","fy","forces","_node","rootSize","halfRootSize","centerX","centerY","level","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","region","_placeInRegion","seededRandom","containedNode","_insertRegion","childSize","_drawBranch","branch","CentralGravitySolver","centralGravity","endPoints","multi","bold","boldital","ital","mono","roundness","forceDirection","maximum","useDefaultGroups","interaction","dragNodes","dragView","hideEdgesOnDrag","hideNodesOnDrag","keyboard","speed","bindToWindow","navigationButtons","selectConnectedEdges","hoverConnectedEdges","tooltipDelay","zoomView","layout","improvedLayout","hierarchical","levelSeparation","nodeSpacing","treeSpacing","blockShifting","edgeMinimization","parentCentralization","sortMethod","manipulation","initiallyActive","editNode","editEdge","editWithoutDrag","deleteNode","deleteEdge","controlNodeStyle","borderWidthSelected","minimum","useBorderWithImage","barnesHut","springLength","springConstant","damping","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","iterations","updateInterval","onlyDynamicEdges","timestep","adaptiveTimestep","addToUnscopables","_k","Arguments","getKeys","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","toInteger","documentElement","TO_STRING","charCodeAt","getIterator","iterFn","classof","getIteratorMethod","$Object","D","DESCRIPTORS","META","$fails","wks","wksDefine","enumKeys","gOPNExt","$GOPD","$DP","gOPN","$JSON","stringify","HIDDEN","TO_PRIMITIVE","isEnum","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","iterator","$defineProperty","$defineProperties","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","meta","NEED","gOPS","getSymbols","symbols","arg","windowNames","getWindowNames","hooks","hookCallback","isObjectEmpty","isUndefined","res","hasOwnProp","createUTC","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","copyConfig","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","absFloor","toInt","argumentForCoercion","coercedNumber","compareArrays","dontConvert","lengthDiff","diffs","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecateSimple","deprecations","isFunction","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","calendar","mom","output","_calendar","longDateFormat","_longDateFormat","formatUpper","invalidDate","_invalidDate","ordinal","_ordinal","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","addUnitAlias","unit","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","addUnitPriority","priority","priorities","getPrioritizedUnits","unitsObj","zeroFill","targetLength","forceSign","absNumber","zerosToFill","addFormatToken","padded","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","formatMoment","expandFormat","formatFunctions","replaceLongDateFormatTokens","localFormattingTokens","lastIndex","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInYear","isLeapYear","getIsLeapYear","makeGetSet","keepTime","set$1","daysInMonth","stringGet","stringSet","prioritized","modMonth","localeMonths","_months","isFormat","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","monthsShort","months","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","monthsParse","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","defaultMonthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","localWeekday","weekOffset","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","weekdays","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","defaultWeekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","localeMeridiem","isLower","normalizeLocale","chooseLocale","loadLocale","oldLocale","globalLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","baseConfig","abbr","parentLocale","localeFamilies","updateLocale","listLocales","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","temp","weekdayOverflow","GG","createLocal","curWeek","gg","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","extendedIsoRegex","basicIsoRegex","isoDates","isoTimes","tzRegex","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","defaultLocaleMonthsShort","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","defaultLocaleWeekdaysShort","calculateOffset","obsOffset","militaryOffset","numOffset","obsOffsets","hm","configFromRFC2822","parsedArray","configFromString","aspNetJsonRegex","createFromInputFallback","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","_meridiem","meridiemFixWrap","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","isDurationValid","ordering","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","quarter","weeks","days","_milliseconds","_days","_bubble","isDuration","absRound","separator","utcOffset","offsetFromString","matcher","matches","chunk","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","matchShortOffset","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","period","dur","isAdding","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","inspect","zone","suffix","inputString","defaultFormatUtc","postformat","humanize","fromNow","toNow","newLocaleData","isoWeekday","unix","toJSON","isValid$2","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","isoWeek","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfYear","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","clone$1","get$2","makeGetter","substituteTimeAgo","relativeTime$1","posNegDuration","thresholds","ss","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","limit","withSuffix","toISOString$1","abs$1","Y","toFixed","asSeconds","totalSign","ymSign","daysSign","hmsSign","fun","defaultCalendar","sameDay","nextDay","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultDayOfMonthOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","parseTwoDigitYear","getSetYear","defaultLocaleMonths","defaultLocaleWeek","defaultLocaleWeekdays","defaultLocaleWeekdaysMin","kInput","_isPm","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","dayOfMonthOrdinalParse","meridiemParse","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","prototypeMin","prototypeMax","invalid","isoWeekYear","getSetDayOfMonth","getSetMinute","getSetSecond","getSetMillisecond","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","firstDayOfYear","firstDayOfWeek","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","webpackPolyfill","webpackEmptyContext","req","resolve","buf","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","_nodeId","rnds","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","_seedBytes","eval","Graph3d","graph3d","containerElement","DataGroup","Settings","colX","colY","colZ","colValue","getMouseX","targetTouches","getMouseY","_assign","_assign2","_require2","legendLabel","xLabel","zLabel","xValueLabel","yValueLabel","zValueLabel","showXAxis","showYAxis","showZAxis","showGrid","showPerspective","showShadow","keepAspectRatio","verticalRatio","dotSizeRatio","dotSizeMinFraction","dotSizeMaxFraction","showAnimationControls","animationInterval","animationAutoStart","axisColor","gridColor","xCenter","yCenter","boxShadow","borderLeft","xBarWidth","yBarWidth","valueMin","valueMax","xMin","xMax","xStep","yStep","zMin","zMax","zStep","_setScale","xRange","yRange","zRange","valueRange","zCenter","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","cx","cy","cz","sinTx","cosTx","sinTy","cosTy","sinTz","cosTz","bx","by","ex","ey","ez","dz","currentXCenter","canvas","currentYCenter","_calcTranslations","trans","screen","transBottom","dist","sortDepth","_initializeRanges","dg","getDataPoints","dataX","dataY","dataMatrix","xIndex","yIndex","pointRight","pointTop","pointCross","_checkValueField","pointNext","noCanvas","fontWeight","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","_onClick","_setSize","_resizeCanvas","animationStart","dataFilter","slider","animationStop","_resizeCenter","getCameraPosition","_readData","initializeData","_redrawFilter","validate","setPointDrawingMethod","getDataTable","_redrawBarGraphPoint","_redrawBarColorGraphPoint","_redrawBarSizeGraphPoint","_redrawDotGraphPoint","_redrawDotLineGraphPoint","_redrawDotColorGraphPoint","_redrawDotSizeGraphPoint","_redrawSurfaceGraphPoint","_redrawGridGraphPoint","_redrawLineGraphPoint","_pointDrawingMethod","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGraph","_redrawInfo","_redrawLegend","_getContext","getContext","clearRect","_dotSize","_getLegendWidth","isSizeLegend","isValueLegend","ymax","hue","_hsv2rgb","strokeRect","widthMin","legendMin","legendMax","info","getInfo","lineStyle","drawAxisLabelX","armAngle","yMargin","point2d","drawAxisLabelY","drawAxisLabelZ","_line3d","from2d","to2d","xText","yText","zText","gridLenX","gridLenY","textMargin","armVector","defaultXStep","defaultYStep","_msg","defaultZStep","from3d","_msg2","xMin2d","xMax2d","H","V","Hi","X","_getStrokeWidth","_redrawBar","xWidth","yWidth","surfaces","corners","transCenter","_polygon","_drawCircle","_calcRadius","_getColorsRegular","_getColorsColor","_getColorsSize","colors","fraction","dotSize","sizeMin","sizeRange","cross","topSideVisible","aDiff","bDiff","zAvg","_drawGridLine","_storeMousePosition","startMouseX","startMouseY","_startCameraOffset","leftButtonDown","touchDown","startStart","startEnd","startArmRotation","moving","diffX","diffY","scaleX","scaleY","offXNew","offYNew","horizontalNew","verticalNew","snapValue","parameters","boundingRect","mouseX","mouseY","dataPoint","_dataPointFromXY","tooltipTimeout","_hideTooltip","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","oldLength","_insideTriangle","triangle","bs","cs","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","hasBars","dotWidth","dotHeight","setSize","assign","$assign","K","aLen","desc","colorOptions","dataTable","rawData","_onChange","withBars","defaultXBarWidth","getSmallestDifference","defaultYBarWidth","_initializeRange","getColumnRange","_setRangeDefaults","defaultValueMin","defaultValueMax","_collectRangeSettings","upper","range_label","step_label","settings","expand","smallest_diff","getNumberOfRows","defaultMin","defaultMax","initDataAsMatrix","reload","combine","newMin","newMax","_firstTarget","events","propagatedHandler","_handled","stopped","srcStop","firstTarget","elemHammer","_handlers","Manager","PropagatingHammer","pointerType","handler","eventType","hammers","exportName","setTimeoutContext","timeout","bindFn","invokeArrayArg","each","deprecationMessage","child","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","inStr","find","inArray","findByKey","uniqueArray","results","prefixed","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","createInputInstance","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","pointersLen","pointers","changedPointersLen","changedPointers","INPUT_START","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","getAngle","getDistance","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","rotation","getRotation","maxPointers","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","lastInterval","COMPUTE_INTERVAL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","removeLastTouch","DEDUP_TIMEOUT","isSyntheticEvent","DEDUP_DISTANCE","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","oldCssProps","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","TEST_ELEMENT","dest","MOBILE_REGEX","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","compute","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_RECOGNIZED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","curRecognizer","existing","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press","Timeline","Graph2d","timeline","forthArgument","directionFromDom","domNode","parentElement","ondblclick","oncontextmenu","onpointerdown","onpointermove","onpointerup","initialFitDone","getItemRange","getStart","getEnd","getItemVerticalScroll","leftHeight","shouldScroll","itemTop","currentScrollHeight","targetOffset","scrollOffset","newDataSet","focus","startPos","initialVerticalScroll","verticalAnimationFrame","willDraw","setFinalVerticalPosition","finalVerticalScroll","finalVerticalCallback","minItem","maxItem","startSide","endSide","lhs","rhs","snappedTime","what","pageX","pageY","toggleRollingMode","generated","centerCoordinates","hueCircle","initialColor","previousColor","applied","updateCallback","closeCallback","_bindHammer","htmlColors","black","navy","darkblue","mediumblue","darkgreen","teal","darkcyan","deepskyblue","darkturquoise","mediumspringgreen","lime","springgreen","aqua","cyan","midnightblue","dodgerblue","lightseagreen","forestgreen","seagreen","darkslategray","limegreen","mediumseagreen","turquoise","royalblue","steelblue","darkslateblue","mediumturquoise","indigo","darkolivegreen","cadetblue","cornflowerblue","mediumaquamarine","dimgray","slateblue","olivedrab","slategray","lightslategray","mediumslateblue","lawngreen","chartreuse","aquamarine","maroon","purple","olive","gray","skyblue","lightskyblue","blueviolet","darkred","darkmagenta","saddlebrown","darkseagreen","lightgreen","mediumpurple","darkviolet","palegreen","darkorchid","yellowgreen","sienna","brown","darkgray","lightblue","greenyellow","paleturquoise","lightsteelblue","powderblue","firebrick","darkgoldenrod","mediumorchid","rosybrown","darkkhaki","silver","mediumvioletred","indianred","peru","chocolate","tan","lightgrey","palevioletred","thistle","orchid","goldenrod","crimson","gainsboro","plum","burlywood","lightcyan","lavender","darksalmon","violet","palegoldenrod","lightcoral","khaki","aliceblue","honeydew","azure","sandybrown","wheat","beige","whitesmoke","mintcream","ghostwhite","salmon","antiquewhite","linen","lightgoldenrodyellow","oldlace","fuchsia","magenta","deeppink","orangered","tomato","hotpink","coral","darkorange","lightsalmon","orange","lightpink","pink","gold","peachpuff","navajowhite","moccasin","bisque","mistyrose","blanchedalmond","papayawhip","lavenderblush","seashell","cornsilk","lemonchiffon","floralwhite","snow","yellow","lightyellow","ivory","white","setInitial","htmlColor","_isColorString","rgbaArray","_rgbaArray","rgbObj","_setColor","_generateHueCircle","_hide","_updatePicker","alert","angleConvert","colorPickerSelector","colorPickerCanvas","pixelRation","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","putImageData","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","pinch","_moveSelector","sat","sfac","getImageData","newLeft","linegraph","initialLoad","isGroupVisible","Network","network","dotparser","gephiParser","convertDot","convertGephi","edgeIndices","eventListeners","onTap","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onPinch","onMouseMove","onContext","functions","createNode","bindEventListeners","Groups","Canvas","selectionHandler","SelectionHandler","interactionHandler","InteractionHandler","View","renderer","CanvasRenderer","PhysicsEngine","layoutEngine","LayoutEngine","clustering","ClusterEngine","ManipulationSystem","nodesHandler","NodesHandler","edgesHandler","EdgesHandler","KamadaKawai","networkOptions","_updateVisibleIndices","_isClusteredNode","fromNode","toNode","edgeNodesPresent","_isClusteredEdge","_updateState","_updateValueRange","unselectAll","gephi","gephiData","valueTotal","setValueRange","canvasToDOM","DOMtoCanvas","findNode","isCluster","openCluster","cluster","getNodesInCluster","clusterByConnection","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","moveNode","getBoundingBox","getConnectedNodes","objectId","getConnectedEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","selectNodes","selectEdges","getViewPosition","releaseNode","getOptionsFromConfigurator","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","diamond","roundRect","r2d","ellipse_vis","ox","oy","xe","ye","xm","ym","database","wEllipse","hEllipse","ymb","yeb","patternLength","slope","distRemaining","patternIndex","dashLength","hexagon","edit","del","back","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError","CachedImage","NUM_ITERATIONS","h2","h4","h8","h16","w4","w8","w16","coordinates","_fillMipMap","drawImage","_to","defaultIndex","groupsArray","defaultGroups","optionFields","groupName","groupname","shouldCreate","_index","nodesListeners","_nodeId2","doNotEmit","oldNodesData","newNodes","positionInitially","changedData","oldValue","clearPositions","dataArray","_node2","nodeList","nodeObj","edgeList","isIterable","LabelAccumulator","textWidth","measureText","finalize","nlLines","splitBlocks","_text","splitStringIntoLines","_mod","_text2","append","newLine","_i2","markupSystem","system","spacing","buffer","modStack","modName","emitBlock","ch","unshift","beginable","decodeMarkupSystem","splitMarkdownBlocks","splitHtmlBlocks","curWidth","words","pre","newText","overMaxWidth","appendLast","getLongestFit","word","getLongestFitWord","newW","tmpText","_add","tmpLines","tmpLine","firstEmptyBlock","tmpBlocks","determineLineHeights","determineLabelSize","removeEmptyBlocks","_setMargins","dimensions","getDimensionsFromLabel","_addBoundingBoxMargin","$getPrototypeOf","setPrototypeOf","buggy","_CircleImageBase2","_CircleImageBase3","_CircleImageBase","diameter","_drawRawCircle","_resizeImage","switchImages","clip","_drawImageAtPosition","_drawImageLabel","_distanceToBorder","_ShapeBase2","_ShapeBase3","_ShapeBase","_drawShape","_icon","neutralborderWidth","selectionLineWidth","edgesListeners","edgeData","smoothOptions","reconnectEdges","_edgeId","oldEdgesData","edgesData","oldEdge","showInternalIds","_addMissingEdges","_removeInvalidEdges","edgesToDelete","addIds","_CubicBezierEdgeBase2","_CubicBezierEdgeBase3","_CubicBezierEdgeBase","viaNodes","via1","via2","_bezierCurve","_findBorderPositionBezier","_ref","_ref2","_getDistanceToBezierEdge","_ref3","_ref4","vec","_BezierEdgeBase2","_BezierEdgeBase3","CubicBezierEdgeBase","_BezierEdgeBase","_boundFunction","positionBezierNode","physicsChange","setupSupportNode","parentEdgeId","cr","xVia","yVia","stepX","stepY","_stepX","_stepY","_stepX2","_stepY2","pi","originalAngle","myAngle","_pi","_originalAngle","_myAngle","_stepX3","_stepY3","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","Repulsion","HierarchicalRepulsion","SpringSolver","HierarchicalSpringSolver","ForceAtlas2BasedRepulsionSolver","ForceAtlas2BasedCentralGravitySolver","physicsEdgeIndices","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","referenceState","freezeCache","renderTimer","adaptiveTimestepEnabled","adaptiveCounter","adaptiveInterval","stabilized","startedStabilization","stabilizationIterations","ready","layoutFailed","initPhysics","updatePhysicsData","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","runDoubleSpeed","amountOfIterations","solve","moveNodes","_evaluateStepQuality","_startStabilizing","physicsStep","revert","adjustTimeStep","nodeIds","positions","vx","vy","reference","maxNodeVelocity","averageNodeVelocity","nodeVelocity","_performStep","maxV","calculateComponentVelocity","targetIterations","_freezeNodes","_stabilizationBatch","running","sendProgress","_finalizeStabilization","_restoreFrozenNodes","forceSize","arrowSize","RepulsionSolver","repulsingForce","HierarchicalRepulsionSolver","edgeLength","node3","_calculateSpringForce","springForce","springFx","springFy","totalFx","totalFy","_i3","correctionFx","correctionFy","_i4","_nodeId3","_BarnesHutSolver2","_BarnesHutSolver3","_BarnesHutSolver","degree","_CentralGravitySolver2","_CentralGravitySolver3","_CentralGravitySolver","Cluster","clusteredNodes","clusteredEdges","hubsize","_getHubSize","_checkOptions","nodesToCluster","refreshData","joinCondition","childNodesObj","childEdgesObj","cloneOptions","_cluster","edgeCount","clusters","usedNodes","relevantEdgeCount","checkJoinCondition","findClusterData","foundCluster","gatheringSuccessful","childNodeId","_getConnectedId","_m","clusterByEdgeCount","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","childNodeIDs","childNode","childEdge","clusterEdgeProperties","otherNodeId","childKeys","createEdges","newEdges","_j3","createdEdge","_edge","newEdge","matchToDirection","matchFromDirection","_createClusteredEdge","clusteringEdgeReplacingIds","edgeReplacedById","_backupEdgeOptions","tmpNodesToRemove","allowSingleNodeCluster","processProperties","childNodesOptions","childEdgesOptions","_clonedOptions","clusterId","_getClusterPosition","clusterNode","containedNodes","containedEdges","_clusterEdges","originalOptions","clusterNodeId","parentIndex","parentClusterNodeId","_openChildCluster","releaseFunction","clusterPosition","newPositions","_nodeId4","_containedNode","_nodeId5","_containedNode2","edgesToBeDeleted","otherNode","transferId","transferEdge","otherCluster","_restoreEdge","nodesArray","_nodeId6","reverse","clusteredNodeId","startEdgeId","allEdgeIds","getClusteredEdges","clusteredEdgeId","getBaseEdges","IdsToHandle","doneIds","foundIds","nextId","nextEdge","replacingIds","replacingId","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","baseEdge","extraOptions","childEdges","_obj","_createClusterEdges","_edge2","_nodeId7","clusteredNode","deletedNodeIds","deletedEdgeIds","eachClusterNode","_node3","endPointsValid","replacedIds","numValid","containedEdgeId","containedEdge","deletedEdgeId","_filter","shouldBeClustered","clusterFrom","_getClusterNodeForNode","clusterTo","continueLoop","clustersToOpen","numNodes","allowSingle","_Node","childClusterId","childCluster","clusterEdge","parentClusterEdge","srcId","_initRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","redrawRequested","renderingActive","renderRequests","allowRedraw","_determineBrowserMethod","_resizeNodes","_requestRedraw","_startRendering","cancelAnimationFrame","timer","myWindow","_requestNextFrame","_renderStep","_drawEdges","_drawNodes","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","browserType","resizeTimer","resizeFunction","cameraState","canvasViewCenter","hammerFrame","_cleanUp","previousWidth","previousHeight","widthRatio","heightRatio","newScale","currentViewCenter","distanceFromCenter","tabIndex","_setPixelRatio","_prepareValue","emitEvent","oldWidth","oldHeight","previousRatio","_getCameraState","newWidth","newHeight","_setCameraState","numerator","_determinePixelRatio","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","initialZoom","zoomLevel","positionDefined","yDistance","xZoomLevel","yZoomLevel","findCenter","animationOptions","nodePosition","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","_lockedRedraw","finished","NavigationHandler","navigationHandler","popupObj","popupTimer","pinched","checkSelectionChanges","_generateClickEvent","previousSelection","selectAdditionalOnPoint","selectOnPoint","currentSelection","deselectedItems","_determineDifference","selectedItems","firstSet","secondSet","arrayDiff","firstArr","secondArr","selectObject","selectionObj","xFixed","yFixed","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","overlappingEdges","popupTargetType","popupTargetId","_pointerToPositionObject","stillOnObj","overNode","iconsCreated","navigationHammers","boundFunctions","activated","configureKeyboardBindings","loadNavigationElements","cleanNavigation","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","_stopMovement","boundAction","unbindFromRedraw","hoverObj","updateSelection","selectionChanged","deselectObject","DOM","emptySelection","_initBaseEvent","getClickedItems","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","mindist","overlappingEdge","_unselectConnectedEdges","clusterSize","_addToHover","hoverChanged","emitBlurEvent","emitHoverEvent","_hoverConnectedEdges","idArray","RangeError","getItemsOnPoint","_ret","HorizontalStrategy","VerticalStrategy","HierarchicalStatus","childrenReference","parentReference","trees","distributionOrdering","levels","distributionIndex","isTree","treeIndex","treeId","accumulator","_getMaxLevel","nodeA","nodeB","minLevel","min_x","max_x","min_y","max_y","parents1","parents2","curLevel","initialRandomSeed","setPhysics","optionsBackup","setupHierarchicalLayout","layoutNetwork","curveType","prevHierarchicalState","setDirectionStrategy","adaptAllOptionsForHierarchicalLayout","backupPhysics","indices","clusterOptions","startLength","before","clusterBridges","_declusterAll","kamadaKawai","_shiftToCenter","getRangeCore","clustersPresent","definedLevel","undefinedLevel","lastNodeOnLevel","_determineLevelsByHubsize","_determineLevelsDirected","_determineLevelsCustomCallback","ensureLevel","distribution","_getDistribution","_generateMap","_placeNodesByHierarchy","_condenseHierarchy","stillShifting","branches","shiftTree","getTreeSizes","treeWidths","numTrees","getTreeSize","getBranchNodes","getBranchBoundary","branchMap","maxLevel","minSpace","maxSpace","branchNode","getPosition","_getSpaceAroundNode2","_getSpaceAroundNode","_getSpaceAroundNode3","minSpaceNode","maxSpaceNode","getCollisionLevel","maxLevel1","getMaxLevel","maxLevel2","shiftElementsCloser","centerParents","hier","levelNodes","hasSameParent","inSameSubNetwork","branchShiftCallback","centerParent","diffAbs","branchNodes1","branchNodes2","branchNodeBoundary1","branchNodeBoundary2","max1","min2","minSpace2","_shiftBlock","_centerParent","minimizeEdgeLength","allEdges","nodeLevel","C2","referenceNodes","aboveEdges","getFx","getDFx","getGuess","guess","guessMap","dfx","branchNodes","branchBoundary","minSpaceBranch","maxSpaceBranch","branchOffset","_getSpaceAroundNode4","_getSpaceAroundNode5","newPosition","getLevels","treeSizes","shiftBy","useMap","prevNode","nextNode","nextPos","parents","parentId","_getCenterPosition","_getSpaceAroundNode6","_getSpaceAroundNode7","positionedNodes","nodeArray","_indexArrayToNodes","handledNodeCount","_validatePositionAndContinue","parentLevel","childRef","_i5","childNodeLevel","previousPos","sharedParent","_findCommonParent","withChild","_placeBranchNodes","fix","hubSizes","hubSize","_getActiveEdges","_this6","levelDownstream","_getHubSizes","_crawlNetwork","_this7","levelByDirection","levelA","setMinLevelToZero","_this8","isBidirectional","otherEdge","levelB","_this9","fillInRelations","addRelation","checkIfTree","_this10","startingNodeId","crawler","tree","setTreeIndex","_this11","shifter","childA","childB","_this12","iterateParents","parentRef","findParent","foundParent","isVertical","minPos","maxPos","DirectionInterface","abstract","fake_use","_DirectionInterface","addToOrdering","_DirectionInterface2","editMode","manipulationDiv","editModeDiv","closeDiv","manipulationHammers","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","_restore","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","_getSelectedNodeCount","selectedEdgeCount","_getSelectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","_dragStartEdge","edgeBeingEditedId","_performEditEdge","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","findBorderPositions","selectedNodes","selectedEdges","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","deleteBtnClass","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","fromSelect","toSelect","overlappingNodeIds","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","eeFunct","_FloydWarshall","_FloydWarshall2","edgeStrength","distanceSolver","edgesArray","ignoreClusters","D_matrix","getDistances","_createL_matrix","_createK_matrix","_createE_matrix","maxIterations","maxEnergy","highE_nodeId","dE_dx","dE_dy","delta_m","subIterations","_getHighestEnergyNode2","_getHighestEnergyNode","_getHighestEnergyNode3","_moveNode","_getEnergy2","_getEnergy","_getEnergy3","maxEnergyNodeId","dE_dx_max","dE_dy_max","nodeIdx","_getEnergy4","_getEnergy5","_E_sums$m","E_sums","d2E_dx2","d2E_dxdy","d2E_dy2","x_m","y_m","km","K_matrix","lm","L_matrix","iIdx","x_i","y_i","kmat","lmat","denominator","_updateE_matrix","E_matrix","mIdx","_mIdx","colm","kcolm","lcolm","cell","oldDx","oldDy","FloydWarshall","knode","inode","icolm","jnode","jcolm"],"mappings":"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","file":"vis"} \ No newline at end of file +{"version":3,"sources":["C:\\Users\\azuser\\Desktop\\vis\\vis/dist/vis.js"],"names":["root","factory","exports","module","define","amd","self","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","default","instance","Constructor","TypeError","_defineProperty","_defineProperty2","obj","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","_interopRequireDefault","copyOrDelete","a","b","prop","allowDeletion","doDeletion","undefined","_getIterator2","_getIterator3","_create","_create2","_keys","_keys2","_typeof2","_typeof3","moment","uuid","isNumber","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","fillIfDefined","arguments","extend","other","selectiveExtend","Array","isArray","Error","selectiveDeepExtend","constructor","deepExtend","selectiveNotDeepExtend","propsToExclude","indexOf","push","protoExtend","equalArray","len","convert","type","match","Boolean","valueOf","isMoment","toDate","getType","toISOString","format","copyAndExtendArray","arr","newValue","newArr","copyArray","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteRight","right","getAbsoluteTop","top","addClassName","classNames","classes","className","split","newClasses","concat","filter","join","removeClassName","oldClasses","forEach","callback","toArray","array","updateProperty","throttle","fn","scheduled","requestAnimationFrame","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","toString","slice","parseColor","isValidRGB","map","isValidHex","hsv","hexToHSV","lighterColorHSV","h","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","cssUtil","cssText","styles","style","trim","parts","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","bridgeObject","Element","insertSort","compare","k","j","mergeOptions","mergeTarget","options","globalOptions","isPresent","isObject","srcOption","globalPassed","x","globalOption","globalEnabled","enabled","src","dst","binarySearchCustom","orderedItems","comparator","field","field2","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getScrollBarWidth","inner","document","createElement","width","height","outer","position","visibility","overflow","appendChild","body","w1","offsetWidth","w2","clientWidth","topMost","pile","accessors","candidate","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","next","done","member","err","ReferenceError","_setPrototypeOf","_setPrototypeOf2","subClass","superClass","__proto__","_iterator2","_symbol","_symbol2","_typeof","core","version","__e","hammerMock","noop","on","off","destroy","emit","set","propagating","Hammer","DataSet","data","_options","_data","_fieldId","fieldId","_type","_subscribers","add","setOptions","_stringify","_stringify2","util","Queue","queue","_queue","subscribers","_trigger","params","senderId","subscriber","id","addedIds","me","_addItem","items","update","updatedIds","oldData","updatedData","addOrUpdate","oldItem","_updateItem","console","warn","args","ids","firstType","returnType","itemIds","itemId","_getItem","order","_sort","_filterFields","resultant","getIds","getDataSet","mappedItems","filteredItem","itemFields","sort","av","bv","remove","removedIds","removedItems","_remove","ident","clear","maxField","itemField","minField","distinct","values","fieldType","count","exists","types","raw","converted","DataView","_ids","_onEvent","apply","setData","refresh","oldIds","newIds","viewOptions","getArguments","defaultFilter","dataSet","oldItems","updatedItems","subscribe","unsubscribe","store","uid","Symbol","USE_SYMBOL","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","resetElements","getSVGElement","svgContainer","shift","createElementNS","getDOMElement","DOMContainer","insertBefore","drawPoint","y","groupTemplate","labelObj","point","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","rect","printStyle","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","errorFound","allOptions","Validator","referenceOptions","subObject","usedOptions","path","check","__any__","getSuggestion","referenceOption","is_object","refOptionObj","__type__","checkFields","log","message","printLocation","optionType","refOptionType","print","_isAMomentObject","localSearch","findInOptions","globalSearch","msg","indexMatch","distance","closestMatch","recursive","closestMatchPath","lowerCaseOption","toLowerCase","op","levenshteinDistance","prefix","str","_j","_i","_j2","matrix","charAt","Component","redraw","_isResized","resized","_previousWidth","_previousHeight","global","ctx","hide","has","$export","source","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","C","Function","virtual","R","U","__g","anObject","IE8_DOM_DEFINE","toPrimitive","dP","O","Attributes","it","NodeBase","labelModule","radius","margin","refreshNeeded","boundingBox","bottom","adjustSizes","angle","borderWidth","resize","abs","cos","sin","shadow","shadowColor","shadowBlur","shadowSize","shadowOffsetX","shadowX","shadowOffsetY","shadowY","borderDashes","setLineDash","dashes","shapeProperties","selected","differentState","view","lineWidth","strokeStyle","borderColor","fillStyle","save","enableBorderDashes","stroke","disableBorderDashes","restore","enableShadow","fill","disableShadow","performStroke","_updateBoundingBox","textSize","getTextSize","_getPrototypeOf","_getPrototypeOf2","_possibleConstructorReturn2","_possibleConstructorReturn3","_inherits2","_inherits3","_NodeBase2","_NodeBase3","ShapeBase","_NodeBase","needsRefresh","shape","sizeMultiplier","initContextForDraw","performFill","calculateLabelSize","yLabel","draw","updateBoundingBox","IObject","defined","createDesc","_isIterable2","_isIterable3","sliceIterator","_arr","_n","_d","_e","_s","$keys","enumBugKeys","keys","Point3d","z","subtract","sub","sum","avg","crossProduct","crossproduct","sqrt","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","keycharm","container","_exportFunctions","_bound","keydown","keyup","fromCharCode","code","down","handleEvent","up","keyCode","bound","shiftKey","bind","bindAll","getKey","unbind","newBindings","reset","convertHiddenOptions","hiddenDates","repeat","dateItem","start","end","updateHiddenDates","domProps","centerContainer","range","totalRange","pixelTime","startDate","endDate","duration","offset","runUntil","clone","day","dayOfYear","year","dayOffset","diff","date","month","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","_end","switchedYear","switchedMonth","switchedDay","toScreen","Core","time","conversion","getHiddenDurationBetween","hiddenBeforeStart","getHiddenDurationBeforeStart","rangeAfterEnd","correctTimeForHidden","toTime","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","onTouch","hammer","inputHandler","isFirst","onRelease","isFinal","offTouch","offRelease","disablePreventDefaultVertically","pinchRecognizer","getTouchAction","Item","dom","displayed","groupShowing","dirty","editable","_updateEditStatus","stack","select","unselect","group","itemSet","_moveToGroup","stackDirty","subgroup","changeSubgroup","setParent","show","isVisible","repositionX","repositionY","_repaintDragCenter","updateTime","dragCenter","dragCenterItem","emitter","stopPropagation","_onUpdateItem","box","dragLeft","_repaintDeleteButton","anchor","overrideItems","deleteButton","rtl","title","removeFromDataSet","_repaintOnItemUpdateTimeTooltip","tooltipOnItemUpdateTime","onItemUpdateTimeTooltip","touchParams","itemIsDragging","itemDistanceFromTop","scrollTop","orientation","templateFunction","template","innerHTML","_updateContents","itemVisibleFrameContent","visibleFrameTemplateFunction","itemData","itemsData","frameElement","itemVisibleFrameContentElement","getElementsByClassName","visibleFrameTemplate","_contentToString","_updateDataAttributes","dataAttributes","attributes","setAttribute","removeAttribute","_updateStyle","outerHTML","updateGroup","getWidthLeft","getWidthRight","getTitle","bitmap","px","random","propertyIsEnumerable","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","context","entry","clearTimeout","setTimeout","Emitter","mixin","_callbacks","once","removeListener","removeAllListeners","callbacks","cb","splice","listeners","hasListeners","TimeAxis","foreground","lines","majorTexts","minorTexts","minimumStep","lineTop","defaultOptions","axis","showMinorLabels","showMajorLabels","maxMinorChars","TimeStep","FORMAT","timeAxis","DateUtil","locale","lang","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","backgroundVertical","timeLabelsize","minorCharWidth","step","setMoment","setFormat","setScale","xNext","isMajor","showMinorGrid","prevWidth","line","labelMinor","xFirstMajorLabel","getCurrent","hasNext","getClassName","getLabelMinor","_repaintMinorText","_repaintMajorText","getLabelMajor","_repaintMajorLine","_repaintMinorLine","warnedForOverflow","leftTime","leftText","widthText","majorCharWidth","pop","text","createTextNode","childNodes","measureCharMinor","clientHeight","measureCharMajor","CustomTime","locales","customTime","eventParams","onMouseWheel","_onMouseWheel","bar","drag","_onDragStart","_onDrag","_onDragEnd","threshold","DIRECTION_HORIZONTAL","warned","toUpperCase","substring","setCustomTime","getCustomTime","setCustomTitle","dragging","deltaX","customTimeFromTarget","Label","ComponentUtil","Box","Circle","CircularImage","Database","Diamond","Dot","Ellipse","Icon","Image","Square","Hexagon","Star","Text","Triangle","TriangleDown","_require","Node","imagelist","grouplist","edges","baseSize","baseFontSize","font","predefinedPosition","edge","index","currentShape","checkMass","parseFloat","parseOptions","chooser","choosify","_load_images","updateLabelModule","updateShape","physics","image","imageObj","load","brokenImage","unselected","imageObjAlt","borderRadius","updateGroupOptions","currentGroup","distanceToBorder","fixed","scaling","customScalingFunction","sizeDiff","fontDiff","getFormattingValues","ret","visible","pointInRect","getSize","nodeId","labelId","parentOptions","newOptions","groupList","groupObj","parsedColor","mass","strId","subOption","allowed","chosen","chosenEdge","rotationPoint","tmp","Iterators","TO_STRING_TAG","DOMIterables","NAME","Collection","proto","val","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","contentWindow","open","write","lt","close","create","Properties","ceil","shared","mode","copyright","def","TAG","tag","stat","$at","iterated","_t","LIBRARY","wksExt","$Symbol","getOwnPropertySymbols","Range","now","hours","minutes","seconds","milliseconds","millisecondsPerPixelCache","rolling","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","rollingMode","follow","touch","animationTimer","_onTouch","_onPinch","rollingModeBtn","startRolling","validateDirection","setRange","stopRolling","interval","animation","center","currentTimeTimer","frameCallback","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","initTime","anyChanged","ease","changed","timeoutID","getMillisecondsPerPixel","newStart","newEnd","getRange","totalHidden","previousDelta","_isInsideRange","allowDragging","cursor","delta","deltaY","diffRange","safeStart","safeEnd","wheelDelta","detail","zoomKey","pointerDate","pointer","getPointer","clientX","clientY","_pointerToDate","zoom","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","moveTo","hammerUtil","Activator","isActive","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","verticalScroll","adjusted","_setScrollTop","_redraw","horizontalScroll","onMouseScrollSide","handleDragOver","itemAddedToTimeline","dataTransfer","dropEffect","handleDrop","JSON","getData","_onAddItem","_onDropObjectOnItem","getEventProperties","backgroundHorizontal","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","scrollTopMin","initialDrawDone","initialRangeChangeDone","_origRedraw","properties","initialItemSetDrawn","enable","customTimes","redrawCount","timeAxis2","components","drawPoints","onRender","clickToUse","activator","_initAutoResize","component","configurator","_createConfigurator","configure","appliedOptions","setModuleOptions","active","setItems","setGroups","_stopAutoResize","setCustomTimeTitle","addCustomTime","timestamp","some","removeCustomTime","getVisibleItems","fit","getDataRange","setWindow","getWindow","zoomIn","percentage","newInterval","zoomOut","maxHeight","minHeight","offsetHeight","borderRootHeight","borderRootWidth","contentHeight","autoHeight","containerHeight","scrollbarWidth","_setDOM","_updateScrollTop","visibilityTop","visibilityBottom","RegExp","contentsOverflow","DIRECTION_ALL","centerWidth","repaint","setCurrentTime","currentTime","getCurrentTime","_toTime","_toGlobalTime","_toScreen","_toGlobalScreen","autoResize","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","clearInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_start","autoScale","minorLabels","millisecond","second","minute","hour","weekday","week","majorLabels","defaultFormat","setMinimumStep","roundToMinor","prev","nextWeek","isSame","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","snap","round","even","today","_moment","currentWeek","currentMonth","CurrentTime","showCurrentTime","stop","Group","groupId","subgroups","subgroupStack","subgroupStackAll","doInnerStack","subgroupIndex","subgroupOrderer","subgroupOrder","nestedGroups","showNested","nestedInGroup","visibleItems","itemsInRange","byStart","byEnd","checkRangedItems","groupEditable","marker","collapsedDirClassName","paddingRight","paddingLeft","getLabelWidth","_didMarkerHeightChange","markerHeight","lastMarkerHeight","redrawQueue","redrawQueueLength","fns","_calculateGroupSizeAndPosition","offsetTop","offsetLeft","_redrawItems","forceRestack","lastIsVisible","visibleSubgroups","stackSubgroups","stackSubgroupsWithInnerStack","customOrderedItems","_updateItemsInRange","nostack","_didResize","labelWidth","labelHeight","_applyGroupHeight","_updateItemsVerticalPosition","ii","returnQueue","_updateSubGroupHeights","_isGroupVisible","_updateSubgroupsSizes","_calculateHeight","resetSubgroups","vertical","labelSet","_addToSubgroup","orderSubgroups","_checkIfVisible","subgroupId","itemEnd","initialEnd","sortArray","sortField","_removeFromSubgroup","itemIndex","removeItem","startArray","endArray","orderByStart","orderByEnd","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","searchFunction","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","oldSubgroup","newSubgroup","BackgroundGroup","RangeItem","baseClassName","_createDomElement","frame","visibleFrame","_appendDomElement","_updateDirtyDomComponents","maxWidth","_getDomComponentsSizes","getComputedStyle","_updateDomComponentsSizes","sizes","_repaintDomAdditionals","_repaintDragLeft","_repaintDragRight","limitSize","contentStartPosition","contentWidth","parentWidth","align","boxWidth","itemsAlwaysDraggable","dragLeftItem","dragRight","dragRightItem","ColorPicker","Configurator","parentModule","defaultContainer","configureOptions","pixelRatio","changedOptions","allowCreation","initialized","popupCounter","showButton","moduleOptions","domElements","popupDiv","popupLimit","popupHistory","colorPicker","wrapper","_removePopup","_clean","_this","counter","_handleObject","_makeItem","_makeHeader","generateButton","onclick","_printOptions","onmouseover","onmouseout","optionsContainer","_push","_showPopupIfNeeded","base","_len","_key","div","objectLabel","selectedValue","onchange","_update","_makeLabel","popupString","popupValue","input","oninput","_setupPopup","string","_this2","html","hideTimeout","deleteTimeout","_this3","correspondingElement","checkbox","checked","_this4","defaultColor","backgroundColor","_showColorPicker","_this5","insertTo","setColor","setUpdateCallback","colorString","setCloseCallback","checkOnly","visibleInSet","subObj","newPath","_getValue","_handleArray","_makeTextInput","_makeCheckbox","solver","enabledPath","enabledValue","_label","error","_makeColorField","_makeDropdown","_makeRange","_constructOptions","optionsObj","getOptions","Points","getGroupTemplate","callbackResult","getCallback","framework","DOMutil","dataset","screen_x","screen_y","svgElements","svg","drawIcon","iconWidth","iconHeight","fillHeight","outline","CircleImageBase","labelOffset","setImages","selection_changed","imageTmp","useImageSize","ratio_width","ratio_height","circle","globalAlpha","factor","interpolation","drawImageAtPosition","labelDimensions","lineCount","CubicBezierEdge","BezierEdgeDynamic","BezierEdgeStatic","StraightEdge","Edge","fromId","toId","labelDirty","baseWidth","from","to","edgeType","connected","dataChanged","updateEdgeType","_setInteractionWidths","connect","toArrow","arrows","fromArrow","middleArrow","inheritsColor","inherit","toArrowScale","scaleFactor","toArrowType","middleArrowScale","middleArrowType","fromArrowScale","fromArrowType","arrowStrikethrough","selectedWidth","selectionWidth","hoverWidth","smooth","changeInType","cleanup","disconnect","nodes","attachEdge","detachEdge","widthDiff","viaNode","getViaNode","arrowData","fromPoint","toPoint","getArrowData","drawLine","drawArrows","drawLabel","drawArrowHead","node1","node2","pointToSelf","getPoint","_getRotation","translate","rotate","selfReferenceSize","_pointOnCircle","edgeId","isOverlappingWith","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","yLine","dy","dx","atan2","PI","copyFromGlobals","isValidLabel","fromColor","toColor","colorsDefined","_EdgeBase2","_EdgeBase3","BezierEdgeBase","_EdgeBase","nearNode","pos","distanceToPoint","difference","_getViaCoordinates","node","pow","x1","y1","x2","y2","x3","y3","via","minDistance","lastX","lastY","_getDistanceToLine","viaNode1","viaNode2","hasNode1","hasNode2","beginPath","bezierCurveTo","quadraticCurveTo","lineTo","NetworkUtil","allNodes","specificNodes","minY","maxY","minX","maxX","clonedOptions","amountOfConnections","cof","redefine","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","returnThis","Base","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","aFunction","that","is","toIObject","arrayIndexOf","names","toObject","ObjectProto","ARG","tryGet","T","callee","fails","KEY","exp","hiddenKeys","getOwnPropertyNames","pIE","gOPD","getOwnPropertyDescriptor","Point2d","Slider","play","MozBorderRadius","slide","onmousedown","_onMouseDown","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","getIndex","setIndex","playNext","setOnChangeCallback","setPlayInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","setValues","which","button","startClientX","startSlideX","onmousemove","_onMouseMove","onmouseup","_onMouseUp","leftToIndex","StepNumber","prettyStep","precision","_current","isNumeric","isFinite","setStep","calculatePrettyStep","log10","LN10","step1","step2","step5","toPrecision","getStep","checkFirst","isEmpty","capitalize","prefixFieldName","fieldName","forceCopy","srcKey","dstKey","safeCopy","setDefaults","DEFAULTS","OPTIONKEYS","PREFIXEDOPTIONKEYS","setSpecialSettings","showGrayBottom","showTooltip","onclick_callback","eye","setBackgroundColor","setDataColor","dataColor","setStyle","setShowLegend","showLegend","setCameraPosition","cameraPosition","tooltip","tooltipStyle","isLegendGraphStyle","STYLE","DOTCOLOR","DOTSIZE","getStyleNumberByName","styleName","number","STYLENAME","checkStyleNumber","valid","styleNumber","strokeWidth","borderStyle","camPos","camera","Camera","setArmRotation","horizontal","setArmLength","BAR","BARCOLOR","BARSIZE","DOT","DOTLINE","GRID","LINE","SURFACE","dot","dot-line","dot-color","dot-size","grid","surface","bar-color","bar-size","armLocation","armRotation","armLength","cameraOffset","offsetMultiplier","cameraLocation","cameraRotation","calculateCameraOrientation","_sign","_sign2","setOffset","sign","mul","getOffset","setArmLocation","getArmRotation","rot","getArmLength","getCameraLocation","getCameraRotation","xa","za","Filter","dataGroup","column","graph","getDistinctValues","selectValue","dataPoints","loaded","onLoadCallback","animationPreload","loadInBackground","isLoaded","getLoadedProgress","getLabel","filterLabel","getColumn","getSelectedValue","getValues","getValue","_getDataPoints","dataView","setOnLoadCallback","progress","overlay","_onTapOverlay","onClick","_hasParent","deactivate","escListener","activate","ItemSet","groupOrderSwap","fromGroup","toGroup","groups","targetOrder","groupOrder","selectable","multiselect","onDropObjectOnItem","objectData","onAdd","onUpdate","onMove","onRemove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup","showTooltips","followMouse","overflowMethod","itemOptions","groupsData","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","groupData","updatedGroups","nestedGroupId","updatedNestedGroup","_onUpdateGroups","_onRemoveGroups","groupIds","selection","popup","groupTouchParams","BoxItem","PointItem","BackgroundItem","Popup","UNGROUPED","BACKGROUND","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","groupHammer","_onGroupClick","_onGroupDragStart","_onGroupDrag","_onGroupDragEnd","DIRECTION_VERTICAL","_onMouseOver","_onMouseOut","markDirty","refreshItems","setSelection","getSelection","rawVisibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","scrolled","lastRangeStart","changedStackOption","lastStack","changedStackSubgroupsOption","lastStackSubgroups","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","redrawResults","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","_removeItem","groupOptions","_orderNestedGroups","newGroupIdsOrder","nestedGroup","nestedGroupIds","_constructByEndArray","itemFromTarget","itemProps","_getGroupIndex","selectedItem","initialX","_cloneItemData","srcEvent","ctrlKey","metaKey","_onDragStartAddItem","baseGroupIndex","itemsToDrag","groupIndex","groupOffset","xAbs","getScale","groupFromTarget","newItem","updateGroupAllowed","newGroupBase","initialStart","initial","newOffset","oldGroup","nestingGroup","originalOrder","movingUp","targetGroupTop","draggedGroupHeight","targetGroup","draggedGroup","newOrder","origOrder","draggedId","numGroups","curPos","orgOffset","slippedPosition","switchGroup","shouldBeGroup","switchGroupId","oldSelection","newSelection","itemFromRelatedTarget","setText","setPosition","newItemData","itemGroup","lastSelectedGroup","multiselectPerGroup","_getItemRange","_item","itemFromElement","cur","relatedTarget","itemSetFromTarget","force","collidingItem","jj","collision","substack","subgroupHeight","baseTop","newTop","otherSubgroup","collisionByTimes","subgroupItems","doSubStack","widthInMs","getTime","previous","itemSetHeight","lineHeight","marginLeft","marginRight","itemSubgroup","padding","doShow","isLeft","isTop","bool","boolean","function","throttleRedraw","any","onInitialDrawComplete","null","groupsDraggable","LineGraph","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","sideBySide","parametrization","alpha","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","forceGraphUpdate","lastStart","groupsUsingDefaultStyles","DataAxis","GraphGroup","Legend","Bars","Lines","yAxisLeft","yAxisRight","legendLeft","legendRight","_removeGroup","_updateAllGroupData","removeGroup","_updateGroup","addGroup","groupsContent","idMap","groupCounts","existingItemsMap","existing_items","newLength","extended","orginalY","_updateGraph","rangePerPixelInv","_getSortedGroupIds","zIndex","az","bz","groupRanges","minDate","toGlobalTime","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","below","excludeFromStacking","_stack","_convertYcoordinates","paths","calcPath","subGroupId","drawShading","subData","subPrevPoint","subNextPoint","dateComparator","first","last","dataContainer","increment","amountOfPoints","xDistance","toGlobalScreen","pointsPerPixel","sampledData","idx","combinedDataLeft","combinedDataRight","getYRange","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","master","masterAxis","lineOffset","tempGroups","axisUsed","datapoints","screen_end","svgHeight","convertValue","setZeroPosition","linegraphOptions","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","alignZeros","linegraphSVG","DOMelements","labels","conversionFactor","minWidth","stepPixels","zeroCrossing","amountOfSteps","iconsRemoved","amountOfGroups","lineContainer","DataScale","graphOptions","_redrawGroupIcons","iconOffset","groupArray","getLegend","_cleanupIcons","activeGroups","_redrawLabels","_redrawTitle","customRange","autoScaleEnd","autoScaleStart","followScale","maxLabelSize","getLines","major","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","screenToValue","characterHeight","textAlign","largestWidth","textMinor","textMajor","textTitle","measureCharTitle","titleCharWidth","zeroAlign","formattingFunction","majorSteps","minorSteps","customLines","minorStepIdx","magnitudefactor","determineScale","rounded","setCharHeight","setHeight","minimumStepValue","orderOfMagnitude","solutionFound","is_major","getFirstMajor","majorStep","formatValue","bottomOffset","oldStepIdx","oldStart","oldEnd","increaseMagnitude","decreaseMagnitude","otherZero","otherStep","newRange","myOriginalZero","majorOffset","zeroOffset","pixels","usingDefaultStyle","zeroPosition","icon","yMin","yMax","Bargraph","barWidth","originalWidth","bar1Height","bar2Height","processedGroupData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","accumulatedNegative","accumulatedPositive","dataWidth","pointData","groupLabel","_getStackedYRange","xpos","Line","_catmullRom","_linear","fillPath","pathArray","subPathArray","dFill","zero","serializePath","inverse","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","side","iconSize","iconSpacing","excludeFromLegend","textArea","scrollableHeight","drawLegendIcons","paddingTop","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","setValue","addNode","graphs","attr","addEdge","createEdge","getToken","tokenType","TOKENTYPE","NULL","token","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","SyntaxError","chop","strict","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","edgeStyles","dashed","solid","dotted","maxLength","forEach2","array1","array2","elem1","elem2","setProp","convertAttr","mapping","visProp","visPropI","DOTToGraph","dotData","graphData","dotNode","graphNode","NODE_ATTR_MAPPING","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","parseGephi","gephiJSON","inheritColor","gEdges","gNodes","gEdge","gNode","_CachedImage","_CachedImage2","Images","images","imageBroken","url","brokenUrl","imageToLoadBrokenUrlOn","onerror","imageToRedrawWith","cachedImage","img","onload","_fixImageCoordinates","init","_redrawWithImage","_tryloadBrokenUrl","imageToCache","_slicedToArray2","_slicedToArray3","LabelSplitter","multiFontStyle","edgelabel","fontOptions","isEdgeLabel","elementOptions","initFontOptions","newFontOptions","parseFontString","vadjust","constrainWidth","maxWdt","minWdt","constrainHeight","minHgt","valign","widthConstraint","widthConstraintMaximum","widthConstraintMinimum","heightConstraint","heightConstraintMinimum","heightConstraintValign","propagateFonts","constrain","margins","widthBias","heightBias","dstPile","srcPile","addFontToPile","tmpShorthand","opt","multiName","multiFont","optionNames","mod","getFontOption","fontPile","addFontOptionsToPile","getBasicOptions","modOptions","tmpMultiFontOptions","getFontOptions","baseline","viewFontSize","drawThreshold","maxVisible","_drawBackground","_drawText","fillRect","_setAlignment2","_setAlignment","_setAlignment3","blocks","block","_getColor2","_getColor","strokeColor","_getColor3","fontColor","lineJoin","strokeText","fillText","textBaseline","initialStrokeColor","_processLabel","face","labelHighlightBold","fontString","selectedState","hoverState","inText","process","state","_processLabelText","outOptions","inOptions","newOptionsArray","EndPoints","EdgeBase","colorDirty","getColor","_drawDashedLine","_drawLine","_line","_getCircleData2","_getCircleData","_getCircleData3","_circle","lineCap","pattern","lineDashOffset","_getCircleData4","_getCircleData5","dashedLine","_getCircleData6","_getCircleData7","_x","_y","_radius","_findBorderPosition","_findBorderPositionCircle","_getCircleData$slice","_getCircleData$slice2","grd","createLinearGradient","addColorStop","arc","_getDistanceToEdge","_getCircleData8","_getCircleData9","py","something","u","arrowPoint","guideOffset","findBorderPosition","guidePos","_getCircleData10","_getCircleData11","EndPoint","points","xt","yt","closePath","Arrow","_EndPoint","transform","drawPath","Bar","BarnesHutSolver","physicsBody","barnesHutTree","randomSeed","thetaInversed","theta","overlapAvoidanceFactor","avoidOverlap","gravitationalConstant","physicsNodeIndices","nodeIndices","nodeCount","_formBarnesHutTree","_getForceContributions","parentBranch","_getForceContribution","children","NW","NE","SW","SE","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fx","fy","forces","_node","rootSize","halfRootSize","centerX","centerY","level","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","region","_placeInRegion","seededRandom","containedNode","_insertRegion","childSize","_drawBranch","branch","CentralGravitySolver","centralGravity","endPoints","multi","bold","boldital","ital","mono","roundness","forceDirection","maximum","useDefaultGroups","interaction","dragNodes","dragView","hideEdgesOnDrag","hideNodesOnDrag","keyboard","speed","bindToWindow","navigationButtons","selectConnectedEdges","hoverConnectedEdges","tooltipDelay","zoomView","layout","improvedLayout","hierarchical","levelSeparation","nodeSpacing","treeSpacing","blockShifting","edgeMinimization","parentCentralization","sortMethod","manipulation","initiallyActive","editNode","editEdge","editWithoutDrag","deleteNode","deleteEdge","controlNodeStyle","borderWidthSelected","minimum","useBorderWithImage","barnesHut","springLength","springConstant","damping","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","iterations","updateInterval","onlyDynamicEdges","timestep","adaptiveTimestep","addToUnscopables","_k","Arguments","getKeys","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","toInteger","documentElement","TO_STRING","charCodeAt","getIterator","iterFn","classof","getIteratorMethod","$Object","D","DESCRIPTORS","META","$fails","wks","wksDefine","enumKeys","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$JSON","stringify","HIDDEN","TO_PRIMITIVE","isEnum","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","iterator","$defineProperty","$defineProperties","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","meta","NEED","gOPS","getSymbols","symbols","arg","windowNames","getWindowNames","hooks","hookCallback","isObjectEmpty","isUndefined","res","hasOwnProp","createUTC","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","copyConfig","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","absFloor","toInt","argumentForCoercion","coercedNumber","compareArrays","dontConvert","lengthDiff","diffs","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecateSimple","deprecations","isFunction","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","calendar","mom","output","_calendar","longDateFormat","_longDateFormat","formatUpper","invalidDate","_invalidDate","ordinal","_ordinal","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","addUnitAlias","unit","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","addUnitPriority","priority","priorities","getPrioritizedUnits","unitsObj","zeroFill","targetLength","forceSign","absNumber","zerosToFill","addFormatToken","padded","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","formatMoment","expandFormat","formatFunctions","replaceLongDateFormatTokens","localFormattingTokens","lastIndex","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInYear","isLeapYear","getIsLeapYear","makeGetSet","keepTime","set$1","daysInMonth","stringGet","stringSet","prioritized","modMonth","localeMonths","_months","isFormat","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","monthsShort","months","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","monthsParse","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","defaultMonthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","localWeekday","weekOffset","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","localeWeekdays","weekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","defaultWeekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","localeMeridiem","isLower","normalizeLocale","chooseLocale","loadLocale","globalLocale","oldLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","baseConfig","abbr","parentLocale","localeFamilies","updateLocale","tmpLocale","listLocales","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","temp","weekdayOverflow","GG","createLocal","curWeek","gg","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","extendedIsoRegex","basicIsoRegex","isoDates","isoTimes","tzRegex","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","defaultLocaleMonthsShort","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","defaultLocaleWeekdaysShort","calculateOffset","obsOffset","militaryOffset","numOffset","obsOffsets","hm","configFromRFC2822","parsedArray","configFromString","aspNetJsonRegex","createFromInputFallback","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","_meridiem","meridiemFixWrap","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","isDurationValid","ordering","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","quarter","weeks","isoWeek","days","_milliseconds","_days","_bubble","isDuration","absRound","separator","utcOffset","offsetFromString","matcher","matches","chunk","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","matchShortOffset","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","period","dur","isAdding","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","keepOffset","inspect","zone","suffix","inputString","defaultFormatUtc","postformat","humanize","fromNow","toNow","newLocaleData","mod$1","dividend","divisor","localStartOfDate","MS_PER_400_YEARS","utcStartOfDate","startOfDate","isoWeekday","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_SECOND","unix","toJSON","isValid$2","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfYear","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","clone$1","get$2","makeGetter","substituteTimeAgo","relativeTime$1","posNegDuration","thresholds","ss","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","limit","withSuffix","toISOString$1","abs$1","Y","toFixed","asSeconds","totalSign","ymSign","daysSign","hmsSign","fun","defaultCalendar","sameDay","nextDay","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultDayOfMonthOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","parseTwoDigitYear","getSetYear","defaultLocaleMonths","defaultLocaleWeek","defaultLocaleWeekdays","defaultLocaleWeekdaysMin","kInput","_isPm","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","dayOfMonthOrdinalParse","meridiemParse","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","prototypeMin","prototypeMax","invalid","isoWeekYear","getSetDayOfMonth","getSetMinute","getSetSecond","getSetMillisecond","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","firstDayOfYear","firstDayOfWeek","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","webpackPolyfill","webpackEmptyContext","req","resolve","buf","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","_nodeId","rnds","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","_seedBytes","eval","Graph3d","graph3d","containerElement","DataGroup","Settings","colX","colY","colZ","colValue","getMouseX","targetTouches","getMouseY","_assign","_assign2","_require2","legendLabel","xLabel","zLabel","xValueLabel","yValueLabel","zValueLabel","showXAxis","showYAxis","showZAxis","showGrid","showPerspective","showShadow","keepAspectRatio","verticalRatio","dotSizeRatio","dotSizeMinFraction","dotSizeMaxFraction","showAnimationControls","animationInterval","animationAutoStart","axisColor","gridColor","xCenter","yCenter","boxShadow","borderLeft","xBarWidth","yBarWidth","valueMin","valueMax","xMin","xMax","xStep","yStep","zMin","zMax","zStep","_setScale","xRange","yRange","zRange","valueRange","zCenter","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","cx","cy","cz","sinTx","cosTx","sinTy","cosTy","sinTz","cosTz","bx","by","ex","ey","ez","dz","currentXCenter","canvas","currentYCenter","_calcTranslations","trans","screen","transBottom","dist","sortDepth","_initializeRanges","dg","getDataPoints","dataX","dataY","dataMatrix","xIndex","yIndex","pointRight","pointTop","pointCross","_checkValueField","pointNext","noCanvas","fontWeight","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","_onClick","_setSize","_resizeCanvas","animationStart","dataFilter","slider","animationStop","_resizeCenter","getCameraPosition","_readData","initializeData","_redrawFilter","validate","setPointDrawingMethod","getDataTable","_redrawBarGraphPoint","_redrawBarColorGraphPoint","_redrawBarSizeGraphPoint","_redrawDotGraphPoint","_redrawDotLineGraphPoint","_redrawDotColorGraphPoint","_redrawDotSizeGraphPoint","_redrawSurfaceGraphPoint","_redrawGridGraphPoint","_redrawLineGraphPoint","_pointDrawingMethod","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGraph","_redrawInfo","_redrawLegend","_getContext","getContext","clearRect","_dotSize","_getLegendWidth","isSizeLegend","isValueLegend","ymax","hue","_hsv2rgb","strokeRect","widthMin","legendMin","legendMax","info","getInfo","lineStyle","drawAxisLabelX","armAngle","yMargin","point2d","drawAxisLabelY","drawAxisLabelZ","_line3d","from2d","to2d","xText","yText","zText","gridLenX","gridLenY","textMargin","armVector","defaultXStep","defaultYStep","_msg","defaultZStep","from3d","_msg2","xMin2d","xMax2d","H","V","Hi","X","_getStrokeWidth","_redrawBar","xWidth","yWidth","surfaces","corners","transCenter","_polygon","_drawCircle","_calcRadius","_getColorsRegular","_getColorsColor","_getColorsSize","colors","fraction","dotSize","sizeMin","sizeRange","cross","topSideVisible","aDiff","bDiff","zAvg","_drawGridLine","_storeMousePosition","startMouseX","startMouseY","_startCameraOffset","leftButtonDown","touchDown","startStart","startEnd","startArmRotation","moving","diffX","diffY","scaleX","scaleY","offXNew","offYNew","horizontalNew","verticalNew","snapValue","parameters","boundingRect","mouseX","mouseY","dataPoint","_dataPointFromXY","tooltipTimeout","_hideTooltip","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","oldLength","_insideTriangle","triangle","bs","cs","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","hasBars","dotWidth","dotHeight","setSize","assign","$assign","K","aLen","desc","colorOptions","dataTable","rawData","_onChange","withBars","defaultXBarWidth","getSmallestDifference","defaultYBarWidth","_initializeRange","getColumnRange","_setRangeDefaults","defaultValueMin","defaultValueMax","_collectRangeSettings","upper","range_label","step_label","settings","expand","smallest_diff","getNumberOfRows","defaultMin","defaultMax","initDataAsMatrix","reload","combine","newMin","newMax","_firstTarget","events","propagatedHandler","_handled","stopped","srcStop","firstTarget","elemHammer","_handlers","Manager","PropagatingHammer","pointerType","handler","eventType","hammers","exportName","setTimeoutContext","timeout","bindFn","invokeArrayArg","each","deprecationMessage","child","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","inStr","find","inArray","findByKey","uniqueArray","results","prefixed","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","createInputInstance","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","pointersLen","pointers","changedPointersLen","changedPointers","INPUT_START","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","getAngle","getDistance","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","rotation","getRotation","maxPointers","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","lastInterval","COMPUTE_INTERVAL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","removeLastTouch","DEDUP_TIMEOUT","isSyntheticEvent","DEDUP_DISTANCE","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","oldCssProps","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","TEST_ELEMENT","dest","MOBILE_REGEX","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","compute","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_RECOGNIZED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","curRecognizer","existing","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press","Timeline","Graph2d","timeline","forthArgument","directionFromDom","domNode","parentElement","ondblclick","oncontextmenu","onpointerdown","onpointermove","onpointerup","initialFitDone","getItemRange","getStart","getEnd","getItemVerticalScroll","leftHeight","shouldScroll","itemTop","currentScrollHeight","targetOffset","scrollOffset","newDataSet","focus","startPos","initialVerticalScroll","verticalAnimationFrame","willDraw","setFinalVerticalPosition","finalVerticalScroll","finalVerticalCallback","minItem","maxItem","startSide","endSide","lhs","rhs","snappedTime","what","pageX","pageY","toggleRollingMode","generated","centerCoordinates","hueCircle","initialColor","previousColor","applied","updateCallback","closeCallback","_bindHammer","htmlColors","black","navy","darkblue","mediumblue","darkgreen","teal","darkcyan","deepskyblue","darkturquoise","mediumspringgreen","lime","springgreen","aqua","cyan","midnightblue","dodgerblue","lightseagreen","forestgreen","seagreen","darkslategray","limegreen","mediumseagreen","turquoise","royalblue","steelblue","darkslateblue","mediumturquoise","indigo","darkolivegreen","cadetblue","cornflowerblue","mediumaquamarine","dimgray","slateblue","olivedrab","slategray","lightslategray","mediumslateblue","lawngreen","chartreuse","aquamarine","maroon","purple","olive","gray","skyblue","lightskyblue","blueviolet","darkred","darkmagenta","saddlebrown","darkseagreen","lightgreen","mediumpurple","darkviolet","palegreen","darkorchid","yellowgreen","sienna","brown","darkgray","lightblue","greenyellow","paleturquoise","lightsteelblue","powderblue","firebrick","darkgoldenrod","mediumorchid","rosybrown","darkkhaki","silver","mediumvioletred","indianred","peru","chocolate","tan","lightgrey","palevioletred","thistle","orchid","goldenrod","crimson","gainsboro","plum","burlywood","lightcyan","lavender","darksalmon","violet","palegoldenrod","lightcoral","khaki","aliceblue","honeydew","azure","sandybrown","wheat","beige","whitesmoke","mintcream","ghostwhite","salmon","antiquewhite","linen","lightgoldenrodyellow","oldlace","fuchsia","magenta","deeppink","orangered","tomato","hotpink","coral","darkorange","lightsalmon","orange","lightpink","pink","gold","peachpuff","navajowhite","moccasin","bisque","mistyrose","blanchedalmond","papayawhip","lavenderblush","seashell","cornsilk","lemonchiffon","floralwhite","snow","yellow","lightyellow","ivory","white","setInitial","htmlColor","_isColorString","rgbaArray","_rgbaArray","rgbObj","_setColor","_generateHueCircle","_hide","_updatePicker","alert","angleConvert","colorPickerSelector","colorPickerCanvas","pixelRation","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","putImageData","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","pinch","_moveSelector","sat","sfac","getImageData","newLeft","linegraph","initialLoad","isGroupVisible","Network","network","dotparser","gephiParser","convertDot","convertGephi","edgeIndices","eventListeners","onTap","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onPinch","onMouseMove","onContext","functions","createNode","bindEventListeners","Groups","Canvas","selectionHandler","SelectionHandler","interactionHandler","InteractionHandler","View","renderer","CanvasRenderer","PhysicsEngine","layoutEngine","LayoutEngine","clustering","ClusterEngine","ManipulationSystem","nodesHandler","NodesHandler","edgesHandler","EdgesHandler","KamadaKawai","networkOptions","_updateVisibleIndices","_isClusteredNode","fromNode","toNode","edgeNodesPresent","_isClusteredEdge","_updateState","_updateValueRange","unselectAll","gephi","gephiData","valueTotal","setValueRange","canvasToDOM","DOMtoCanvas","findNode","isCluster","openCluster","cluster","getNodesInCluster","clusterByConnection","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","moveNode","getBoundingBox","getConnectedNodes","objectId","getConnectedEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","selectNodes","selectEdges","getViewPosition","releaseNode","getOptionsFromConfigurator","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","diamond","roundRect","r2d","ellipse_vis","ox","oy","xe","ye","xm","ym","database","wEllipse","hEllipse","ymb","yeb","patternLength","slope","distRemaining","patternIndex","dashLength","hexagon","edit","del","back","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError","CachedImage","NUM_ITERATIONS","h2","h4","h8","h16","w4","w8","w16","coordinates","_fillMipMap","drawImage","_to","defaultIndex","groupsArray","defaultGroups","optionFields","groupName","groupname","shouldCreate","_index","nodesListeners","_nodeId2","doNotEmit","oldNodesData","newNodes","positionInitially","changedData","oldValue","clearPositions","dataArray","_node2","nodeList","nodeObj","edgeList","isIterable","LabelAccumulator","textWidth","measureText","finalize","nlLines","splitBlocks","_text","splitStringIntoLines","_mod","_text2","append","newLine","_i2","markupSystem","system","spacing","buffer","modStack","modName","emitBlock","ch","unshift","beginable","decodeMarkupSystem","splitMarkdownBlocks","splitHtmlBlocks","curWidth","words","pre","newText","overMaxWidth","appendLast","getLongestFit","word","getLongestFitWord","newW","tmpText","_add","tmpLines","tmpLine","firstEmptyBlock","tmpBlocks","determineLineHeights","determineLabelSize","removeEmptyBlocks","_setMargins","dimensions","getDimensionsFromLabel","_addBoundingBoxMargin","$getPrototypeOf","setPrototypeOf","buggy","_CircleImageBase2","_CircleImageBase3","_CircleImageBase","diameter","_drawRawCircle","_resizeImage","switchImages","clip","_drawImageAtPosition","_drawImageLabel","_distanceToBorder","_ShapeBase2","_ShapeBase3","_ShapeBase","_drawShape","_icon","neutralborderWidth","selectionLineWidth","edgesListeners","edgeData","smoothOptions","reconnectEdges","_edgeId","oldEdgesData","edgesData","oldEdge","showInternalIds","_addMissingEdges","_removeInvalidEdges","edgesToDelete","addIds","_CubicBezierEdgeBase2","_CubicBezierEdgeBase3","_CubicBezierEdgeBase","viaNodes","via1","via2","_bezierCurve","_findBorderPositionBezier","_ref","_ref2","_getDistanceToBezierEdge","_ref3","_ref4","vec","_BezierEdgeBase2","_BezierEdgeBase3","CubicBezierEdgeBase","_BezierEdgeBase","_boundFunction","positionBezierNode","physicsChange","setupSupportNode","parentEdgeId","cr","xVia","yVia","stepX","stepY","_stepX","_stepY","_stepX2","_stepY2","pi","originalAngle","myAngle","_pi","_originalAngle","_myAngle","_stepX3","_stepY3","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","Repulsion","HierarchicalRepulsion","SpringSolver","HierarchicalSpringSolver","ForceAtlas2BasedRepulsionSolver","ForceAtlas2BasedCentralGravitySolver","physicsEdgeIndices","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","referenceState","freezeCache","renderTimer","adaptiveTimestepEnabled","adaptiveCounter","adaptiveInterval","stabilized","startedStabilization","stabilizationIterations","ready","layoutFailed","initPhysics","updatePhysicsData","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","runDoubleSpeed","amountOfIterations","solve","moveNodes","_evaluateStepQuality","_startStabilizing","physicsStep","revert","adjustTimeStep","nodeIds","positions","vx","vy","reference","maxNodeVelocity","averageNodeVelocity","nodeVelocity","_performStep","maxV","calculateComponentVelocity","targetIterations","_freezeNodes","_stabilizationBatch","running","sendProgress","_finalizeStabilization","_restoreFrozenNodes","forceSize","arrowSize","RepulsionSolver","repulsingForce","HierarchicalRepulsionSolver","edgeLength","node3","_calculateSpringForce","springForce","springFx","springFy","totalFx","totalFy","_i3","correctionFx","correctionFy","_i4","_nodeId3","_BarnesHutSolver2","_BarnesHutSolver3","_BarnesHutSolver","degree","_CentralGravitySolver2","_CentralGravitySolver3","_CentralGravitySolver","Cluster","clusteredNodes","clusteredEdges","hubsize","_getHubSize","_checkOptions","nodesToCluster","refreshData","joinCondition","childNodesObj","childEdgesObj","cloneOptions","_cluster","edgeCount","clusters","usedNodes","relevantEdgeCount","checkJoinCondition","findClusterData","foundCluster","gatheringSuccessful","childNodeId","_getConnectedId","_m","clusterByEdgeCount","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","childNodeIDs","childNode","childEdge","clusterEdgeProperties","otherNodeId","childKeys","createEdges","newEdges","_j3","createdEdge","_edge","newEdge","matchToDirection","matchFromDirection","_createClusteredEdge","clusteringEdgeReplacingIds","edgeReplacedById","_backupEdgeOptions","tmpNodesToRemove","allowSingleNodeCluster","processProperties","childNodesOptions","childEdgesOptions","_clonedOptions","clusterId","_getClusterPosition","clusterNode","containedNodes","containedEdges","_clusterEdges","originalOptions","clusterNodeId","parentIndex","parentClusterNodeId","_openChildCluster","releaseFunction","clusterPosition","newPositions","_nodeId4","_containedNode","_nodeId5","_containedNode2","edgesToBeDeleted","otherNode","transferId","transferEdge","otherCluster","_restoreEdge","nodesArray","_nodeId6","reverse","clusteredNodeId","startEdgeId","allEdgeIds","getClusteredEdges","clusteredEdgeId","getBaseEdges","IdsToHandle","doneIds","foundIds","nextId","nextEdge","replacingIds","replacingId","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","baseEdge","extraOptions","childEdges","_obj","_createClusterEdges","_edge2","_nodeId7","clusteredNode","deletedNodeIds","deletedEdgeIds","eachClusterNode","_node3","endPointsValid","replacedIds","numValid","containedEdgeId","containedEdge","deletedEdgeId","_filter","shouldBeClustered","clusterFrom","_getClusterNodeForNode","clusterTo","continueLoop","clustersToOpen","numNodes","allowSingle","_Node","childClusterId","childCluster","clusterEdge","parentClusterEdge","srcId","_initRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","redrawRequested","renderingActive","renderRequests","allowRedraw","_determineBrowserMethod","_resizeNodes","_requestRedraw","_startRendering","cancelAnimationFrame","timer","myWindow","_requestNextFrame","_renderStep","_drawEdges","_drawNodes","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","browserType","resizeTimer","resizeFunction","cameraState","canvasViewCenter","hammerFrame","_cleanUp","previousWidth","previousHeight","widthRatio","heightRatio","newScale","currentViewCenter","distanceFromCenter","tabIndex","_setPixelRatio","_prepareValue","emitEvent","oldWidth","oldHeight","previousRatio","_getCameraState","newWidth","newHeight","_setCameraState","numerator","_determinePixelRatio","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","initialZoom","zoomLevel","positionDefined","yDistance","xZoomLevel","yZoomLevel","findCenter","animationOptions","nodePosition","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","_lockedRedraw","finished","NavigationHandler","navigationHandler","popupObj","popupTimer","pinched","checkSelectionChanges","_generateClickEvent","previousSelection","selectAdditionalOnPoint","selectOnPoint","currentSelection","deselectedItems","_determineDifference","selectedItems","firstSet","secondSet","arrayDiff","firstArr","secondArr","selectObject","selectionObj","xFixed","yFixed","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","overlappingEdges","popupTargetType","popupTargetId","_pointerToPositionObject","stillOnObj","overNode","iconsCreated","navigationHammers","boundFunctions","activated","configureKeyboardBindings","loadNavigationElements","cleanNavigation","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","_stopMovement","boundAction","unbindFromRedraw","hoverObj","updateSelection","selectionChanged","deselectObject","DOM","emptySelection","_initBaseEvent","getClickedItems","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","mindist","overlappingEdge","_unselectConnectedEdges","clusterSize","_addToHover","hoverChanged","emitBlurEvent","emitHoverEvent","_hoverConnectedEdges","idArray","RangeError","getItemsOnPoint","_ret","HorizontalStrategy","VerticalStrategy","HierarchicalStatus","childrenReference","parentReference","trees","distributionOrdering","levels","distributionIndex","isTree","treeIndex","treeId","accumulator","_getMaxLevel","nodeA","nodeB","minLevel","min_x","max_x","min_y","max_y","parents1","parents2","curLevel","initialRandomSeed","setPhysics","optionsBackup","setupHierarchicalLayout","layoutNetwork","curveType","prevHierarchicalState","setDirectionStrategy","adaptAllOptionsForHierarchicalLayout","backupPhysics","indices","clusterOptions","startLength","before","clusterBridges","_declusterAll","kamadaKawai","_shiftToCenter","getRangeCore","clustersPresent","definedLevel","undefinedLevel","lastNodeOnLevel","_determineLevelsByHubsize","_determineLevelsDirected","_determineLevelsCustomCallback","ensureLevel","distribution","_getDistribution","_generateMap","_placeNodesByHierarchy","_condenseHierarchy","stillShifting","branches","shiftTree","getTreeSizes","treeWidths","numTrees","getTreeSize","getBranchNodes","getBranchBoundary","branchMap","maxLevel","minSpace","maxSpace","branchNode","getPosition","_getSpaceAroundNode2","_getSpaceAroundNode","_getSpaceAroundNode3","minSpaceNode","maxSpaceNode","getCollisionLevel","maxLevel1","getMaxLevel","maxLevel2","shiftElementsCloser","centerParents","hier","levelNodes","hasSameParent","inSameSubNetwork","branchShiftCallback","centerParent","diffAbs","branchNodes1","branchNodes2","branchNodeBoundary1","branchNodeBoundary2","max1","min2","minSpace2","_shiftBlock","_centerParent","minimizeEdgeLength","allEdges","nodeLevel","C2","referenceNodes","aboveEdges","getFx","getDFx","getGuess","guess","guessMap","dfx","branchNodes","branchBoundary","minSpaceBranch","maxSpaceBranch","branchOffset","_getSpaceAroundNode4","_getSpaceAroundNode5","newPosition","getLevels","treeSizes","shiftBy","useMap","prevNode","nextNode","nextPos","parents","parentId","_getCenterPosition","_getSpaceAroundNode6","_getSpaceAroundNode7","positionedNodes","nodeArray","_indexArrayToNodes","handledNodeCount","_validatePositionAndContinue","parentLevel","childRef","_i5","childNodeLevel","previousPos","sharedParent","_findCommonParent","withChild","_placeBranchNodes","fix","hubSizes","hubSize","_getActiveEdges","_this6","levelDownstream","_getHubSizes","_crawlNetwork","_this7","levelByDirection","levelA","setMinLevelToZero","_this8","isBidirectional","otherEdge","levelB","_this9","fillInRelations","addRelation","checkIfTree","_this10","startingNodeId","crawler","tree","setTreeIndex","_this11","shifter","childA","childB","_this12","iterateParents","parentRef","findParent","foundParent","isVertical","minPos","maxPos","DirectionInterface","abstract","fake_use","_DirectionInterface","addToOrdering","_DirectionInterface2","editMode","manipulationDiv","editModeDiv","closeDiv","manipulationHammers","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","_restore","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","_getSelectedNodeCount","selectedEdgeCount","_getSelectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","_dragStartEdge","edgeBeingEditedId","_performEditEdge","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","findBorderPositions","selectedNodes","selectedEdges","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","deleteBtnClass","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","fromSelect","toSelect","overlappingNodeIds","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","eeFunct","_FloydWarshall","_FloydWarshall2","edgeStrength","distanceSolver","edgesArray","ignoreClusters","D_matrix","getDistances","_createL_matrix","_createK_matrix","_createE_matrix","maxIterations","maxEnergy","highE_nodeId","dE_dx","dE_dy","delta_m","subIterations","_getHighestEnergyNode2","_getHighestEnergyNode","_getHighestEnergyNode3","_moveNode","_getEnergy2","_getEnergy","_getEnergy3","maxEnergyNodeId","dE_dx_max","dE_dy_max","nodeIdx","_getEnergy4","_getEnergy5","_E_sums$m","E_sums","d2E_dx2","d2E_dxdy","d2E_dy2","x_m","y_m","km","K_matrix","lm","L_matrix","iIdx","x_i","y_i","kmat","lmat","denominator","_updateE_matrix","E_matrix","mIdx","_mIdx","colm","kcolm","lcolm","cell","oldDx","oldDy","FloydWarshall","knode","inode","icolm","jnode","jcolm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAyBA,cAEA,SAA2CA,EAAMC,GAC1B,gBAAZC,UAA0C,gBAAXC,QACxCA,OAAOD,QAAUD,IACQ,kBAAXG,SAAyBA,OAAOC,IAC9CD,UAAWH,GACe,gBAAZC,SACdA,QAAa,IAAID,IAEjBD,EAAU,IAAIC,KACG,mBAATK,MAAuBA,KAAOC,KAAM,WAC9C,MAAgB,UAAUC,GAKhB,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUR,OAGnC,IAAIC,GAASQ,EAAiBD,IAC7BE,EAAGF,EACHG,GAAG,EACHX,WAUD,OANAM,GAAQE,GAAUI,KAAKX,EAAOD,QAASC,EAAQA,EAAOD,QAASO,GAG/DN,EAAOU,GAAI,EAGJV,EAAOD,QAvBf,GAAIS,KA4DJ,OAhCAF,GAAoBM,EAAIP,EAGxBC,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,SAASf,EAASgB,EAAMC,GAC3CV,EAAoBW,EAAElB,EAASgB,IAClCG,OAAOC,eAAepB,EAASgB,GAC9BK,cAAc,EACdC,YAAY,EACZC,IAAKN,KAMRV,EAAoBiB,EAAI,SAASvB,GAChC,GAAIgB,GAAShB,GAAUA,EAAOwB,WAC7B,WAAwB,MAAOxB,GAAgB,SAC/C,WAA8B,MAAOA,GAEtC,OADAM,GAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASQ,EAAQC,GAAY,MAAOR,QAAOS,UAAUC,eAAejB,KAAKc,EAAQC,IAGzGpB,EAAoBuB,EAAI,GAGjBvB,EAAoBA,EAAoBwB,EAAI,OAKvD,SAAU9B,EAAQD,EAASO,GAKjCP,EAAQyB,YAAa,EAErBzB,EAAQgC,QAAU,SAAUC,EAAUC,GACpC,KAAMD,YAAoBC,IACxB,KAAM,IAAIC,WAAU,uCAMlB,SAAUlC,EAAQD,EAASO,GAKjCP,EAAQyB,YAAa,CAErB,IAAIW,GAAkB7B,EAAoB,KAEtC8B,EAEJ,SAAgCC,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAASM,IAFzCF,EAI9CpC,GAAQgC,QAAU,WAChB,QAASO,GAAiBC,EAAQC,GAChC,IAAK,GAAI/B,GAAI,EAAGA,EAAI+B,EAAMC,OAAQhC,IAAK,CACrC,GAAIiC,GAAaF,EAAM/B,EACvBiC,GAAWrB,WAAaqB,EAAWrB,aAAc,EACjDqB,EAAWtB,cAAe,EACtB,SAAWsB,KAAYA,EAAWC,UAAW,IACjD,EAAIP,EAAiBL,SAASQ,EAAQG,EAAWE,IAAKF,IAI1D,MAAO,UAAUT,EAAaY,EAAYC,GAGxC,MAFID,IAAYP,EAAiBL,EAAYN,UAAWkB,GACpDC,GAAaR,EAAiBL,EAAaa,GACxCb,OAML,SAAUjC,EAAQD,EAASO,GAqBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAqHzF,QAASW,GAAaC,EAAGC,EAAGC,EAAMC,GAChC,GAAIC,IAAa,GACK,IAAlBD,IACFC,EAAyB,OAAZH,EAAEC,QAA8BG,KAAZL,EAAEE,IAGjCE,QACKJ,GAAEE,GAETF,EAAEE,GAAQD,EAAEC,GA9IhB,GAAII,GAAgBjD,EAAoB,IAEpCkD,EAAgBT,EAAuBQ,GAEvCE,EAAUnD,EAAoB,IAE9BoD,EAAWX,EAAuBU,GAElCE,EAAQrD,EAAoB,GAE5BsD,EAASb,EAAuBY,GAEhCE,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAUlCE,EAASzD,EAAoB,GAC7B0D,EAAO1D,EAAoB,IAO/BP,GAAQkE,SAAW,SAAUxC,GAC3B,MAAOA,aAAkByC,SAA2B,gBAAVzC,IAO5C1B,EAAQoE,mBAAqB,SAAUC,GACrC,GAAIA,EACF,MAAqC,IAA9BA,EAAUC,iBACftE,EAAQoE,mBAAmBC,EAAUE,YACrCF,EAAUG,YAAYH,EAAUE,aActCvE,EAAQyE,UAAY,SAAUC,EAAKC,EAAKC,EAAOC,GAC7C,GAAIF,GAAOD,EACT,MAAO,EAEP,IAAII,GAAQ,GAAKH,EAAMD,EACvB,OAAOK,MAAKJ,IAAI,GAAIE,EAAQH,GAAOI,IASvC9E,EAAQgF,SAAW,SAAUtD,GAC3B,MAAOA,aAAkBuD,SAA2B,gBAAVvD,IAQ5C1B,EAAQkF,OAAS,SAAUxD,GACzB,GAAIA,YAAkByD,MACpB,OAAO,CACF,IAAInF,EAAQgF,SAAStD,GAAS,CAGnC,GADY0D,EAAaC,KAAK3D,GAE5B,OAAO,CACF,KAAK4D,MAAMH,KAAKI,MAAM7D,IAC3B,OAAO,EAIX,OAAO,GAQT1B,EAAQwF,WAAa,WACnB,MAAOvB,GAAKwB,MAQdzF,EAAQ0F,cAAgB,SAAUpD,EAAKuC,GACrC,IAAK,GAAIzB,KAAQd,GACXA,EAAIT,eAAeuB,IACuB,YAAxC,EAAIW,EAAkB,SAAGzB,EAAIc,MAC/Bd,EAAIc,GAAQyB,IAyCpB7E,EAAQ2F,cAAgB,SAAUzC,EAAGC,GACnC,GAAIE,GAAgBuC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAInF,KAAK,GAAIxC,KAAQF,OACCK,KAAZJ,EAAEC,KACY,OAAZD,EAAEC,IAAwD,YAAtC,EAAIW,EAAkB,SAAGZ,EAAEC,IAEjDH,EAAaC,EAAGC,EAAGC,EAAMC,GAEiB,YAAtC,EAAIU,EAAkB,SAAGb,EAAEE,KAC7BpD,EAAQ2F,cAAczC,EAAEE,GAAOD,EAAEC,GAAOC,KAclDrD,EAAQ6F,OAAS,SAAU3C,EAAGC,GAE5B,IAAK,GAAIzC,GAAI,EAAGA,EAAIkF,UAAUlD,OAAQhC,IAAK,CACzC,GAAIoF,GAAQF,UAAUlF,EACtB,KAAK,GAAI0C,KAAQ0C,GACXA,EAAMjE,eAAeuB,KACvBF,EAAEE,GAAQ0C,EAAM1C,IAItB,MAAOF,IAWTlD,EAAQ+F,gBAAkB,SAAUtD,EAAOS,EAAGC,GAE5C,IAAK6C,MAAMC,QAAQxD,GACjB,KAAM,IAAIyD,OAAM,uDAGlB,KAAK,GAAIxF,GAAI,EAAGA,EAAIkF,UAAUlD,OAAQhC,IAGpC,IAAK,GAFDoF,GAAQF,UAAUlF,GAEboB,EAAI,EAAGA,EAAIW,EAAMC,OAAQZ,IAAK,CACrC,GAAIsB,GAAOX,EAAMX,EACbgE,IAASA,EAAMjE,eAAeuB,KAChCF,EAAEE,GAAQ0C,EAAM1C,IAItB,MAAOF,IAkBTlD,EAAQmG,oBAAsB,SAAU1D,EAAOS,EAAGC,GAChD,GAAIE,GAAgBuC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAGnF,IAAII,MAAMC,QAAQ9C,GAChB,KAAM,IAAIhB,WAAU,yCAGtB,KAAK,GAAIL,GAAI,EAAGA,EAAIW,EAAMC,OAAQZ,IAAK,CACrC,GAAIsB,GAAOX,EAAMX,EACjB,IAAIqB,EAAEtB,eAAeuB,GACnB,GAAID,EAAEC,IAASD,EAAEC,GAAMgD,cAAgBjF,WACrBoC,KAAZL,EAAEE,KACJF,EAAEE,OAEAF,EAAEE,GAAMgD,cAAgBjF,OAC1BnB,EAAQqG,WAAWnD,EAAEE,GAAOD,EAAEC,IAAO,EAAOC,GAE5CJ,EAAaC,EAAGC,EAAGC,EAAMC,OAEtB,CAAA,GAAI2C,MAAMC,QAAQ9C,EAAEC,IACzB,KAAM,IAAIjB,WAAU,yCAEpBc,GAAaC,EAAGC,EAAGC,EAAMC,IAI/B,MAAOH,IAiBTlD,EAAQsG,uBAAyB,SAAUC,EAAgBrD,EAAGC,GAC5D,GAAIE,GAAgBuC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAInF,IAAII,MAAMC,QAAQ9C,GAChB,KAAM,IAAIhB,WAAU,yCAGtB,KAAK,GAAIiB,KAAQD,GACf,GAAKA,EAAEtB,eAAeuB,KACgB,IAAlCmD,EAAeC,QAAQpD,GAE3B,GAAID,EAAEC,IAASD,EAAEC,GAAMgD,cAAgBjF,WACrBoC,KAAZL,EAAEE,KACJF,EAAEE,OAEAF,EAAEE,GAAMgD,cAAgBjF,OAC1BnB,EAAQqG,WAAWnD,EAAEE,GAAOD,EAAEC,IAE9BH,EAAaC,EAAGC,EAAGC,EAAMC,OAEtB,IAAI2C,MAAMC,QAAQ9C,EAAEC,IAAQ,CACjCF,EAAEE,KACF,KAAK,GAAI1C,GAAI,EAAGA,EAAIyC,EAAEC,GAAMV,OAAQhC,IAClCwC,EAAEE,GAAMqD,KAAKtD,EAAEC,GAAM1C,QAGvBuC,GAAaC,EAAGC,EAAGC,EAAMC,EAI7B,OAAOH,IAaTlD,EAAQqG,WAAa,SAAUnD,EAAGC,GAChC,GAAIuD,GAAcd,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAC7EvC,EAAgBuC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAEnF,KAAK,GAAIxC,KAAQD,GACf,GAAIA,EAAEtB,eAAeuB,KAAyB,IAAhBsD,EAC5B,GAAIvD,EAAEC,IAASD,EAAEC,GAAMgD,cAAgBjF,WACrBoC,KAAZL,EAAEE,KACJF,EAAEE,OAEAF,EAAEE,GAAMgD,cAAgBjF,OAC1BnB,EAAQqG,WAAWnD,EAAEE,GAAOD,EAAEC,GAAOsD,GAErCzD,EAAaC,EAAGC,EAAGC,EAAMC,OAEtB,IAAI2C,MAAMC,QAAQ9C,EAAEC,IAAQ,CACjCF,EAAEE,KACF,KAAK,GAAI1C,GAAI,EAAGA,EAAIyC,EAAEC,GAAMV,OAAQhC,IAClCwC,EAAEE,GAAMqD,KAAKtD,EAAEC,GAAM1C,QAGvBuC,GAAaC,EAAGC,EAAGC,EAAMC,EAI/B,OAAOH,IAUTlD,EAAQ2G,WAAa,SAAUzD,EAAGC,GAChC,GAAID,EAAER,QAAUS,EAAET,OAAQ,OAAO,CAEjC,KAAK,GAAIhC,GAAI,EAAGkG,EAAM1D,EAAER,OAAQhC,EAAIkG,EAAKlG,IACvC,GAAIwC,EAAExC,IAAMyC,EAAEzC,GAAI,OAAO,CAG3B,QAAO,GAYTV,EAAQ6G,QAAU,SAAUnF,EAAQoF,GAClC,GAAIC,EAEJ,QAAexD,KAAX7B,EAAJ,CAGA,GAAe,OAAXA,EACF,MAAO,KAGT,KAAKoF,EACH,MAAOpF,EAET,IAAsB,gBAAToF,MAAwBA,YAAgB7B,SACnD,KAAM,IAAIiB,OAAM,wBAIlB,QAAQY,GACN,IAAK,UACL,IAAK,UACH,MAAOE,SAAQtF,EAEjB,KAAK,SACL,IAAK,SACH,MAAI1B,GAAQgF,SAAStD,KAAY4D,MAAMH,KAAKI,MAAM7D,IACzCsC,EAAOtC,GAAQuF,UAEf9C,OAAOzC,EAAOuF,UAEzB,KAAK,SACL,IAAK,SACH,MAAOhC,QAAOvD,EAEhB,KAAK,OACH,GAAI1B,EAAQkE,SAASxC,GACnB,MAAO,IAAIyD,MAAKzD,EAElB,IAAIA,YAAkByD,MACpB,MAAO,IAAIA,MAAKzD,EAAOuF,UAClB,IAAIjD,EAAOkD,SAASxF,GACzB,MAAO,IAAIyD,MAAKzD,EAAOuF,UAEzB,IAAIjH,EAAQgF,SAAStD,GAEnB,MADAqF,GAAQ3B,EAAaC,KAAK3D,GACtBqF,EAEK,GAAI5B,MAAKhB,OAAO4C,EAAM,KAEtB/C,EAAO,GAAImB,MAAKzD,IAASyF,QAGlC,MAAM,IAAIjB,OAAM,iCAAmClG,EAAQoH,QAAQ1F,GAAU,gBAGjF,KAAK,SACH,GAAI1B,EAAQkE,SAASxC,GACnB,MAAOsC,GAAOtC,EAEhB,IAAIA,YAAkByD,MACpB,MAAOnB,GAAOtC,EAAOuF,UAChB,IAAIjD,EAAOkD,SAASxF,GACzB,MAAOsC,GAAOtC,EAEhB,IAAI1B,EAAQgF,SAAStD,GAEnB,MADAqF,GAAQ3B,EAAaC,KAAK3D,GAGjBsC,EAFL+C,EAEY5C,OAAO4C,EAAM,IAEbrF,EAGhB,MAAM,IAAIwE,OAAM,iCAAmClG,EAAQoH,QAAQ1F,GAAU,gBAGjF,KAAK,UACH,GAAI1B,EAAQkE,SAASxC,GACnB,MAAO,IAAIyD,MAAKzD,EACX,IAAIA,YAAkByD,MAC3B,MAAOzD,GAAO2F,aACT,IAAIrD,EAAOkD,SAASxF,GACzB,MAAOA,GAAOyF,SAASE,aAClB,IAAIrH,EAAQgF,SAAStD,GAE1B,MADAqF,GAAQ3B,EAAaC,KAAK3D,GACtBqF,EAEK,GAAI5B,MAAKhB,OAAO4C,EAAM,KAAKM,cAE3BrD,EAAOtC,GAAQ4F,QAGxB,MAAM,IAAIpB,OAAM,iCAAmClG,EAAQoH,QAAQ1F,GAAU,mBAGjF,KAAK,UACH,GAAI1B,EAAQkE,SAASxC,GACnB,MAAO,SAAWA,EAAS,IACtB,IAAIA,YAAkByD,MAC3B,MAAO,SAAWzD,EAAOuF,UAAY,IAChC,IAAIjH,EAAQgF,SAAStD,GAAS,CACnCqF,EAAQ3B,EAAaC,KAAK3D,EAQ1B,OAAO,UANHqF,EAEM,GAAI5B,MAAKhB,OAAO4C,EAAM,KAAKE,UAE3B,GAAI9B,MAAKzD,GAAQuF,WAED,KAE1B,KAAM,IAAIf,OAAM,iCAAmClG,EAAQoH,QAAQ1F,GAAU,mBAGjF,SACE,KAAM,IAAIwE,OAAM,iBAAmBY,EAAO,OAOhD,IAAI1B,GAAe,qBAOnBpF,GAAQoH,QAAU,SAAU1F,GAC1B,GAAIoF,OAAyB,KAAXpF,EAAyB,aAAc,EAAIqC,EAAkB,SAAGrC,EAElF,OAAY,UAARoF,EACa,OAAXpF,EACK,OAELA,YAAkBsF,SACb,UAELtF,YAAkByC,QACb,SAELzC,YAAkBuD,QACb,SAELe,MAAMC,QAAQvE,GACT,QAELA,YAAkByD,MACb,OAEF,SACU,UAAR2B,EACF,SACU,WAARA,EACF,UACU,UAARA,EACF,aACWvD,KAATuD,EACF,YAGFA,GAUT9G,EAAQuH,mBAAqB,SAAUC,EAAKC,GAE1C,IAAK,GADDC,MACKhH,EAAI,EAAGA,EAAI8G,EAAI9E,OAAQhC,IAC9BgH,EAAOjB,KAAKe,EAAI9G,GAGlB,OADAgH,GAAOjB,KAAKgB,GACLC,GAST1H,EAAQ2H,UAAY,SAAUH,GAE5B,IAAK,GADDE,MACKhH,EAAI,EAAGA,EAAI8G,EAAI9E,OAAQhC,IAC9BgH,EAAOjB,KAAKe,EAAI9G,GAElB,OAAOgH,IAST1H,EAAQ4H,gBAAkB,SAAUC,GAClC,MAAOA,GAAKC,wBAAwBC,MAGtC/H,EAAQgI,iBAAmB,SAAUH,GACnC,MAAOA,GAAKC,wBAAwBG,OAStCjI,EAAQkI,eAAiB,SAAUL,GACjC,MAAOA,GAAKC,wBAAwBK,KAQtCnI,EAAQoI,aAAe,SAAUP,EAAMQ,GACrC,GAAIC,GAAUT,EAAKU,UAAUC,MAAM,KAC/BC,EAAaJ,EAAWG,MAAM,IAClCF,GAAUA,EAAQI,OAAOD,EAAWE,OAAO,SAAUJ,GACnD,MAAOD,GAAQ9B,QAAQ+B,GAAa,KAEtCV,EAAKU,UAAYD,EAAQM,KAAK,MAQhC5I,EAAQ6I,gBAAkB,SAAUhB,EAAMQ,GACxC,GAAIC,GAAUT,EAAKU,UAAUC,MAAM,KAC/BM,EAAaT,EAAWG,MAAM,IAClCF,GAAUA,EAAQK,OAAO,SAAUJ,GACjC,MAAOO,GAAWtC,QAAQ+B,GAAa,IAEzCV,EAAKU,UAAYD,EAAQM,KAAK,MAYhC5I,EAAQ+I,QAAU,SAAUrH,EAAQsH,GAClC,GAAItI,GAAGkG,CACP,IAAIZ,MAAMC,QAAQvE,GAEhB,IAAKhB,EAAI,EAAGkG,EAAMlF,EAAOgB,OAAQhC,EAAIkG,EAAKlG,IACxCsI,EAAStH,EAAOhB,GAAIA,EAAGgB,OAIzB,KAAKhB,IAAKgB,GACJA,EAAOG,eAAenB,IACxBsI,EAAStH,EAAOhB,GAAIA,EAAGgB,IAY/B1B,EAAQiJ,QAAU,SAAUvH,GAC1B,GAAIwH,KAEJ,KAAK,GAAI9F,KAAQ1B,GACXA,EAAOG,eAAeuB,IAAO8F,EAAMzC,KAAK/E,EAAO0B,GAGrD,OAAO8F,IAUTlJ,EAAQmJ,eAAiB,SAAUzH,EAAQmB,EAAKgC,GAC9C,MAAInD,GAAOmB,KAASgC,IAClBnD,EAAOmB,GAAOgC,GACP,IAWX7E,EAAQoJ,SAAW,SAAUC,GAC3B,GAAIC,IAAY,CAEhB,OAAO,YACAA,IACHA,GAAY,EACZC,sBAAsB,WACpBD,GAAY,EACZD,SAcRrJ,EAAQwJ,iBAAmB,SAAUC,EAASC,EAAQC,EAAUC,GAC1DH,EAAQD,sBACSjG,KAAfqG,IAA0BA,GAAa,GAE5B,eAAXF,GAA2BG,UAAUC,UAAUtD,QAAQ,YAAc,IACvEkD,EAAS,kBAGXD,EAAQD,iBAAiBE,EAAQC,EAAUC,IAE3CH,EAAQM,YAAY,KAAOL,EAAQC,IAWvC3J,EAAQgK,oBAAsB,SAAUP,EAASC,EAAQC,EAAUC,GAC7DH,EAAQO,yBAESzG,KAAfqG,IAA0BA,GAAa,GAE5B,eAAXF,GAA2BG,UAAUC,UAAUtD,QAAQ,YAAc,IACvEkD,EAAS,kBAGXD,EAAQO,oBAAoBN,EAAQC,EAAUC,IAG9CH,EAAQQ,YAAY,KAAOP,EAAQC,IAQvC3J,EAAQkK,eAAiB,SAAUC,GAC5BA,IAAOA,EAAQC,OAAOD,OAEvBA,EAAMD,eACRC,EAAMD,iBAENC,EAAME,aAAc,GASxBrK,EAAQsK,UAAY,SAAUH,GAEvBA,IACHA,EAAQC,OAAOD,MAGjB,IAAI3H,EAaJ,OAXI2H,GAAM3H,OACRA,EAAS2H,EAAM3H,OACN2H,EAAMI,aACf/H,EAAS2H,EAAMI,gBAGMhH,IAAnBf,EAAOgI,UAA4C,GAAnBhI,EAAOgI,WAEzChI,EAASA,EAAOiI,YAGXjI,GASTxC,EAAQ0K,UAAY,SAAUjB,EAASkB,GAGrC,IAFA,GAAIC,GAAInB,EAEDmB,GAAG,CACR,GAAIA,IAAMD,EACR,OAAO,CAETC,GAAIA,EAAEH,WAGR,OAAO,GAGTzK,EAAQ6K,UAQR7K,EAAQ6K,OAAOC,UAAY,SAAUjG,EAAOkG,GAK1C,MAJoB,kBAATlG,KACTA,EAAQA,KAGG,MAATA,EACc,GAATA,EAGFkG,GAAgB,MASzB/K,EAAQ6K,OAAOG,SAAW,SAAUnG,EAAOkG,GAKzC,MAJoB,kBAATlG,KACTA,EAAQA,KAGG,MAATA,EACKV,OAAOU,IAAUkG,GAAgB,KAGnCA,GAAgB,MASzB/K,EAAQ6K,OAAOI,SAAW,SAAUpG,EAAOkG,GAKzC,MAJoB,kBAATlG,KACTA,EAAQA,KAGG,MAATA,EACKI,OAAOJ,GAGTkG,GAAgB,MASzB/K,EAAQ6K,OAAOK,OAAS,SAAUrG,EAAOkG,GAKvC,MAJoB,kBAATlG,KACTA,EAAQA,KAGN7E,EAAQgF,SAASH,GACZA,EACE7E,EAAQkE,SAASW,GACnBA,EAAQ,KAERkG,GAAgB,MAU3B/K,EAAQ6K,OAAOM,UAAY,SAAUtG,EAAOkG,GAK1C,MAJoB,kBAATlG,KACTA,EAAQA,KAGHA,GAASkG,GAAgB,MASlC/K,EAAQoL,SAAW,SAAUC,GAE3B,GAAIC,GAAiB,kCACrBD,GAAMA,EAAIE,QAAQD,EAAgB,SAAUzK,EAAG2K,EAAGC,EAAGtI,GACnD,MAAOqI,GAAIA,EAAIC,EAAIA,EAAItI,EAAIA,GAE7B,IAAIuI,GAAS,4CAA4CrG,KAAKgG,EAC9D,OAAOK,IACLF,EAAGG,SAASD,EAAO,GAAI,IACvBD,EAAGE,SAASD,EAAO,GAAI,IACvBvI,EAAGwI,SAASD,EAAO,GAAI,KACrB,MASN1L,EAAQ4L,gBAAkB,SAAUC,EAAOC,GACzC,GAAIC,EACJ,QAA8B,GAA1BF,EAAMrF,QAAQ,QACTqF,GAC2B,GAAzBA,EAAMrF,QAAQ,QACvBuF,EAAMF,EAAMG,OAAOH,EAAMrF,QAAQ,KAAO,GAAG+E,QAAQ,IAAK,IAAI/C,MAAM,KAC3D,QAAUuD,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMD,EAAU,MAExEC,EAAM/L,EAAQoL,SAASS,GACZ,MAAPE,EACKF,EAEA,QAAUE,EAAIP,EAAI,IAAMO,EAAIN,EAAI,IAAMM,EAAI5I,EAAI,IAAM2I,EAAU,MAa3E9L,EAAQiM,SAAW,SAAUC,EAAKC,EAAOC,GACvC,MAAO,MAAQ,GAAK,KAAOF,GAAO,KAAOC,GAAS,GAAKC,GAAMC,SAAS,IAAIC,MAAM,IASlFtM,EAAQuM,WAAa,SAAUV,GAC7B,GAAI/K,EACJ,KAAgC,IAA5Bd,EAAQgF,SAAS6G,GAAiB,CACpC,IAAkC,IAA9B7L,EAAQwM,WAAWX,GAAiB,CACtC,GAAIE,GAAMF,EAAMG,OAAO,GAAGA,OAAO,EAAGH,EAAMnJ,OAAS,GAAG8F,MAAM,KAAKiE,IAAI,SAAU5H,GAC7E,MAAO8G,UAAS9G,IAElBgH,GAAQ7L,EAAQiM,SAASF,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAE/C,IAAkC,IAA9B/L,EAAQ0M,WAAWb,GAAiB,CACtC,GAAIc,GAAM3M,EAAQ4M,SAASf,GACvBgB,GAAoBC,EAAGH,EAAIG,EAAG/K,EAAW,GAAR4K,EAAI5K,EAASgL,EAAGhI,KAAKL,IAAI,EAAW,KAARiI,EAAII,IACjEC,GAAmBF,EAAGH,EAAIG,EAAG/K,EAAGgD,KAAKL,IAAI,EAAW,KAARiI,EAAI5K,GAAWgL,EAAW,GAARJ,EAAII,GAClEE,EAAiBjN,EAAQkN,SAASF,EAAeF,EAAGE,EAAejL,EAAGiL,EAAeD,GACrFI,EAAkBnN,EAAQkN,SAASL,EAAgBC,EAAGD,EAAgB9K,EAAG8K,EAAgBE,EAC7FjM,IACEsM,WAAYvB,EACZwB,OAAQJ,EACRK,WACEF,WAAYD,EACZE,OAAQJ,GAEVM,OACEH,WAAYD,EACZE,OAAQJ,QAIZnM,IACEsM,WAAYvB,EACZwB,OAAQxB,EACRyB,WACEF,WAAYvB,EACZwB,OAAQxB,GAEV0B,OACEH,WAAYvB,EACZwB,OAAQxB,QAKd/K,MACAA,EAAEsM,WAAavB,EAAMuB,gBAAc7J,GACnCzC,EAAEuM,OAASxB,EAAMwB,YAAU9J,GAEvBvD,EAAQgF,SAAS6G,EAAMyB,WACzBxM,EAAEwM,WACAD,OAAQxB,EAAMyB,UACdF,WAAYvB,EAAMyB,YAGpBxM,EAAEwM,aACFxM,EAAEwM,UAAUF,WAAavB,EAAMyB,WAAazB,EAAMyB,UAAUF,gBAAc7J,GAC1EzC,EAAEwM,UAAUD,OAASxB,EAAMyB,WAAazB,EAAMyB,UAAUD,YAAU9J,IAGhEvD,EAAQgF,SAAS6G,EAAM0B,OACzBzM,EAAEyM,OACAF,OAAQxB,EAAM0B,MACdH,WAAYvB,EAAM0B,QAGpBzM,EAAEyM,SACFzM,EAAEyM,MAAMH,WAAavB,EAAM0B,OAAS1B,EAAM0B,MAAMH,gBAAc7J,GAC9DzC,EAAEyM,MAAMF,OAASxB,EAAM0B,OAAS1B,EAAM0B,MAAMF,YAAU9J,GAI1D,OAAOzC,IAYTd,EAAQwN,SAAW,SAAUtB,EAAKC,EAAOC,GACvCF,GAAY,IAAIC,GAAgB,IAAIC,GAAc,GAClD,IAAIqB,GAAS1I,KAAKL,IAAIwH,EAAKnH,KAAKL,IAAIyH,EAAOC,IACvCsB,EAAS3I,KAAKJ,IAAIuH,EAAKnH,KAAKJ,IAAIwH,EAAOC,GAG3C,IAAIqB,GAAUC,EACZ,OAASZ,EAAG,EAAG/K,EAAG,EAAGgL,EAAGU,EAI1B,IAAI1M,GAAImL,GAAOuB,EAAStB,EAAQC,EAAOA,GAAQqB,EAASvB,EAAMC,EAAQC,EAAOF,CAK7E,QAASY,EAHC,KADFZ,GAAOuB,EAAS,EAAIrB,GAAQqB,EAAS,EAAI,GAC7B1M,GAAK2M,EAASD,IAAW,IAG5B1L,GAFC2L,EAASD,GAAUC,EAELX,EADpBW,GAId,IAAIC,IAEFnF,MAAO,SAAeoF,GACpB,GAAIC,KAWJ,OATAD,GAAQpF,MAAM,KAAKO,QAAQ,SAAU+E,GACnC,GAAoB,IAAhBA,EAAMC,OAAc,CACtB,GAAIC,GAAQF,EAAMtF,MAAM,KACpB3F,EAAMmL,EAAM,GAAGD,OACflJ,EAAQmJ,EAAM,GAAGD,MACrBF,GAAOhL,GAAOgC,KAIXgJ,GAITjF,KAAM,SAAciF,GAClB,OAAO,EAAIhK,EAAgB,SAAGgK,GAAQpB,IAAI,SAAU5J,GAClD,MAAOA,GAAM,KAAOgL,EAAOhL,KAC1B+F,KAAK,OASZ5I,GAAQiO,WAAa,SAAUxE,EAASmE,GACtC,GAAIM,GAAgBP,EAAQnF,MAAMiB,EAAQqE,MAAMF,SAC5CO,EAAYR,EAAQnF,MAAMoF,GAC1BC,EAAS7N,EAAQ6F,OAAOqI,EAAeC,EAE3C1E,GAAQqE,MAAMF,QAAUD,EAAQ/E,KAAKiF,IAQvC7N,EAAQoO,cAAgB,SAAU3E,EAASmE,GACzC,GAAIC,GAASF,EAAQnF,MAAMiB,EAAQqE,MAAMF,SACrCS,EAAeV,EAAQnF,MAAMoF,EAEjC,KAAK,GAAI/K,KAAOwL,GACVA,EAAaxM,eAAegB,UACvBgL,GAAOhL,EAIlB4G,GAAQqE,MAAMF,QAAUD,EAAQ/E,KAAKiF,IAWvC7N,EAAQsO,SAAW,SAAUxB,EAAG/K,EAAGgL,GACjC,GAAIvB,GAAGC,EAAGtI,EAENzC,EAAIqE,KAAKwJ,MAAU,EAAJzB,GACf0B,EAAQ,EAAJ1B,EAAQpM,EACZoB,EAAIiL,GAAK,EAAIhL,GACb0M,EAAI1B,GAAK,EAAIyB,EAAIzM,GACjB2M,EAAI3B,GAAK,GAAK,EAAIyB,GAAKzM,EAE3B,QAAQrB,EAAI,GACV,IAAK,GACH8K,EAAIuB,EAAGtB,EAAIiD,EAAGvL,EAAIrB,CAAE,MACtB,KAAK,GACH0J,EAAIiD,EAAGhD,EAAIsB,EAAG5J,EAAIrB,CAAE,MACtB,KAAK,GACH0J,EAAI1J,EAAG2J,EAAIsB,EAAG5J,EAAIuL,CAAE,MACtB,KAAK,GACHlD,EAAI1J,EAAG2J,EAAIgD,EAAGtL,EAAI4J,CAAE,MACtB,KAAK,GACHvB,EAAIkD,EAAGjD,EAAI3J,EAAGqB,EAAI4J,CAAE,MACtB,KAAK,GACHvB,EAAIuB,EAAGtB,EAAI3J,EAAGqB,EAAIsL,EAGtB,OAASjD,EAAGzG,KAAKwJ,MAAU,IAAJ/C,GAAUC,EAAG1G,KAAKwJ,MAAU,IAAJ9C,GAAUtI,EAAG4B,KAAKwJ,MAAU,IAAJpL,KAGzEnD,EAAQkN,SAAW,SAAUJ,EAAG/K,EAAGgL,GACjC,GAAIhB,GAAM/L,EAAQsO,SAASxB,EAAG/K,EAAGgL,EACjC,OAAO/M,GAAQiM,SAASF,EAAIP,EAAGO,EAAIN,EAAGM,EAAI5I,IAG5CnD,EAAQ4M,SAAW,SAAUvB,GAC3B,GAAIU,GAAM/L,EAAQoL,SAASC,EAC3B,OAAOrL,GAAQwN,SAASzB,EAAIP,EAAGO,EAAIN,EAAGM,EAAI5I,IAG5CnD,EAAQ0M,WAAa,SAAUrB,GAE7B,MADW,qCAAqCsD,KAAKtD,IAIvDrL,EAAQwM,WAAa,SAAUT,GAG7B,MAFAA,GAAMA,EAAIR,QAAQ,IAAK,IACZ,wCAAwCoD,KAAK5C,IAG1D/L,EAAQ4O,YAAc,SAAUC,GAG9B,MAFAA,GAAOA,EAAKtD,QAAQ,IAAK,IACd,kDAAkDoD,KAAKE,IAYpE7O,EAAQ8O,sBAAwB,SAAUC,EAAQC,GAChD,GAAwB,OAApBA,GAAmI,gBAA3E,KAApBA,EAAkC,aAAc,EAAIjL,EAAkB,SAAGiL,IAAgC,CAG/I,IAAK,GADDC,IAAW,EAAItL,EAAkB,SAAGqL,GAC/BtO,EAAI,EAAGA,EAAIqO,EAAOrM,OAAQhC,IAC7BsO,EAAgBnN,eAAekN,EAAOrO,KACoB,WAAxD,EAAIqD,EAAkB,SAAGiL,EAAgBD,EAAOrO,OAClDuO,EAASF,EAAOrO,IAAMV,EAAQkP,aAAaF,EAAgBD,EAAOrO,KAIxE,OAAOuO,GAEP,MAAO,OAWXjP,EAAQkP,aAAe,SAAUF,GAC/B,GAAwB,OAApBA,GAAmI,gBAA3E,KAApBA,EAAkC,aAAc,EAAIjL,EAAkB,SAAGiL,IAAgC,CAE/I,GAAIC,IAAW,EAAItL,EAAkB,SAAGqL,EACxC,IAAIA,YAA2BG,SAE7BF,EAAWD,MACN,CACLC,GAAW,EAAItL,EAAkB,SAAGqL,EACpC,KAAK,GAAItO,KAAKsO,GACRA,EAAgBnN,eAAenB,IACmB,WAAhD,EAAIqD,EAAkB,SAAGiL,EAAgBtO,MAC3CuO,EAASvO,GAAKV,EAAQkP,aAAaF,EAAgBtO,KAK3D,MAAOuO,GAEP,MAAO,OAWXjP,EAAQoP,WAAa,SAAUlM,EAAGmM,GAChC,IAAK,GAAI3O,GAAI,EAAGA,EAAIwC,EAAER,OAAQhC,IAAK,CAEjC,IAAK,GADD4O,GAAIpM,EAAExC,GACD6O,EAAI7O,EAAG6O,EAAI,GAAKF,EAAQC,EAAGpM,EAAEqM,EAAI,IAAM,EAAGA,IACjDrM,EAAEqM,GAAKrM,EAAEqM,EAAI,EAEfrM,GAAEqM,GAAKD,EAET,MAAOpM,IAiBTlD,EAAQwP,aAAe,SAAUC,EAAaC,EAAS7E,GACrD,GAAI8E,GAAgB/J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,MAG/EgK,EAAY,SAAmBtN,GACjC,MAAe,QAARA,OAAwBiB,KAARjB,GAGrBuN,EAAW,SAAkBvN,GAC/B,MAAe,QAARA,GAA+F,gBAA/D,KAARA,EAAsB,aAAc,EAAIyB,EAAkB,SAAGzB,IAY9F,KAAKuN,EAASJ,GACZ,KAAM,IAAIvJ,OAAM,0CAGlB,KAAK2J,EAASH,GACZ,KAAM,IAAIxJ,OAAM,sCAGlB,KAAK0J,EAAU/E,GACb,KAAM,IAAI3E,OAAM,qCAGlB,KAAK2J,EAASF,GACZ,KAAM,IAAIzJ,OAAM,4CAOlB,IAeI4J,GAAYJ,EAAQ7E,GACpBkF,EAAeF,EAASF,KA5Cd,SAAiBrN,GAC7B,IAAK,GAAI0N,KAAK1N,GACZ,GAAIA,EAAIT,eAAemO,GAAI,OAAO,CAEpC,QAAO,GAwC8CL,GACnDM,EAAeF,EAAeJ,EAAc9E,OAAUtH,GACtD2M,EAAgBD,EAAeA,EAAaE,YAAU5M,EAK1D,QAAkBA,KAAduM,EAAJ,CAIA,GAAyB,iBAAdA,GAMT,MALKD,GAASJ,EAAY5E,MACxB4E,EAAY5E,YAGd4E,EAAY5E,GAAQsF,QAAUL,EAIhC,IAAkB,OAAdA,IAAuBD,EAASJ,EAAY5E,IAAU,CAExD,IAAI+E,EAAUK,GAGZ,MAFAR,GAAY5E,IAAU,EAAIlH,EAAkB,SAAGsM,GAMnD,GAAKJ,EAASC,GAAd,CAQA,GAAIK,IAAU,MAEY5M,KAAtBuM,EAAUK,QACZA,EAAUL,EAAUK,YAGE5M,KAAlB2M,IACFC,EAAUF,EAAaE,SA5Db,SAAiB3N,EAAQkN,EAAS7E,GACzCgF,EAASrN,EAAOqI,MACnBrI,EAAOqI,MAGT,IAAIuF,GAAMV,EAAQ7E,GACdwF,EAAM7N,EAAOqI,EACjB,KAAK,GAAIzH,KAAQgN,GACXA,EAAIvO,eAAeuB,KACrBiN,EAAIjN,GAAQgN,EAAIhN,KAuDdqM,EAAaC,EAAS7E,GAC9B4E,EAAY5E,GAAQsF,QAAUA,KAchCnQ,EAAQsQ,mBAAqB,SAAUC,EAAcC,EAAYC,EAAOC,GAMtE,IALA,GACIC,GAAY,EACZC,EAAM,EACNC,EAAON,EAAa7N,OAAS,EAE1BkO,GAAOC,GAAQF,EALF,KAK6B,CAC/C,GAAIG,GAAS/L,KAAKwJ,OAAOqC,EAAMC,GAAQ,GAEnCE,EAAOR,EAAaO,GACpBjM,MAAmBtB,KAAXmN,EAAuBK,EAAKN,GAASM,EAAKN,GAAOC,GAEzDM,EAAeR,EAAW3L,EAC9B,IAAoB,GAAhBmM,EAEF,MAAOF,IACmB,GAAjBE,EAETJ,EAAME,EAAS,EAGfD,EAAOC,EAAS,EAGlBH,IAGF,OAAQ,GAgBV3Q,EAAQiR,kBAAoB,SAAUV,EAAc/N,EAAQiO,EAAOS,EAAgBV,GACjF,GAIIW,GAAWtM,EAAOuM,EAAWN,EAH7BH,EAAY,EACZC,EAAM,EACNC,EAAON,EAAa7N,OAAS,CAOjC,KAJA8N,MAA2BjN,IAAdiN,EAA0BA,EAAa,SAAUtN,EAAGC,GAC/D,MAAOD,IAAKC,EAAI,EAAID,EAAIC,GAAK,EAAI,GAG5ByN,GAAOC,GAAQF,EAVF,KAU6B,CAO/C,GALAG,EAAS/L,KAAKwJ,MAAM,IAAOsC,EAAOD,IAClCO,EAAYZ,EAAaxL,KAAKJ,IAAI,EAAGmM,EAAS,IAAIL,GAClD5L,EAAQ0L,EAAaO,GAAQL,GAC7BW,EAAYb,EAAaxL,KAAKL,IAAI6L,EAAa7N,OAAS,EAAGoO,EAAS,IAAIL,GAEvC,GAA7BD,EAAW3L,EAAOrC,GAEpB,MAAOsO,EACF,IAAIN,EAAWW,EAAW3O,GAAU,GAAKgO,EAAW3L,EAAOrC,GAAU,EAE1E,MAAyB,UAAlB0O,EAA6BnM,KAAKJ,IAAI,EAAGmM,EAAS,GAAKA,CACzD,IAAIN,EAAW3L,EAAOrC,GAAU,GAAKgO,EAAWY,EAAW5O,GAAU,EAE1E,MAAyB,UAAlB0O,EAA6BJ,EAAS/L,KAAKL,IAAI6L,EAAa7N,OAAS,EAAGoO,EAAS,EAGpFN,GAAW3L,EAAOrC,GAAU,EAE9BoO,EAAME,EAAS,EAGfD,EAAOC,EAAS,EAGpBH,IAIF,OAAQ,GAQV3Q,EAAQqR,iBAENC,OAAQ,SAAgB5C,GACtB,MAAOA,IAGT6C,WAAY,SAAoB7C,GAC9B,MAAOA,GAAIA,GAGb8C,YAAa,SAAqB9C,GAChC,MAAOA,IAAK,EAAIA,IAGlB+C,cAAe,SAAuB/C,GACpC,MAAOA,GAAI,GAAK,EAAIA,EAAIA,GAAU,EAAI,EAAIA,GAAKA,EAAlB,GAG/BgD,YAAa,SAAqBhD,GAChC,MAAOA,GAAIA,EAAIA,GAGjBiD,aAAc,SAAsBjD,GAClC,QAASA,EAAIA,EAAIA,EAAI,GAGvBkD,eAAgB,SAAwBlD,GACtC,MAAOA,GAAI,GAAK,EAAIA,EAAIA,EAAIA,GAAKA,EAAI,IAAM,EAAIA,EAAI,IAAM,EAAIA,EAAI,GAAK,GAGxEmD,YAAa,SAAqBnD,GAChC,MAAOA,GAAIA,EAAIA,EAAIA,GAGrBoD,aAAc,SAAsBpD,GAClC,MAAO,MAAMA,EAAIA,EAAIA,EAAIA,GAG3BqD,eAAgB,SAAwBrD,GACtC,MAAOA,GAAI,GAAK,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,EAAI,IAAMA,EAAIA,EAAIA,EAAIA,GAG5DsD,YAAa,SAAqBtD,GAChC,MAAOA,GAAIA,EAAIA,EAAIA,EAAIA,GAGzBuD,aAAc,SAAsBvD,GAClC,MAAO,KAAMA,EAAIA,EAAIA,EAAIA,EAAIA,GAG/BwD,eAAgB,SAAwBxD,GACtC,MAAOA,GAAI,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,EAAI,KAAOA,EAAIA,EAAIA,EAAIA,EAAIA,IAIxE1O,EAAQmS,kBAAoB,WAC1B,GAAIC,GAAQC,SAASC,cAAc,IACnCF,GAAMtE,MAAMyE,MAAQ,OACpBH,EAAMtE,MAAM0E,OAAS,OAErB,IAAIC,GAAQJ,SAASC,cAAc,MACnCG,GAAM3E,MAAM4E,SAAW,WACvBD,EAAM3E,MAAM3F,IAAM,MAClBsK,EAAM3E,MAAM/F,KAAO,MACnB0K,EAAM3E,MAAM6E,WAAa,SACzBF,EAAM3E,MAAMyE,MAAQ,QACpBE,EAAM3E,MAAM0E,OAAS,QACrBC,EAAM3E,MAAM8E,SAAW,SACvBH,EAAMI,YAAYT,GAElBC,SAASS,KAAKD,YAAYJ,EAC1B,IAAIM,GAAKX,EAAMY,WACfP,GAAM3E,MAAM8E,SAAW,QACvB,IAAIK,GAAKb,EAAMY,WAKf,OAJID,IAAME,IAAIA,EAAKR,EAAMS,aAEzBb,SAASS,KAAKtO,YAAYiO,GAEnBM,EAAKE,GAGdjT,EAAQmT,QAAU,SAAUC,EAAMC,GAChC,GAAIC,OAAY,EACXtN,OAAMC,QAAQoN,KACjBA,GAAaA,GAEf,IAAIE,IAA4B,EAC5BC,GAAoB,EACpBC,MAAiBlQ,EAErB,KACE,IAAK,GAAqDmQ,GAAjDC,GAAY,EAAIlQ,EAAuB,SAAG2P,KAAgBG,GAA6BG,EAAQC,EAAUC,QAAQC,MAAON,GAA4B,EAAM,CACjK,GAAIO,GAASJ,EAAM7O,KAEnB,IAAIiP,EAAQ,CACVR,EAAYQ,EAAOT,EAAU,GAC7B,KAAK,GAAI3S,GAAI,EAAGA,EAAI2S,EAAU3Q,OAAQhC,IAChC4S,IACFA,EAAYA,EAAUD,EAAU3S,IAKpC,QAAwB,KAAb4S,EACT,QAIN,MAAOS,GACPP,GAAoB,EACpBC,EAAiBM,EACjB,QACA,KACOR,GAA6BI,EAAkB,QAClDA,EAAkB,SAEpB,QACA,GAAIH,EACF,KAAMC,IAKZ,MAAOH,KAKH,SAAUrT,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAKjCP,EAAQyB,YAAa,CAErB,IAAIqC,GAAWvD,EAAoB,GAE/BwD,EAEJ,SAAgCzB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAASM,IAFjDwB,EAItC9D,GAAQgC,QAAU,SAAU5B,EAAMQ,GAChC,IAAKR,EACH,KAAM,IAAI4T,gBAAe,4DAG3B,QAAOpT,GAAuF,gBAA7D,KAATA,EAAuB,aAAc,EAAImD,EAAS/B,SAASpB,KAAuC,kBAATA,GAA8BR,EAAPQ,IAKpI,SAAUX,EAAQD,EAASO,GAmBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAASM,GAdvFtC,EAAQyB,YAAa,CAErB,IAAIwS,GAAkB1T,EAAoB,KAEtC2T,EAAmBlR,EAAuBiR,GAE1CvQ,EAAUnD,EAAoB,IAE9BoD,EAAWX,EAAuBU,GAElCI,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,EAItC9D,GAAQgC,QAAU,SAAUmS,EAAUC,GACpC,GAA0B,kBAAfA,IAA4C,OAAfA,EACtC,KAAM,IAAIjS,WAAU,gEAAoF,KAAfiS,EAA6B,aAAc,EAAIrQ,EAAS/B,SAASoS,IAG5JD,GAASvS,WAAY,EAAI+B,EAAS3B,SAASoS,GAAcA,EAAWxS,WAClEwE,aACEvB,MAAOsP,EACP7S,YAAY,EACZsB,UAAU,EACVvB,cAAc,KAGd+S,IAAYF,EAAiBlS,SAAU,EAAIkS,EAAiBlS,SAASmS,EAAUC,GAAcD,EAASE,UAAYD,KAKlH,SAAUnU,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAASM,GAZvFtC,EAAQyB,YAAa,CAErB,IAAIkS,GAAYpT,EAAoB,KAEhC+T,EAAatR,EAAuB2Q,GAEpCY,EAAUhU,EAAoB,KAE9BiU,EAAWxR,EAAuBuR,GAElCE,EAAsC,kBAArBD,GAASxS,SAAwD,gBAAvBsS,GAAWtS,QAAuB,SAAUM,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAmC,kBAArBkS,GAASxS,SAA0BM,EAAI8D,cAAgBoO,EAASxS,SAAWM,IAAQkS,EAASxS,QAAQJ,UAAY,eAAkBU,GAIjTtC,GAAQgC,QAAsC,kBAArBwS,GAASxS,SAA0D,WAAhCyS,EAAQH,EAAWtS,SAAwB,SAAUM,GAC/G,WAAsB,KAARA,EAAsB,YAAcmS,EAAQnS,IACxD,SAAUA,GACZ,MAAOA,IAAmC,kBAArBkS,GAASxS,SAA0BM,EAAI8D,cAAgBoO,EAASxS,SAAWM,IAAQkS,EAASxS,QAAQJ,UAAY,aAA0B,KAARU,EAAsB,YAAcmS,EAAQnS,KAK/L,SAAUrC,EAAQD,GAExB,GAAI0U,GAAOzU,EAAOD,SAAY2U,QAAS,QACrB,iBAAPC,OAAiBA,IAAMF,IAK5B,SAAUzU,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAOjCN,EAAOD,QAA4B,mBAAXoK,SAA0BA,OAAe,QAAK7J,EAAoB,MAIpF,SAAUN,EAAQD,EAASO,GAYjC,QAASsU,KACP,GAAIC,GAAO,YAEX,QACEC,GAAID,EACJE,IAAKF,EACLG,QAASH,EACTI,KAAMJ,EAENvT,IAAK,SAAaV,GAEhB,OACEsU,IAAKL,KAMb,GAAsB,mBAAX1K,QAAwB,CACjC,GAAIgL,GAAc7U,EAAoB,KAClC8U,EAASjL,OAAe,QAAK7J,EAAoB,IACrDN,GAAOD,QAAUoV,EAAYC,GAC3BnL,eAAgB,cAGlBjK,GAAOD,QAAU,WAEf,MAAO6U,OAML,SAAU5U,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAgDzF,QAASgT,GAAQC,EAAM7F,GAerB,GAbI6F,IAASvP,MAAMC,QAAQsP,KACzB7F,EAAU6F,EACVA,EAAO,MAGTlV,KAAKmV,SAAW9F,MAChBrP,KAAKoV,SACLpV,KAAKqC,OAAS,EACdrC,KAAKqV,SAAWrV,KAAKmV,SAASG,SAAW,KACzCtV,KAAKuV,SAIDvV,KAAKmV,SAAS1O,KAEhB,IAAK,GADDiI,IAAS,EAAIlL,EAAgB,SAAGxD,KAAKmV,SAAS1O,MACzCpG,EAAI,EAAGkG,EAAMmI,EAAOrM,OAAQhC,EAAIkG,EAAKlG,IAAK,CACjD,GAAI+P,GAAQ1B,EAAOrO,GACfmE,EAAQxE,KAAKmV,SAAS1O,KAAK2J,EAE7BpQ,MAAKuV,MAAMnF,GADA,QAAT5L,GAA4B,WAATA,GAA+B,WAATA,EACvB,OAEAA,EAK1BxE,KAAKwV,gBAGDN,GACFlV,KAAKyV,IAAIP,GAGXlV,KAAK0V,WAAWrG,GA/FlB,GAAIsG,GAAazV,EAAoB,IAEjC0V,EAAcjT,EAAuBgT,GAErClS,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCF,EAAQrD,EAAoB,GAE5BsD,EAASb,EAAuBY,GAIhCsS,EAAO3V,EAAoB,GAC3B4V,EAAQ5V,EAAoB,GA2FhC+U,GAAQ1T,UAAUmU,WAAa,SAAUrG,GACnCA,OAA6BnM,KAAlBmM,EAAQ0G,SACC,IAAlB1G,EAAQ0G,MAEN/V,KAAKgW,SACPhW,KAAKgW,OAAOpB,gBACL5U,MAAKgW,SAIThW,KAAKgW,SACRhW,KAAKgW,OAASF,EAAMtQ,OAAOxF,MACzBkL,SAAU,MAAO,SAAU,aAIiB,YAA5C,EAAIxH,EAAkB,SAAG2L,EAAQ0G,QACnC/V,KAAKgW,OAAON,WAAWrG,EAAQ0G,UAevCd,EAAQ1T,UAAUmT,GAAK,SAAU5K,EAAOnB,GACtC,GAAIsN,GAAcjW,KAAKwV,aAAa1L,EAC/BmM,KACHA,KACAjW,KAAKwV,aAAa1L,GAASmM,GAG7BA,EAAY7P,MACVuC,SAAUA,KASdsM,EAAQ1T,UAAUoT,IAAM,SAAU7K,EAAOnB,GACvC,GAAIsN,GAAcjW,KAAKwV,aAAa1L,EAChCmM,KACFjW,KAAKwV,aAAa1L,GAASmM,EAAY3N,OAAO,SAAUgB,GACtD,MAAOA,GAASX,UAAYA,MAYlCsM,EAAQ1T,UAAU2U,SAAW,SAAUpM,EAAOqM,EAAQC,GACpD,GAAa,KAATtM,EACF,KAAM,IAAIjE,OAAM,yBAGlB,IAAIoQ,KACAnM,KAAS9J,MAAKwV,eAChBS,EAAcA,EAAY5N,OAAOrI,KAAKwV,aAAa1L,KAEjD,KAAO9J,MAAKwV,eACdS,EAAcA,EAAY5N,OAAOrI,KAAKwV,aAAa,MAGrD,KAAK,GAAInV,GAAI,EAAGkG,EAAM0P,EAAY5T,OAAQhC,EAAIkG,EAAKlG,IAAK,CACtD,GAAIgW,GAAaJ,EAAY5V,EACzBgW,GAAW1N,UACb0N,EAAW1N,SAASmB,EAAOqM,EAAQC,GAAY,QAYrDnB,EAAQ1T,UAAUkU,IAAM,SAAUP,EAAMkB,GACtC,GACIE,GADAC,KAEAC,EAAKxW,IAET,IAAI2F,MAAMC,QAAQsP,GAEhB,IAAK,GAAI7U,GAAI,EAAGkG,EAAM2O,EAAK7S,OAAQhC,EAAIkG,EAAKlG,IAC1CiW,EAAKE,EAAGC,SAASvB,EAAK7U,IACtBkW,EAASnQ,KAAKkQ,OAEX,CAAA,IAAIpB,GAAyF,gBAAhE,KAATA,EAAuB,aAAc,EAAIxR,EAAkB,SAAGwR,IAKvF,KAAM,IAAIrP,OAAM,mBAHhByQ,GAAKE,EAAGC,SAASvB,GACjBqB,EAASnQ,KAAKkQ,GAShB,MAJIC,GAASlU,QACXrC,KAAKkW,SAAS,OAASQ,MAAOH,GAAYH,GAGrCG,GAUTtB,EAAQ1T,UAAUoV,OAAS,SAAUzB,EAAMkB,GACzC,GAAIG,MACAK,KACAC,KACAC,KACAN,EAAKxW,KACLsV,EAAUkB,EAAGnB,SAEb0B,EAAc,SAAqBrG,GACrC,GAAI4F,GAAK5F,EAAK4E,EACd,IAAIkB,EAAGpB,MAAMkB,GAAK,CAChB,GAAIU,GAAUnB,EAAKrQ,UAAWgR,EAAGpB,MAAMkB,GAEvCA,GAAKE,EAAGS,YAAYvG,GACpBkG,EAAWxQ,KAAKkQ,GAChBQ,EAAY1Q,KAAKsK,GACjBmG,EAAQzQ,KAAK4Q,OAGbV,GAAKE,EAAGC,SAAS/F,GACjB6F,EAASnQ,KAAKkQ,GAIlB,IAAI3Q,MAAMC,QAAQsP,GAEhB,IAAK,GAAI7U,GAAI,EAAGkG,EAAM2O,EAAK7S,OAAQhC,EAAIkG,EAAKlG,IACtC6U,EAAK7U,IAA4C,YAAtC,EAAIqD,EAAkB,SAAGwR,EAAK7U,IAC3C0W,EAAY7B,EAAK7U,IAEjB6W,QAAQC,KAAK,wDAA0D9W,OAGtE,CAAA,IAAI6U,GAAyF,gBAAhE,KAATA,EAAuB,aAAc,EAAIxR,EAAkB,SAAGwR,IAIvF,KAAM,IAAIrP,OAAM,mBAFhBkR,GAAY7B,GAQd,GAHIqB,EAASlU,QACXrC,KAAKkW,SAAS,OAASQ,MAAOH,GAAYH,GAExCQ,EAAWvU,OAAQ,CACrB,GAAID,IAAUsU,MAAOE,EAAYC,QAASA,EAAS3B,KAAM4B,EAQzD9W,MAAKkW,SAAS,SAAU9T,EAAOgU,GAGjC,MAAOG,GAASlO,OAAOuO,IAgCzB3B,EAAQ1T,UAAUL,IAAM,SAAUkW,GAEhC,GAGId,GAAIe,EAAKhI,EAHTmH,EAAKxW,KAILsX,EAAYzB,EAAK9O,QAAQxB,UAAU,GACtB,WAAb+R,GAAsC,UAAbA,GAE3BhB,EAAK/Q,UAAU,GACf8J,EAAU9J,UAAU,IACE,SAAb+R,GAETD,EAAM9R,UAAU,GAChB8J,EAAU9J,UAAU,IAGpB8J,EAAU9J,UAAU,EAItB,IAAIgS,EACJ,IAAIlI,GAAWA,EAAQkI,WAAY,CAEjCA,GAA2D,IADtC,QAAS,UACHpR,QAAQkJ,EAAQkI,YAAoB,QAAUlI,EAAQkI,eAEjFA,GAAa,OAIf,IAGI7G,GACA8G,EACAC,EACApX,EACAkG,EAPAE,EAAO4I,GAAWA,EAAQ5I,MAAQzG,KAAKmV,SAAS1O,KAChD6B,EAAS+G,GAAWA,EAAQ/G,OAC5BoO,IAQJ,QAAUxT,IAANoT,GAEF5F,EAAO8F,EAAGkB,SAASpB,EAAI7P,KACX6B,IAAWA,EAAOoI,KAC5BA,EAAO,UAEJ,QAAWxN,IAAPmU,EAET,IAAKhX,EAAI,EAAGkG,EAAM8Q,EAAIhV,OAAQhC,EAAIkG,EAAKlG,IACrCqQ,EAAO8F,EAAGkB,SAASL,EAAIhX,GAAIoG,GACtB6B,IAAUA,EAAOoI,IACpBgG,EAAMtQ,KAAKsK,OAMf,KADA8G,GAAU,EAAIhU,EAAgB,SAAGxD,KAAKoV,OACjC/U,EAAI,EAAGkG,EAAMiR,EAAQnV,OAAQhC,EAAIkG,EAAKlG,IACzCoX,EAASD,EAAQnX,GACjBqQ,EAAO8F,EAAGkB,SAASD,EAAQhR,GACtB6B,IAAUA,EAAOoI,IACpBgG,EAAMtQ,KAAKsK,EAWjB,IALIrB,GAAWA,EAAQsI,WAAezU,IAANoT,GAC9BtW,KAAK4X,MAAMlB,EAAOrH,EAAQsI,OAIxBtI,GAAWA,EAAQX,OAAQ,CAC7B,GAAIA,GAASW,EAAQX,MACrB,QAAUxL,IAANoT,EACF5F,EAAO1Q,KAAK6X,cAAcnH,EAAMhC,OAEhC,KAAKrO,EAAI,EAAGkG,EAAMmQ,EAAMrU,OAAQhC,EAAIkG,EAAKlG,IACvCqW,EAAMrW,GAAKL,KAAK6X,cAAcnB,EAAMrW,GAAIqO,GAM9C,GAAkB,UAAd6I,EAAwB,CAC1B,GACIO,GADAzM,IAEJ,KAAKhL,EAAI,EAAGkG,EAAMmQ,EAAMrU,OAAQhC,EAAIkG,EAAKlG,IACvCyX,EAAYpB,EAAMrW,GAClBgL,EAAOyM,EAAUxB,IAAMwB,CAEzB,OAAOzM,GAEP,WAAUnI,IAANoT,EAEK5F,EAGAgG,GAabzB,EAAQ1T,UAAUwW,OAAS,SAAU1I,GACnC,GAKIhP,GACAkG,EACA+P,EACA5F,EACAgG,EATAxB,EAAOlV,KAAKoV,MACZ9M,EAAS+G,GAAWA,EAAQ/G,OAC5BqP,EAAQtI,GAAWA,EAAQsI,MAC3BlR,EAAO4I,GAAWA,EAAQ5I,MAAQzG,KAAKmV,SAAS1O,KAChD+Q,GAAU,EAAIhU,EAAgB,SAAG0R,GAMjCmC,IAEJ,IAAI/O,EAEF,GAAIqP,EAAO,CAGT,IADAjB,KACKrW,EAAI,EAAGkG,EAAMiR,EAAQnV,OAAQhC,EAAIkG,EAAKlG,IACzCiW,EAAKkB,EAAQnX,GACbqQ,EAAO1Q,KAAK0X,SAASpB,EAAI7P,GACrB6B,EAAOoI,IACTgG,EAAMtQ,KAAKsK,EAMf,KAFA1Q,KAAK4X,MAAMlB,EAAOiB,GAEbtX,EAAI,EAAGkG,EAAMmQ,EAAMrU,OAAQhC,EAAIkG,EAAKlG,IACvCgX,EAAIjR,KAAKsQ,EAAMrW,GAAGL,KAAKqV,eAIzB,KAAKhV,EAAI,EAAGkG,EAAMiR,EAAQnV,OAAQhC,EAAIkG,EAAKlG,IACzCiW,EAAKkB,EAAQnX,GACbqQ,EAAO1Q,KAAK0X,SAASpB,EAAI7P,GACrB6B,EAAOoI,IACT2G,EAAIjR,KAAKsK,EAAK1Q,KAAKqV,eAMzB,IAAIsC,EAAO,CAGT,IADAjB,KACKrW,EAAI,EAAGkG,EAAMiR,EAAQnV,OAAQhC,EAAIkG,EAAKlG,IACzCiW,EAAKkB,EAAQnX,GACbqW,EAAMtQ,KAAK8O,EAAKoB,GAKlB,KAFAtW,KAAK4X,MAAMlB,EAAOiB,GAEbtX,EAAI,EAAGkG,EAAMmQ,EAAMrU,OAAQhC,EAAIkG,EAAKlG,IACvCgX,EAAIjR,KAAKsQ,EAAMrW,GAAGL,KAAKqV,eAIzB,KAAKhV,EAAI,EAAGkG,EAAMiR,EAAQnV,OAAQhC,EAAIkG,EAAKlG,IACzCiW,EAAKkB,EAAQnX,GACbqQ,EAAOwE,EAAKoB,GACZe,EAAIjR,KAAKsK,EAAK1Q,KAAKqV,UAKzB,OAAOgC,IAQTpC,EAAQ1T,UAAUyW,WAAa,WAC7B,MAAOhY,OAaTiV,EAAQ1T,UAAUmH,QAAU,SAAUC,EAAU0G,GAC9C,GAIIhP,GACAkG,EACAmK,EACA4F,EAPAhO,EAAS+G,GAAWA,EAAQ/G,OAC5B7B,EAAO4I,GAAWA,EAAQ5I,MAAQzG,KAAKmV,SAAS1O,KAChDyO,EAAOlV,KAAKoV,MACZoC,GAAU,EAAIhU,EAAgB,SAAG0R,EAMrC,IAAI7F,GAAWA,EAAQsI,MAAO,CAE5B,GAAIjB,GAAQ1W,KAAKkB,IAAImO,EAErB,KAAKhP,EAAI,EAAGkG,EAAMmQ,EAAMrU,OAAQhC,EAAIkG,EAAKlG,IACvCqQ,EAAOgG,EAAMrW,GACbiW,EAAK5F,EAAK1Q,KAAKqV,UACf1M,EAAS+H,EAAM4F,OAIjB,KAAKjW,EAAI,EAAGkG,EAAMiR,EAAQnV,OAAQhC,EAAIkG,EAAKlG,IACzCiW,EAAKkB,EAAQnX,GACbqQ,EAAO1Q,KAAK0X,SAASpB,EAAI7P,GACpB6B,IAAUA,EAAOoI,IACpB/H,EAAS+H,EAAM4F,IAiBvBrB,EAAQ1T,UAAU6K,IAAM,SAAUzD,EAAU0G,GAC1C,GAKIhP,GACAkG,EACA+P,EACA5F,EARApI,EAAS+G,GAAWA,EAAQ/G,OAC5B7B,EAAO4I,GAAWA,EAAQ5I,MAAQzG,KAAKmV,SAAS1O,KAChDwR,KACA/C,EAAOlV,KAAKoV,MACZoC,GAAU,EAAIhU,EAAgB,SAAG0R,EAOrC,KAAK7U,EAAI,EAAGkG,EAAMiR,EAAQnV,OAAQhC,EAAIkG,EAAKlG,IACzCiW,EAAKkB,EAAQnX,GACbqQ,EAAO1Q,KAAK0X,SAASpB,EAAI7P,GACpB6B,IAAUA,EAAOoI,IACpBuH,EAAY7R,KAAKuC,EAAS+H,EAAM4F,GASpC,OAJIjH,IAAWA,EAAQsI,OACrB3X,KAAK4X,MAAMK,EAAa5I,EAAQsI,OAG3BM,GAUThD,EAAQ1T,UAAUsW,cAAgB,SAAUnH,EAAMhC,GAChD,IAAKgC,EAEH,MAAOA,EAGT,IAGIrQ,GACA+P,EAJA8H,KACAC,GAAa,EAAI3U,EAAgB,SAAGkN,GACpCnK,EAAM4R,EAAW9V,MAIrB,IAAIsD,MAAMC,QAAQ8I,GAChB,IAAKrO,EAAI,EAAGA,EAAIkG,EAAKlG,IACnB+P,EAAQ+H,EAAW9X,IACW,GAA1BqO,EAAOvI,QAAQiK,KACjB8H,EAAa9H,GAASM,EAAKN,QAI/B,KAAK/P,EAAI,EAAGA,EAAIkG,EAAKlG,IACnB+P,EAAQ+H,EAAW9X,GACfqO,EAAOlN,eAAe4O,KACxB8H,EAAaxJ,EAAO0B,IAAUM,EAAKN,GAKzC,OAAO8H,IASTjD,EAAQ1T,UAAUqW,MAAQ,SAAUlB,EAAOiB,GACzC,GAAI9B,EAAKlR,SAASgT,GAAQ,CAExB,GAAIhX,GAAOgX,CACXjB,GAAM0B,KAAK,SAAUvV,EAAGC,GACtB,GAAIuV,GAAKxV,EAAElC,GACP2X,EAAKxV,EAAEnC,EACX,OAAO0X,GAAKC,EAAK,EAAID,EAAKC,GAAM,EAAI,QAEjC,CAAA,GAAqB,kBAAVX,GAOd,KAAM,IAAI7V,WAAU,uCALtB4U,GAAM0B,KAAKT,KAgBf1C,EAAQ1T,UAAUgX,OAAS,SAAUjC,EAAIF,GACvC,GAGI/V,GACAkG,EACAkR,EACA/G,EANA8H,KACAC,KACApB,IASJ,KAFAA,EAAM1R,MAAMC,QAAQ0Q,GAAMA,GAAMA,GAE3BjW,EAAI,EAAGkG,EAAM8Q,EAAIhV,OAAQhC,EAAIkG,EAAKlG,KACrCqQ,EAAO1Q,KAAK0Y,QAAQrB,EAAIhX,UAGR6C,KADduU,EAAS/G,EAAK1Q,KAAKqV,aAEjBmD,EAAWpS,KAAKqR,GAChBgB,EAAarS,KAAKsK,GASxB,OAJI8H,GAAWnW,QACbrC,KAAKkW,SAAS,UAAYQ,MAAO8B,EAAY3B,QAAS4B,GAAgBrC,GAGjEoC,GASTvD,EAAQ1T,UAAUmX,QAAU,SAAUpC,GACpC,GAAI5F,GAAMiI,CAUV,OAPI9C,GAAKhS,SAASyS,IAAOT,EAAKlR,SAAS2R,GACrCqC,EAAQrC,EACCA,GAAmF,gBAA9D,KAAPA,EAAqB,aAAc,EAAI5S,EAAkB,SAAG4S,MACnFqC,EAAQrC,EAAGtW,KAAKqV,eAIJnS,KAAVyV,GAAuB3Y,KAAKoV,MAAMuD,IACpCjI,EAAO1Q,KAAKoV,MAAMuD,SACX3Y,MAAKoV,MAAMuD,GAClB3Y,KAAKqC,SACEqO,GAEF,MAQTuE,EAAQ1T,UAAUqX,MAAQ,SAAUxC,GAClC,GAAI/V,GAAGkG,EACH8Q,GAAM,EAAI7T,EAAgB,SAAGxD,KAAKoV,OAClCsB,IAEJ,KAAKrW,EAAI,EAAGkG,EAAM8Q,EAAIhV,OAAQhC,EAAIkG,EAAKlG,IACrCqW,EAAMtQ,KAAKpG,KAAKoV,MAAMiC,EAAIhX,IAQ5B,OALAL,MAAKoV,SACLpV,KAAKqC,OAAS,EAEdrC,KAAKkW,SAAS,UAAYQ,MAAOW,EAAKR,QAASH,GAASN,GAEjDiB,GAQTpC,EAAQ1T,UAAU+C,IAAM,SAAU8L,GAChC,GAII/P,GACAkG,EALA2O,EAAOlV,KAAKoV,MACZoC,GAAU,EAAIhU,EAAgB,SAAG0R,GACjC5Q,EAAM,KACNuU,EAAW,IAIf,KAAKxY,EAAI,EAAGkG,EAAMiR,EAAQnV,OAAQhC,EAAIkG,EAAKlG,IAAK,CAC9C,GAAIiW,GAAKkB,EAAQnX,GACbqQ,EAAOwE,EAAKoB,GACZwC,EAAYpI,EAAKN,EACJ,OAAb0I,KAAuBxU,GAAOwU,EAAYD,KAC5CvU,EAAMoM,EACNmI,EAAWC,GAIf,MAAOxU,IAQT2Q,EAAQ1T,UAAU8C,IAAM,SAAU+L,GAChC,GAII/P,GACAkG,EALA2O,EAAOlV,KAAKoV,MACZoC,GAAU,EAAIhU,EAAgB,SAAG0R,GACjC7Q,EAAM,KACN0U,EAAW,IAIf,KAAK1Y,EAAI,EAAGkG,EAAMiR,EAAQnV,OAAQhC,EAAIkG,EAAKlG,IAAK,CAC9C,GAAIiW,GAAKkB,EAAQnX,GACbqQ,EAAOwE,EAAKoB,GACZwC,EAAYpI,EAAKN,EACJ,OAAb0I,KAAuBzU,GAAOyU,EAAYC,KAC5C1U,EAAMqM,EACNqI,EAAWD,GAIf,MAAOzU,IAUT4Q,EAAQ1T,UAAUyX,SAAW,SAAU5I,GACrC,GAKI/P,GAAG6O,EAAG3I,EALN2O,EAAOlV,KAAKoV,MACZoC,GAAU,EAAIhU,EAAgB,SAAG0R,GACjC+D,KACAC,EAAYlZ,KAAKmV,SAAS1O,MAAQzG,KAAKmV,SAAS1O,KAAK2J,IAAU,KAC/D+I,EAAQ,CAGZ,KAAK9Y,EAAI,EAAGkG,EAAMiR,EAAQnV,OAAQhC,EAAIkG,EAAKlG,IAAK,CAC9C,GAAIiW,GAAKkB,EAAQnX,GACbqQ,EAAOwE,EAAKoB,GACZ9R,EAAQkM,EAAKN,GACbgJ,GAAS,CACb,KAAKlK,EAAI,EAAGA,EAAIiK,EAAOjK,IACrB,GAAI+J,EAAO/J,IAAM1K,EAAO,CACtB4U,GAAS,CACT,OAGCA,OAAoBlW,KAAVsB,IACbyU,EAAOE,GAAS3U,EAChB2U,KAIJ,GAAID,EACF,IAAK7Y,EAAI,EAAGkG,EAAM0S,EAAO5W,OAAQhC,EAAIkG,EAAKlG,IACxC4Y,EAAO5Y,GAAKwV,EAAKrP,QAAQyS,EAAO5Y,GAAI6Y,EAIxC,OAAOD,IASThE,EAAQ1T,UAAUkV,SAAW,SAAU/F,GACrC,GAAI4F,GAAK5F,EAAK1Q,KAAKqV,SAEnB,QAAUnS,IAANoT,GAEF,GAAItW,KAAKoV,MAAMkB,GAEb,KAAM,IAAIzQ,OAAM,iCAAmCyQ,EAAK,uBAI1DA,GAAKT,EAAK1Q,aACVuL,EAAK1Q,KAAKqV,UAAYiB,CAGxB,IAEIjW,GACAkG,EAHA7F,KACAgO,GAAS,EAAIlL,EAAgB,SAAGkN,EAGpC,KAAKrQ,EAAI,EAAGkG,EAAMmI,EAAOrM,OAAQhC,EAAIkG,EAAKlG,IAAK,CAC7C,GAAI+P,GAAQ1B,EAAOrO,GACf6Y,EAAYlZ,KAAKuV,MAAMnF,EAC3B1P,GAAE0P,GAASyF,EAAKrP,QAAQkK,EAAKN,GAAQ8I,GAKvC,MAHAlZ,MAAKoV,MAAMkB,GAAM5V,EACjBV,KAAKqC,SAEEiU,GAUTrB,EAAQ1T,UAAUmW,SAAW,SAAUpB,EAAI+C,GACzC,GAAIjJ,GAAO5L,EAAOnE,EAAGkG,EAGjB+S,EAAMtZ,KAAKoV,MAAMkB,EACrB,KAAKgD,EACH,MAAO,KAIT,IAAIC,MACA7K,GAAS,EAAIlL,EAAgB,SAAG8V,EAEpC,IAAID,EACF,IAAKhZ,EAAI,EAAGkG,EAAMmI,EAAOrM,OAAQhC,EAAIkG,EAAKlG,IACxC+P,EAAQ1B,EAAOrO,GACfmE,EAAQ8U,EAAIlJ,GACZmJ,EAAUnJ,GAASyF,EAAKrP,QAAQhC,EAAO6U,EAAMjJ,QAI/C,KAAK/P,EAAI,EAAGkG,EAAMmI,EAAOrM,OAAQhC,EAAIkG,EAAKlG,IACxC+P,EAAQ1B,EAAOrO,GACfmE,EAAQ8U,EAAIlJ,GACZmJ,EAAUnJ,GAAS5L,CAQvB,OAJK+U,GAAUvZ,KAAKqV,YAClBkE,EAAUvZ,KAAKqV,UAAYiE,EAAIhD,IAG1BiD,GAWTtE,EAAQ1T,UAAU0V,YAAc,SAAUvG,GACxC,GAAI4F,GAAK5F,EAAK1Q,KAAKqV,SACnB,QAAUnS,IAANoT,EACF,KAAM,IAAIzQ,OAAM,8CAA+C,EAAI+P,EAAqB,SAAGlF,GAAQ,IAErG,IAAIhQ,GAAIV,KAAKoV,MAAMkB,EACnB,KAAK5V,EAEH,KAAM,IAAImF,OAAM,uCAAyCyQ,EAAK,SAKhE,KAAK,GADD5H,IAAS,EAAIlL,EAAgB,SAAGkN,GAC3BrQ,EAAI,EAAGkG,EAAMmI,EAAOrM,OAAQhC,EAAIkG,EAAKlG,IAAK,CACjD,GAAI+P,GAAQ1B,EAAOrO,GACf6Y,EAAYlZ,KAAKuV,MAAMnF,EAC3B1P,GAAE0P,GAASyF,EAAKrP,QAAQkK,EAAKN,GAAQ8I,GAGvC,MAAO5C,IAGT1W,EAAOD,QAAUsV,GAIX,SAAUrV,EAAQD,EAASO,GAwBjC,QAASsZ,GAAStE,EAAM7F,GACtBrP,KAAKoV,MAAQ,KACbpV,KAAKyZ,QACLzZ,KAAKqC,OAAS,EACdrC,KAAKmV,SAAW9F,MAChBrP,KAAKqV,SAAW,KAChBrV,KAAKwV,eAEL,IAAIgB,GAAKxW,IACTA,MAAKsJ,SAAW,WACdkN,EAAGkD,SAASC,MAAMnD,EAAIjR,YAGxBvF,KAAK4Z,QAAQ1E,GAhCf,GAAI3R,GAAQrD,EAAoB,GAE5BsD,EAEJ,SAAgCvB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFrDsB,GAIhCsS,EAAO3V,EAAoB,GAC3B+U,EAAU/U,EAAoB,GAmClCsZ,GAASjY,UAAUqY,QAAU,SAAU1E,GACrC,GAAImC,GAAKf,EAAIjW,EAAGkG,EAAKmQ,CAErB,IAAI1W,KAAKoV,MAAO,CAUd,IARIpV,KAAKoV,MAAMT,KACb3U,KAAKoV,MAAMT,IAAI,IAAK3U,KAAKsJ,UAI3B+N,EAAMrX,KAAKoV,MAAM2C,QAASzP,OAAQtI,KAAKmV,UAAYnV,KAAKmV,SAAS7M,SACjEoO,KAEKrW,EAAI,EAAGkG,EAAM8Q,EAAIhV,OAAQhC,EAAIkG,EAAKlG,IACrCqW,EAAMtQ,KAAKpG,KAAKoV,MAAMA,MAAMiC,EAAIhX,IAGlCL,MAAKyZ,QACLzZ,KAAKqC,OAAS,EACdrC,KAAKkW,SAAS,UAAYQ,MAAOW,EAAKR,QAASH,IAKjD,GAFA1W,KAAKoV,MAAQF,EAETlV,KAAKoV,MAAO,CAMd,IAJApV,KAAKqV,SAAWrV,KAAKmV,SAASG,SAAWtV,KAAKoV,OAASpV,KAAKoV,MAAM/F,SAAWrP,KAAKoV,MAAM/F,QAAQiG,SAAW,KAG3G+B,EAAMrX,KAAKoV,MAAM2C,QAASzP,OAAQtI,KAAKmV,UAAYnV,KAAKmV,SAAS7M,SAC5DjI,EAAI,EAAGkG,EAAM8Q,EAAIhV,OAAQhC,EAAIkG,EAAKlG,IACrCiW,EAAKe,EAAIhX,GACTL,KAAKyZ,KAAKnD,IAAM,CAElBtW,MAAKqC,OAASgV,EAAIhV,OAClBrC,KAAKkW,SAAS,OAASQ,MAAOW,IAG1BrX,KAAKoV,MAAMV,IACb1U,KAAKoV,MAAMV,GAAG,IAAK1U,KAAKsJ,YAS9BkQ,EAASjY,UAAUsY,QAAU,WAC3B,GAAIvD,GAAIjW,EAAGkG,EACP8Q,EAAMrX,KAAKoV,MAAM2C,QAASzP,OAAQtI,KAAKmV,UAAYnV,KAAKmV,SAAS7M,SACjEwR,GAAS,EAAItW,EAAgB,SAAGxD,KAAKyZ,MACrCM,KACAxD,KACAiC,KACAC,IAGJ,KAAKpY,EAAI,EAAGkG,EAAM8Q,EAAIhV,OAAQhC,EAAIkG,EAAKlG,IACrCiW,EAAKe,EAAIhX,GACT0Z,EAAOzD,IAAM,EACRtW,KAAKyZ,KAAKnD,KACbC,EAASnQ,KAAKkQ,GACdtW,KAAKyZ,KAAKnD,IAAM,EAKpB,KAAKjW,EAAI,EAAGkG,EAAMuT,EAAOzX,OAAQhC,EAAIkG,EAAKlG,IACxCiW,EAAKwD,EAAOzZ,GACP0Z,EAAOzD,KACVkC,EAAWpS,KAAKkQ,GAChBmC,EAAarS,KAAKpG,KAAKoV,MAAMA,MAAMkB,UAC5BtW,MAAKyZ,KAAKnD,GAIrBtW,MAAKqC,QAAUkU,EAASlU,OAASmW,EAAWnW,OAGxCkU,EAASlU,QACXrC,KAAKkW,SAAS,OAASQ,MAAOH,IAE5BiC,EAAWnW,QACbrC,KAAKkW,SAAS,UAAYQ,MAAO8B,EAAY3B,QAAS4B,KAuC1De,EAASjY,UAAUL,IAAM,SAAUkW,GAEjC,GAGIC,GAAKhI,EAAS6F,EAHdsB,EAAKxW,KAILsX,EAAYzB,EAAK9O,QAAQxB,UAAU,GACtB,WAAb+R,GAAsC,UAAbA,GAAsC,SAAbA,GAEpDD,EAAM9R,UAAU,GAChB8J,EAAU9J,UAAU,GACpB2P,EAAO3P,UAAU,KAGjB8J,EAAU9J,UAAU,GACpB2P,EAAO3P,UAAU,GAInB,IAAIyU,GAAcnE,EAAKrQ,UAAWxF,KAAKmV,SAAU9F,EAG7CrP,MAAKmV,SAAS7M,QAAU+G,GAAWA,EAAQ/G,SAC7C0R,EAAY1R,OAAS,SAAUoI,GAC7B,MAAO8F,GAAGrB,SAAS7M,OAAOoI,IAASrB,EAAQ/G,OAAOoI,IAKtD,IAAIuJ,KAOJ,YANW/W,IAAPmU,GACF4C,EAAa7T,KAAKiR,GAEpB4C,EAAa7T,KAAK4T,GAClBC,EAAa7T,KAAK8O,GAEXlV,KAAKoV,OAASpV,KAAKoV,MAAMlU,IAAIyY,MAAM3Z,KAAKoV,MAAO6E,IAWxDT,EAASjY,UAAUwW,OAAS,SAAU1I,GACpC,GAAIgI,EAEJ,IAAIrX,KAAKoV,MAAO,CACd,GACI9M,GADA4R,EAAgBla,KAAKmV,SAAS7M,MAK9BA,GAFA+G,GAAWA,EAAQ/G,OACjB4R,EACO,SAAgBxJ,GACvB,MAAOwJ,GAAcxJ,IAASrB,EAAQ/G,OAAOoI,IAGtCrB,EAAQ/G,OAGV4R,EAGX7C,EAAMrX,KAAKoV,MAAM2C,QACfzP,OAAQA,EACRqP,MAAOtI,GAAWA,EAAQsI,YAG5BN,KAGF,OAAOA,IAcTmC,EAASjY,UAAU6K,IAAM,SAAUzD,EAAU0G,GAC3C,GAAI4I,KACJ,IAAIjY,KAAKoV,MAAO,CACd,GACI9M,GADA4R,EAAgBla,KAAKmV,SAAS7M,MAK9BA,GAFA+G,GAAWA,EAAQ/G,OACjB4R,EACO,SAAgBxJ,GACvB,MAAOwJ,GAAcxJ,IAASrB,EAAQ/G,OAAOoI,IAGtCrB,EAAQ/G,OAGV4R,EAGXjC,EAAcjY,KAAKoV,MAAMhJ,IAAIzD,GAC3BL,OAAQA,EACRqP,MAAOtI,GAAWA,EAAQsI,YAG5BM,KAGF,OAAOA,IAQTuB,EAASjY,UAAUyW,WAAa,WAE9B,IADA,GAAImC,GAAUna,KACPma,YAAmBX,IACxBW,EAAUA,EAAQ/E,KAEpB,OAAO+E,IAAW,MAYpBX,EAASjY,UAAUmY,SAAW,SAAU5P,EAAOqM,EAAQC,GACrD,GAAI/V,GAAGkG,EAAK+P,EAAI5F,EACZ2G,EAAMlB,GAAUA,EAAOO,MACvBH,KACAK,KACA4B,KACA4B,KACAC,KACA5B,IAEJ,IAAIpB,GAAOrX,KAAKoV,MAAO,CACrB,OAAQtL,GACN,IAAK,MAEH,IAAKzJ,EAAI,EAAGkG,EAAM8Q,EAAIhV,OAAQhC,EAAIkG,EAAKlG,IACrCiW,EAAKe,EAAIhX,IACTqQ,EAAO1Q,KAAKkB,IAAIoV,MAEdtW,KAAKyZ,KAAKnD,IAAM,EAChBC,EAASnQ,KAAKkQ,GAIlB,MAEF,KAAK,SAGH,IAAKjW,EAAI,EAAGkG,EAAM8Q,EAAIhV,OAAQhC,EAAIkG,EAAKlG,IACrCiW,EAAKe,EAAIhX,GACTqQ,EAAO1Q,KAAKkB,IAAIoV,GAEZ5F,EACE1Q,KAAKyZ,KAAKnD,IACZM,EAAWxQ,KAAKkQ,GAChB+D,EAAajU,KAAK+P,EAAOjB,KAAK7U,IAC9B+Z,EAAShU,KAAK+P,EAAOU,QAAQxW,MAE7BL,KAAKyZ,KAAKnD,IAAM,EAChBC,EAASnQ,KAAKkQ,IAGZtW,KAAKyZ,KAAKnD,WACLtW,MAAKyZ,KAAKnD,GACjBkC,EAAWpS,KAAKkQ,GAChBmC,EAAarS,KAAK+P,EAAOU,QAAQxW,IAOvC,MAEF,KAAK,SAEH,IAAKA,EAAI,EAAGkG,EAAM8Q,EAAIhV,OAAQhC,EAAIkG,EAAKlG,IACrCiW,EAAKe,EAAIhX,GACLL,KAAKyZ,KAAKnD,WACLtW,MAAKyZ,KAAKnD,GACjBkC,EAAWpS,KAAKkQ,GAChBmC,EAAarS,KAAK+P,EAAOU,QAAQxW,KAOzCL,KAAKqC,QAAUkU,EAASlU,OAASmW,EAAWnW,OAExCkU,EAASlU,QACXrC,KAAKkW,SAAS,OAASQ,MAAOH,GAAYH,GAExCQ,EAAWvU,QACbrC,KAAKkW,SAAS,UAAYQ,MAAOE,EAAYC,QAASuD,EAAUlF,KAAMmF,GAAgBjE,GAEpFoC,EAAWnW,QACbrC,KAAKkW,SAAS,UAAYQ,MAAO8B,EAAY3B,QAAS4B,GAAgBrC,KAM5EoD,EAASjY,UAAUmT,GAAKO,EAAQ1T,UAAUmT,GAC1C8E,EAASjY,UAAUoT,IAAMM,EAAQ1T,UAAUoT,IAC3C6E,EAASjY,UAAU2U,SAAWjB,EAAQ1T,UAAU2U,SAGhDsD,EAASjY,UAAU+Y,UAAYd,EAASjY,UAAUmT,GAClD8E,EAASjY,UAAUgZ,YAAcf,EAASjY,UAAUoT,IAEpD/U,EAAOD,QAAU6Z,GAIX,SAAU5Z,EAAQD,EAASO,GAEjC,GAAIsa,GAAQta,EAAoB,IAAI,OAChCua,EAAMva,EAAoB,IAC1Bwa,EAASxa,EAAoB,IAAIwa,OACjCC,EAA8B,kBAAVD,IAET9a,EAAOD,QAAU,SAAUgB,GACxC,MAAO6Z,GAAM7Z,KAAU6Z,EAAM7Z,GAC3Bga,GAAcD,EAAO/Z,KAAUga,EAAaD,EAASD,GAAK,UAAY9Z,MAGjE6Z,MAAQA,GAKX,SAAU5a,EAAQD,EAASO,GAYjCP,EAAQib,gBAAkB,SAAUC,GAElC,IAAK,GAAIC,KAAeD,GAClBA,EAAcrZ,eAAesZ,KAC/BD,EAAcC,GAAaC,UAAYF,EAAcC,GAAaE,KAClEH,EAAcC,GAAaE,UAYjCrb,EAAQsb,gBAAkB,SAAUJ,GAElC,IAAK,GAAIC,KAAeD,GACtB,GAAIA,EAAcrZ,eAAesZ,IAC3BD,EAAcC,GAAaC,UAAW,CACxC,IAAK,GAAI1a,GAAI,EAAGA,EAAIwa,EAAcC,GAAaC,UAAU1Y,OAAQhC,IAC/Dwa,EAAcC,GAAaC,UAAU1a,GAAG+J,WAAWjG,YAAY0W,EAAcC,GAAaC,UAAU1a,GAEtGwa,GAAcC,GAAaC,eAUnCpb,EAAQub,cAAgB,SAAUL,GAChClb,EAAQib,gBAAgBC,GACxBlb,EAAQsb,gBAAgBJ,GACxBlb,EAAQib,gBAAgBC,IAa1Blb,EAAQwb,cAAgB,SAAUL,EAAaD,EAAeO,GAC5D,GAAIhS,EAoBJ,OAlBIyR,GAAcrZ,eAAesZ,GAG3BD,EAAcC,GAAaC,UAAU1Y,OAAS,GAChD+G,EAAUyR,EAAcC,GAAaC,UAAU,GAC/CF,EAAcC,GAAaC,UAAUM,UAGrCjS,EAAU4I,SAASsJ,gBAAgB,6BAA8BR,GACjEM,EAAa5I,YAAYpJ,KAI3BA,EAAU4I,SAASsJ,gBAAgB,6BAA8BR,GACjED,EAAcC,IAAiBE,QAAUD,cACzCK,EAAa5I,YAAYpJ,IAE3ByR,EAAcC,GAAaE,KAAK5U,KAAKgD,GAC9BA,GAaTzJ,EAAQ4b,cAAgB,SAAUT,EAAaD,EAAeW,EAAcC,GAC1E,GAAIrS,EA4BJ,OA1BIyR,GAAcrZ,eAAesZ,GAG3BD,EAAcC,GAAaC,UAAU1Y,OAAS,GAChD+G,EAAUyR,EAAcC,GAAaC,UAAU,GAC/CF,EAAcC,GAAaC,UAAUM,UAGrCjS,EAAU4I,SAASC,cAAc6I,OACZ5X,KAAjBuY,EACFD,EAAaC,aAAarS,EAASqS,GAEnCD,EAAahJ,YAAYpJ,KAK7BA,EAAU4I,SAASC,cAAc6I,GACjCD,EAAcC,IAAiBE,QAAUD,kBACpB7X,KAAjBuY,EACFD,EAAaC,aAAarS,EAASqS,GAEnCD,EAAahJ,YAAYpJ,IAG7ByR,EAAcC,GAAaE,KAAK5U,KAAKgD,GAC9BA,GAgBTzJ,EAAQ+b,UAAY,SAAU/L,EAAGgM,EAAGC,EAAef,EAAeO,EAAcS,GAC9E,GAAIC,EAqBJ,IApB2B,UAAvBF,EAAcnO,OAChBqO,EAAQnc,EAAQwb,cAAc,SAAUN,EAAeO,GACvDU,EAAMC,eAAe,KAAM,KAAMpM,GACjCmM,EAAMC,eAAe,KAAM,KAAMJ,GACjCG,EAAMC,eAAe,KAAM,IAAK,GAAMH,EAAcI,QAEpDF,EAAQnc,EAAQwb,cAAc,OAAQN,EAAeO,GACrDU,EAAMC,eAAe,KAAM,IAAKpM,EAAI,GAAMiM,EAAcI,MACxDF,EAAMC,eAAe,KAAM,IAAKJ,EAAI,GAAMC,EAAcI,MACxDF,EAAMC,eAAe,KAAM,QAASH,EAAcI,MAClDF,EAAMC,eAAe,KAAM,SAAUH,EAAcI,WAGxB9Y,KAAzB0Y,EAAcpO,QAChBsO,EAAMC,eAAe,KAAM,QAASH,EAAcpO,QAEpDsO,EAAMC,eAAe,KAAM,QAASH,EAAc1T,UAAY,cAI1D2T,EAAU,CACZ,GAAII,GAAQtc,EAAQwb,cAAc,OAAQN,EAAeO,EACrDS,GAASK,UACXvM,GAAQkM,EAASK,SAGfL,EAASM,UACXR,GAAQE,EAASM,SAEfN,EAASO,UACXH,EAAMI,YAAcR,EAASO,SAG3BP,EAAS3T,WACX+T,EAAMF,eAAe,KAAM,QAASF,EAAS3T,UAAY,cAE3D+T,EAAMF,eAAe,KAAM,IAAKpM,GAChCsM,EAAMF,eAAe,KAAM,IAAKJ,GAGlC,MAAOG,IAeTnc,EAAQ2c,QAAU,SAAU3M,EAAGgM,EAAGzJ,EAAOC,EAAQjK,EAAW2S,EAAeO,EAAc3N,GACvF,GAAc,GAAV0E,EAAa,CACXA,EAAS,IACXA,IAAW,EACXwJ,GAAKxJ,EAEP,IAAIoK,GAAO5c,EAAQwb,cAAc,OAAQN,EAAeO,EACxDmB,GAAKR,eAAe,KAAM,IAAKpM,EAAI,GAAMuC,GACzCqK,EAAKR,eAAe,KAAM,IAAKJ,GAC/BY,EAAKR,eAAe,KAAM,QAAS7J,GACnCqK,EAAKR,eAAe,KAAM,SAAU5J,GACpCoK,EAAKR,eAAe,KAAM,QAAS7T,GAC/BuF,GACF8O,EAAKR,eAAe,KAAM,QAAStO,MAOnC,SAAU7N,EAAQD,EAASO,GA8BjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAzBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,IAET7E,EAAQ6c,eAAatZ,EAErB,IAAIyS,GAAazV,EAAoB,IAEjC0V,EAAcjT,EAAuBgT,GAErClS,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCF,EAAQrD,EAAoB,GAE5BsD,EAASb,EAAuBY,GAEhCkZ,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAE3B2c,GAAa,EACbC,MAAa,GACbN,EAAa,sCAKbO,EAAY,WAId,QAASA,MACP,EAAIL,EAA0B,SAAG1c,KAAM+c,GAgWzC,OAnVA,EAAIH,EAAuB,SAAGG,EAAW,OACvCva,IAAK,WACLgC,MAAO,SAAkB6K,EAAS2N,EAAkBC,GAClDJ,GAAa,EACbC,EAAaE,CACb,IAAIE,GAAcF,CAKlB,YAJkB9Z,KAAd+Z,IACFC,EAAcF,EAAiBC,IAEjCF,EAAU7X,MAAMmK,EAAS6N,MAClBL,KAYTra,IAAK,QACLgC,MAAO,SAAe6K,EAAS2N,EAAkBG,GAC/C,IAAK,GAAI3S,KAAU6E,GACbA,EAAQ7N,eAAegJ,IACzBuS,EAAUK,MAAM5S,EAAQ6E,EAAS2N,EAAkBG,MAezD3a,IAAK,QACLgC,MAAO,SAAegG,EAAQ6E,EAAS2N,EAAkBG,GACvD,OAAiCja,KAA7B8Z,EAAiBxS,QAAsDtH,KAA7B8Z,EAAiBK,QAE7D,WADAN,GAAUO,cAAc9S,EAAQwS,EAAkBG,EAIpD,IAAII,GAAkB/S,EAClBgT,GAAY,MAEiBta,KAA7B8Z,EAAiBxS,QAAsDtH,KAA7B8Z,EAAiBK,UAM7DE,EAAkB,UAIlBC,EAAmD,WAAvCT,EAAUhW,QAAQsI,EAAQ7E,IAOxC,IAAIiT,GAAeT,EAAiBO,EAChCC,QAAuCta,KAA1Bua,EAAaC,WAC5BD,EAAeA,EAAaC,UAG9BX,EAAUY,YAAYnT,EAAQ6E,EAAS2N,EAAkBO,EAAiBE,EAAcN,MAe1F3a,IAAK,cACLgC,MAAO,SAAqBgG,EAAQ6E,EAAS2N,EAAkBO,EAAiBE,EAAcN,GAC5F,GAAIS,GAAM,SAAaC,GACrB3G,QAAQ0G,IAAI,KAAOC,EAAUd,EAAUe,cAAcX,EAAM3S,GAASgS,IAGlEuB,EAAahB,EAAUhW,QAAQsI,EAAQ7E,IACvCwT,EAAgBP,EAAaM,OAEX7a,KAAlB8a,EAEuC,UAArCjB,EAAUhW,QAAQiX,KAA0E,IAA5CA,EAAc7X,QAAQkJ,EAAQ7E,KAChFoT,EAAI,+BAAiCpT,EAAS,yBAAgCuS,EAAUkB,MAAMD,GAAiB,SAAW3O,EAAQ7E,GAAU,OAC5IqS,GAAa,GACW,WAAfkB,GAA+C,YAApBR,IACpCJ,EAAOtH,EAAK3O,mBAAmBiW,EAAM3S,GACrCuS,EAAU7X,MAAMmK,EAAQ7E,GAASwS,EAAiBO,GAAkBJ,QAErCja,KAAxBua,EAAkB,MAE3BG,EAAI,8BAAgCpT,EAAS,gBAAkBuS,EAAUkB,OAAM,EAAIza,EAAgB,SAAGia,IAAiB,eAAiBM,EAAa,MAAQ1O,EAAQ7E,GAAU,KAC/KqS,GAAa,MAYjBra,IAAK,UACLgC,MAAO,SAAiBnD,GACtB,GAAIoF,OAAyB,KAAXpF,EAAyB,aAAc,EAAIqC,EAAkB,SAAGrC,EAElF,OAAa,WAAToF,EACa,OAAXpF,EACK,OAELA,YAAkBsF,SACb,UAELtF,YAAkByC,QACb,SAELzC,YAAkBuD,QACb,SAELe,MAAMC,QAAQvE,GACT,QAELA,YAAkByD,MACb,WAEe5B,KAApB7B,EAAO8I,SACF,OAEuB,IAA5B9I,EAAO6c,iBACF,SAEF,SACW,WAATzX,EACF,SACW,YAATA,EACF,UACW,WAATA,EACF,aACWvD,KAATuD,EACF,YAEFA,KAWTjE,IAAK,gBACLgC,MAAO,SAAuBgG,EAAQ6E,EAAS8N,GAC7C,GAAIgB,GAAcpB,EAAUqB,cAAc5T,EAAQ6E,EAAS8N,GAAM,GAC7DkB,EAAetB,EAAUqB,cAAc5T,EAAQsS,MAAgB,GAK/DwB,MAAM;qEAERA,OAD6Bpb,KAA3Bib,EAAYI,WACR,OAASxB,EAAUe,cAAcK,EAAYhB,KAAM3S,EAAQ,IAAM,6CAA+C2T,EAAYI,WAAa,SACtIF,EAAaG,UALI,GAKiCL,EAAYK,SAAWH,EAAaG,SACzF,OAASzB,EAAUe,cAAcK,EAAYhB,KAAM3S,EAAQ,IAAM,uDAAyDuS,EAAUe,cAAcO,EAAalB,KAAMkB,EAAaI,aAAc,IAC7LN,EAAYK,UARI,EASnB,mBAAqBL,EAAYM,aAAe,KAAO1B,EAAUe,cAAcK,EAAYhB,KAAM3S,GAEjG,gCAAkCuS,EAAUkB,OAAM,EAAIza,EAAgB,SAAG6L,IAAY0N,EAAUe,cAAcX,EAAM3S,GAG3H0M,QAAQ0G,IAAI,+BAAiCpT,EAAS,IAAM8T,EAAK9B,GACjEK,GAAa,KAcfra,IAAK,gBACLgC,MAAO,SAAuBgG,EAAQ6E,EAAS8N,GAC7C,GAAIuB,GAAYnZ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAE3ElB,EAAM,IACNoa,EAAe,GACfE,KACAC,EAAkBpU,EAAOqU,cACzBN,MAAarb,EACjB,KAAK,GAAI4b,KAAMzP,GAAS,CAEtB,GAAImP,OAAW,EACf,QAA6Btb,KAAzBmM,EAAQyP,GAAIpB,WAAwC,IAAdgB,EAAoB,CAC5D,GAAIrT,GAAS0R,EAAUqB,cAAc5T,EAAQ6E,EAAQyP,GAAKjJ,EAAK3O,mBAAmBiW,EAAM2B,GACpFza,GAAMgH,EAAOmT,WACfC,EAAepT,EAAOoT,aACtBE,EAAmBtT,EAAO8R,KAC1B9Y,EAAMgH,EAAOmT,SACbD,EAAalT,EAAOkT,iBAG6B,IAA/CO,EAAGD,cAAc1Y,QAAQyY,KAC3BL,EAAaO,GAEfN,EAAWzB,EAAUgC,oBAAoBvU,EAAQsU,GAC7Cza,EAAMma,IACRC,EAAeK,EACfH,EAAmB9I,EAAKvO,UAAU6V,GAClC9Y,EAAMma,GAIZ,OAASC,aAAcA,EAActB,KAAMwB,EAAkBH,SAAUna,EAAKka,WAAYA,MAY1F/b,IAAK,gBACLgC,MAAO,SAAuB2Y,EAAM3S,GAIlC,IAAK,GAHDwU,GAASzZ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,6BAE7E0Z,EAAM,OAASD,EAAS,gBACnB3e,EAAI,EAAGA,EAAI8c,EAAK9a,OAAQhC,IAAK,CACpC,IAAK,GAAI6O,GAAI,EAAGA,EAAI7O,EAAI,EAAG6O,IACzB+P,GAAO,IAETA,IAAO9B,EAAK9c,GAAK,QAEnB,IAAK,GAAI6e,GAAK,EAAGA,EAAK/B,EAAK9a,OAAS,EAAG6c,IACrCD,GAAO,IAETA,IAAOzU,EAAS,IAChB,KAAK,GAAI2U,GAAK,EAAGA,EAAKhC,EAAK9a,OAAS,EAAG8c,IAAM,CAC3C,IAAK,GAAIC,GAAM,EAAGA,EAAMjC,EAAK9a,OAAS8c,EAAIC,IACxCH,GAAO,IAETA,IAAO,MAET,MAAOA,GAAM,UAUfzc,IAAK,QACLgC,MAAO,SAAe6K,GACpB,OAAO,EAAIuG,EAAqB,SAAGvG,GAASnE,QAAQ,gCAAiC,IAAIA,QAAQ,QAAS,SAsB5G1I,IAAK,sBACLgC,MAAO,SAA6B3B,EAAGC,GACrC,GAAiB,IAAbD,EAAER,OAAc,MAAOS,GAAET,MAC7B,IAAiB,IAAbS,EAAET,OAAc,MAAOQ,GAAER,MAE7B,IAGIhC,GAHAgf,IAIJ,KAAKhf,EAAI,EAAGA,GAAKyC,EAAET,OAAQhC,IACzBgf,EAAOhf,IAAMA,EAIf,IAAI6O,EACJ,KAAKA,EAAI,EAAGA,GAAKrM,EAAER,OAAQ6M,IACzBmQ,EAAO,GAAGnQ,GAAKA,CAIjB,KAAK7O,EAAI,EAAGA,GAAKyC,EAAET,OAAQhC,IACzB,IAAK6O,EAAI,EAAGA,GAAKrM,EAAER,OAAQ6M,IACrBpM,EAAEwc,OAAOjf,EAAI,IAAMwC,EAAEyc,OAAOpQ,EAAI,GAClCmQ,EAAOhf,GAAG6O,GAAKmQ,EAAOhf,EAAI,GAAG6O,EAAI,GAEjCmQ,EAAOhf,GAAG6O,GAAKxK,KAAKL,IAAIgb,EAAOhf,EAAI,GAAG6O,EAAI,GAAK,EAC/CxK,KAAKL,IAAIgb,EAAOhf,GAAG6O,EAAI,GAAK,EAC5BmQ,EAAOhf,EAAI,GAAG6O,GAAK,GAKzB,OAAOmQ,GAAOvc,EAAET,QAAQQ,EAAER,YAGvB0a,IAGTpd,GAAiB,QAAIod,EACrBpd,EAAQ6c,WAAaA,GAIf,SAAU5c,EAAQD,EAASO,GAYjC,QAASqf,GAAU9M,EAAMpD,GAEvBrP,KAAKqP,QAAU,KACfrP,KAAKoC,MAAQ,KAVf,GAAIyT,GAAO3V,EAAoB,EAkB/Bqf,GAAUhe,UAAUmU,WAAa,SAAUrG,GACrCA,GACFwG,EAAKrQ,OAAOxF,KAAKqP,QAASA,IAQ9BkQ,EAAUhe,UAAUie,OAAS,WAE3B,OAAO,GAMTD,EAAUhe,UAAUqT,QAAU,aAU9B2K,EAAUhe,UAAUke,WAAa,WAC/B,GAAIC,GAAU1f,KAAKoC,MAAMud,iBAAmB3f,KAAKoC,MAAM8P,OAASlS,KAAKoC,MAAMwd,kBAAoB5f,KAAKoC,MAAM+P,MAK1G,OAHAnS,MAAKoC,MAAMud,eAAiB3f,KAAKoC,MAAM8P,MACvClS,KAAKoC,MAAMwd,gBAAkB5f,KAAKoC,MAAM+P,OAEjCuN,GAGT9f,EAAOD,QAAU4f,GAIX,SAAU3f,EAAQD,EAASO,GAEjC,GAAI2f,GAAS3f,EAAoB,IAC7BmU,EAAOnU,EAAoB,GAC3B4f,EAAM5f,EAAoB,IAC1B6f,EAAO7f,EAAoB,IAC3B8f,EAAM9f,EAAoB,IAG1B+f,EAAU,SAAUxZ,EAAM9F,EAAMuf,GAClC,GASI1d,GAAK2d,EAAKC,EATVC,EAAY5Z,EAAOwZ,EAAQK,EAC3BC,EAAY9Z,EAAOwZ,EAAQO,EAC3BC,EAAYha,EAAOwZ,EAAQS,EAC3BC,EAAWla,EAAOwZ,EAAQW,EAC1BC,EAAUpa,EAAOwZ,EAAQa,EACzBC,EAAUta,EAAOwZ,EAAQe,EACzBrhB,EAAU4gB,EAAYlM,EAAOA,EAAK1T,KAAU0T,EAAK1T,OACjDsgB,EAAWthB,EAAiB,UAC5BwC,EAASoe,EAAYV,EAASY,EAAYZ,EAAOlf,IAASkf,EAAOlf,QAAsB,SAEvF4f,KAAWL,EAASvf,EACxB,KAAK6B,IAAO0d,IAEVC,GAAOE,GAAale,OAA0Be,KAAhBf,EAAOK,KAC1Bwd,EAAIrgB,EAAS6C,KAExB4d,EAAMD,EAAMhe,EAAOK,GAAO0d,EAAO1d,GAEjC7C,EAAQ6C,GAAO+d,GAAmC,kBAAfpe,GAAOK,GAAqB0d,EAAO1d,GAEpEqe,GAAWV,EAAML,EAAIM,EAAKP,GAE1BkB,GAAW5e,EAAOK,IAAQ4d,EAAM,SAAWc,GAC3C,GAAIZ,GAAI,SAAUzd,EAAGC,EAAGrC,GACtB,GAAIT,eAAgBkhB,GAAG,CACrB,OAAQ3b,UAAUlD,QAChB,IAAK,GAAG,MAAO,IAAI6e,EACnB,KAAK,GAAG,MAAO,IAAIA,GAAEre,EACrB,KAAK,GAAG,MAAO,IAAIqe,GAAEre,EAAGC,GACxB,MAAO,IAAIoe,GAAEre,EAAGC,EAAGrC,GACrB,MAAOygB,GAAEvH,MAAM3Z,KAAMuF,WAGzB,OADA+a,GAAW,UAAIY,EAAW,UACnBZ,GAENF,GAAOO,GAA0B,kBAAPP,GAAoBN,EAAIqB,SAAS5gB,KAAM6f,GAAOA,EAEvEO,KACDhhB,EAAQyhB,UAAYzhB,EAAQyhB,aAAe5e,GAAO4d,EAE/C3Z,EAAOwZ,EAAQoB,GAAKJ,IAAaA,EAASze,IAAMud,EAAKkB,EAAUze,EAAK4d,KAK9EH,GAAQK,EAAI,EACZL,EAAQO,EAAI,EACZP,EAAQS,EAAI,EACZT,EAAQW,EAAI,EACZX,EAAQa,EAAI,GACZb,EAAQe,EAAI,GACZf,EAAQqB,EAAI,GACZrB,EAAQoB,EAAI,IACZzhB,EAAOD,QAAUsgB,GAKX,SAAUrgB,EAAQD,GAGxB,GAAIkgB,GAASjgB,EAAOD,QAA2B,mBAAVoK,SAAyBA,OAAOrF,MAAQA,KACzEqF,OAAwB,mBAARhK,OAAuBA,KAAK2E,MAAQA,KAAO3E,KAE3DohB,SAAS,gBACK,iBAAPI,OAAiBA,IAAM1B,IAK5B,SAAUjgB,EAAQD,EAASO,GAGjCN,EAAOD,SAAWO,EAAoB,IAAI,WACxC,MAA+E,IAAxEY,OAAOC,kBAAmB,KAAOG,IAAK,WAAc,MAAO,MAAQ2B,KAMtE,SAAUjD,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAEjC,GAAIshB,GAAWthB,EAAoB,IAC/BuhB,EAAiBvhB,EAAoB,IACrCwhB,EAAcxhB,EAAoB,IAClCyhB,EAAK7gB,OAAOC,cAEhBpB,GAAQwO,EAAIjO,EAAoB,IAAMY,OAAOC,eAAiB,SAAwB6gB,EAAGhB,EAAGiB,GAI1F,GAHAL,EAASI,GACThB,EAAIc,EAAYd,GAAG,GACnBY,EAASK,GACLJ,EAAgB,IAClB,MAAOE,GAAGC,EAAGhB,EAAGiB,GAChB,MAAOtX,IACT,GAAI,OAASsX,IAAc,OAASA,GAAY,KAAM/f,WAAU,2BAEhE,OADI,SAAW+f,KAAYD,EAAEhB,GAAKiB,EAAWrd,OACtCod,IAMH,SAAUhiB,EAAQD,GAExB,GAAI6B,MAAoBA,cACxB5B,GAAOD,QAAU,SAAUmiB,EAAItf,GAC7B,MAAOhB,GAAejB,KAAKuhB,EAAItf,KAM3B,SAAU5C,EAAQD,EAASO,GAqBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAhBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIf,GAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCgZ,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAOvCoF,EAAW,WAMb,QAASA,GAAS1S,EAASoD,EAAMuP,IAC/B,EAAItF,EAA0B,SAAG1c,KAAM+hB,GAEvC/hB,KAAKyS,KAAOA,EACZzS,KAAKgiB,YAAcA,EACnBhiB,KAAK0V,WAAWrG,GAChBrP,KAAK8H,QAAM5E,GACXlD,KAAK0H,SAAOxE,GACZlD,KAAKmS,WAASjP,GACdlD,KAAKkS,UAAQhP,GACblD,KAAKiiB,WAAS/e,GACdlD,KAAKkiB,WAAShf,GACdlD,KAAKmiB,eAAgB,EACrBniB,KAAKoiB,aAAgBta,IAAK,EAAGJ,KAAM,EAAGE,MAAO,EAAGya,OAAQ,GAuT1D,OA9SA,EAAIzF,EAAuB,SAAGmF,IAC5Bvf,IAAK,aACLgC,MAAO,SAAoB6K,GACzBrP,KAAKqP,QAAUA,KAUjB7M,IAAK,cACLgC,MAAO,SAAqBwd,GAC1BhiB,KAAKkiB,UACDliB,KAAKqP,QAAQ6S,SACsC,WAAjD,EAAIxe,EAAkB,SAAG1D,KAAKqP,QAAQ6S,SACxCliB,KAAKkiB,OAAOpa,IAAM9H,KAAKqP,QAAQ6S,OAAOpa,IACtC9H,KAAKkiB,OAAOta,MAAQ5H,KAAKqP,QAAQ6S,OAAOta,MACxC5H,KAAKkiB,OAAOG,OAASriB,KAAKqP,QAAQ6S,OAAOG,OACzCriB,KAAKkiB,OAAOxa,KAAO1H,KAAKqP,QAAQ6S,OAAOxa,OAEvC1H,KAAKkiB,OAAOpa,IAAM9H,KAAKqP,QAAQ6S,OAC/BliB,KAAKkiB,OAAOta,MAAQ5H,KAAKqP,QAAQ6S,OACjCliB,KAAKkiB,OAAOG,OAASriB,KAAKqP,QAAQ6S,OAClCliB,KAAKkiB,OAAOxa,KAAO1H,KAAKqP,QAAQ6S,SAGpCF,EAAYM,YAAYtiB,KAAKkiB,WAY/B1f,IAAK,oBACLgC,MAAO,SAA2Bsb,EAAKyC,GACrC,GAAIC,GAAcxiB,KAAKqP,QAAQmT,WAE/B,OADAxiB,MAAKyiB,OAAO3C,GACLpb,KAAKL,IAAIK,KAAKge,IAAI1iB,KAAKkS,MAAQ,EAAIxN,KAAKie,IAAIJ,IAAS7d,KAAKge,IAAI1iB,KAAKmS,OAAS,EAAIzN,KAAKke,IAAIL,KAAWC,KAU7GhgB,IAAK,eACLgC,MAAO,SAAsBsb,EAAK7G,GAC5BA,EAAO4J,SACT/C,EAAIgD,YAAc7J,EAAO6J,YACzBhD,EAAIiD,WAAa9J,EAAO+J,WACxBlD,EAAImD,cAAgBhK,EAAOiK,QAC3BpD,EAAIqD,cAAgBlK,EAAOmK,YAW/B5gB,IAAK,gBACLgC,MAAO,SAAuBsb,EAAK7G,GAC7BA,EAAO4J,SACT/C,EAAIgD,YAAc,gBAClBhD,EAAIiD,WAAa,EACjBjD,EAAImD,cAAgB,EACpBnD,EAAIqD,cAAgB,MAWxB3gB,IAAK,qBACLgC,MAAO,SAA4Bsb,EAAK7G,GACtC,IAA4B,IAAxBA,EAAOoK,aACT,OAAwBngB,KAApB4c,EAAIwD,YAA2B,CACjC,GAAIC,GAAStK,EAAOoK,cACL,IAAXE,IACFA,GAAU,EAAG,KAEfzD,EAAIwD,YAAYC,OAEhBrM,SAAQC,KAAK,oFACbnX,KAAKqP,QAAQmU,gBAAgBH,cAAe,EAC5CpK,EAAOoK,cAAe,KAY5B7gB,IAAK,sBACLgC,MAAO,SAA6Bsb,EAAK7G,IACX,IAAxBA,EAAOoK,mBACengB,KAApB4c,EAAIwD,YACNxD,EAAIwD,aAAa,KAEjBpM,QAAQC,KAAK,oFACbnX,KAAKqP,QAAQmU,gBAAgBH,cAAe,EAC5CpK,EAAOoK,cAAe,OAe5B7gB,IAAK,eACLgC,MAAO,SAAsBif,EAAUvW,GACrC,OAA2B,IAAvBlN,KAAKmiB,eAGPniB,KAAKmiB,eAAgB,GACd,OAGajf,KAAflD,KAAKkS,OAAuBlS,KAAKgiB,YAAY0B,eAAeD,EAAUvW,MAU/E1K,IAAK,qBACLgC,MAAO,SAA4Bsb,EAAK7G,GACtC,GAAIuJ,GAAcvJ,EAAOuJ,YAAcxiB,KAAKyS,KAAKkR,KAAKlf,KAEtDqb,GAAI8D,UAAYlf,KAAKL,IAAIrE,KAAKkS,MAAOsQ,GACrC1C,EAAI+D,YAAc5K,EAAO6K,YACzBhE,EAAIiE,UAAY9K,EAAOzN,SAUzBhJ,IAAK,gBACLgC,MAAO,SAAuBsb,EAAK7G,GACjC,GAAIuJ,GAAcvJ,EAAOuJ,YAAcxiB,KAAKyS,KAAKkR,KAAKlf,KAGtDqb,GAAIkE,OAEAxB,EAAc,IAChBxiB,KAAKikB,mBAAmBnE,EAAK7G,GAE7B6G,EAAIoE,SAEJlkB,KAAKmkB,oBAAoBrE,EAAK7G,IAEhC6G,EAAIsE,aAUN5hB,IAAK,cACLgC,MAAO,SAAqBsb,EAAK7G,GAE/BjZ,KAAKqkB,aAAavE,EAAK7G,GAEvB6G,EAAIwE,OAEJtkB,KAAKukB,cAAczE,EAAK7G,GAExBjZ,KAAKwkB,cAAc1E,EAAK7G,MAU1BzW,IAAK,wBACLgC,MAAO,SAA+B0d,GACpCliB,KAAKoiB,YAAY1a,MAAQwa,EACzBliB,KAAKoiB,YAAYta,KAAOoa,EACxBliB,KAAKoiB,YAAYC,QAAUH,EAC3BliB,KAAKoiB,YAAYxa,OAASsa,KAkB5B1f,IAAK,qBACLgC,MAAO,SAA4BmL,EAAGgM,EAAGmE,EAAK2D,EAAUvW,OAC1ChK,KAAR4c,GACF9f,KAAKyiB,OAAO3C,EAAK2D,EAAUvW,GAG7BlN,KAAK0H,KAAOiI,EAAI3P,KAAKkS,MAAQ,EAC7BlS,KAAK8H,IAAM6T,EAAI3b,KAAKmS,OAAS,EAE7BnS,KAAKoiB,YAAY1a,KAAO1H,KAAK0H,KAC7B1H,KAAKoiB,YAAYta,IAAM9H,KAAK8H,IAC5B9H,KAAKoiB,YAAYC,OAASriB,KAAK8H,IAAM9H,KAAKmS,OAC1CnS,KAAKoiB,YAAYxa,MAAQ5H,KAAK0H,KAAO1H,KAAKkS,SAe5C1P,IAAK,oBACLgC,MAAO,SAA2BmL,EAAGgM,EAAGmE,EAAK2D,EAAUvW,GACrDlN,KAAKykB,mBAAmB9U,EAAGgM,EAAGmE,EAAK2D,EAAUvW,MAkB/C1K,IAAK,yBACLgC,MAAO,SAAgCsb,EAAK2D,EAAUvW,GAGpDlN,KAAK0kB,SAAW1kB,KAAKgiB,YAAY2C,YAAY7E,EAAK2D,EAAUvW,EAC5D,IAAIgF,GAAQlS,KAAK0kB,SAASxS,MACtBC,EAASnS,KAAK0kB,SAASvS,MAS3B,OANc,KAAVD,IAEFA,EAHiB,GAIjBC,EAJiB,KAOVD,MAAOA,EAAOC,OAAQA,OAG5B4P,IAGTpiB,GAAiB,QAAIoiB,GAIf,SAAUniB,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCE,EAAahlB,EAAoB,IAEjCilB,EAAaxiB,EAAuBuiB,GASpCE,EAAY,SAAUC,GAQxB,QAASD,GAAU/V,EAASoD,EAAMuP,GAEhC,OADA,EAAItF,EAA0B,SAAG1c,KAAMolB,IAChC,EAAIL,EAAqC,SAAG/kB,MAAOolB,EAAUpR,YAAa,EAAI6Q,EAA0B,SAAGO,IAAY7kB,KAAKP,KAAMqP,EAASoD,EAAMuP,IAmF1J,OA5FA,EAAIiD,EAAoB,SAAGG,EAAWC,IAqBtC,EAAIzI,EAAuB,SAAGwI,IAC5B5iB,IAAK,SACLgC,MAAO,SAAgBsb,GACrB,GAAI2D,GAAWle,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKyjB,SACpFvW,EAAQ3H,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKkN,MACjF+L,EAAS1T,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,IAAOyW,KAAMhc,KAAKqP,QAAQ2M,KAEtG,IAAIhc,KAAKslB,aAAa7B,EAAUvW,GAAQ,CACtClN,KAAKgiB,YAAY2C,YAAY7E,EAAK2D,EAAUvW,EAC5C,IAAI8O,GAAO,EAAI/C,EAAO+C,IACtBhc,MAAKkS,MAAQ8J,EACbhc,KAAKmS,OAAS6J,EACdhc,KAAKiiB,OAAS,GAAMjiB,KAAKkS,UAkB7B1P,IAAK,aACLgC,MAAO,SAAoBsb,EAAKyF,EAAOC,EAAgB7V,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAS5E,GARAjZ,KAAKyiB,OAAO3C,EAAK2D,EAAUvW,EAAO+L,GAClCjZ,KAAK0H,KAAOiI,EAAI3P,KAAKkS,MAAQ,EAC7BlS,KAAK8H,IAAM6T,EAAI3b,KAAKmS,OAAS,EAE7BnS,KAAKylB,mBAAmB3F,EAAK7G,GAC7B6G,EAAIyF,GAAO5V,EAAGgM,EAAG1C,EAAO+C,MACxBhc,KAAK0lB,YAAY5F,EAAK7G,OAEK/V,KAAvBlD,KAAKqP,QAAQ4M,MAAqB,CAEpCjc,KAAKgiB,YAAY2D,mBAAmB7F,EAAK2D,EAAUvW,EAAOyC,EAAGgM,EAAG,UAChE,IAAIiK,GAASjK,EAAI,GAAM3b,KAAKmS,OAAS,GAAMnS,KAAKgiB,YAAYhG,KAAK7J,MACjEnS,MAAKgiB,YAAY6D,KAAK/F,EAAKnQ,EAAGiW,EAAQnC,EAAUvW,EAAO,WAGzDlN,KAAK8lB,kBAAkBnW,EAAGgM,MAU5BnZ,IAAK,oBACLgC,MAAO,SAA2BmL,EAAGgM,GACnC3b,KAAKoiB,YAAYta,IAAM6T,EAAI3b,KAAKqP,QAAQ2M,KACxChc,KAAKoiB,YAAY1a,KAAOiI,EAAI3P,KAAKqP,QAAQ2M,KACzChc,KAAKoiB,YAAYxa,MAAQ+H,EAAI3P,KAAKqP,QAAQ2M,KAC1Chc,KAAKoiB,YAAYC,OAAS1G,EAAI3b,KAAKqP,QAAQ2M,SAEhB9Y,KAAvBlD,KAAKqP,QAAQ4M,OAAuBjc,KAAKgiB,YAAYhG,KAAK9J,MAAQ,IACpElS,KAAKoiB,YAAY1a,KAAOhD,KAAKL,IAAIrE,KAAKoiB,YAAY1a,KAAM1H,KAAKgiB,YAAYhG,KAAKtU,MAC9E1H,KAAKoiB,YAAYxa,MAAQlD,KAAKJ,IAAItE,KAAKoiB,YAAYxa,MAAO5H,KAAKgiB,YAAYhG,KAAKtU,KAAO1H,KAAKgiB,YAAYhG,KAAK9J,OAC7GlS,KAAKoiB,YAAYC,OAAS3d,KAAKJ,IAAItE,KAAKoiB,YAAYC,OAAQriB,KAAKoiB,YAAYC,OAASriB,KAAKgiB,YAAYhG,KAAK7J,aAI3GiT,GACPD,EAAoB,QAEtBxlB,GAAiB,QAAIylB,GAIf,SAAUxlB,EAAQD,EAASO,GAGjC,GAAI6lB,GAAU7lB,EAAoB,IAC9B8lB,EAAU9lB,EAAoB,GAClCN,GAAOD,QAAU,SAAUmiB,GACzB,MAAOiE,GAAQC,EAAQlE,MAMnB,SAAUliB,EAAQD,EAASO,GAEjC,GAAIyhB,GAAKzhB,EAAoB,IACzB+lB,EAAa/lB,EAAoB,GACrCN,GAAOD,QAAUO,EAAoB,IAAM,SAAUmB,EAAQmB,EAAKgC,GAChE,MAAOmd,GAAGxT,EAAE9M,EAAQmB,EAAKyjB,EAAW,EAAGzhB,KACrC,SAAUnD,EAAQmB,EAAKgC,GAEzB,MADAnD,GAAOmB,GAAOgC,EACPnD,IAMH,SAAUzB,EAAQD,EAASO,GAEjC,GAAIsP,GAAWtP,EAAoB,GACnCN,GAAOD,QAAU,SAAUmiB,GACzB,IAAKtS,EAASsS,GAAK,KAAMhgB,WAAUggB,EAAK,qBACxC,OAAOA,KAMH,SAAUliB,EAAQD,GAExBC,EAAOD,QAAU,SAAUmiB,GACzB,MAAqB,gBAAPA,GAAyB,OAAPA,EAA4B,kBAAPA,KAMjD,SAAUliB,EAAQD,GAExBC,EAAOD,QAAU,SAAUqF,GACzB,IACE,QAASA,IACT,MAAOuF,GACP,OAAO,KAOL,SAAU3K,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAejC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAASM,GAVvFtC,EAAQyB,YAAa,CAErB,IAAI8kB,GAAehmB,EAAoB,KAEnCimB,EAAexjB,EAAuBujB,GAEtC/iB,EAAgBjD,EAAoB,IAEpCkD,EAAgBT,EAAuBQ,EAI3CxD,GAAQgC,QAAU,WAChB,QAASykB,GAAcjf,EAAK9G,GAC1B,GAAIgmB,MACAC,GAAK,EACLC,GAAK,EACLC,MAAKtjB,EAET,KACE,IAAK,GAA0CujB,GAAtCtH,GAAK,EAAI/b,EAAczB,SAASwF,KAAYmf,GAAMG,EAAKtH,EAAG5L,QAAQC,QACzE6S,EAAKjgB,KAAKqgB,EAAGjiB,QAETnE,GAAKgmB,EAAKhkB,SAAWhC,GAHuDimB,GAAK,IAKvF,MAAO5S,GACP6S,GAAK,EACLC,EAAK9S,EACL,QACA,KACO4S,GAAMnH,EAAW,QAAGA,EAAW,SACpC,QACA,GAAIoH,EAAI,KAAMC,IAIlB,MAAOH,GAGT,MAAO,UAAUlf,EAAK9G,GACpB,GAAIsF,MAAMC,QAAQuB,GAChB,MAAOA,EACF,KAAI,EAAIgf,EAAaxkB,SAASb,OAAOqG,IAC1C,MAAOif,GAAcjf,EAAK9G,EAE1B,MAAM,IAAIyB,WAAU,6DAOpB,SAAUlC,EAAQD,GAExBC,EAAOD,YAKD,SAAUC,EAAQD,EAASO,GAGjC,GAAIwmB,GAAQxmB,EAAoB,IAC5BymB,EAAczmB,EAAoB,GAEtCN,GAAOD,QAAUmB,OAAO8lB,MAAQ,SAAchF,GAC5C,MAAO8E,GAAM9E,EAAG+E,KAMZ,SAAU/mB,EAAQD,EAASO,GAGjC,GAAI8lB,GAAU9lB,EAAoB,GAClCN,GAAOD,QAAU,SAAUmiB,GACzB,MAAOhhB,QAAOklB,EAAQlE,MAMlB,SAAUliB,EAAQD,EAASO,GAWjC,QAAS2mB,GAAQlX,EAAGgM,EAAGmL,GACrB9mB,KAAK2P,MAAUzM,KAANyM,EAAkBA,EAAI,EAC/B3P,KAAK2b,MAAUzY,KAANyY,EAAkBA,EAAI,EAC/B3b,KAAK8mB,MAAU5jB,KAAN4jB,EAAkBA,EAAI,EASjCD,EAAQE,SAAW,SAAUlkB,EAAGC,GAC9B,GAAIkkB,GAAM,GAAIH,EAId,OAHAG,GAAIrX,EAAI9M,EAAE8M,EAAI7M,EAAE6M,EAChBqX,EAAIrL,EAAI9Y,EAAE8Y,EAAI7Y,EAAE6Y,EAChBqL,EAAIF,EAAIjkB,EAAEikB,EAAIhkB,EAAEgkB,EACTE,GASTH,EAAQpR,IAAM,SAAU5S,EAAGC,GACzB,GAAImkB,GAAM,GAAIJ,EAId,OAHAI,GAAItX,EAAI9M,EAAE8M,EAAI7M,EAAE6M,EAChBsX,EAAItL,EAAI9Y,EAAE8Y,EAAI7Y,EAAE6Y,EAChBsL,EAAIH,EAAIjkB,EAAEikB,EAAIhkB,EAAEgkB,EACTG,GASTJ,EAAQK,IAAM,SAAUrkB,EAAGC,GACzB,MAAO,IAAI+jB,IAAShkB,EAAE8M,EAAI7M,EAAE6M,GAAK,GAAI9M,EAAE8Y,EAAI7Y,EAAE6Y,GAAK,GAAI9Y,EAAEikB,EAAIhkB,EAAEgkB,GAAK,IAUrED,EAAQM,aAAe,SAAUtkB,EAAGC,GAClC,GAAIskB,GAAe,GAAIP,EAMvB,OAJAO,GAAazX,EAAI9M,EAAE8Y,EAAI7Y,EAAEgkB,EAAIjkB,EAAEikB,EAAIhkB,EAAE6Y,EACrCyL,EAAazL,EAAI9Y,EAAEikB,EAAIhkB,EAAE6M,EAAI9M,EAAE8M,EAAI7M,EAAEgkB,EACrCM,EAAaN,EAAIjkB,EAAE8M,EAAI7M,EAAE6Y,EAAI9Y,EAAE8Y,EAAI7Y,EAAE6M,EAE9ByX,GAOTP,EAAQtlB,UAAUc,OAAS,WACzB,MAAOqC,MAAK2iB,KAAKrnB,KAAK2P,EAAI3P,KAAK2P,EAAI3P,KAAK2b,EAAI3b,KAAK2b,EAAI3b,KAAK8mB,EAAI9mB,KAAK8mB,IAGrElnB,EAAOD,QAAUknB,GAIX,SAAUjnB,EAAQD,EAASO,GAGjC,GAAIonB,GAAgCC,EAA8BC,GAOjE,SAAU/nB,EAAMC,GAGX6nB,KAAmCD,EAAiC,MAGpCpkB,MAFlCskB,EAA2E,kBAAnCF,GACvCA,EAA+B3N,MAAMha,EAAS4nB,GAAiCD,KAChC1nB,EAAOD,QAAU6nB,IAUnExnB,EAAM,WAEN,QAASynB,GAASpY,GAChB,GAOIhP,GAPAwJ,EAAiBwF,GAAWA,EAAQxF,iBAAkB,EAEtD6d,EAAYrY,GAAWA,EAAQqY,WAAa3d,OAE5C4d,KACAC,GAAUC,WAAYC,UACtBvkB,IAIJ,KAAKlD,EAAI,GAAIA,GAAK,IAAKA,IAAMkD,EAAMqB,OAAOmjB,aAAa1nB,KAAO2nB,KAAW3nB,EAAI,GAAV,GAAegb,OAAO,EAEzF,KAAKhb,EAAI,GAAIA,GAAK,GAAIA,IAAMkD,EAAMqB,OAAOmjB,aAAa1nB,KAAO2nB,KAAK3nB,EAAGgb,OAAO,EAE5E,KAAKhb,EAAI,EAAIA,GAAK,EAAKA,IAAMkD,EAAM,GAAKlD,IAAM2nB,KAAK,GAAK3nB,EAAGgb,OAAO,EAElE,KAAKhb,EAAI,EAAIA,GAAK,GAAMA,IAAMkD,EAAM,IAAMlD,IAAM2nB,KAAK,IAAM3nB,EAAGgb,OAAO,EAErE,KAAKhb,EAAI,EAAIA,GAAK,EAAKA,IAAMkD,EAAM,MAAQlD,IAAM2nB,KAAK,GAAK3nB,EAAGgb,OAAO,EAGrE9X,GAAM,SAAWykB,KAAK,IAAK3M,OAAO,GAClC9X,EAAM,SAAWykB,KAAK,IAAK3M,OAAO,GAClC9X,EAAM,SAAWykB,KAAK,IAAK3M,OAAO,GAClC9X,EAAM,SAAWykB,KAAK,IAAK3M,OAAO,GAClC9X,EAAM,SAAWykB,KAAK,IAAK3M,OAAO,GAElC9X,EAAY,MAAMykB,KAAK,GAAI3M,OAAO,GAClC9X,EAAU,IAAQykB,KAAK,GAAI3M,OAAO,GAClC9X,EAAa,OAAKykB,KAAK,GAAI3M,OAAO,GAClC9X,EAAY,MAAMykB,KAAK,GAAI3M,OAAO,GAElC9X,EAAa,OAAKykB,KAAK,GAAI3M,OAAO,GAClC9X,EAAa,OAAKykB,KAAK,GAAI3M,OAAO,GAClC9X,EAAa,OAAKykB,KAAK,GAAI3M,UAAOnY,IAClCK,EAAW,KAAOykB,KAAK,GAAI3M,OAAO,GAClC9X,EAAiB,WAAKykB,KAAK,EAAG3M,OAAO,GACrC9X,EAAW,KAAWykB,KAAK,EAAG3M,OAAO,GACrC9X,EAAY,MAAUykB,KAAK,GAAI3M,OAAO,GACtC9X,EAAW,KAAWykB,KAAK,GAAI3M,OAAO,GACtC9X,EAAc,QAAQykB,KAAK,GAAI3M,OAAO,GACtC9X,EAAc,QAAQykB,KAAK,GAAI3M,OAAO,GACtC9X,EAAgB,UAAMykB,KAAK,GAAI3M,OAAO,GAEtC9X,EAAM,MAAYykB,KAAK,IAAK3M,OAAO,GACnC9X,EAAM,MAAYykB,KAAK,IAAK3M,OAAO,GACnC9X,EAAM,MAAYykB,KAAK,IAAK3M,OAAO,GACnC9X,EAAM,MAAYykB,KAAK,IAAK3M,OAAO,EAInC,IAAI4M,GAAO,SAASne,GAAQoe,EAAYpe,EAAM,YAC1Cqe,EAAK,SAASre,GAAQoe,EAAYpe,EAAM,UAGxCoe,EAAc,SAASpe,EAAMrD,GAC/B,OAAoCvD,KAAhC0kB,EAAOnhB,GAAMqD,EAAMse,SAAwB,CAE7C,IAAK,GADDC,GAAQT,EAAOnhB,GAAMqD,EAAMse,SACtB/nB,EAAI,EAAGA,EAAIgoB,EAAMhmB,OAAQhC,QACT6C,KAAnBmlB,EAAMhoB,GAAGgb,MACXgN,EAAMhoB,GAAG2I,GAAGc,GAEa,GAAlBue,EAAMhoB,GAAGgb,OAAmC,GAAlBvR,EAAMwe,SACvCD,EAAMhoB,GAAG2I,GAAGc,GAEa,GAAlBue,EAAMhoB,GAAGgb,OAAoC,GAAlBvR,EAAMwe,UACxCD,EAAMhoB,GAAG2I,GAAGc,EAIM,IAAlBD,GACFC,EAAMD,kBA4FZ,OAtFA8d,GAAiBY,KAAO,SAAS/lB,EAAKmG,EAAUlC,GAI9C,OAHavD,KAATuD,IACFA,EAAO,eAEUvD,KAAfK,EAAMf,GACR,KAAM,IAAIqD,OAAM,oBAAsBrD,OAEFU,KAAlC0kB,EAAOnhB,GAAMlD,EAAMf,GAAKwlB,QAC1BJ,EAAOnhB,GAAMlD,EAAMf,GAAKwlB,UAE1BJ,EAAOnhB,GAAMlD,EAAMf,GAAKwlB,MAAM5hB,MAAM4C,GAAGL,EAAU0S,MAAM9X,EAAMf,GAAK6Y,SAKpEsM,EAAiBa,QAAU,SAAS7f,EAAUlC,OAC/BvD,KAATuD,IACFA,EAAO,UAET,KAAK,GAAIjE,KAAOe,GACVA,EAAM/B,eAAegB,IACvBmlB,EAAiBY,KAAK/lB,EAAImG,EAASlC,IAMzCkhB,EAAiBc,OAAS,SAAS3e,GACjC,IAAK,GAAItH,KAAOe,GACd,GAAIA,EAAM/B,eAAegB,GAAM,CAC7B,GAAsB,GAAlBsH,EAAMwe,UAAwC,GAApB/kB,EAAMf,GAAK6Y,OAAiBvR,EAAMse,SAAW7kB,EAAMf,GAAKwlB,KACpF,MAAOxlB,EAEJ,IAAsB,GAAlBsH,EAAMwe,UAAyC,GAApB/kB,EAAMf,GAAK6Y,OAAkBvR,EAAMse,SAAW7kB,EAAMf,GAAKwlB,KAC3F,MAAOxlB,EAEJ,IAAIsH,EAAMse,SAAW7kB,EAAMf,GAAKwlB,MAAe,SAAPxlB,EAC3C,MAAOA,GAIb,MAAO,wCAITmlB,EAAiBe,OAAS,SAASlmB,EAAKmG,EAAUlC,GAIhD,OAHavD,KAATuD,IACFA,EAAO,eAEUvD,KAAfK,EAAMf,GACR,KAAM,IAAIqD,OAAM,oBAAsBrD,EAExC,QAAiBU,KAAbyF,EAAwB,CAC1B,GAAIggB,MACAN,EAAQT,EAAOnhB,GAAMlD,EAAMf,GAAKwlB,KACpC,QAAc9kB,KAAVmlB,EACF,IAAK,GAAIhoB,GAAI,EAAGA,EAAIgoB,EAAMhmB,OAAQhC,IAC1BgoB,EAAMhoB,GAAG2I,IAAML,GAAY0f,EAAMhoB,GAAGgb,OAAS9X,EAAMf,GAAK6Y,OAC5DsN,EAAYviB,KAAKwhB,EAAOnhB,GAAMlD,EAAMf,GAAKwlB,MAAM3nB,GAIrDunB,GAAOnhB,GAAMlD,EAAMf,GAAKwlB,MAAQW,MAGhCf,GAAOnhB,GAAMlD,EAAMf,GAAKwlB,UAK5BL,EAAiBiB,MAAQ,WACvBhB,GAAUC,WAAYC,WAIxBH,EAAiB/S,QAAU,WACzBgT,GAAUC,WAAYC,UACtBJ,EAAU/d,oBAAoB,UAAWse,GAAM,GAC/CP,EAAU/d,oBAAoB,QAASwe,GAAI,IAI7CT,EAAUve,iBAAiB,UAAU8e,GAAK,GAC1CP,EAAUve,iBAAiB,QAAQgf,GAAG,GAG/BR,EAGT,MAAOF,MAQH,SAAU7nB,EAAQD,EAASO,GAajCP,EAAQkpB,qBAAuB,SAAUllB,EAAQ8O,EAAMqW,GACrD,GAAIA,IAAgBnjB,MAAMC,QAAQkjB,GAChC,MAAOnpB,GAAQkpB,qBAAqBllB,EAAQ8O,GAAOqW,GAIrD,IADArW,EAAKqW,eACDA,GACgC,GAA9BnjB,MAAMC,QAAQkjB,GAAsB,CACtC,IAAK,GAAIzoB,GAAI,EAAGA,EAAIyoB,EAAYzmB,OAAQhC,IACtC,OAA8B6C,KAA1B4lB,EAAYzoB,GAAG0oB,OAAsB,CACvC,GAAIC,KACJA,GAASC,MAAQtlB,EAAOmlB,EAAYzoB,GAAG4oB,OAAOniB,SAASF,UACvDoiB,EAASE,IAAMvlB,EAAOmlB,EAAYzoB,GAAG6oB,KAAKpiB,SAASF,UACnD6L,EAAKqW,YAAY1iB,KAAK4iB,GAG1BvW,EAAKqW,YAAY1Q,KAAK,SAAUvV,EAAGC,GACjC,MAAOD,GAAEomB,MAAQnmB,EAAEmmB,UAc3BtpB,EAAQwpB,kBAAoB,SAAUxlB,EAAQ8O,EAAMqW,GAClD,GAAIA,IAAgBnjB,MAAMC,QAAQkjB,GAChC,MAAOnpB,GAAQwpB,kBAAkBxlB,EAAQ8O,GAAOqW,GAGlD,IAAIA,OAAuD5lB,KAAxCuP,EAAK2W,SAASC,gBAAgBnX,MAAqB,CACpEvS,EAAQkpB,qBAAqBllB,EAAQ8O,EAAMqW,EAQ3C,KAAK,GANDG,GAAQtlB,EAAO8O,EAAK6W,MAAML,OAC1BC,EAAMvlB,EAAO8O,EAAK6W,MAAMJ,KAExBK,EAAa9W,EAAK6W,MAAMJ,IAAMzW,EAAK6W,MAAML,MACzCO,EAAYD,EAAa9W,EAAK2W,SAASC,gBAAgBnX,MAElD7R,EAAI,EAAGA,EAAIyoB,EAAYzmB,OAAQhC,IACtC,OAA8B6C,KAA1B4lB,EAAYzoB,GAAG0oB,OAAsB,CACvC,GAAIU,GAAY9lB,EAAOmlB,EAAYzoB,GAAG4oB,OAClCS,EAAU/lB,EAAOmlB,EAAYzoB,GAAG6oB,IAEpC,IAAoB,gBAAhBO,EAAUlD,GACZ,KAAM,IAAI1gB,OAAM,qCAAuCijB,EAAYzoB,GAAG4oB,MAExE,IAAkB,gBAAdS,EAAQnD,GACV,KAAM,IAAI1gB,OAAM,mCAAqCijB,EAAYzoB,GAAG6oB,IAGtE,IAAIS,GAAWD,EAAUD,CACzB,IAAIE,GAAY,EAAIH,EAAW,CAE7B,GAAII,GAAS,EACTC,EAAWX,EAAIY,OACnB,QAAQhB,EAAYzoB,GAAG0oB,QACrB,IAAK,QAECU,EAAUM,OAASL,EAAQK,QAC7BH,EAAS,GAEXH,EAAUO,UAAUf,EAAMe,aAC1BP,EAAUQ,KAAKhB,EAAMgB,QACrBR,EAAU1C,SAAS,EAAG,QAEtB2C,EAAQM,UAAUf,EAAMe,aACxBN,EAAQO,KAAKhB,EAAMgB,QACnBP,EAAQ3C,SAAS,EAAI6C,EAAQ,QAE7BC,EAASpU,IAAI,EAAG,QAChB,MACF,KAAK,SACH,GAAIyU,GAAYR,EAAQS,KAAKV,EAAW,QACpCM,EAAMN,EAAUM,KAGpBN,GAAUW,KAAKnB,EAAMmB,QACrBX,EAAUY,MAAMpB,EAAMoB,SACtBZ,EAAUQ,KAAKhB,EAAMgB,QACrBP,EAAUD,EAAUK,QAGpBL,EAAUM,IAAIA,GACdL,EAAQK,IAAIA,GACZL,EAAQjU,IAAIyU,EAAW,QAEvBT,EAAU1C,SAAS,EAAG,SACtB2C,EAAQ3C,SAAS,EAAG,SAEpB8C,EAASpU,IAAI,EAAG,QAChB,MACF,KAAK,UACCgU,EAAUY,SAAWX,EAAQW,UAC/BT,EAAS,GAEXH,EAAUY,MAAMpB,EAAMoB,SACtBZ,EAAUQ,KAAKhB,EAAMgB,QACrBR,EAAU1C,SAAS,EAAG,UAEtB2C,EAAQW,MAAMpB,EAAMoB,SACpBX,EAAQO,KAAKhB,EAAMgB,QACnBP,EAAQ3C,SAAS,EAAG,UACpB2C,EAAQjU,IAAImU,EAAQ,UAEpBC,EAASpU,IAAI,EAAG,SAChB,MACF,KAAK,SACCgU,EAAUQ,QAAUP,EAAQO,SAC9BL,EAAS,GAEXH,EAAUQ,KAAKhB,EAAMgB,QACrBR,EAAU1C,SAAS,EAAG,SACtB2C,EAAQO,KAAKhB,EAAMgB,QACnBP,EAAQ3C,SAAS,EAAG,SACpB2C,EAAQjU,IAAImU,EAAQ,SAEpBC,EAASpU,IAAI,EAAG,QAChB,MACF,SAEE,WADAyB,SAAQ0G,IAAI,2EAA4EkL,EAAYzoB,GAAG0oB,QAG3G,KAAOU,EAAYI,GAEjB,OADApX,EAAKqW,YAAY1iB,MAAO6iB,MAAOQ,EAAU7iB,UAAWsiB,IAAKQ,EAAQ9iB,YACzDkiB,EAAYzoB,GAAG0oB,QACrB,IAAK,QACHU,EAAUhU,IAAI,EAAG,QACjBiU,EAAQjU,IAAI,EAAG,OACf,MACF,KAAK,SACHgU,EAAUhU,IAAI,EAAG,SACjBiU,EAAQjU,IAAI,EAAG,QACf,MACF,KAAK,UACHgU,EAAUhU,IAAI,EAAG,UACjBiU,EAAQjU,IAAI,EAAG,SACf,MACF,KAAK,SACHgU,EAAUhU,IAAI,EAAG,KACjBiU,EAAQjU,IAAI,EAAG,IACf,MACF,SAEE,WADAyB,SAAQ0G,IAAI,2EAA4EkL,EAAYzoB,GAAG0oB,QAI7GtW,EAAKqW,YAAY1iB,MAAO6iB,MAAOQ,EAAU7iB,UAAWsiB,IAAKQ,EAAQ9iB,aAKvEjH,EAAQ2qB,iBAAiB7X,EAEzB,IAAI8X,GAAc5qB,EAAQ6qB,SAAS/X,EAAK6W,MAAML,MAAOxW,EAAKqW,aACtD2B,EAAY9qB,EAAQ6qB,SAAS/X,EAAK6W,MAAMJ,IAAKzW,EAAKqW,aAClD4B,EAAajY,EAAK6W,MAAML,MACxB0B,EAAWlY,EAAK6W,MAAMJ,GACA,IAAtBqB,EAAYK,SACdF,EAAwC,GAA3BjY,EAAK6W,MAAMuB,aAAuBN,EAAYd,UAAY,EAAIc,EAAYb,QAAU,GAE3E,GAApBe,EAAUG,SACZD,EAAoC,GAAzBlY,EAAK6W,MAAMwB,WAAqBL,EAAUhB,UAAY,EAAIgB,EAAUf,QAAU,GAEjE,GAAtBa,EAAYK,QAAsC,GAApBH,EAAUG,QAC1CnY,EAAK6W,MAAMyB,YAAYL,EAAYC,KAWzChrB,EAAQ2qB,iBAAmB,SAAU7X,GAGnC,IAAK,GAFDqW,GAAcrW,EAAKqW,YACnBkC,KACK3qB,EAAI,EAAGA,EAAIyoB,EAAYzmB,OAAQhC,IACtC,IAAK,GAAI6O,GAAI,EAAGA,EAAI4Z,EAAYzmB,OAAQ6M,IAClC7O,GAAK6O,GAA8B,GAAzB4Z,EAAY5Z,GAAGqJ,QAA2C,GAAzBuQ,EAAYzoB,GAAGkY,SAExDuQ,EAAY5Z,GAAG+Z,OAASH,EAAYzoB,GAAG4oB,OAASH,EAAY5Z,GAAGga,KAAOJ,EAAYzoB,GAAG6oB,IACvFJ,EAAY5Z,GAAGqJ,QAAS,EAGjBuQ,EAAY5Z,GAAG+Z,OAASH,EAAYzoB,GAAG4oB,OAASH,EAAY5Z,GAAG+Z,OAASH,EAAYzoB,GAAG6oB,KAC5FJ,EAAYzoB,GAAG6oB,IAAMJ,EAAY5Z,GAAGga,IACpCJ,EAAY5Z,GAAGqJ,QAAS,GAGjBuQ,EAAY5Z,GAAGga,KAAOJ,EAAYzoB,GAAG4oB,OAASH,EAAY5Z,GAAGga,KAAOJ,EAAYzoB,GAAG6oB,MACxFJ,EAAYzoB,GAAG4oB,MAAQH,EAAY5Z,GAAG+Z,MACtCH,EAAY5Z,GAAGqJ,QAAS,GAMpC,KAAKlY,EAAI,EAAGA,EAAIyoB,EAAYzmB,OAAQhC,KACJ,IAA1ByoB,EAAYzoB,GAAGkY,QACjByS,EAAU5kB,KAAK0iB,EAAYzoB,GAI/BoS,GAAKqW,YAAckC,EACnBvY,EAAKqW,YAAY1Q,KAAK,SAAUvV,EAAGC,GACjC,MAAOD,GAAEomB,MAAQnmB,EAAEmmB,SAIvBtpB,EAAQsrB,WAAa,SAAUC,GAC7B,IAAK,GAAI7qB,GAAI,EAAGA,EAAI6qB,EAAM7oB,OAAQhC,IAChC6W,QAAQ0G,IAAIvd,EAAG,GAAIyE,MAAKomB,EAAM7qB,GAAG4oB,OAAQ,GAAInkB,MAAKomB,EAAM7qB,GAAG6oB,KAAMgC,EAAM7qB,GAAG4oB,MAAOiC,EAAM7qB,GAAG6oB,IAAKgC,EAAM7qB,GAAGkY,SAU5G5Y,EAAQwrB,oBAAsB,SAAUxnB,EAAQynB,EAAUC,GAGxD,IAAK,GAFDC,IAAe,EACfC,EAAeH,EAASI,QAAQ5kB,UAC3BvG,EAAI,EAAGA,EAAI+qB,EAAStC,YAAYzmB,OAAQhC,IAAK,CACpD,GAAIopB,GAAY2B,EAAStC,YAAYzoB,GAAG4oB,MACpCS,EAAU0B,EAAStC,YAAYzoB,GAAG6oB,GACtC,IAAIqC,GAAgB9B,GAAa8B,EAAe7B,EAAS,CACvD4B,GAAe,CACf,QAIJ,GAAoB,GAAhBA,GAAwBC,EAAeH,EAASK,KAAK7kB,WAAa2kB,GAAgBF,EAAc,CAClG,GAAIva,GAAYnN,EAAO0nB,GACnBjkB,EAAWzD,EAAO+lB,EAElB5Y,GAAUmZ,QAAU7iB,EAAS6iB,OAC/BmB,EAASM,cAAe,EACf5a,EAAUuZ,SAAWjjB,EAASijB,QACvCe,EAASO,eAAgB,EAChB7a,EAAUkZ,aAAe5iB,EAAS4iB,cAC3CoB,EAASQ,aAAc,GAGzBR,EAASI,QAAUpkB,IAmCvBzH,EAAQksB,SAAW,SAAUC,EAAMC,EAAM7Z,GACvC,GAAI8Z,EACJ,IAAoC,GAAhCF,EAAKrZ,KAAKqW,YAAYzmB,OAExB,MADA2pB,GAAaF,EAAKxC,MAAM0C,WAAW9Z,IAC3B6Z,EAAKnlB,UAAYolB,EAAWpC,QAAUoC,EAAWvnB,KAEzD,IAAImmB,GAASjrB,EAAQ6qB,SAASuB,EAAMD,EAAKrZ,KAAKqW,YACzB,IAAjB8B,EAAOA,SACTmB,EAAOnB,EAAOnB,UAGhB,IAAIE,GAAWhqB,EAAQssB,yBAAyBH,EAAKrZ,KAAKqW,YAAagD,EAAKxC,MAAML,MAAO6C,EAAKxC,MAAMJ,IACpG,IAAI6C,EAAOD,EAAKxC,MAAML,MAAO,CAC3B+C,EAAaF,EAAKxC,MAAM0C,WAAW9Z,EAAOyX,EAC1C,IAAIuC,GAAoBvsB,EAAQwsB,6BAA6BL,EAAKrZ,KAAKqW,YAAaiD,EAAMC,EAAWpC,OAGrG,OAFAmC,GAAOD,EAAKzc,QAAQ1L,OAAOooB,GAAMjlB,SAASF,UAC1CmlB,GAAcG,IACLF,EAAWpC,OAASmC,EAAKnlB,WAAaolB,EAAWvnB,MACrD,GAAIsnB,EAAOD,EAAKxC,MAAMJ,IAAK,CAChC,GAAIkD,IAAkBnD,MAAO6C,EAAKxC,MAAML,MAAOC,IAAK6C,EAGpD,OAFAA,GAAOpsB,EAAQ0sB,qBAAqBP,EAAKzc,QAAQ1L,OAAQmoB,EAAKrZ,KAAKqW,YAAasD,EAAeL,GAC/FC,EAAaF,EAAKxC,MAAM0C,WAAW9Z,EAAOyX,IAClCoC,EAAKnlB,UAAYolB,EAAWpC,QAAUoC,EAAWvnB,MAIzD,MAFAsnB,GAAOpsB,EAAQ0sB,qBAAqBP,EAAKzc,QAAQ1L,OAAQmoB,EAAKrZ,KAAKqW,YAAagD,EAAKxC,MAAOyC,GAC5FC,EAAaF,EAAKxC,MAAM0C,WAAW9Z,EAAOyX,IAClCoC,EAAKnlB,UAAYolB,EAAWpC,QAAUoC,EAAWvnB,OAa/D9E,EAAQ2sB,OAAS,SAAUR,EAAMnc,EAAGuC,GAClC,GAAoC,GAAhC4Z,EAAKrZ,KAAKqW,YAAYzmB,OAAa,CACrC,GAAI2pB,GAAaF,EAAKxC,MAAM0C,WAAW9Z,EACvC,OAAO,IAAIpN,MAAK6K,EAAIqc,EAAWvnB,MAAQunB,EAAWpC,QAElD,GAAI2C,GAAiB5sB,EAAQssB,yBAAyBH,EAAKrZ,KAAKqW,YAAagD,EAAKxC,MAAML,MAAO6C,EAAKxC,MAAMJ,KACtGsD,EAAgBV,EAAKxC,MAAMJ,IAAM4C,EAAKxC,MAAML,MAAQsD,EACpDE,EAAkBD,EAAgB7c,EAAIuC,EACtCwa,EAA4B/sB,EAAQgtB,6BAA6Bb,EAAKrZ,KAAKqW,YAAagD,EAAKxC,MAAOmD,EAExG,OAAO,IAAI3nB,MAAK4nB,EAA4BD,EAAkBX,EAAKxC,MAAML,QAY7EtpB,EAAQssB,yBAA2B,SAAUnD,EAAaG,EAAOC,GAE/D,IAAK,GADDS,GAAW,EACNtpB,EAAI,EAAGA,EAAIyoB,EAAYzmB,OAAQhC,IAAK,CAC3C,GAAIopB,GAAYX,EAAYzoB,GAAG4oB,MAC3BS,EAAUZ,EAAYzoB,GAAG6oB,GAEzBO,IAAaR,GAASS,EAAUR,IAClCS,GAAYD,EAAUD,GAG1B,MAAOE,IAWThqB,EAAQwsB,6BAA+B,SAAUrD,EAAaG,EAAOC,GAEnE,IAAK,GADDS,GAAW,EACNtpB,EAAI,EAAGA,EAAIyoB,EAAYzmB,OAAQhC,IAAK,CAC3C,GAAIopB,GAAYX,EAAYzoB,GAAG4oB,MAC3BS,EAAUZ,EAAYzoB,GAAG6oB,GAEzBO,IAAaR,GAASS,GAAWR,IACnCS,GAAYD,EAAUD,GAG1B,MAAOE,IAWThqB,EAAQ0sB,qBAAuB,SAAU1oB,EAAQmlB,EAAaQ,EAAOyC,GAGnE,MAFAA,GAAOpoB,EAAOooB,GAAMjlB,SAASF,UAC7BmlB,GAAQpsB,EAAQitB,wBAAwBjpB,EAAQmlB,EAAaQ,EAAOyC,IAItEpsB,EAAQitB,wBAA0B,SAAUjpB,EAAQmlB,EAAaQ,EAAOyC,GACtE,GAAIc,GAAa,CACjBd,GAAOpoB,EAAOooB,GAAMjlB,SAASF,SAE7B,KAAK,GAAIvG,GAAI,EAAGA,EAAIyoB,EAAYzmB,OAAQhC,IAAK,CAC3C,GAAIopB,GAAYX,EAAYzoB,GAAG4oB,MAC3BS,EAAUZ,EAAYzoB,GAAG6oB,GAEzBO,IAAaH,EAAML,OAASS,EAAUJ,EAAMJ,KAC1C6C,GAAQrC,IACVmD,GAAcnD,EAAUD,GAI9B,MAAOoD,IAWTltB,EAAQgtB,6BAA+B,SAAU7D,EAAaQ,EAAOwD,GAKnE,IAAK,GAJDP,GAAiB,EACjB5C,EAAW,EACXoD,EAAgBzD,EAAML,MAEjB5oB,EAAI,EAAGA,EAAIyoB,EAAYzmB,OAAQhC,IAAK,CAC3C,GAAIopB,GAAYX,EAAYzoB,GAAG4oB,MAC3BS,EAAUZ,EAAYzoB,GAAG6oB,GAE7B,IAAIO,GAAaH,EAAML,OAASS,EAAUJ,EAAMJ,IAAK,CAGnD,GAFAS,GAAYF,EAAYsD,EACxBA,EAAgBrD,EACZC,GAAYmD,EACd,KAEAP,IAAkB7C,EAAUD,GAKlC,MAAO8C,IAWT5sB,EAAQqtB,mBAAqB,SAAUlE,EAAaiD,EAAMkB,EAAWC,GACnE,GAAI1C,GAAW7qB,EAAQ6qB,SAASuB,EAAMjD,EACtC,OAAuB,IAAnB0B,EAASI,OACPqC,EAAY,EACW,GAArBC,EACK1C,EAASf,WAAae,EAASd,QAAUqC,GAAQ,EAEjDvB,EAASf,UAAY,EAGL,GAArByD,EACK1C,EAASd,SAAWqC,EAAOvB,EAASf,WAAa,EAEjDe,EAASd,QAAU,EAIvBqC,GAWXpsB,EAAQ6qB,SAAW,SAAUuB,EAAMjD,GACjC,IAAK,GAAIzoB,GAAI,EAAGA,EAAIyoB,EAAYzmB,OAAQhC,IAAK,CAC3C,GAAIopB,GAAYX,EAAYzoB,GAAG4oB,MAC3BS,EAAUZ,EAAYzoB,GAAG6oB,GAE7B,IAAI6C,GAAQtC,GAAasC,EAAOrC,EAE9B,OAASkB,QAAQ,EAAMnB,UAAWA,EAAWC,QAASA,GAG1D,OAASkB,QAAQ,EAAOnB,UAAWA,EAAWC,QAASA,KAKnD,SAAU9pB,EAAQD,EAASO,GAUjCP,EAAQwtB,QAAU,SAAUC,EAAQzkB,GAClCA,EAAS0kB,aAAe,SAAUvjB,GAC5BA,EAAMwjB,SACR3kB,EAASmB,IAIbsjB,EAAO1Y,GAAG,eAAgB/L,EAAS0kB,eASrC1tB,EAAQ4tB,UAAY,SAAUH,EAAQzkB,GAOpC,MANAA,GAAS0kB,aAAe,SAAUvjB,GAC5BA,EAAM0jB,SACR7kB,EAASmB,IAINsjB,EAAO1Y,GAAG,eAAgB/L,EAAS0kB,eAQ5C1tB,EAAQ8tB,SAAW,SAAUL,EAAQzkB,GACnCykB,EAAOzY,IAAI,eAAgBhM,EAAS0kB,eAQtC1tB,EAAQ+tB,WAAa/tB,EAAQ8tB,SAW7B9tB,EAAQguB,gCAAkC,SAAUC,GAQlD,MALAA,GAAgBC,eAAiB,WAE/B,OAJuB,UAOlBD,IAKH,SAAUhuB,EAAQD,EAASO,GAajC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAezF,QAAS6rB,GAAK5Y,EAAM8W,EAAY3c,GAC9BrP,KAAKsW,GAAK,KACVtW,KAAKsK,OAAS,KACdtK,KAAKkV,KAAOA,EACZlV,KAAK+tB,IAAM,KACX/tB,KAAKgsB,WAAaA,MAClBhsB,KAAKqP,QAAUA,MACfrP,KAAKyjB,UAAW,EAChBzjB,KAAKguB,WAAY,EACjBhuB,KAAKiuB,cAAe,EACpBjuB,KAAKkuB,OAAQ,EAEbluB,KAAK8H,IAAM,KACX9H,KAAK4H,MAAQ,KACb5H,KAAK0H,KAAO,KACZ1H,KAAKkS,MAAQ,KACblS,KAAKmS,OAAS,KAEdnS,KAAKmuB,SAAW,KAChBnuB,KAAKouB,oBA1CP,GAAI3qB,GAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCF,EAAQrD,EAAoB,GAE5BsD,EAASb,EAAuBY,GAIhCyR,EAAS9U,EAAoB,IAC7B2V,EAAO3V,EAAoB,GAC3ByD,EAASzD,EAAoB,EAiCjC4tB,GAAKvsB,UAAU8sB,OAAQ,EAKvBP,EAAKvsB,UAAU+sB,OAAS,WACtBtuB,KAAKyjB,UAAW,EAChBzjB,KAAKkuB,OAAQ,EACTluB,KAAKguB,WAAWhuB,KAAKwf,UAM3BsO,EAAKvsB,UAAUgtB,SAAW,WACxBvuB,KAAKyjB,UAAW,EAChBzjB,KAAKkuB,OAAQ,EACTluB,KAAKguB,WAAWhuB,KAAKwf,UAQ3BsO,EAAKvsB,UAAUqY,QAAU,SAAU1E,OACAhS,IAAdgS,EAAKsZ,OAAsBxuB,KAAKkV,KAAKsZ,OAAStZ,EAAKsZ,OACnC,MAAfxuB,KAAKsK,QACvBtK,KAAKsK,OAAOmkB,QAAQC,aAAa1uB,KAAMkV,EAAKsZ,OAG1CxuB,KAAKsK,SACPtK,KAAKsK,OAAOqkB,YAAa,OAGYzrB,IAAjBgS,EAAK0Z,UAAyB5uB,KAAKkV,KAAK0Z,UAAY1Z,EAAK0Z,UACzC,MAAf5uB,KAAKsK,QAC1BtK,KAAKsK,OAAOukB,eAAe7uB,KAAMA,KAAKkV,KAAK0Z,SAAU1Z,EAAK0Z,UAG5D5uB,KAAKkV,KAAOA,EACZlV,KAAKouB,oBACLpuB,KAAKkuB,OAAQ,EACTluB,KAAKguB,WAAWhuB,KAAKwf,UAO3BsO,EAAKvsB,UAAUutB,UAAY,SAAUxkB,GAC/BtK,KAAKguB,WACPhuB,KAAK+f,OACL/f,KAAKsK,OAASA,EACVtK,KAAKsK,QACPtK,KAAK+uB,QAGP/uB,KAAKsK,OAASA,GASlBwjB,EAAKvsB,UAAUytB,UAAY,SAAU1F,GAEnC,OAAO,GAOTwE,EAAKvsB,UAAUwtB,KAAO,WACpB,OAAO,GAOTjB,EAAKvsB,UAAUwe,KAAO,WACpB,OAAO,GAMT+N,EAAKvsB,UAAUie,OAAS,aAOxBsO,EAAKvsB,UAAU0tB,YAAc,aAO7BnB,EAAKvsB,UAAU2tB,YAAc,aAQ7BpB,EAAKvsB,UAAU4tB,mBAAqB,WAClC,GAAInvB,KAAKyjB,UAAYzjB,KAAKqP,QAAQ8e,SAASiB,aAAepvB,KAAK+tB,IAAIsB,WAAY,CAC7E,GAAI7Y,GAAKxW,KAELqvB,EAAard,SAASC,cAAc,MACxCod,GAAWnnB,UAAY,kBACvBmnB,EAAWC,eAAiBtvB,IAC5B,IAAIotB,GAAS,GAAIpY,GAAOqa,EAExBjC,GAAO1Y,GAAG,MAAO,SAAU5K,GACzB0M,EAAGlM,OAAOmkB,QAAQhc,KAAK8c,QAAQ1a,KAAK,SAClC/K,MAAOA,EACP4G,KAAM8F,EAAGF,OAGb8W,EAAO1Y,GAAG,YAAa,SAAU5K,GAC/BA,EAAM0lB,kBACNhZ,EAAGlM,OAAOmkB,QAAQgB,cAAcjZ,GAChCA,EAAGlM,OAAOmkB,QAAQhc,KAAK8c,QAAQ1a,KAAK,eAClC/K,MAAOA,EACP4G,KAAM8F,EAAGF,OAITtW,KAAK+tB,IAAI2B,IACP1vB,KAAK+tB,IAAI4B,SACX3vB,KAAK+tB,IAAI2B,IAAIjU,aAAa4T,EAAYrvB,KAAK+tB,IAAI4B,UAE/C3vB,KAAK+tB,IAAI2B,IAAIld,YAAY6c,GAElBrvB,KAAK+tB,IAAIjS,OAClB9b,KAAK+tB,IAAIjS,MAAMtJ,YAAY6c,GAG7BrvB,KAAK+tB,IAAIsB,WAAaA,OACZrvB,KAAKyjB,UAAYzjB,KAAK+tB,IAAIsB,aAEhCrvB,KAAK+tB,IAAIsB,WAAWjlB,YACtBpK,KAAK+tB,IAAIsB,WAAWjlB,WAAWjG,YAAYnE,KAAK+tB,IAAIsB,YAEtDrvB,KAAK+tB,IAAIsB,WAAa,OAS1BvB,EAAKvsB,UAAUquB,qBAAuB,SAAUC,GAC9C,GAAI1B,IAAYnuB,KAAKqP,QAAQ8e,SAAS2B,eAAkC,MAAjB9vB,KAAKmuB,WAAqBnuB,KAAKqP,QAAQ8e,SAAS5V,SAAWvY,KAAKqP,QAAQ8e,SAAS2B,eAAkC,MAAjB9vB,KAAKmuB,UAAoBnuB,KAAKmuB,SAAS5V,MAEhM,IAAIvY,KAAKyjB,UAAY0K,IAAanuB,KAAK+tB,IAAIgC,aAAc,CAEvD,GAAIvZ,GAAKxW,KAEL+vB,EAAe/d,SAASC,cAAc,MAEtCjS,MAAKqP,QAAQ2gB,IACfD,EAAa7nB,UAAY,iBAEzB6nB,EAAa7nB,UAAY,aAE3B6nB,EAAaE,MAAQ,mBAGrB,GAAIjb,GAAO+a,GAAcrb,GAAG,MAAO,SAAU5K,GAC3CA,EAAM0lB,kBACNhZ,EAAGlM,OAAO4lB,kBAAkB1Z,KAG9BqZ,EAAOrd,YAAYud,GACnB/vB,KAAK+tB,IAAIgC,aAAeA,OACd/vB,KAAKyjB,UAAYzjB,KAAK+tB,IAAIgC,eAEhC/vB,KAAK+tB,IAAIgC,aAAa3lB,YACxBpK,KAAK+tB,IAAIgC,aAAa3lB,WAAWjG,YAAYnE,KAAK+tB,IAAIgC,cAExD/vB,KAAK+tB,IAAIgC,aAAe,OAS5BjC,EAAKvsB,UAAU4uB,gCAAkC,SAAUN,GACzD,GAAK7vB,KAAKqP,QAAQ+gB,wBAAlB,CAEA,GAAIjC,IAAYnuB,KAAKqP,QAAQ8e,SAASiB,aAAqC,IAAvBpvB,KAAKkV,KAAKiZ,YAA6C,IAAvBnuB,KAAKkV,KAAKiZ,QAE9F,IAAInuB,KAAKyjB,UAAY0K,IAAanuB,KAAK+tB,IAAIsC,wBAAyB,CAClE,GAAIA,GAA0Bre,SAASC,cAAc,MAErDoe,GAAwBnoB,UAAY,2BACpC2nB,EAAOrd,YAAY6d,GACnBrwB,KAAK+tB,IAAIsC,wBAA0BA,OACzBrwB,KAAKyjB,UAAYzjB,KAAK+tB,IAAIsC,0BAEhCrwB,KAAK+tB,IAAIsC,wBAAwBjmB,YACnCpK,KAAK+tB,IAAIsC,wBAAwBjmB,WAAWjG,YAAYnE,KAAK+tB,IAAIsC,yBAEnErwB,KAAK+tB,IAAIsC,wBAA0B,KAIrC,IAAIrwB,KAAK+tB,IAAIsC,wBAAyB,CAGpCrwB,KAAK+tB,IAAIsC,wBAAwB5iB,MAAM6E,WAAatS,KAAKsK,OAAOmkB,QAAQ6B,YAAYC,eAAiB,UAAY,SAG7GvwB,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAIsC,wBAAwB5iB,MAAM7F,MAAQ5H,KAAK+tB,IAAI3R,QAAQ3O,MAAM7F,MAEtE5H,KAAK+tB,IAAIsC,wBAAwB5iB,MAAM/F,KAAO1H,KAAK+tB,IAAI3R,QAAQ3O,MAAM/F,IAIvE,IAKI8oB,GAJAC,EAAYzwB,KAAKsK,OAAOmkB,QAAQhc,KAAK2W,SAASqH,SAMhDD,GADmC,OAAjCxwB,KAAKqP,QAAQqhB,YAAYhgB,KACL1Q,KAAK8H,IAEL9H,KAAKsK,OAAO6H,OAASnS,KAAK8H,IAAM9H,KAAKmS,MAE1Cqe,GAAsBxwB,KAAKsK,OAAOxC,IAXjC,IAWwD2oB,GAG1EzwB,KAAK+tB,IAAIsC,wBAAwB5iB,MAAM4U,OAAS,GAChDriB,KAAK+tB,IAAIsC,wBAAwB5iB,MAAM3F,IAAM9H,KAAKmS,OAAS,EAAI,OAE/DnS,KAAK+tB,IAAIsC,wBAAwB5iB,MAAM3F,IAAM,GAC7C9H,KAAK+tB,IAAIsC,wBAAwB5iB,MAAM4U,OAASriB,KAAKmS,OAAS,EAAI,KAIpE,IAAIiK,GACAuU,CAEA3wB,MAAKqP,QAAQ+gB,yBAA2BpwB,KAAKqP,QAAQ+gB,wBAAwBQ,UAC/ED,EAAmB3wB,KAAKqP,QAAQ+gB,wBAAwBQ,SAASrI,KAAKvoB,MACtEoc,EAAUuU,EAAiB3wB,KAAKkV,QAEhCkH,EAAU,UAAYzY,EAAO3D,KAAKkV,KAAK+T,OAAOhiB,OAAO,oBACjDjH,KAAKkV,KAAKgU,MACZ9M,GAAW,aAAezY,EAAO3D,KAAKkV,KAAKgU,KAAKjiB,OAAO,sBAG3DjH,KAAK+tB,IAAIsC,wBAAwBQ,UAAYzU,KASjD0R,EAAKvsB,UAAUuvB,gBAAkB,SAAU1nB,GACzC,GAAIgT,GAEAuU,EACAI,EACAC,EACAC,EAAWjxB,KAAKsK,OAAOmkB,QAAQyC,UAAUhwB,IAAIlB,KAAKsW,IAElD6a,EAAenxB,KAAK+tB,IAAI2B,KAAO1vB,KAAK+tB,IAAIjS,MACxCsV,EAAiCD,EAAaE,uBAAuB,0BAA0B,EASnG,IAPIrxB,KAAKqP,QAAQiiB,sBACfN,EAA+BhxB,KAAKqP,QAAQiiB,qBAAqB/I,KAAKvoB,MACtE+wB,EAA0BC,EAA6BC,EAAUE,IAEjEJ,EAA0B,GAGxBK,EACF,GAAIL,YAAmCjwB,WAAYiwB,YAAmCjiB,UACpFkiB,EAA6BC,EAAUG,OAGvC,IADUpxB,KAAKuxB,iBAAiBvxB,KAAK+wB,2BAA6B/wB,KAAKuxB,iBAAiBR,GAC3E,CAEX,GAAIA,YAAmCjiB,SACrCsiB,EAA+BP,UAAY,GAC3CO,EAA+B5e,YAAYue,OACtC,QAA+B7tB,IAA3B6tB,EACTK,EAA+BP,UAAYE,MAE3C,IAAwB,cAAlB/wB,KAAKkV,KAAKzO,UAA8CvD,KAAtBlD,KAAKkV,KAAKkH,QAChD,KAAM,IAAIvW,OAAM,sCAAwC7F,KAAKsW,GAIjEtW,MAAK+wB,wBAA0BA,EAYrC,GAPI/wB,KAAKqP,QAAQuhB,UACfD,EAAmB3wB,KAAKqP,QAAQuhB,SAASrI,KAAKvoB,MAC9Coc,EAAUuU,EAAiBM,EAAU7nB,EAASpJ,KAAKkV,OAEnDkH,EAAUpc,KAAKkV,KAAKkH,QAGlBA,YAAmBtb,WAAYsb,YAAmBtN,UACpD6hB,EAAiBM,EAAU7nB,OAG3B,IADUpJ,KAAKuxB,iBAAiBvxB,KAAKoc,WAAapc,KAAKuxB,iBAAiBnV,GAC3D,CAEX,GAAIA,YAAmBtN,SACrB1F,EAAQynB,UAAY,GACpBznB,EAAQoJ,YAAY4J,OACf,QAAelZ,IAAXkZ,EACThT,EAAQynB,UAAYzU,MAEpB,IAAwB,cAAlBpc,KAAKkV,KAAKzO,UAA8CvD,KAAtBlD,KAAKkV,KAAKkH,QAChD,KAAM,IAAIvW,OAAM,sCAAwC7F,KAAKsW,GAGjEtW,MAAKoc,QAAUA,IAUrB0R,EAAKvsB,UAAUiwB,sBAAwB,SAAUpoB,GAC/C,GAAIpJ,KAAKqP,QAAQoiB,gBAAkBzxB,KAAKqP,QAAQoiB,eAAepvB,OAAS,EAAG,CACzE,GAAIqvB,KAEJ,IAAI/rB,MAAMC,QAAQ5F,KAAKqP,QAAQoiB,gBAC7BC,EAAa1xB,KAAKqP,QAAQoiB,mBACrB,CAAA,GAAmC,OAA/BzxB,KAAKqP,QAAQoiB,eAGtB,MAFAC,IAAa,EAAIluB,EAAgB,SAAGxD,KAAKkV,MAK3C,IAAK,GAAI7U,GAAI,EAAGA,EAAIqxB,EAAWrvB,OAAQhC,IAAK,CAC1C,GAAIM,GAAO+wB,EAAWrxB,GAClBmE,EAAQxE,KAAKkV,KAAKvU,EAET,OAAT6D,EACF4E,EAAQuoB,aAAa,QAAUhxB,EAAM6D,GAErC4E,EAAQwoB,gBAAgB,QAAUjxB,MAW1CmtB,EAAKvsB,UAAUswB,aAAe,SAAUzoB,GAElCpJ,KAAKyN,QACPoI,EAAK9H,cAAc3E,EAASpJ,KAAKyN,OACjCzN,KAAKyN,MAAQ,MAIXzN,KAAKkV,KAAKzH,QACZoI,EAAKjI,WAAWxE,EAASpJ,KAAKkV,KAAKzH,OACnCzN,KAAKyN,MAAQzN,KAAKkV,KAAKzH,QAU3BqgB,EAAKvsB,UAAUgwB,iBAAmB,SAAUnV,GAC1C,MAAuB,gBAAZA,GAA6BA,EACpCA,GAAW,aAAeA,GAAgBA,EAAQ0V,UAC/C1V,GAMT0R,EAAKvsB,UAAU6sB,kBAAoB,WAC7BpuB,KAAKqP,UAC8B,iBAA1BrP,MAAKqP,QAAQ8e,SACtBnuB,KAAKmuB,UACHiB,WAAYpvB,KAAKqP,QAAQ8e,SACzB4D,YAAa/xB,KAAKqP,QAAQ8e,SAC1B5V,OAAQvY,KAAKqP,QAAQ8e,UAEsC,YAApD,EAAIzqB,EAAkB,SAAG1D,KAAKqP,QAAQ8e,YAC/CnuB,KAAKmuB,YACLtY,EAAKnQ,iBAAiB,aAAc,cAAe,UAAW1F,KAAKmuB,SAAUnuB,KAAKqP,QAAQ8e,YAIzFnuB,KAAKqP,SAAYrP,KAAKqP,QAAQ8e,WAAoD,IAAxCnuB,KAAKqP,QAAQ8e,SAAS2B,eAC/D9vB,KAAKkV,OAC2B,iBAAvBlV,MAAKkV,KAAKiZ,SACnBnuB,KAAKmuB,UACHiB,WAAYpvB,KAAKkV,KAAKiZ,SACtB4D,YAAa/xB,KAAKkV,KAAKiZ,SACvB5V,OAAQvY,KAAKkV,KAAKiZ,UAEsC,YAAjD,EAAIzqB,EAAkB,SAAG1D,KAAKkV,KAAKiZ,YAG5CnuB,KAAKmuB,YACLtY,EAAKnQ,iBAAiB,aAAc,cAAe,UAAW1F,KAAKmuB,SAAUnuB,KAAKkV,KAAKiZ,aAU/FL,EAAKvsB,UAAUywB,aAAe,WAC5B,MAAO,IAOTlE,EAAKvsB,UAAU0wB,cAAgB,WAC7B,MAAO,IAOTnE,EAAKvsB,UAAU2wB,SAAW,WACxB,MAAOlyB,MAAKkV,KAAK+a,OAGnBrwB,EAAOD,QAAUmuB,GAIX,SAAUluB,EAAQD,GAExBC,EAAOD,SAAU,GAKX,SAAUC,EAAQD,GAExBC,EAAOD,QAAU,SAAUwyB,EAAQ3tB,GACjC,OACEvD,aAAuB,EAATkxB,GACdnxB,eAAyB,EAATmxB,GAChB5vB,WAAqB,EAAT4vB,GACZ3tB,MAAOA,KAOL,SAAU5E,EAAQD,GAExB,GAAI2W,GAAK,EACL8b,EAAK1tB,KAAK2tB,QACdzyB,GAAOD,QAAU,SAAU6C,GACzB,MAAO,UAAU6F,WAAenF,KAARV,EAAoB,GAAKA,EAAK,QAAS8T,EAAK8b,GAAIpmB,SAAS,OAM7E,SAAUpM,EAAQD,GAExBA,EAAQwO,KAAOmkB,sBAKT,SAAU1yB,EAAQD,EAASO,GAkBjC,QAAS4V,GAAMzG,GAEbrP,KAAKuyB,MAAQ,KACbvyB,KAAKsE,IAAMkuB,EAAAA,EAGXxyB,KAAKgW,UACLhW,KAAKyyB,SAAW,KAChBzyB,KAAK0yB,UAAY,KAEjB1yB,KAAK0V,WAAWrG,GAelByG,EAAMvU,UAAUmU,WAAa,SAAUrG,GACjCA,OAAoC,KAAlBA,EAAQkjB,QAC5BvyB,KAAKuyB,MAAQljB,EAAQkjB,OAEnBljB,OAAkC,KAAhBA,EAAQ/K,MAC5BtE,KAAKsE,IAAM+K,EAAQ/K,KAGrBtE,KAAK2yB,kBAsBP7c,EAAMtQ,OAAS,SAAUnE,EAAQgO,GAC/B,GAAI0G,GAAQ,GAAID,GAAMzG,EAEtB,QAAqBnM,KAAjB7B,EAAOuxB,MACT,KAAM,IAAI/sB,OAAM,6CAElBxE,GAAOuxB,MAAQ,WACb7c,EAAM6c,QAGR,IAAIC,KACFlyB,KAAM,QACNmyB,aAAU5vB,IAGZ,IAAImM,GAAWA,EAAQnE,QACrB,IAAK,GAAI7K,GAAI,EAAGA,EAAIgP,EAAQnE,QAAQ7I,OAAQhC,IAAK,CAC/C,GAAIM,GAAO0O,EAAQnE,QAAQ7K,EAC3BwyB,GAAQzsB,MACNzF,KAAMA,EACNmyB,SAAUzxB,EAAOV,KAEnBoV,EAAM7K,QAAQ7J,EAAQV,GAS1B,MALAoV,GAAM2c,WACJrxB,OAAQA,EACRwxB,QAASA,GAGJ9c,GAOTD,EAAMvU,UAAUqT,QAAU,WAGxB,GAFA5U,KAAK4yB,QAED5yB,KAAK0yB,UAAW,CAGlB,IAAK,GAFDrxB,GAASrB,KAAK0yB,UAAUrxB,OACxBwxB,EAAU7yB,KAAK0yB,UAAUG,QACpBxyB,EAAI,EAAGA,EAAIwyB,EAAQxwB,OAAQhC,IAAK,CACvC,GAAI0yB,GAASF,EAAQxyB,EACjB0yB,GAAOD,SACTzxB,EAAO0xB,EAAOpyB,MAAQoyB,EAAOD,eAEtBzxB,GAAO0xB,EAAOpyB,MAGzBX,KAAK0yB,UAAY,OASrB5c,EAAMvU,UAAU2J,QAAU,SAAU7J,EAAQ0xB,GAC1C,GAAIvc,GAAKxW,KACL8yB,EAAWzxB,EAAO0xB,EACtB,KAAKD,EACH,KAAM,IAAIjtB,OAAM,UAAYktB,EAAS,aAGvC1xB,GAAO0xB,GAAU,WAGf,IAAK,GADD3b,MACK/W,EAAI,EAAGA,EAAIkF,UAAUlD,OAAQhC,IACpC+W,EAAK/W,GAAKkF,UAAUlF,EAItBmW,GAAGT,OACDqB,KAAMA,EACNpO,GAAI8pB,EACJE,QAAShzB,SASf8V,EAAMvU,UAAUwU,MAAQ,SAAUkd,GACX,kBAAVA,GACTjzB,KAAKgW,OAAO5P,MAAO4C,GAAIiqB,IAEvBjzB,KAAKgW,OAAO5P,KAAK6sB,GAGnBjzB,KAAK2yB,kBAOP7c,EAAMvU,UAAUoxB,eAAiB,WAQ/B,GANI3yB,KAAKgW,OAAO3T,OAASrC,KAAKsE,KAC5BtE,KAAK4yB,QAIPM,aAAalzB,KAAKyyB,UACdzyB,KAAK+V,MAAM1T,OAAS,GAA2B,gBAAfrC,MAAKuyB,MAAoB,CAC3D,GAAI/b,GAAKxW,IACTA,MAAKyyB,SAAWU,WAAW,WACzB3c,EAAGoc,SACF5yB,KAAKuyB,SAOZzc,EAAMvU,UAAUqxB,MAAQ,WACtB,KAAO5yB,KAAKgW,OAAO3T,OAAS,GAAG,CAC7B,GAAI4wB,GAAQjzB,KAAKgW,OAAOqF,OACxB4X,GAAMjqB,GAAG2Q,MAAMsZ,EAAMD,SAAWC,EAAMjqB,GAAIiqB,EAAM7b,YAIpDxX,EAAOD,QAAUmW,GAIX,SAAUlW,EAAQD,GAexB,QAASyzB,GAAQnxB,GACf,GAAIA,EAAK,MAAOoxB,GAAMpxB,GAWxB,QAASoxB,GAAMpxB,GACb,IAAK,GAAIO,KAAO4wB,GAAQ7xB,UACtBU,EAAIO,GAAO4wB,EAAQ7xB,UAAUiB,EAE/B,OAAOP,GAxBTrC,EAAOD,QAAUyzB,EAoCjBA,EAAQ7xB,UAAUmT,GAClB0e,EAAQ7xB,UAAU4H,iBAAmB,SAASW,EAAOd,GAInD,MAHAhJ,MAAKszB,WAAatzB,KAAKszB,gBACtBtzB,KAAKszB,WAAWxpB,GAAS9J,KAAKszB,WAAWxpB,QACvC1D,KAAK4C,GACDhJ,MAaTozB,EAAQ7xB,UAAUgyB,KAAO,SAASzpB,EAAOd,GAIvC,QAAS0L,KACP3U,EAAK4U,IAAI7K,EAAO4K,GAChB1L,EAAG2Q,MAAM3Z,KAAMuF,WALjB,GAAIxF,GAAOC,IAUX,OATAA,MAAKszB,WAAatzB,KAAKszB,eAOvB5e,EAAG1L,GAAKA,EACRhJ,KAAK0U,GAAG5K,EAAO4K,GACR1U,MAaTozB,EAAQ7xB,UAAUoT,IAClBye,EAAQ7xB,UAAUiyB,eAClBJ,EAAQ7xB,UAAUkyB,mBAClBL,EAAQ7xB,UAAUoI,oBAAsB,SAASG,EAAOd,GAItD,GAHAhJ,KAAKszB,WAAatzB,KAAKszB,eAGnB,GAAK/tB,UAAUlD,OAEjB,MADArC,MAAKszB,cACEtzB,IAIT,IAAI0zB,GAAY1zB,KAAKszB,WAAWxpB,EAChC,KAAK4pB,EAAW,MAAO1zB,KAGvB,IAAI,GAAKuF,UAAUlD,OAEjB,aADOrC,MAAKszB,WAAWxpB,GAChB9J,IAKT,KAAK,GADD2zB,GACKtzB,EAAI,EAAGA,EAAIqzB,EAAUrxB,OAAQhC,IAEpC,IADAszB,EAAKD,EAAUrzB,MACJ2I,GAAM2qB,EAAG3qB,KAAOA,EAAI,CAC7B0qB,EAAUE,OAAOvzB,EAAG,EACpB,OAGJ,MAAOL,OAWTozB,EAAQ7xB,UAAUsT,KAAO,SAAS/K,GAChC9J,KAAKszB,WAAatzB,KAAKszB,cACvB,IAAIlc,MAAUnL,MAAM1L,KAAKgF,UAAW,GAChCmuB,EAAY1zB,KAAKszB,WAAWxpB,EAEhC,IAAI4pB,EAAW,CACbA,EAAYA,EAAUznB,MAAM,EAC5B,KAAK,GAAI5L,GAAI,EAAGkG,EAAMmtB,EAAUrxB,OAAQhC,EAAIkG,IAAOlG,EACjDqzB,EAAUrzB,GAAGsZ,MAAM3Z,KAAMoX,GAI7B,MAAOpX,OAWTozB,EAAQ7xB,UAAUsyB,UAAY,SAAS/pB,GAErC,MADA9J,MAAKszB,WAAatzB,KAAKszB,eAChBtzB,KAAKszB,WAAWxpB,QAWzBspB,EAAQ7xB,UAAUuyB,aAAe,SAAShqB,GACxC,QAAU9J,KAAK6zB,UAAU/pB,GAAOzH,SAM5B,SAAUzC,EAAQD,EAASO,GAyBjC,QAAS6zB,GAASthB,EAAMpD,GACtBrP,KAAK+tB,KACHiG,WAAY,KACZC,SACAC,cACAC,cACApZ,WACEkZ,SACAC,cACAC,gBAGJn0B,KAAKoC,OACHknB,OACEL,MAAO,EACPC,IAAK,EACLkL,YAAa,GAEfC,QAAS,GAGXr0B,KAAKs0B,gBACH5D,aACE6D,KAAM,UAERC,iBAAiB,EACjBC,iBAAiB,EACjBC,cAAe,EACfztB,OAAQ0tB,EAASC,OACjBjxB,OAAQA,EACRkxB,SAAU,MAEZ70B,KAAKqP,QAAUwG,EAAKrQ,UAAWxF,KAAKs0B,gBAEpCt0B,KAAKyS,KAAOA,EAGZzS,KAAKqD,UAELrD,KAAK0V,WAAWrG,GA3DlB,GAAI5L,GAAWvD,EAAoB,GAE/BwD,EAEJ,SAAgCzB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFnDwB,GAIlCoS,EAAO3V,EAAoB,GAC3Bqf,EAAYrf,EAAoB,IAChCy0B,EAAWz0B,EAAoB,IAC/B40B,EAAW50B,EAAoB,IAC/ByD,EAASzD,EAAoB,EAoDjC6zB,GAASxyB,UAAY,GAAIge,GAUzBwU,EAASxyB,UAAUmU,WAAa,SAAUrG,GACpCA,IAEFwG,EAAKnQ,iBAAiB,kBAAmB,kBAAmB,gBAAiB,cAAe,WAAY,SAAU,OAAQ1F,KAAKqP,QAASA,GAGxIwG,EAAK/P,qBAAqB,UAAW9F,KAAKqP,QAASA,GAE/C,eAAiBA,KACgB,gBAAxBA,GAAQqhB,YACjB1wB,KAAKqP,QAAQqhB,YAAY6D,KAAOllB,EAAQqhB,YACmB,YAAlD,EAAIhtB,EAAkB,SAAG2L,EAAQqhB,cAA6B,QAAUrhB,GAAQqhB,cACzF1wB,KAAKqP,QAAQqhB,YAAY6D,KAAOllB,EAAQqhB,YAAY6D,OAMpD,UAAYllB,KACe,kBAAlB1L,GAAOoxB,OAEhBpxB,EAAOoxB,OAAO1lB,EAAQ0lB,QAEtBpxB,EAAOqxB,KAAK3lB,EAAQ0lB,WAS5BhB,EAASxyB,UAAU8B,QAAU,WAC3BrD,KAAK+tB,IAAIiG,WAAahiB,SAASC,cAAc,OAC7CjS,KAAK+tB,IAAIhhB,WAAaiF,SAASC,cAAc,OAE7CjS,KAAK+tB,IAAIiG,WAAW9rB,UAAY,+BAChClI,KAAK+tB,IAAIhhB,WAAW7E,UAAY,gCAMlC6rB,EAASxyB,UAAUqT,QAAU,WAEvB5U,KAAK+tB,IAAIiG,WAAW5pB,YACtBpK,KAAK+tB,IAAIiG,WAAW5pB,WAAWjG,YAAYnE,KAAK+tB,IAAIiG,YAElDh0B,KAAK+tB,IAAIhhB,WAAW3C,YACtBpK,KAAK+tB,IAAIhhB,WAAW3C,WAAWjG,YAAYnE,KAAK+tB,IAAIhhB,YAGtD/M,KAAKyS,KAAO,MAOdshB,EAASxyB,UAAUie,OAAS,WAC1B,GAAIpd,GAAQpC,KAAKoC,MACb4xB,EAAah0B,KAAK+tB,IAAIiG,WACtBjnB,EAAa/M,KAAK+tB,IAAIhhB,WAGtBzC,EAA0C,OAAjCtK,KAAKqP,QAAQqhB,YAAY6D,KAAgBv0B,KAAKyS,KAAKsb,IAAIjmB,IAAM9H,KAAKyS,KAAKsb,IAAI1L,OACpF4S,EAAgBjB,EAAW5pB,aAAeE,CAG9CtK,MAAKk1B;0BAGL,IAAIV,GAAkBx0B,KAAKqP,QAAQmlB,iBAAqD,SAAlCx0B,KAAKqP,QAAQqhB,YAAY6D,KAC3EE,EAAkBz0B,KAAKqP,QAAQolB,iBAAqD,SAAlCz0B,KAAKqP,QAAQqhB,YAAY6D,IAG/EnyB,GAAM+yB,iBAAmBX,EAAkBpyB,EAAMgzB,gBAAkB,EACnEhzB,EAAMizB,iBAAmBZ,EAAkBryB,EAAMkzB,gBAAkB,EACnElzB,EAAM+P,OAAS/P,EAAM+yB,iBAAmB/yB,EAAMizB,iBAC9CjzB,EAAM8P,MAAQ8hB,EAAWrhB,YAEzBvQ,EAAMmzB,gBAAkBv1B,KAAKyS,KAAK2W,SAAS3pB,KAAK0S,OAAS/P,EAAMizB,kBAAqD,OAAjCr1B,KAAKqP,QAAQqhB,YAAY6D,KAAgBv0B,KAAKyS,KAAK2W,SAAS/G,OAAOlQ,OAASnS,KAAKyS,KAAK2W,SAASthB,IAAIqK,QACtL/P,EAAMozB,eAAiB,EACvBpzB,EAAMqzB,gBAAkBrzB,EAAMmzB,gBAAkBnzB,EAAMizB,iBACtDjzB,EAAMszB,eAAiB,CAGvB,IAAIC,GAAwB3B,EAAW4B,YACnCC,EAAwB9oB,EAAW6oB,WAmBvC,OAlBA5B,GAAW5pB,YAAc4pB,EAAW5pB,WAAWjG,YAAY6vB,GAC3DjnB,EAAW3C,YAAc2C,EAAW3C,WAAWjG,YAAY4I,GAE3DinB,EAAWvmB,MAAM0E,OAASnS,KAAKoC,MAAM+P,OAAS,KAE9CnS,KAAK81B,iBAGDH,EACFrrB,EAAOmR,aAAauY,EAAY2B,GAEhCrrB,EAAOkI,YAAYwhB,GAEjB6B,EACF71B,KAAKyS,KAAKsb,IAAIgI,mBAAmBta,aAAa1O,EAAY8oB,GAE1D71B,KAAKyS,KAAKsb,IAAIgI,mBAAmBvjB,YAAYzF,GAExC/M,KAAKyf,cAAgBwV,GAO9BlB,EAASxyB,UAAUu0B,eAAiB,WAClC,GAAIpF,GAAc1wB,KAAKqP,QAAQqhB,YAAY6D,KAGvCtL,EAAQpT,EAAKrP,QAAQxG,KAAKyS,KAAK6W,MAAML,MAAO,UAC5CC,EAAMrT,EAAKrP,QAAQxG,KAAKyS,KAAK6W,MAAMJ,IAAK,UACxC8M,EAAgBh2B,KAAKyS,KAAKoD,KAAKyW,QAAQtsB,KAAKoC,MAAM6zB,gBAAkB,IAAMj2B,KAAKqP,QAAQqlB,eAAe9tB,UACtGwtB,EAAc4B,EAAgBlB,EAASlI,wBAAwB5sB,KAAKqP,QAAQ1L,OAAQ3D,KAAKyS,KAAKqW,YAAa9oB,KAAKyS,KAAK6W,MAAO0M,EAChI5B,IAAep0B,KAAKyS,KAAKoD,KAAKyW,OAAO,GAAG1lB,SAExC,IAAIsvB,GAAO,GAAIvB,GAAS,GAAI7vB,MAAKmkB,GAAQ,GAAInkB,MAAKokB,GAAMkL,EAAap0B,KAAKyS,KAAKqW,YAAa9oB,KAAKqP,QACjG6mB,GAAKC,UAAUn2B,KAAKqP,QAAQ1L,QACxB3D,KAAKqP,QAAQpI,QACfivB,EAAKE,UAAUp2B,KAAKqP,QAAQpI,QAE1BjH,KAAKqP,QAAQwlB,UACfqB,EAAKG,SAASr2B,KAAKqP,QAAQwlB,UAE7B70B,KAAKk2B,KAAOA,CAKZ,IAAInI,GAAM/tB,KAAK+tB,GACfA,GAAIhT,UAAUkZ,MAAQlG,EAAIkG,MAC1BlG,EAAIhT,UAAUmZ,WAAanG,EAAImG,WAC/BnG,EAAIhT,UAAUoZ,WAAapG,EAAIoG,WAC/BpG,EAAIkG,SACJlG,EAAImG,cACJnG,EAAIoG,aAEJ,IACI5gB,GACA5D,EACA2mB,EACAC,EAEAC,EAEAC,EACAC,EACAC,EAIAzuB,EAPAgK,EAAQ,EAIR0kB,MAAmB1zB,GACnBiW,EAAQ,CAOZ,KAHA+c,EAAKjN,QACL1V,EAAO2iB,EAAKW,aACZP,EAAQt2B,KAAKyS,KAAKoD,KAAKgW,SAAStY,GACzB2iB,EAAKY,WAAa3d,EANf,KAM4B,CAiBpC,OAhBAA,IAEAod,EAAUL,EAAKK,UACfruB,EAAYguB,EAAKa,eACjBJ,EAAaT,EAAKc,gBAERzjB,EACV5D,EAAI2mB,EAEJJ,EAAK3iB,OACLA,EAAO2iB,EAAKW,aACEX,EAAKK,UACnBD,EAAQt2B,KAAKyS,KAAKoD,KAAKgW,SAAStY,GAEhCkjB,EAAYvkB,EACZA,EAAQokB,EAAQ3mB,EACRumB,EAAKzxB,OACX,IAAK,OACH+xB,GAAgB,CAAK,MACvB,SACEA,EAAgBtkB,GAAqB,GAAZukB,EAG7B,GAAIz2B,KAAKqP,QAAQmlB,iBAAmBgC,EAAe,CACjD,GAAIva,GAAQjc,KAAKi3B,kBAAkBtnB,EAAGgnB,EAAYjG,EAAaxoB,EAC/D+T,GAAMxO,MAAMyE,MAAQA,EAAQ,KAG1BqkB,GAAWv2B,KAAKqP,QAAQolB,iBACtB9kB,EAAI,QACkBzM,IAApB0zB,IACFA,EAAmBjnB,GAErBsM,EAAQjc,KAAKk3B,kBAAkBvnB,EAAGumB,EAAKiB,gBAAiBzG,EAAaxoB,IAEvEwuB,EAAO12B,KAAKo3B,kBAAkBznB,EAAGuC,EAAOwe,EAAaxoB,IAGjDsuB,EACFE,EAAO12B,KAAKq3B,kBAAkB1nB,EAAGuC,EAAOwe,EAAaxoB,GAEjDwuB,IAEFA,EAAKjpB,MAAMyE,MAAQ5G,SAASorB,EAAKjpB,MAAMyE,OAASA,EAAQ,MAYhE,GA9DU,MAwDNiH,GAAkBme,IACpBpgB,QAAQC,KAAK,4FACbmgB,GAAoB,GAIlBt3B,KAAKqP,QAAQolB,gBAAiB,CAChC,GAAI8C,GAAWv3B,KAAKyS,KAAKoD,KAAKyW,OAAO,GACjCkL,EAAWtB,EAAKiB,cAAcI,GAC9BE,EAAYD,EAASn1B,QAAUrC,KAAKoC,MAAMs1B,gBAAkB,IAAM,QAE9Cx0B,IAApB0zB,GAAiCa,EAAYb,IAC/C52B,KAAKk3B,kBAAkB,EAAGM,EAAU9G,EAAaxoB,GAKrD2N,EAAKnN,QAAQ1I,KAAK+tB,IAAIhT,UAAW,SAAU5T,GACzC,KAAOA,EAAI9E,QAAQ,CACjB,GAAImF,GAAOL,EAAIwwB,KACXnwB,IAAQA,EAAK4C,YACf5C,EAAK4C,WAAWjG,YAAYqD,OAepCusB,EAASxyB,UAAU01B,kBAAoB,SAAUtnB,EAAGioB,EAAMlH,EAAaxoB,GAErE,GAAI+T,GAAQjc,KAAK+tB,IAAIhT,UAAUoZ,WAAW9Y,OAE1C,KAAKY,EAAO,CAEV,GAAIG,GAAUpK,SAAS6lB,eAAe,GACtC5b,GAAQjK,SAASC,cAAc,OAC/BgK,EAAMzJ,YAAY4J,GAClBpc,KAAK+tB,IAAIiG,WAAWxhB,YAAYyJ,GAgBlC,MAdAjc,MAAK+tB,IAAIoG,WAAW/tB,KAAK6V,GACzBA,EAAM4U,UAAY+G,EAElB3b,EAAMxO,MAAM3F,IAAqB,OAAf4oB,EAAuB1wB,KAAKoC,MAAMizB,iBAAmB,KAAO,IAE1Er1B,KAAKqP,QAAQ2gB,KACf/T,EAAMxO,MAAM/F,KAAO,GACnBuU,EAAMxO,MAAM7F,MAAQ+H,EAAI,MAExBsM,EAAMxO,MAAM/F,KAAOiI,EAAI,KAEzBsM,EAAM/T,UAAY,sBAAwBA,EAGnC+T,GAYT8X,EAASxyB,UAAU21B,kBAAoB,SAAUvnB,EAAGioB,EAAMlH,EAAaxoB,GAErE,GAAI+T,GAAQjc,KAAK+tB,IAAIhT,UAAUmZ,WAAW7Y,OAE1C,KAAKY,EAAO,CAEV,GAAIG,GAAUpK,SAASC,cAAc,MACrCgK,GAAQjK,SAASC,cAAc,OAC/BgK,EAAMzJ,YAAY4J,GAClBpc,KAAK+tB,IAAIiG,WAAWxhB,YAAYyJ,GAgBlC,MAbAA,GAAM6b,WAAW,GAAGjH,UAAY+G,EAChC3b,EAAM/T,UAAY,sBAAwBA,EAG1C+T,EAAMxO,MAAM3F,IAAqB,OAAf4oB,EAAuB,IAAM1wB,KAAKoC,MAAM+yB,iBAAmB,KACzEn1B,KAAKqP,QAAQ2gB,KACf/T,EAAMxO,MAAM/F,KAAO,GACnBuU,EAAMxO,MAAM7F,MAAQ+H,EAAI,MAExBsM,EAAMxO,MAAM/F,KAAOiI,EAAI,KAGzB3P,KAAK+tB,IAAImG,WAAW9tB,KAAK6V,GAClBA,GAYT8X,EAASxyB,UAAU81B,kBAAoB,SAAU1nB,EAAGuC,EAAOwe,EAAaxoB,GAEtE,GAAIwuB,GAAO12B,KAAK+tB,IAAIhT,UAAUkZ,MAAM5Y,OAC/Bqb,KAEHA,EAAO1kB,SAASC,cAAc,OAC9BjS,KAAK+tB,IAAIhhB,WAAWyF,YAAYkkB,IAElC12B,KAAK+tB,IAAIkG,MAAM7tB,KAAKswB,EAEpB,IAAIt0B,GAAQpC,KAAKoC,KAiBjB,OAfEs0B,GAAKjpB,MAAM3F,IADM,OAAf4oB,EACetuB,EAAMizB,iBAAmB,KAEzBr1B,KAAKyS,KAAK2W,SAASthB,IAAIqK,OAAS,KAEnDukB,EAAKjpB,MAAM0E,OAAS/P,EAAMmzB,gBAAkB,KACxCv1B,KAAKqP,QAAQ2gB,KACf0G,EAAKjpB,MAAM/F,KAAO,GAClBgvB,EAAKjpB,MAAM7F,MAAQ+H,EAAIvN,EAAMozB,eAAiB,EAAI,KAClDkB,EAAKxuB,UAAY,uCAAyCA,IAE1DwuB,EAAKjpB,MAAM/F,KAAOiI,EAAIvN,EAAMozB,eAAiB,EAAI,KACjDkB,EAAKxuB,UAAY,mCAAqCA,GAExDwuB,EAAKjpB,MAAMyE,MAAQA,EAAQ,KAEpBwkB,GAYT3C,EAASxyB,UAAU61B,kBAAoB,SAAUznB,EAAGuC,EAAOwe,EAAaxoB,GAEtE,GAAIwuB,GAAO12B,KAAK+tB,IAAIhT,UAAUkZ,MAAM5Y,OAC/Bqb,KAEHA,EAAO1kB,SAASC,cAAc,OAC9BjS,KAAK+tB,IAAIhhB,WAAWyF,YAAYkkB,IAElC12B,KAAK+tB,IAAIkG,MAAM7tB,KAAKswB,EAEpB,IAAIt0B,GAAQpC,KAAKoC,KAmBjB,OAjBEs0B,GAAKjpB,MAAM3F,IADM,OAAf4oB,EACe,IAEA1wB,KAAKyS,KAAK2W,SAASthB,IAAIqK,OAAS,KAG/CnS,KAAKqP,QAAQ2gB,KACf0G,EAAKjpB,MAAM/F,KAAO,GAClBgvB,EAAKjpB,MAAM7F,MAAQ+H,EAAIvN,EAAMszB,eAAiB,EAAI,KAClDgB,EAAKxuB,UAAY,uCAAyCA,IAE1DwuB,EAAKjpB,MAAM/F,KAAOiI,EAAIvN,EAAMszB,eAAiB,EAAI,KACjDgB,EAAKxuB,UAAY,mCAAqCA,GAGxDwuB,EAAKjpB,MAAM0E,OAAS/P,EAAMqzB,gBAAkB,KAC5CiB,EAAKjpB,MAAMyE,MAAQA,EAAQ,KAEpBwkB,GAQT3C,EAASxyB,UAAU2zB,mBAAqB,WAKjCl1B,KAAK+tB,IAAIgK,mBACZ/3B,KAAK+tB,IAAIgK,iBAAmB/lB,SAASC,cAAc,OACnDjS,KAAK+tB,IAAIgK,iBAAiB7vB,UAAY,iCACtClI,KAAK+tB,IAAIgK,iBAAiBtqB,MAAM4E,SAAW,WAE3CrS,KAAK+tB,IAAIgK,iBAAiBvlB,YAAYR,SAAS6lB,eAAe,MAC9D73B,KAAK+tB,IAAIiG,WAAWxhB,YAAYxS,KAAK+tB,IAAIgK,mBAE3C/3B,KAAKoC,MAAMgzB,gBAAkBp1B,KAAK+tB,IAAIgK,iBAAiBC,aACvDh4B,KAAKoC,MAAM6zB,eAAiBj2B,KAAK+tB,IAAIgK,iBAAiBllB,YAGjD7S,KAAK+tB,IAAIkK,mBACZj4B,KAAK+tB,IAAIkK,iBAAmBjmB,SAASC,cAAc,OACnDjS,KAAK+tB,IAAIkK,iBAAiB/vB,UAAY,iCACtClI,KAAK+tB,IAAIkK,iBAAiBxqB,MAAM4E,SAAW,WAE3CrS,KAAK+tB,IAAIkK,iBAAiBzlB,YAAYR,SAAS6lB,eAAe,MAC9D73B,KAAK+tB,IAAIiG,WAAWxhB,YAAYxS,KAAK+tB,IAAIkK,mBAE3Cj4B,KAAKoC,MAAMkzB,gBAAkBt1B,KAAK+tB,IAAIkK,iBAAiBD,aACvDh4B,KAAKoC,MAAMs1B,eAAiB13B,KAAK+tB,IAAIkK,iBAAiBplB,YAGxD,IAAIykB,IAAoB,CAExB13B,GAAOD,QAAUo0B,GAIX,SAAUn0B,EAAQD,EAASO,GAqBjC,QAASg4B,GAAWzlB,EAAMpD,GACxBrP,KAAKyS,KAAOA,EAGZzS,KAAKs0B,gBACH3wB,OAAQA,EACRw0B,QAASA,EACTpD,OAAQ,KACRze,OAAIpT,GACJ+sB,UAAO/sB,IAETlD,KAAKqP,QAAUwG,EAAKrQ,UAAWxF,KAAKs0B,gBAEhCjlB,GAAWA,EAAQ0c,KACrB/rB,KAAKo4B,WAAa/oB,EAAQ0c,KAE1B/rB,KAAKo4B,WAAa,GAAItzB,MAGxB9E,KAAKq4B,eAELr4B,KAAK0V,WAAWrG,GAGhBrP,KAAKqD,UAxCP,GAAI2R,GAAS9U,EAAoB,IAC7B2V,EAAO3V,EAAoB,GAC3Bqf,EAAYrf,EAAoB,IAChCyD,EAASzD,EAAoB,GAC7Bi4B,EAAUj4B,EAAoB,GAuClCg4B,GAAW32B,UAAY,GAAIge,GAS3B2Y,EAAW32B,UAAUmU,WAAa,SAAUrG,GACtCA,GAEFwG,EAAKnQ,iBAAiB,SAAU,SAAU,UAAW,MAAO1F,KAAKqP,QAASA,IAQ9E6oB,EAAW32B,UAAU8B,QAAU,WAoB7B,QAASi1B,GAAa/tB,GACpBvK,KAAKyS,KAAK6W,MAAMiP,cAAchuB,GApBhC,GAAIiuB,GAAMxmB,SAASC,cAAc,MACjCumB,GAAI,eAAiBx4B,KACrBw4B,EAAItwB,UAAY,oBAAsBlI,KAAKqP,QAAQiH,IAAM,IACzDkiB,EAAI/qB,MAAM4E,SAAW,WACrBmmB,EAAI/qB,MAAM3F,IAAM,MAChB0wB,EAAI/qB,MAAM0E,OAAS,OACnBnS,KAAKw4B,IAAMA,CAEX,IAAIC,GAAOzmB,SAASC,cAAc,MAClCwmB,GAAKhrB,MAAM4E,SAAW,WACtBomB,EAAKhrB,MAAM3F,IAAM,MACjB2wB,EAAKhrB,MAAM/F,KAAO,QAClB+wB,EAAKhrB,MAAM0E,OAAS,OACpBsmB,EAAKhrB,MAAMyE,MAAQ,OAUfumB,EAAKtvB,kBAEPsvB,EAAKtvB,iBAAiB,aAAcmvB,EAAa/P,KAAKvoB,OAAO,GAE7Dy4B,EAAKtvB,iBAAiB,iBAAkBmvB,EAAa/P,KAAKvoB,OAAO,IAGjEy4B,EAAK/uB,YAAY,eAAgB4uB,EAAa/P,KAAKvoB,OAGrDw4B,EAAIhmB,YAAYimB,GAEhBz4B,KAAKotB,OAAS,GAAIpY,GAAOyjB,GACzBz4B,KAAKotB,OAAO1Y,GAAG,WAAY1U,KAAK04B,aAAanQ,KAAKvoB,OAClDA,KAAKotB,OAAO1Y,GAAG,UAAW1U,KAAK24B,QAAQpQ,KAAKvoB,OAC5CA,KAAKotB,OAAO1Y,GAAG,SAAU1U,KAAK44B,WAAWrQ,KAAKvoB,OAC9CA,KAAKotB,OAAOlsB,IAAI,OAAO4T,KAAM+jB,UAAW,EAAG5L,UAAWjY,EAAO8jB,wBAM/DZ,EAAW32B,UAAUqT,QAAU,WAC7B5U,KAAK+f,OAEL/f,KAAKotB,OAAOxY,UACZ5U,KAAKotB,OAAS,KAEdptB,KAAKyS,KAAO,MAOdylB,EAAW32B,UAAUie,OAAS,WAC5B,GAAIlV,GAAStK,KAAKyS,KAAKsb,IAAIgI,kBACvB/1B,MAAKw4B,IAAIpuB,YAAcE,IAErBtK,KAAKw4B,IAAIpuB,YACXpK,KAAKw4B,IAAIpuB,WAAWjG,YAAYnE,KAAKw4B,KAEvCluB,EAAOkI,YAAYxS,KAAKw4B,KAG1B,IAAI7oB,GAAI3P,KAAKyS,KAAKoD,KAAKgW,SAAS7rB,KAAKo4B,YAEjCrD,EAAS/0B,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,OAC1CA,KACE/0B,KAAK+4B,SACR7hB,QAAQ0G,IAAI,6BAAgC5d,KAAKqP,QAAQ0lB,OAAS,kEAClE/0B,KAAK+4B,QAAS,GAEhBhE,EAAS/0B,KAAKqP,QAAQ8oB,QAAY,GAGpC,IAAIlI,GAAQjwB,KAAKqP,QAAQ4gB,KAYzB,YAVc/sB,KAAV+sB,GACFA,EAAQ8E,EAAOhJ,KAAO,KAAO/rB,KAAKqP,QAAQ1L,OAAO3D,KAAKo4B,YAAYnxB,OAAO,+BACzEgpB,EAAQA,EAAM3Q,OAAO,GAAG0Z,cAAgB/I,EAAMgJ,UAAU,IAC9B,kBAAVhJ,KAChBA,EAAQA,EAAM1vB,KAAKP,KAAKo4B,aAG1Bp4B,KAAKw4B,IAAI/qB,MAAM/F,KAAOiI,EAAI,KAC1B3P,KAAKw4B,IAAIvI,MAAQA,GAEV,GAMTiI,EAAW32B,UAAUwe,KAAO,WAEtB/f,KAAKw4B,IAAIpuB,YACXpK,KAAKw4B,IAAIpuB,WAAWjG,YAAYnE,KAAKw4B,MAQzCN,EAAW32B,UAAU23B,cAAgB,SAAUnN,GAC7C/rB,KAAKo4B,WAAaviB,EAAKrP,QAAQulB,EAAM,QACrC/rB,KAAKwf,UAOP0Y,EAAW32B,UAAU43B,cAAgB,WACnC,MAAO,IAAIr0B,MAAK9E,KAAKo4B,WAAWxxB,YAOlCsxB,EAAW32B,UAAU63B,eAAiB,SAAUnJ,GAC9CjwB,KAAKqP,QAAQ4gB,MAAQA,GAQvBiI,EAAW32B,UAAUm3B,aAAe,SAAU5uB,GAC5C9J,KAAKq4B,YAAYgB,UAAW,EAC5Br5B,KAAKq4B,YAAYD,WAAap4B,KAAKo4B,WAEnCtuB,EAAM0lB,mBAQR0I,EAAW32B,UAAUo3B,QAAU,SAAU7uB,GACvC,GAAK9J,KAAKq4B,YAAYgB,SAAtB,CAEA,GAAI1pB,GAAI3P,KAAKyS,KAAKoD,KAAKgW,SAAS7rB,KAAKq4B,YAAYD,YAActuB,EAAMwvB,OACjEvN,EAAO/rB,KAAKyS,KAAKoD,KAAKyW,OAAO3c,EAEjC3P,MAAKk5B,cAAcnN,GAGnB/rB,KAAKyS,KAAK8c,QAAQ1a,KAAK,cACrByB,GAAItW,KAAKqP,QAAQiH,GACjByV,KAAM,GAAIjnB,MAAK9E,KAAKo4B,WAAWxxB,WAC/BkD,MAAOA,IAGTA,EAAM0lB,oBAQR0I,EAAW32B,UAAUq3B,WAAa,SAAU9uB,GACrC9J,KAAKq4B,YAAYgB,WAGtBr5B,KAAKyS,KAAK8c,QAAQ1a,KAAK,eACrByB,GAAItW,KAAKqP,QAAQiH,GACjByV,KAAM,GAAIjnB,MAAK9E,KAAKo4B,WAAWxxB,WAC/BkD,MAAOA,IAGTA,EAAM0lB,oBASR0I,EAAWqB,qBAAuB,SAAUzvB,GAE1C,IADA,GAAI3H,GAAS2H,EAAM3H,OACZA,GAAQ,CACb,GAAIA,EAAOX,eAAe,eACxB,MAAOW,GAAO,cAEhBA,GAASA,EAAOiI,WAGlB,MAAO,OAGTxK,EAAOD,QAAUu4B,GAIX,SAAUt4B,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAE3Bs5B,EAAQt5B,EAAoB,KAAc,QAC1Cu5B,EAAgBv5B,EAAoB,IAAa,QACjDw5B,EAAMx5B,EAAoB,KAAc,QACxCy5B,EAASz5B,EAAoB,KAAc,QAC3C05B,EAAgB15B,EAAoB,KAAc,QAClD25B,EAAW35B,EAAoB,KAAc,QAC7C45B,EAAU55B,EAAoB,KAAc,QAC5C65B,EAAM75B,EAAoB,KAAc,QACxC85B,EAAU95B,EAAoB,KAAc,QAC5C+5B,EAAO/5B,EAAoB,KAAc,QACzCg6B,EAAQh6B,EAAoB,KAAc,QAC1Ci6B,EAASj6B,EAAoB,KAAc,QAC3Ck6B,EAAUl6B,EAAoB,KAAc,QAC5Cm6B,EAAOn6B,EAAoB,KAAc,QACzCo6B,EAAOp6B,EAAoB,KAAc,QACzCq6B,EAAWr6B,EAAoB,KAAc,QAC7Cs6B,EAAet6B,EAAoB,KAAc,QAEjDu6B,EAAWv6B,EAAoB,IAC/Bsc,EAAaie,EAASje,WAOtBke,EAAO,WAqBT,QAASA,GAAKrrB,EAASoD,EAAMkoB,EAAWC,EAAWtrB,EAAeglB,IAChE,EAAI5X,EAA0B,SAAG1c,KAAM06B,GAEvC16B,KAAKqP,QAAUwG,EAAKhH,aAAaS,GACjCtP,KAAKsP,cAAgBA,EACrBtP,KAAKs0B,eAAiBA,EACtBt0B,KAAKyS,KAAOA,EAEZzS,KAAK66B,SAGL76B,KAAKsW,OAAKpT,GACVlD,KAAK26B,UAAYA,EACjB36B,KAAK46B,UAAYA,EAGjB56B,KAAK2P,MAAIzM,GACTlD,KAAK2b,MAAIzY,GACTlD,KAAK86B,SAAW96B,KAAKqP,QAAQ2M,KAC7Bhc,KAAK+6B,aAAe/6B,KAAKqP,QAAQ2rB,KAAKhf,KACtChc,KAAKi7B,oBAAqB,EAC1Bj7B,KAAKyjB,UAAW,EAChBzjB,KAAKkN,OAAQ,EAEblN,KAAKgiB,YAAc,GAAIwX,GAAMx5B,KAAKyS,KAAMzS,KAAKqP,SAAS,GACtDrP,KAAK0V,WAAWrG,GAonBlB,OA3mBA,EAAIuN,EAAuB,SAAG8d,IAC5Bl4B,IAAK,aACLgC,MAAO,SAAoB02B,IACS,IAA9Bl7B,KAAK66B,MAAM10B,QAAQ+0B,IACrBl7B,KAAK66B,MAAMz0B,KAAK80B,MAWpB14B,IAAK,aACLgC,MAAO,SAAoB02B,GACzB,GAAIC,GAAQn7B,KAAK66B,MAAM10B,QAAQ+0B,IACjB,GAAVC,GACFn7B,KAAK66B,MAAMjH,OAAOuH,EAAO,MAY7B34B,IAAK,aACLgC,MAAO,SAAoB6K,GACzB,GAAI+rB,GAAep7B,KAAKqP,QAAQkW,KAChC,IAAKlW,EAAL,CASA,OAJmBnM,KAAfmM,EAAQiH,KACVtW,KAAKsW,GAAKjH,EAAQiH,QAGJpT,KAAZlD,KAAKsW,GACP,KAAM,IAAIzQ,OAAM,uBAGlB60B,GAAKW,UAAUhsB,EAASrP,KAAKsW,QAIXpT,KAAdmM,EAAQM,IACQ,OAAdN,EAAQM,GACV3P,KAAK2P,MAAIzM,GAAUlD,KAAKi7B,oBAAqB,IAE7Cj7B,KAAK2P,EAAIrE,SAAS+D,EAAQM,GAAG3P,KAAKi7B,oBAAqB,QAGzC/3B,KAAdmM,EAAQsM,IACQ,OAAdtM,EAAQsM,GACV3b,KAAK2b,MAAIzY,GAAUlD,KAAKi7B,oBAAqB,IAE7Cj7B,KAAK2b,EAAIrQ,SAAS+D,EAAQsM,GAAG3b,KAAKi7B,oBAAqB,QAGtC/3B,KAAjBmM,EAAQ2M,OACVhc,KAAK86B,SAAWzrB,EAAQ2M,UAEJ9Y,KAAlBmM,EAAQ7K,QACV6K,EAAQ7K,MAAQ82B,WAAWjsB,EAAQ7K,QAIrCk2B,EAAKa,aAAav7B,KAAKqP,QAASA,GAAS,EAAMrP,KAAKsP,cAAetP,KAAK46B,UAExE,IAAI7nB,IAAQ1D,EAASrP,KAAKqP,QAASrP,KAAKs0B,eAOxC,OANAt0B,MAAKw7B,QAAU/B,EAAcgC,SAAS,OAAQ1oB,GAE9C/S,KAAK07B,eACL17B,KAAK27B,kBAAkBtsB,GACvBrP,KAAK47B,YAAYR,OAESl4B,KAAnBmM,EAAQub,YAA4C1nB,KAApBmM,EAAQwsB,YAajDr5B,IAAK,eACLgC,MAAO,WAEL,GAA2B,kBAAvBxE,KAAKqP,QAAQkW,OAAoD,UAAvBvlB,KAAKqP,QAAQkW,MAA3D,CAIA,OAA2BriB,KAAvBlD,KAAKqP,QAAQysB,MACf,KAAM,IAAIj2B,OAAM,+CAAiD7F,KAAKqP,QAAQkW,MAAQ,IAGxF,QAAuBriB,KAAnBlD,KAAK26B,UACP,KAAM,IAAI90B,OAAM,qCAGlB,IAAkC,gBAAvB7F,MAAKqP,QAAQysB,MACtB97B,KAAK+7B,SAAW/7B,KAAK26B,UAAUqB,KAAKh8B,KAAKqP,QAAQysB,MAAO97B,KAAKqP,QAAQ4sB,YAAaj8B,KAAKsW,QAClF,CACL,OAAsCpT,KAAlClD,KAAKqP,QAAQysB,MAAMI,WACrB,KAAM,IAAIr2B,OAAM,+BAGlB7F,MAAK+7B,SAAW/7B,KAAK26B,UAAUqB,KAAKh8B,KAAKqP,QAAQysB,MAAMI,WAAYl8B,KAAKqP,QAAQ4sB,YAAaj8B,KAAKsW,QAE9DpT,KAAhClD,KAAKqP,QAAQysB,MAAMrY,SACrBzjB,KAAKm8B,YAAcn8B,KAAK26B,UAAUqB,KAAKh8B,KAAKqP,QAAQysB,MAAMrY,SAAUzjB,KAAKqP,QAAQ4sB,YAAaj8B,KAAKsW,IAEnGtW,KAAKm8B,gBAAcj5B,QAmBzBV,IAAK,sBAOLgC,MAAO,WACL,GAAIyU,IACFzN,MAAOxL,KAAKqP,QAAQ7D,MAAMuB,WAC1ByV,YAAaxiB,KAAKqP,QAAQmT,YAC1BsB,YAAa9jB,KAAKqP,QAAQ7D,MAAMwB,OAChCgP,KAAMhc,KAAKqP,QAAQ2M,KACnBqH,aAAcrjB,KAAKqP,QAAQmU,gBAAgBH,aAC3C+Y,aAAcp8B,KAAKqP,QAAQmU,gBAAgB4Y,aAC3CvZ,OAAQ7iB,KAAKqP,QAAQwT,OAAO/S,QAC5BgT,YAAa9iB,KAAKqP,QAAQwT,OAAOrX,MACjCwX,WAAYhjB,KAAKqP,QAAQwT,OAAO7G,KAChCkH,QAASljB,KAAKqP,QAAQwT,OAAOlT,EAC7ByT,QAASpjB,KAAKqP,QAAQwT,OAAOlH,EAyB/B,OAvBI3b,MAAKyjB,UAAYzjB,KAAKkN,OACH,IAAjBlN,KAAKw7B,QACHx7B,KAAKyjB,UACPxK,EAAOuJ,aAAe,EACtBvJ,EAAOzN,MAAQxL,KAAKqP,QAAQ7D,MAAMyB,UAAUF,WAC5CkM,EAAO6K,YAAc9jB,KAAKqP,QAAQ7D,MAAMyB,UAAUD,OAClDiM,EAAO4J,OAAS7iB,KAAKqP,QAAQwT,OAAO/S,SAC3B9P,KAAKkN,QACd+L,EAAOzN,MAAQxL,KAAKqP,QAAQ7D,MAAM0B,MAAMH,WACxCkM,EAAO6K,YAAc9jB,KAAKqP,QAAQ7D,MAAM0B,MAAMF,OAC9CiM,EAAO4J,OAAS7iB,KAAKqP,QAAQwT,OAAO/S,SAEL,kBAAjB9P,MAAKw7B,UACrBx7B,KAAKw7B,QAAQviB,EAAQjZ,KAAKqP,QAAQiH,GAAItW,KAAKyjB,SAAUzjB,KAAKkN,QACpC,IAAlB+L,EAAO4J,SACL5J,EAAO6J,cAAgB9iB,KAAKqP,QAAQwT,OAAOrX,OAASyN,EAAO+J,aAAehjB,KAAKqP,QAAQwT,OAAO7G,MAAQ/C,EAAOiK,UAAYljB,KAAKqP,QAAQwT,OAAOlT,GAAKsJ,EAAOmK,UAAYpjB,KAAKqP,QAAQwT,OAAOlH,IAC3L1C,EAAO4J,QAAS,KAKtB5J,EAAO4J,OAAS7iB,KAAKqP,QAAQwT,OAAO/S,QAE/BmJ,KASTzW,IAAK,oBACLgC,MAAO,SAA2B6K,OACLnM,KAAvBlD,KAAKqP,QAAQ4M,OAA8C,OAAvBjc,KAAKqP,QAAQ4M,QACnDjc,KAAKqP,QAAQ4M,MAAQ,IAGvBye,EAAK2B,mBAAmBr8B,KAAKqP,QAASA,EAASrP,KAAK46B,UAYpD,IAAI0B,GAAet8B,KAAK46B,UAAU15B,IAAIlB,KAAKqP,QAAQmf,OAAO,GACtDzb,GAAQ1D,EACZrP,KAAKqP,QACLitB,EACAt8B,KAAKsP,cACLtP,KAAKs0B,eAELt0B,MAAKgiB,YAAYrL,OAAO3W,KAAKqP,QAAS0D,OAEJ7P,KAA9BlD,KAAKgiB,YAAY8Y,WACnB96B,KAAK+6B,aAAe/6B,KAAKgiB,YAAY8Y,aAUzCt4B,IAAK,cACLgC,MAAO,SAAqB42B,GAC1B,GAAIA,IAAiBp7B,KAAKqP,QAAQkW,OAASvlB,KAAKulB,MAC9CvlB,KAAKulB,MAAM7P,WAAW1V,KAAKqP,QAASrP,KAAK+7B,SAAU/7B,KAAKm8B,iBAGxD,QAAQn8B,KAAKqP,QAAQkW,OACnB,IAAK,MACHvlB,KAAKulB,MAAQ,GAAImU,GAAI15B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACnD,MACF,KAAK,SACHhiB,KAAKulB,MAAQ,GAAIoU,GAAO35B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACtD,MACF,KAAK,gBACHhiB,KAAKulB,MAAQ,GAAIqU,GAAc55B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YAAahiB,KAAK+7B,SAAU/7B,KAAKm8B,YAC9F,MACF,KAAK,WACHn8B,KAAKulB,MAAQ,GAAIsU,GAAS75B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACxD,MACF,KAAK,UACHhiB,KAAKulB,MAAQ,GAAIuU,GAAQ95B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACvD,MACF,KAAK,MACHhiB,KAAKulB,MAAQ,GAAIwU,GAAI/5B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACnD,MACF,KAAK,UACHhiB,KAAKulB,MAAQ,GAAIyU,GAAQh6B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACvD,MACF,KAAK,OACHhiB,KAAKulB,MAAQ,GAAI0U,GAAKj6B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACpD,MACF,KAAK,QACHhiB,KAAKulB,MAAQ,GAAI2U,GAAMl6B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YAAahiB,KAAK+7B,SAAU/7B,KAAKm8B,YACtF,MACF,KAAK,SACHn8B,KAAKulB,MAAQ,GAAI4U,GAAOn6B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACtD,MACF,KAAK,UACHhiB,KAAKulB,MAAQ,GAAI6U,GAAQp6B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACvD,MACF,KAAK,OACHhiB,KAAKulB,MAAQ,GAAI8U,GAAKr6B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACpD,MACF,KAAK,OACHhiB,KAAKulB,MAAQ,GAAI+U,GAAKt6B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACpD,MACF,KAAK,WACHhiB,KAAKulB,MAAQ,GAAIgV,GAASv6B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YACxD,MACF,KAAK,eACHhiB,KAAKulB,MAAQ,GAAIiV,GAAax6B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,YAC5D,MACF,SACEhiB,KAAKulB,MAAQ,GAAIyU,GAAQh6B,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,aAI7DhiB,KAAKslB,kBAQP9iB,IAAK,SACLgC,MAAO,WACLxE,KAAKyjB,UAAW,EAChBzjB,KAAKslB,kBAQP9iB,IAAK,WACLgC,MAAO,WACLxE,KAAKyjB,UAAW,EAChBzjB,KAAKslB,kBAQP9iB,IAAK,eACLgC,MAAO,WACLxE,KAAKulB,MAAMpD,eAAgB,KAU7B3f,IAAK,WACLgC,MAAO,WACL,MAAOxE,MAAKqP,QAAQ4gB,SAWtBztB,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKulB,MAAMgX,iBAAiBzc,EAAKyC,MAS1C/f,IAAK,UACLgC,MAAO,WACL,MAAOxE,MAAKqP,QAAQmtB,MAAM7sB,GAAK3P,KAAKqP,QAAQmtB,MAAM7gB,KASpDnZ,IAAK,aACLgC,MAAO,WACL,MAAOxE,MAAKyjB,YASdjhB,IAAK,WACLgC,MAAO,WACL,MAAOxE,MAAKqP,QAAQ7K,SAUtBhC,IAAK,eACLgC,MAAO,WACL,MAAOxE,MAAKgiB,YAAYhG,UAY1BxZ,IAAK,gBACLgC,MAAO,SAAuBH,EAAKC,EAAKC,GACtC,OAA2BrB,KAAvBlD,KAAKqP,QAAQ7K,MAAqB,CACpC,GAAIC,GAAQzE,KAAKqP,QAAQotB,QAAQC,sBAAsBr4B,EAAKC,EAAKC,EAAOvE,KAAKqP,QAAQ7K,OACjFm4B,EAAW38B,KAAKqP,QAAQotB,QAAQn4B,IAAMtE,KAAKqP,QAAQotB,QAAQp4B,GAC/D,KAA2C,IAAvCrE,KAAKqP,QAAQotB,QAAQxgB,MAAMnM,QAAkB,CAC/C,GAAI8sB,GAAW58B,KAAKqP,QAAQotB,QAAQxgB,MAAM3X,IAAMtE,KAAKqP,QAAQotB,QAAQxgB,MAAM5X,GAC3ErE,MAAKqP,QAAQ2rB,KAAKhf,KAAOhc,KAAKqP,QAAQotB,QAAQxgB,MAAM5X,IAAMI,EAAQm4B,EAEpE58B,KAAKqP,QAAQ2M,KAAOhc,KAAKqP,QAAQotB,QAAQp4B,IAAMI,EAAQk4B,MAEvD38B,MAAKqP,QAAQ2M,KAAOhc,KAAK86B,SACzB96B,KAAKqP,QAAQ2rB,KAAKhf,KAAOhc,KAAK+6B,YAGhC/6B,MAAK27B,uBAUPn5B,IAAK,OACLgC,MAAO,SAAcsb,GACnB,GAAI7G,GAASjZ,KAAK68B,qBAClB78B,MAAKulB,MAAMM,KAAK/F,EAAK9f,KAAK2P,EAAG3P,KAAK2b,EAAG3b,KAAKyjB,SAAUzjB,KAAKkN,MAAO+L,MASlEzW,IAAK,oBACLgC,MAAO,SAA2Bsb,GAChC9f,KAAKulB,MAAMO,kBAAkB9lB,KAAK2P,EAAG3P,KAAK2b,EAAGmE,MAU/Ctd,IAAK,SACLgC,MAAO,SAAgBsb,GACrB,GAAI7G,GAASjZ,KAAK68B,qBAClB78B,MAAKulB,MAAM9C,OAAO3C,EAAK9f,KAAKyjB,SAAUzjB,KAAKkN,MAAO+L,MAYpDzW,IAAK,kBACLgC,MAAO,SAAyBsX,GAC9B,GAAIghB,KAYJ,OAVI98B,MAAKgiB,YAAY+a,WACftD,EAAcuD,YAAYh9B,KAAKgiB,YAAYib,UAAWnhB,IACxDghB,EAAI12B,MAAO82B,OAAQl9B,KAAKsW,GAAI6mB,QAAS,IAIrC1D,EAAcuD,YAAYh9B,KAAKulB,MAAMnD,YAAatG,IACpDghB,EAAI12B,MAAO82B,OAAQl9B,KAAKsW,KAGnBwmB,KAUTt6B,IAAK,oBACLgC,MAAO,SAA2BvC,GAChC,MAAOjC,MAAKulB,MAAM7d,KAAOzF,EAAI2F,OAAS5H,KAAKulB,MAAM7d,KAAO1H,KAAKulB,MAAMrT,MAAQjQ,EAAIyF,MAAQ1H,KAAKulB,MAAMzd,IAAM7F,EAAIogB,QAAUriB,KAAKulB,MAAMzd,IAAM9H,KAAKulB,MAAMpT,OAASlQ,EAAI6F,OAUjKtF,IAAK,+BACLgC,MAAO,SAAsCvC,GAC3C,MAAOjC,MAAKulB,MAAMnD,YAAY1a,KAAOzF,EAAI2F,OAAS5H,KAAKulB,MAAMnD,YAAYxa,MAAQ3F,EAAIyF,MAAQ1H,KAAKulB,MAAMnD,YAAYta,IAAM7F,EAAIogB,QAAUriB,KAAKulB,MAAMnD,YAAYC,OAASpgB,EAAI6F,SAc9KtF,IAAK,qBACLgC,MAAO,SAA4B44B,EAAeC,EAAYC,GAC5D,OAAkBp6B,KAAdo6B,EAAJ,CAEA,GAAI9O,GAAQ4O,EAAc5O,KAG1B,QAAmBtrB,KAAfm6B,OAAiDn6B,KAArBm6B,EAAW7O,OAAuBA,IAAU6O,EAAW7O,MACrF,KAAM,IAAI3oB,OAAM,2DAIlB,IADgC,gBAAV2oB,IAAuC,gBAAVA,IAA+B,IAATA,EACzE,CAEA,GAAI+O,GAAWD,EAAUp8B,IAAIstB,EAI7B3Y,GAAK5P,wBAAwB,QAASm3B,EAAeG,GAIrDH,EAAc5xB,MAAQqK,EAAK3J,WAAWkxB,EAAc5xB,YAgBtDhJ,IAAK,eACLgC,MAAO,SAAsB44B,EAAeC,GAC1C,GAAIr6B,GAAgBuC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAC/E+J,EAAgB/J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,MAC/E+3B,EAAY/3B,UAAU,GAGtBmJ,GAAU,QAAS,QAAS,SAShC,IARAmH,EAAK5P,uBAAuByI,EAAQ0uB,EAAeC,EAAYr6B,GAE/D03B,EAAKW,UAAUgC,GAGfxnB,EAAK1G,aAAaiuB,EAAeC,EAAY,SAAU/tB,OAG9BpM,KAArBm6B,EAAW7xB,OAA4C,OAArB6xB,EAAW7xB,MAAgB,CAC/D,GAAIgyB,GAAc3nB,EAAK3J,WAAWmxB,EAAW7xB,MAC7CqK,GAAKvQ,cAAc83B,EAAc5xB,MAAOgyB,QACb,IAAlBx6B,GAA+C,OAArBq6B,EAAW7xB,QAC9C4xB,EAAc5xB,MAAQqK,EAAKhH,aAAaS,EAAc9D,YAI/BtI,KAArBm6B,EAAWb,OAA4C,OAArBa,EAAWb,QACf,iBAArBa,GAAWb,OACpBY,EAAcZ,MAAM7sB,EAAI0tB,EAAWb,MACnCY,EAAcZ,MAAM7gB,EAAI0hB,EAAWb,YAERt5B,KAAvBm6B,EAAWb,MAAM7sB,GAAiD,iBAAvB0tB,GAAWb,MAAM7sB,IAC9DytB,EAAcZ,MAAM7sB,EAAI0tB,EAAWb,MAAM7sB,OAEhBzM,KAAvBm6B,EAAWb,MAAM7gB,GAAiD,iBAAvB0hB,GAAWb,MAAM7gB,IAC9DyhB,EAAcZ,MAAM7gB,EAAI0hB,EAAWb,MAAM7gB,MAKzB,IAAlB3Y,GAA8C,OAApBq6B,EAAWrC,OACvCoC,EAAcpC,KAAOnlB,EAAKhH,aAAaS,EAAc0rB,OAGvDN,EAAK2B,mBAAmBe,EAAeC,EAAYC,OAGxBp6B,KAAvBm6B,EAAWZ,SACb5mB,EAAK1G,aAAaiuB,EAAcX,QAASY,EAAWZ,QAAS,QAASntB,EAAcmtB,YAIxFj6B,IAAK,YACLgC,MAAO,SAAmB6K,EAASiH,GACjC,OAAqBpT,KAAjBmM,EAAQouB,MAAsBpuB,EAAQouB,MAAQ,EAAG,CACnD,GAAIC,GAAQ,OACDx6B,KAAPoT,IACFonB,EAAQ,gBAAkBpnB,GAE5BY,QAAQ0G,IAAI,qCAAuC8f,EAAQ,uBAAwBlhB,GACnFnN,EAAQouB,KAAO,OAId/C,IAGT/6B,GAAiB,QAAI+6B,GAIf,SAAU96B,EAAQD,EAASO,GAqBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAhBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIf,GAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCgZ,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAwBvC9G,EAAO3V,EAAoB,GAO3Bu5B,EAAgB,WAClB,QAASA,MACP,EAAI/c,EAA0B,SAAG1c,KAAMy5B,GAkHzC,OA/GA,EAAI7c,EAAuB,SAAG6c,EAAe,OAC3Cj3B,IAAK,WAwBLgC,MAAO,SAAkBm5B,EAAW5qB,GAElC,GAAI6qB,IAAW,OAAQ,OAAQ,SAC3Bp5B,GAAQ,EAERq5B,EAAShoB,EAAK/C,QAAQC,EAAM,SAChC,IAAsB,iBAAX8qB,GACTr5B,EAAQq5B,MACH,IAAyF,gBAAlE,KAAXA,EAAyB,aAAc,EAAIn6B,EAAkB,SAAGm6B,IAAuB,CACxG,IAAoC,IAAhCD,EAAQz3B,QAAQw3B,GAClB,KAAM,IAAI93B,OAAM,wBAA2B83B,EAAY,uBAA+BC,EAAQr1B,KAAK,QAAU,IAG/G,IAAIu1B,GAAajoB,EAAK/C,QAAQC,GAAO,SAAU4qB,GACrB,kBAAfG,IAAkD,kBAAfA,KAC5Ct5B,EAAQs5B,GAIZ,MAAOt5B,MAcThC,IAAK,cACLgC,MAAO,SAAqB+X,EAAMT,EAAOiiB,GACvC,GAAIxhB,EAAKrK,OAAS,GAAKqK,EAAKpK,QAAU,EACpC,OAAO,CAGT,QAAsBjP,KAAlB66B,EAA6B,CAE/B,GAAIC,IACFruB,EAAGmM,EAAMnM,EAAIouB,EAAcpuB,EAC3BgM,EAAGG,EAAMH,EAAIoiB,EAAcpiB,EAG7B,IAA4B,IAAxBoiB,EAAcxb,MAAa,CAG7B,GAAIA,IAASwb,EAAcxb,KAM3BzG,IAHEnM,EAAGjL,KAAKie,IAAIJ,GAASyb,EAAIruB,EAAIjL,KAAKke,IAAIL,GAASyb,EAAIriB,EACnDA,EAAGjX,KAAKke,IAAIL,GAASyb,EAAIruB,EAAIjL,KAAKie,IAAIJ,GAASyb,EAAIriB,OAIrDG,GAAQkiB,EASZ,GAAIp2B,GAAQ2U,EAAK5M,EAAI4M,EAAKrK,MACtBmQ,EAAS9F,EAAKZ,EAAIY,EAAKrK,KAE3B,OAAOqK,GAAK7U,KAAOoU,EAAMnM,GAAK/H,EAAQkU,EAAMnM,GAAK4M,EAAKzU,IAAMgU,EAAMH,GAAK0G,EAASvG,EAAMH,KAWxFnZ,IAAK,eACLgC,MAAO,SAAsBozB,GAE3B,MAAuB,gBAATA,IAA8B,KAATA,MAGhC6B,IAGT95B,GAAiB,QAAI85B,GAIf,SAAU75B,EAAQD,EAASO,GAEjCA,EAAoB,IAYpB,KAAK,GAXD2f,GAAS3f,EAAoB,IAC7B6f,EAAO7f,EAAoB,IAC3B+9B,EAAY/9B,EAAoB,IAChCg+B,EAAgBh+B,EAAoB,IAAI,eAExCi+B,EAAe,wbAIUh2B,MAAM,KAE1B9H,EAAI,EAAGA,EAAI89B,EAAa97B,OAAQhC,IAAK,CAC5C,GAAI+9B,GAAOD,EAAa99B,GACpBg+B,EAAaxe,EAAOue,GACpBE,EAAQD,GAAcA,EAAW98B,SACjC+8B,KAAUA,EAAMJ,IAAgBne,EAAKue,EAAOJ,EAAeE,GAC/DH,EAAUG,GAAQH,EAAUt4B,QAMxB,SAAU/F,EAAQD,GAExB,GAAIqM,MAAcA,QAElBpM,GAAOD,QAAU,SAAUmiB,GACzB,MAAO9V,GAASzL,KAAKuhB,GAAI7V,MAAM,GAAI,KAM/B,SAAUrM,EAAQD,GAGxBC,EAAOD,QAAU,SAAUmiB,GACzB,OAAU5e,IAAN4e,EAAiB,KAAMhgB,WAAU,yBAA2BggB,EAChE,OAAOA,KAMH,SAAUliB,EAAQD,EAASO,GAGjC,GAAIsP,GAAWtP,EAAoB,GAGnCN,GAAOD,QAAU,SAAUmiB,EAAIpB,GAC7B,IAAKlR,EAASsS,GAAK,MAAOA,EAC1B,IAAI9Y,GAAIu1B,CACR,IAAI7d,GAAkC,mBAArB1X,EAAK8Y,EAAG9V,YAA4BwD,EAAS+uB,EAAMv1B,EAAGzI,KAAKuhB,IAAM,MAAOyc,EACzF,IAAgC,mBAApBv1B,EAAK8Y,EAAGlb,WAA2B4I,EAAS+uB,EAAMv1B,EAAGzI,KAAKuhB,IAAM,MAAOyc,EACnF,KAAK7d,GAAkC,mBAArB1X,EAAK8Y,EAAG9V,YAA4BwD,EAAS+uB,EAAMv1B,EAAGzI,KAAKuhB,IAAM,MAAOyc,EAC1F,MAAMz8B,WAAU,6CAMZ,SAAUlC,EAAQD,EAASO,GAGjC,GAAIshB,GAAWthB,EAAoB,IAC/Bs+B,EAAMt+B,EAAoB,KAC1BymB,EAAczmB,EAAoB,IAClCu+B,EAAWv+B,EAAoB,IAAI,YACnCw+B,EAAQ,aAIRC,EAAa,WAEf,GAIIC,GAJAC,EAAS3+B,EAAoB,IAAI,UACjCG,EAAIsmB,EAAYtkB,MAcpB,KAVAw8B,EAAOpxB,MAAMqxB,QAAU,OACvB5+B,EAAoB,KAAKsS,YAAYqsB,GACrCA,EAAO9uB,IAAM,cAGb6uB,EAAiBC,EAAOE,cAAc/sB,SACtC4sB,EAAeI,OACfJ,EAAeK,MAAMC,uCACrBN,EAAeO,QACfR,EAAaC,EAAete,EACrBjgB,WAAYs+B,GAAoB,UAAEhY,EAAYtmB,GACrD,OAAOs+B,KAGT/+B,GAAOD,QAAUmB,OAAOs+B,QAAU,SAAgBxd,EAAGyd,GACnD,GAAIh0B,EAQJ,OAPU,QAANuW,GACF8c,EAAe,UAAIld,EAASI,GAC5BvW,EAAS,GAAIqzB,GACbA,EAAe,UAAI,KAEnBrzB,EAAOozB,GAAY7c,GACdvW,EAASszB,QACMz7B,KAAfm8B,EAA2Bh0B,EAASmzB,EAAInzB,EAAQg0B,KAMnD,SAAUz/B,EAAQD,GAGxB,GAAI2/B,GAAO56B,KAAK46B,KACZpxB,EAAQxJ,KAAKwJ,KACjBtO,GAAOD,QAAU,SAAUmiB,GACzB,MAAO7c,OAAM6c,GAAMA,GAAM,GAAKA,EAAK,EAAI5T,EAAQoxB,GAAMxd,KAMjD,SAAUliB,EAAQD,EAASO,GAEjC,GAAIq/B,GAASr/B,EAAoB,IAAI,QACjCua,EAAMva,EAAoB,GAC9BN,GAAOD,QAAU,SAAU6C,GACzB,MAAO+8B,GAAO/8B,KAAS+8B,EAAO/8B,GAAOiY,EAAIjY,MAMrC,SAAU5C,EAAQD,EAASO,GAEjC,GAAImU,GAAOnU,EAAoB,GAC3B2f,EAAS3f,EAAoB,IAE7Bsa,EAAQqF,EADC,wBACkBA,EADlB,2BAGZjgB,EAAOD,QAAU,SAAU6C,EAAKgC,GAC/B,MAAOgW,GAAMhY,KAASgY,EAAMhY,OAAiBU,KAAVsB,EAAsBA,QACxD,eAAgB4B,MACjBkO,QAASD,EAAKC,QACdkrB,KAAMt/B,EAAoB,IAAM,OAAS,SACzCu/B,UAAW,0CAMP,SAAU7/B,EAAQD,GAGxBC,EAAOD,QAAU,gGAEfwI,MAAM,MAKF,SAAUvI,EAAQD,EAASO,GAEjC,GAAIw/B,GAAMx/B,EAAoB,IAAIiO,EAC9B6R,EAAM9f,EAAoB,IAC1By/B,EAAMz/B,EAAoB,IAAI,cAElCN,GAAOD,QAAU,SAAUmiB,EAAI8d,EAAKC,GAC9B/d,IAAO9B,EAAI8B,EAAK+d,EAAO/d,EAAKA,EAAGvgB,UAAWo+B,IAAMD,EAAI5d,EAAI6d,GAAO3+B,cAAc,EAAMwD,MAAOo7B,MAM1F,SAAUhgC,EAAQD,EAASO,GAIjC,GAAI4/B,GAAM5/B,EAAoB,MAAK,EAGnCA,GAAoB,IAAI0E,OAAQ,SAAU,SAAUm7B,GAClD//B,KAAKggC,GAAKp7B,OAAOm7B,GACjB//B,KAAKmf,GAAK,GAET,WACD,GAEIrD,GAFA8F,EAAI5hB,KAAKggC,GACT7E,EAAQn7B,KAAKmf,EAEjB,OAAIgc,IAASvZ,EAAEvf,QAAiBmC,UAAOtB,GAAWsQ,MAAM,IACxDsI,EAAQgkB,EAAIle,EAAGuZ,GACfn7B,KAAKmf,IAAMrD,EAAMzZ,QACRmC,MAAOsX,EAAOtI,MAAM,OAMzB,SAAU5T,EAAQD,EAASO,GAEjCP,EAAQwO,EAAIjO,EAAoB,KAK1B,SAAUN,EAAQD,EAASO,GAEjC,GAAI2f,GAAS3f,EAAoB,IAC7BmU,EAAOnU,EAAoB,GAC3B+/B,EAAU//B,EAAoB,IAC9BggC,EAAShgC,EAAoB,IAC7Ba,EAAiBb,EAAoB,IAAIiO,CAC7CvO,GAAOD,QAAU,SAAUgB,GACzB,GAAIw/B,GAAU9rB,EAAKqG,SAAWrG,EAAKqG,OAASulB,KAAepgB,EAAOnF,WAC5C,MAAlB/Z,EAAK2e,OAAO,IAAe3e,IAAQw/B,IAAUp/B,EAAeo/B,EAASx/B,GAAQ6D,MAAO07B,EAAO/xB,EAAExN,OAM7F,SAAUf,EAAQD,GAExBA,EAAQwO,EAAIrN,OAAOs/B,uBAKb,SAAUxgC,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAgBzF,QAASo+B,GAAM5tB,EAAMpD,GACnB,GAAIixB,GAAM38B,IAAS48B,MAAM,GAAGC,QAAQ,GAAGC,QAAQ,GAAGC,aAAa,GAC3DzX,EAAQqX,EAAIxW,QAAQrU,KAAK,EAAG,QAAQ7O,UACpCsiB,EAAMoX,EAAIxW,QAAQrU,IAAI,EAAG,QAAQ7O,SACrC5G,MAAK2gC,8BAA4Bz9B,OAEjBA,KAAZmM,GACFrP,KAAKipB,MAAQA,EACbjpB,KAAKkpB,IAAMA,IAEXlpB,KAAKipB,MAAQ5Z,EAAQ4Z,OAASA,EAC9BjpB,KAAKkpB,IAAM7Z,EAAQ6Z,KAAOA,GAG5BlpB,KAAK4gC,SAAU,EAEf5gC,KAAKyS,KAAOA,EACZzS,KAAK6gC,gBAAkB,EACvB7gC,KAAK8gC,YAAc,EACnB9gC,KAAK6qB,cAAe,EACpB7qB,KAAK8qB,YAAa,EAGlB9qB,KAAKs0B,gBACHtE,KAAK,EACL/G,MAAO,KACPC,IAAK,KACLvlB,OAAQA,EACRspB,UAAW,aACX8T,UAAU,EACVC,UAAU,EACV38B,IAAK,KACLC,IAAK,KACL28B,QAAS,GACTC,QAAS,SACTC,aACEC,QAAQ,EACRxX,OAAQ,KAGZ5pB,KAAKqP,QAAUwG,EAAKrQ,UAAWxF,KAAKs0B,gBACpCt0B,KAAKoC,OACHi/B,UAEFrhC,KAAKshC,eAAiB,KAGtBthC,KAAKyS,KAAK8c,QAAQ7a,GAAG,WAAY1U,KAAK04B,aAAanQ,KAAKvoB,OACxDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW1U,KAAK24B,QAAQpQ,KAAKvoB,OAClDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,SAAU1U,KAAK44B,WAAWrQ,KAAKvoB,OAGpDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,aAAc1U,KAAKu4B,cAAchQ,KAAKvoB,OAG3DA,KAAKyS,KAAK8c,QAAQ7a,GAAG,QAAS1U,KAAKuhC,SAAShZ,KAAKvoB,OACjDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,QAAS1U,KAAKwhC,SAASjZ,KAAKvoB,OAGjDA,KAAKyS,KAAKsb,IAAI0T,eAAet4B,iBAAiB,QAASnJ,KAAK0hC,aAAanZ,KAAKvoB,OAE9EA,KAAK0V,WAAWrG,GAyClB,QAASsyB,GAAkB1U,GACzB,GAAiB,cAAbA,GAA0C,YAAbA,EAC/B,KAAM,IAAInrB,WAAU,sBAAwBmrB,EAAY,yCApI5D,GAAI1pB,GAAQrD,EAAoB,GAE5BsD,EAASb,EAAuBY,GAEhCoS,EAAazV,EAAoB,IAEjC0V,EAAcjT,EAAuBgT,GAErClS,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAIlCoS,EAAO3V,EAAoB,GAC3ByD,EAASzD,EAAoB,GAC7Bqf,EAAYrf,EAAoB,IAChC40B,EAAW50B,EAAoB,GA2EnCmgC,GAAM9+B,UAAY,GAAIge,GAkBtB8gB,EAAM9+B,UAAUmU,WAAa,SAAUrG,GACrC,GAAIA,EAAS,CAEX,GAAIX,IAAU,YAAa,YAAa,MAAO,MAAO,UAAW,UAAW,WAAY,WAAY,SAAU,WAAY,cAAe,UAAW,MAAO,kBAAmB,cAAe,mBAC7LmH,GAAKnQ,gBAAgBgJ,EAAQ1O,KAAKqP,QAASA,GAEvCA,EAAQ8xB,aAAe9xB,EAAQ8xB,YAAYC,QAC7CphC,KAAK0hC,gBAEH,SAAWryB,IAAW,OAASA,KAEjCrP,KAAK4hC,SAASvyB,EAAQ4Z,MAAO5Z,EAAQ6Z,OAkB3CmX,EAAM9+B,UAAUmgC,aAAe,WAM7B,QAAS/qB,KACPH,EAAGqrB,cACHrrB,EAAGoqB,SAAU,CAEb,IAAIkB,GAAWtrB,EAAG0S,IAAM1S,EAAGyS,MACvB5a,EAAIwH,EAAKrP,QAAQ,GAAI1B,MAAQ,QAAQ8B,UAErCqiB,EAAQ5a,EAAIyzB,EAAWtrB,EAAGnH,QAAQ8xB,YAAYvX,OAC9CV,EAAM7a,EAAIyzB,GAAY,EAAItrB,EAAGnH,QAAQ8xB,YAAYvX,QAEjDva,GACF0yB,WAAW,EAEbvrB,GAAGorB,SAAS3Y,EAAOC,EAAK7Z,GAIxByyB,EAAW,EADCtrB,EAAGwV,WAAWxV,EAAG/D,KAAK2W,SAAS4Y,OAAO9vB,OAAOzN,MAClC,GACnBq9B,EAAW,KAAIA,EAAW,IAC1BA,EAAW,MAAMA,EAAW,KAEhCtrB,EAAG/D,KAAKsb,IAAI0T,eAAeh0B,MAAM6E,WAAa,SAE9CkE,EAAGyrB,iBAAmB9O,WAAWxc,EAAQmrB,GA5B3C,GAAItrB,GAAKxW,IA+BT2W,MAMF0pB,EAAM9+B,UAAUsgC,YAAc,eACE3+B,KAA1BlD,KAAKiiC,mBACP/O,aAAalzB,KAAKiiC,kBAClBjiC,KAAK4gC,SAAU,EACf5gC,KAAKyS,KAAKsb,IAAI0T,eAAeh0B,MAAM6E,WAAa,YAyBpD+tB,EAAM9+B,UAAUqgC,SAAW,SAAU3Y,EAAOC,EAAK7Z,EAAS1G,EAAUu5B,GAC7D7yB,IACHA,OAEqB,IAAnBA,EAAQ8yB,SACV9yB,EAAQ8yB,QAAS,EAEnB,IAAI3rB,GAAKxW,KACLoiC,MAAsBl/B,IAAT+lB,EAAqBpT,EAAKrP,QAAQyiB,EAAO,QAAQriB,UAAY,KAC1Ey7B,MAAkBn/B,IAAPgmB,EAAmBrT,EAAKrP,QAAQ0iB,EAAK,QAAQtiB,UAAY,IAIxE,IAHA5G,KAAKsiC,mBACLtiC,KAAK2gC,8BAA4Bz9B,GAE7BmM,EAAQ0yB,UAAW,CAErB,GAAIQ,GAAYviC,KAAKipB,MACjBuZ,EAAUxiC,KAAKkpB,IACfS,EAA2D,YAAhD,EAAIjmB,EAAkB,SAAG2L,EAAQ0yB,YAA2B,YAAc1yB,GAAQ0yB,UAAY1yB,EAAQ0yB,UAAUpY,SAAW,IACtI8Y,EAA6D,YAAhD,EAAI/+B,EAAkB,SAAG2L,EAAQ0yB,YAA2B,kBAAoB1yB,GAAQ0yB,UAAY1yB,EAAQ0yB,UAAUW,eAAiB,gBACpJA,EAAiB7sB,EAAK7E,gBAAgByxB,EAC1C,KAAKC,EACH,KAAM,IAAI78B,OAAM,4BAA6B,EAAI+P,EAAqB,SAAG6sB,GAAc,mBAAyB,EAAIj/B,EAAgB,SAAGqS,EAAK7E,iBAAiBzI,KAAK,MAGpK,IAAIo6B,IAAW,GAAI79B,OAAO8B,UACtBg8B,GAAa,CA6CjB,OA3CW,SAASrvB,KAClB,IAAKiD,EAAGpU,MAAMi/B,MAAMhI,SAAU,CAC5B,GAAIiH,IAAM,GAAIx7B,OAAO8B,UACjBmlB,EAAOuU,EAAMqC,EACbE,EAAOH,EAAe3W,EAAOpC,GAC7BnW,EAAOuY,EAAOpC,EACdjoB,EAAI8R,GAAuB,OAAf4uB,EAAsBA,EAAaG,GAAaH,EAAaG,GAAaM,EACtFt4B,EAAIiJ,GAAqB,OAAb6uB,EAAoBA,EAAWG,GAAWH,EAAWG,GAAWK,CAEhFC,GAAUtsB,EAAGuU,YAAYrpB,EAAG6I,GAC5BuqB,EAAS3L,kBAAkB3S,EAAGnH,QAAQ1L,OAAQ6S,EAAG/D,KAAM+D,EAAGnH,QAAQyZ,aAClE8Z,EAAaA,GAAcE,CAE3B,IAAI3sB,IACF8S,MAAO,GAAInkB,MAAK0R,EAAGyS,OACnBC,IAAK,GAAIpkB,MAAK0R,EAAG0S,KACjBiZ,OAAQ9yB,EAAQ8yB,OAChBr4B,MAAOuF,EAAQvF,MAWjB,IARIo4B,GACFA,EAAcW,EAAMC,EAAStvB,GAG3BsvB,GACFtsB,EAAG/D,KAAK8c,QAAQ1a,KAAK,cAAesB,GAGlC3C,GACF,GAAIovB,IACFpsB,EAAG/D,KAAK8c,QAAQ1a,KAAK,eAAgBsB,GACjCxN,GACF,MAAOA,SAMX6N,GAAG8qB,eAAiBnO,WAAW5f,EAAM,QAO3C,GAAIuvB,GAAU9iC,KAAK+qB,YAAYqX,EAAYC,EAE3C,IADAvN,EAAS3L,kBAAkBnpB,KAAKqP,QAAQ1L,OAAQ3D,KAAKyS,KAAMzS,KAAKqP,QAAQyZ,aACpEga,EAAS,CACX,GAAI3sB,IACF8S,MAAO,GAAInkB,MAAK9E,KAAKipB,OACrBC,IAAK,GAAIpkB,MAAK9E,KAAKkpB,KACnBiZ,OAAQ9yB,EAAQ8yB,OAChBr4B,MAAOuF,EAAQvF,MAQjB,IALA9J,KAAKyS,KAAK8c,QAAQ1a,KAAK,cAAesB,GACtC+c,aAAa1c,EAAGusB,WAChBvsB,EAAGusB,UAAY5P,WAAW,WACxB3c,EAAG/D,KAAK8c,QAAQ1a,KAAK,eAAgBsB,IACpC,KACCxN,EACF,MAAOA,OAWf03B,EAAM9+B,UAAUyhC,wBAA0B,WAIxC,WAHuC9/B,KAAnClD,KAAK2gC,4BACP3gC,KAAK2gC,2BAA6B3gC,KAAKkpB,IAAMlpB,KAAKipB,OAASjpB,KAAKyS,KAAKsb,IAAIiU,OAAOnvB,aAE3E7S,KAAK2gC,2BAOdN,EAAM9+B,UAAU+gC,iBAAmB,WAC7BtiC,KAAKshC,iBACPpO,aAAalzB,KAAKshC,gBAClBthC,KAAKshC,eAAiB,OAa1BjB,EAAM9+B,UAAUwpB,YAAc,SAAU9B,EAAOC,GAC7C,GAIIiB,GAJA8Y,EAAoB,MAATha,EAAgBpT,EAAKrP,QAAQyiB,EAAO,QAAQriB,UAAY5G,KAAKipB,MACxEia,EAAgB,MAAPha,EAAcrT,EAAKrP,QAAQ0iB,EAAK,QAAQtiB,UAAY5G,KAAKkpB,IAClE5kB,EAA0B,MAApBtE,KAAKqP,QAAQ/K,IAAcuR,EAAKrP,QAAQxG,KAAKqP,QAAQ/K,IAAK,QAAQsC,UAAY,KACpFvC,EAA0B,MAApBrE,KAAKqP,QAAQhL,IAAcwR,EAAKrP,QAAQxG,KAAKqP,QAAQhL,IAAK,QAAQuC,UAAY,IAIxF,IAAI3B,MAAMg+B,IAA0B,OAAbA,EACrB,KAAM,IAAIp9B,OAAM,kBAAoBojB,EAAQ,IAE9C,IAAIhkB,MAAMi+B,IAAsB,OAAXA,EACnB,KAAM,IAAIr9B,OAAM,gBAAkBqjB,EAAM,IAyC1C,IArCIga,EAASD,IACXC,EAASD,GAIC,OAAR5+B,GACE4+B,EAAW5+B,IACb8lB,EAAO9lB,EAAM4+B,EACbA,GAAY9Y,EACZ+Y,GAAU/Y,EAGC,MAAP7lB,GACE4+B,EAAS5+B,IACX4+B,EAAS5+B,IAOL,OAARA,GACE4+B,EAAS5+B,IACX6lB,EAAO+Y,EAAS5+B,EAChB2+B,GAAY9Y,EACZ+Y,GAAU/Y,EAGC,MAAP9lB,GACE4+B,EAAW5+B,IACb4+B,EAAW5+B,IAOU,OAAzBrE,KAAKqP,QAAQ4xB,QAAkB,CACjC,GAAIA,GAAU3F,WAAWt7B,KAAKqP,QAAQ4xB,QAItC,IAHIA,EAAU,IACZA,EAAU,GAERiC,EAASD,EAAWhC,EAAS,CAG3BjhC,KAAKkpB,IAAMlpB,KAAKipB,QAAUgY,GAAWgC,GAAYjjC,KAAKipB,MADvC,IAC+Dia,GAAUljC,KAAKkpB,KAE/F+Z,EAAWjjC,KAAKipB,MAChBia,EAASljC,KAAKkpB,MAGdiB,EAAO8W,GAAWiC,EAASD,GAC3BA,GAAY9Y,EAAO,EACnB+Y,GAAU/Y,EAAO,IAMvB,GAA6B,OAAzBnqB,KAAKqP,QAAQ6xB,QAAkB,CACjC,GAAIA,GAAU5F,WAAWt7B,KAAKqP,QAAQ6xB,QAClCA,GAAU,IACZA,EAAU,GAGRgC,EAASD,EAAW/B,IAClBlhC,KAAKkpB,IAAMlpB,KAAKipB,QAAUiY,GAAW+B,EAAWjjC,KAAKipB,OAASia,EAASljC,KAAKkpB,KAE9E+Z,EAAWjjC,KAAKipB,MAChBia,EAASljC,KAAKkpB,MAGdiB,EAAO+Y,EAASD,EAAW/B,EAC3B+B,GAAY9Y,EAAO,EACnB+Y,GAAU/Y,EAAO,IAKvB,GAAI2Y,GAAU9iC,KAAKipB,OAASga,GAAYjjC,KAAKkpB,KAAOga,CASpD,OANMD,IAAYjjC,KAAKipB,OAASga,GAAYjjC,KAAKkpB,KAAOga,GAAUljC,KAAKipB,OAASia,GAAUljC,KAAKkpB,KAAUlpB,KAAKipB,OAASga,GAAYjjC,KAAKipB,OAASia,GAAUljC,KAAKkpB,KAAO+Z,GAAYjjC,KAAKkpB,KAAOga,GAC7LljC,KAAKyS,KAAK8c,QAAQ1a,KAAK,oBAGzB7U,KAAKipB,MAAQga,EACbjjC,KAAKkpB,IAAMga,EACJJ,GAOTzC,EAAM9+B,UAAU4hC,SAAW,WACzB,OACEla,MAAOjpB,KAAKipB,MACZC,IAAKlpB,KAAKkpB,MAWdmX,EAAM9+B,UAAUyqB,WAAa,SAAU9Z,EAAOkxB,GAC5C,MAAO/C,GAAMrU,WAAWhsB,KAAKipB,MAAOjpB,KAAKkpB,IAAKhX,EAAOkxB,IAYvD/C,EAAMrU,WAAa,SAAU/C,EAAOC,EAAKhX,EAAOkxB,GAI9C,WAHoBlgC,KAAhBkgC,IACFA,EAAc,GAEH,GAATlxB,GAAcgX,EAAMD,GAAS,GAE7BW,OAAQX,EACRxkB,MAAOyN,GAASgX,EAAMD,EAAQma,KAI9BxZ,OAAQ,EACRnlB,MAAO,IAUb47B,EAAM9+B,UAAUm3B,aAAe,SAAU5uB,GACvC9J,KAAK6gC,gBAAkB,EACvB7gC,KAAKqjC,cAAgB,EAGhBrjC,KAAKqP,QAAQ0xB,UAGb/gC,KAAKsjC,eAAex5B,IAIpB9J,KAAKoC,MAAMi/B,MAAMkC,gBAEtBvjC,KAAK6hC,cAEL7hC,KAAKoC,MAAMi/B,MAAMpY,MAAQjpB,KAAKipB,MAC9BjpB,KAAKoC,MAAMi/B,MAAMnY,IAAMlpB,KAAKkpB,IAC5BlpB,KAAKoC,MAAMi/B,MAAMhI,UAAW,EAExBr5B,KAAKyS,KAAKsb,IAAItuB,OAChBO,KAAKyS,KAAKsb,IAAItuB,KAAKgO,MAAM+1B,OAAS,UAStCnD,EAAM9+B,UAAUo3B,QAAU,SAAU7uB,GAClC,GAAKA,GAEA9J,KAAKoC,MAAMi/B,MAAMhI,UAGjBr5B,KAAKqP,QAAQ0xB,UAKb/gC,KAAKoC,MAAMi/B,MAAMkC,cAAtB,CAEA,GAAItW,GAAYjtB,KAAKqP,QAAQ4d,SAC7B0U,GAAkB1U,EAClB,IAAIwW,GAAqB,cAAbxW,EAA4BnjB,EAAMwvB,OAASxvB,EAAM45B,MAC7DD,IAASzjC,KAAK6gC,eACd,IAAIiB,GAAW9hC,KAAKoC,MAAMi/B,MAAMnY,IAAMlpB,KAAKoC,MAAMi/B,MAAMpY,KAIvD6Y,IADehN,EAAS7I,yBAAyBjsB,KAAKyS,KAAKqW,YAAa9oB,KAAKipB,MAAOjpB,KAAKkpB,IAGzF,IACIya,GADAzxB,EAAqB,cAAb+a,EAA4BjtB,KAAKyS,KAAK2W,SAAS4Y,OAAO9vB,MAAQlS,KAAKyS,KAAK2W,SAAS4Y,OAAO7vB,MAGlGwxB,GADE3jC,KAAKqP,QAAQ2gB,IACHyT,EAAQvxB,EAAQ4vB,GAEf2B,EAAQvxB,EAAQ4vB,CAG/B,IAAImB,GAAWjjC,KAAKoC,MAAMi/B,MAAMpY,MAAQ0a,EACpCT,EAASljC,KAAKoC,MAAMi/B,MAAMnY,IAAMya,EAGhCC,EAAY9O,EAAS9H,mBAAmBhtB,KAAKyS,KAAKqW,YAAama,EAAUjjC,KAAKqjC,cAAgBI,GAAO,GACrGI,EAAU/O,EAAS9H,mBAAmBhtB,KAAKyS,KAAKqW,YAAaoa,EAAQljC,KAAKqjC,cAAgBI,GAAO,EACrG,IAAIG,GAAaX,GAAYY,GAAWX,EAKtC,MAJAljC,MAAK6gC,iBAAmB4C,EACxBzjC,KAAKoC,MAAMi/B,MAAMpY,MAAQ2a,EACzB5jC,KAAKoC,MAAMi/B,MAAMnY,IAAM2a,MACvB7jC,MAAK24B,QAAQ7uB,EAIf9J,MAAKqjC,cAAgBI,EACrBzjC,KAAK+qB,YAAYkY,EAAUC,EAE3B,IAAIzZ,GAAY,GAAI3kB,MAAK9E,KAAKipB,OAC1BS,EAAU,GAAI5kB,MAAK9E,KAAKkpB,IAG5BlpB,MAAKyS,KAAK8c,QAAQ1a,KAAK,eACrBoU,MAAOQ,EACPP,IAAKQ,EACLyY,QAAQ,EACRr4B,MAAOA,IAIT9J,KAAKyS,KAAK8c,QAAQ1a,KAAK,aAQzBwrB,EAAM9+B,UAAUq3B,WAAa,SAAU9uB,GAChC9J,KAAKoC,MAAMi/B,MAAMhI,UAGjBr5B,KAAKqP,QAAQ0xB,UAKb/gC,KAAKoC,MAAMi/B,MAAMkC,gBAEtBvjC,KAAKoC,MAAMi/B,MAAMhI,UAAW,EACxBr5B,KAAKyS,KAAKsb,IAAItuB,OAChBO,KAAKyS,KAAKsb,IAAItuB,KAAKgO,MAAM+1B,OAAS,QAIpCxjC,KAAKyS,KAAK8c,QAAQ1a,KAAK,gBACrBoU,MAAO,GAAInkB,MAAK9E,KAAKipB,OACrBC,IAAK,GAAIpkB,MAAK9E,KAAKkpB,KACnBiZ,QAAQ,EACRr4B,MAAOA,MAUXu2B,EAAM9+B,UAAUg3B,cAAgB,SAAUzuB,GAExC,GAAI25B,GAAQ,CAYZ,IAXI35B,EAAMg6B,WAERL,EAAQ35B,EAAMg6B,WAAa,IAClBh6B,EAAMi6B,SAIfN,GAAS35B,EAAMi6B,OAAS,KAItB/jC,KAAKqP,QAAQ20B,UAAYl6B,EAAM9J,KAAKqP,QAAQ20B,UAAYhkC,KAAKqP,QAAQ2xB,WAAahhC,KAAKqP,QAAQ2xB,UAAYhhC,KAAKqP,QAAQ0xB,WAKtH/gC,KAAKqP,QAAQ2xB,UAAYhhC,KAAKqP,QAAQ0xB,UAGvC/gC,KAAKsjC,eAAex5B,IAKrB25B,EAAO,CAKT,GAAIh/B,EAEFA,GADEg/B,EAAQ,EACF,EAAIA,EAAQ,EAEZ,GAAK,EAAIA,EAAQ,EAI3B,IAAIQ,EACJ,IAAIjkC,KAAK4gC,QACPqD,EAAcjkC,KAAKipB,OAASjpB,KAAKkpB,IAAMlpB,KAAKipB,OAASjpB,KAAKqP,QAAQ8xB,YAAYvX,WACzE,CACL,GAAIsa,GAAUlkC,KAAKmkC,YAAax0B,EAAG7F,EAAMs6B,QAASzoB,EAAG7R,EAAMu6B,SAAWrkC,KAAKyS,KAAKsb,IAAIiU,OACpFiC,GAAcjkC,KAAKskC,eAAeJ,GAEpClkC,KAAKukC,KAAK9/B,EAAOw/B,EAAaR,EAAO35B,GAIrCA,EAAMD,mBASVw2B,EAAM9+B,UAAUggC,SAAW,SAAUz3B,GAEnC9J,KAAKoC,MAAMi/B,MAAMpY,MAAQjpB,KAAKipB,MAC9BjpB,KAAKoC,MAAMi/B,MAAMnY,IAAMlpB,KAAKkpB,IAC5BlpB,KAAKoC,MAAMi/B,MAAMkC,eAAgB,EACjCvjC,KAAKoC,MAAMi/B,MAAMW,OAAS,KAC1BhiC,KAAK8gC,YAAc,EACnB9gC,KAAK6gC,gBAAkB,EAEvBhrB,EAAKhM,eAAeC,IAQtBu2B,EAAM9+B,UAAUigC,SAAW,SAAU13B,GAEnC,GAAM9J,KAAKqP,QAAQ2xB,UAAYhhC,KAAKqP,QAAQ0xB,SAA5C,CAGAlrB,EAAKhM,eAAeC,GAEpB9J,KAAKoC,MAAMi/B,MAAMkC,eAAgB,EAE5BvjC,KAAKoC,MAAMi/B,MAAMW,SACpBhiC,KAAKoC,MAAMi/B,MAAMW,OAAShiC,KAAKmkC,WAAWr6B,EAAMk4B,OAAQhiC,KAAKyS,KAAKsb,IAAIiU,SAGxEhiC,KAAK6hC,aAEL,IAAIp9B,GAAQ,GAAKqF,EAAMrF,MAAQzE,KAAK8gC,aAChC0D,EAAaxkC,KAAKskC,eAAetkC,KAAKoC,MAAMi/B,MAAMW,QAElDzV,EAAiBuI,EAAS7I,yBAAyBjsB,KAAKyS,KAAKqW,YAAa9oB,KAAKipB,MAAOjpB,KAAKkpB,KAC3Fub,EAAuB3P,EAASlI,wBAAwB5sB,KAAKqP,QAAQ1L,OAAQ3D,KAAKyS,KAAKqW,YAAa9oB,KAAMwkC,GAC1GE,EAAsBnY,EAAiBkY,EAGvCxB,EAAWuB,EAAaC,GAAwBzkC,KAAKoC,MAAMi/B,MAAMpY,OAASub,EAAaC,IAAyBhgC,EAChHy+B,EAASsB,EAAaE,GAAuB1kC,KAAKoC,MAAMi/B,MAAMnY,KAAOsb,EAAaE,IAAwBjgC,CAG9GzE,MAAK6qB,aAAe,EAAIpmB,GAAS,EACjCzE,KAAK8qB,WAAarmB,EAAQ,GAAK,CAE/B,IAAIm/B,GAAY9O,EAAS9H,mBAAmBhtB,KAAKyS,KAAKqW,YAAama,EAAU,EAAIx+B,GAAO,GACpFo/B,EAAU/O,EAAS9H,mBAAmBhtB,KAAKyS,KAAKqW,YAAaoa,EAAQz+B,EAAQ,GAAG,EAChFm/B,IAAaX,GAAYY,GAAWX,IACtCljC,KAAKoC,MAAMi/B,MAAMpY,MAAQ2a,EACzB5jC,KAAKoC,MAAMi/B,MAAMnY,IAAM2a,EACvB7jC,KAAK8gC,YAAc,EAAIh3B,EAAMrF,MAC7Bw+B,EAAWW,EACXV,EAASW,EAGX,IAAIx0B,IACF0yB,WAAW,EACXI,QAAQ,EACRr4B,MAAOA,EAET9J,MAAK4hC,SAASqB,EAAUC,EAAQ7zB,GAEhCrP,KAAK6qB,cAAe,EACpB7qB,KAAK8qB,YAAa,IAUpBuV,EAAM9+B,UAAU+hC,eAAiB,SAAUx5B,GAGzC,GACI6F,GADAy0B,EAAUt6B,EAAMk4B,OAASl4B,EAAMk4B,OAAOryB,EAAI7F,EAAMs6B,OAGlDz0B,GADE3P,KAAKqP,QAAQ2gB,IACXoU,EAAUvuB,EAAKtO,gBAAgBvH,KAAKyS,KAAKsb,IAAI1E,iBAE7CxT,EAAKlO,iBAAiB3H,KAAKyS,KAAKsb,IAAI1E,iBAAmB+a,CAE7D,IAAIrY,GAAO/rB,KAAKyS,KAAKoD,KAAKyW,OAAO3c,EAEjC,OAAOoc,IAAQ/rB,KAAKipB,OAAS8C,GAAQ/rB,KAAKkpB,KAS5CmX,EAAM9+B,UAAU+iC,eAAiB,SAAUJ,GACzC,GAAIlY,GACAiB,EAAYjtB,KAAKqP,QAAQ4d,SAI7B,IAFA0U,EAAkB1U,GAED,cAAbA,EACF,MAAOjtB,MAAKyS,KAAKoD,KAAKyW,OAAO4X,EAAQv0B,GAAG/I,SAExC,IAAIuL,GAASnS,KAAKyS,KAAK2W,SAAS4Y,OAAO7vB,MAEvC,OADA6Z,GAAahsB,KAAKgsB,WAAW7Z,GACtB+xB,EAAQvoB,EAAIqQ,EAAWvnB,MAAQunB,EAAWpC,QAWrDyW,EAAM9+B,UAAU4iC,WAAa,SAAU9C,EAAOj4B,GAC5C,MAAIpJ,MAAKqP,QAAQ2gB,KAEbrgB,EAAGkG,EAAKlO,iBAAiByB,GAAWi4B,EAAM1xB,EAC1CgM,EAAG0lB,EAAM1lB,EAAI9F,EAAKhO,eAAeuB,KAIjCuG,EAAG0xB,EAAM1xB,EAAIkG,EAAKtO,gBAAgB6B,GAClCuS,EAAG0lB,EAAM1lB,EAAI9F,EAAKhO,eAAeuB,KAiBvCi3B,EAAM9+B,UAAUgjC,KAAO,SAAU9/B,EAAOu9B,EAAQyB,EAAO35B,GAEvC,MAAVk4B,IACFA,GAAUhiC,KAAKipB,MAAQjpB,KAAKkpB,KAAO,EAGrC,IAAIqD,GAAiBuI,EAAS7I,yBAAyBjsB,KAAKyS,KAAKqW,YAAa9oB,KAAKipB,MAAOjpB,KAAKkpB,KAC3Fub,EAAuB3P,EAASlI,wBAAwB5sB,KAAKqP,QAAQ1L,OAAQ3D,KAAKyS,KAAKqW,YAAa9oB,KAAMgiC,GAC1G0C,EAAsBnY,EAAiBkY,EAGvCxB,EAAWjB,EAASyC,GAAwBzkC,KAAKipB,OAAS+Y,EAASyC,IAAyBhgC,EAC5Fy+B,EAASlB,EAAS0C,GAAuB1kC,KAAKkpB,KAAO8Y,EAAS0C,IAAwBjgC;oNAG1FzE,MAAK6qB,eAAe4Y,EAAQ,GAC5BzjC,KAAK8qB,cAAc2Y,EAAQ,EAC3B,IAAIG,GAAY9O,EAAS9H,mBAAmBhtB,KAAKyS,KAAKqW,YAAama,EAAUQ,GAAO,GAChFI,EAAU/O,EAAS9H,mBAAmBhtB,KAAKyS,KAAKqW,YAAaoa,GAASO,GAAO,EAC7EG,IAAaX,GAAYY,GAAWX,IACtCD,EAAWW,EACXV,EAASW,EAGX,IAAIx0B,IACF0yB,WAAW,EACXI,QAAQ,EACRr4B,MAAOA,EAET9J,MAAK4hC,SAASqB,EAAUC,EAAQ7zB,GAEhCrP,KAAK6qB,cAAe,EACpB7qB,KAAK8qB,YAAa,GASpBuV,EAAM9+B,UAAUojC,KAAO,SAAUlB,GAE/B,GAAItZ,GAAOnqB,KAAKkpB,IAAMlpB,KAAKipB,MAGvBga,EAAWjjC,KAAKipB,MAAQkB,EAAOsZ,EAC/BP,EAASljC,KAAKkpB,IAAMiB,EAAOsZ,CAI/BzjC,MAAKipB,MAAQga,EACbjjC,KAAKkpB,IAAMga,GAOb7C,EAAM9+B,UAAUqjC,OAAS,SAAUA,GACjC,GAAI5C,IAAUhiC,KAAKipB,MAAQjpB,KAAKkpB,KAAO,EAEnCiB,EAAO6X,EAAS4C,EAGhB3B,EAAWjjC,KAAKipB,MAAQkB,EACxB+Y,EAASljC,KAAKkpB,IAAMiB,EAEpB9a,GACF0yB,WAAW,EACXI,QAAQ,EACRr4B,MAAO,KAET9J,MAAK4hC,SAASqB,EAAUC,EAAQ7zB,IAGlCzP,EAAOD,QAAU0gC,GAIX,SAAUzgC,EAAQD,EAASO,GAajC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAezF,QAAS6pB,MAvBT,GAAInW,GAAazV,EAAoB,IAEjC0V,EAAcjT,EAAuBgT,GAErClS,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAIlC2vB,EAAUlzB,EAAoB,IAC9B8U,EAAS9U,EAAoB,IAC7B2kC,EAAa3kC,EAAoB,IACjC2V,EAAO3V,EAAoB,GAC3B6zB,EAAW7zB,EAAoB,IAC/B4kC,EAAY5kC,EAAoB,IAChC40B,EAAW50B,EAAoB,IAC/Bg4B,EAAah4B,EAAoB,GASrCkzB,GAAQtH,EAAKvqB,WASbuqB,EAAKvqB,UAAU8B,QAAU,SAAUqkB,GAmJjC,QAAS4Q,GAAaxuB,GAChB9J,KAAK+kC,YACP/kC,KAAK6U,KAAK,aAAc/K,EAI1B,IAAIwvB,GAAS,EACToK,EAAS,CA+Bb,IA5BI,UAAY55B,KACd45B,GAAyB,EAAhB55B,EAAMi6B,QAEb,cAAgBj6B,KAClB45B,EAAS55B,EAAMg6B,YAEb,eAAiBh6B,KACnB45B,EAAS55B,EAAMk7B,aAEb,eAAiBl7B,KACnBwvB,GAA8B,EAArBxvB,EAAMm7B,aAIb,QAAUn7B,IAASA,EAAMyqB,OAASzqB,EAAMo7B,kBAC1C5L,GAAmB,EAAVoK,EACTA,EAAS,GAIP,UAAY55B,KACd45B,GAAyB,EAAhB55B,EAAM45B,QAEb,UAAY55B,KACdwvB,EAASxvB,EAAMwvB,QAIZt5B,KAAKqP,QAAQ20B,UAAWl6B,EAAM9J,KAAKqP,QAAQ20B,SAMhD,GAFAl6B,EAAMD,iBAEF7J,KAAKqP,QAAQ81B,gBAAkBzgC,KAAKge,IAAIghB,IAAWh/B,KAAKge,IAAI4W,GAAS,CACvE,GAAI9N,GAAUxrB,KAAKoC,MAAMquB,UACrB2U,EAAW5Z,EAAUkY,CAErB1jC,MAAK+kC,aACP/kC,KAAKqlC,cAAcD,GACnBplC,KAAKslC,UACLtlC,KAAK6U,KAAK,SAAU/K,QAEjB,IAAI9J,KAAKqP,QAAQk2B,iBAAkB,CACxC,GAAI9B,GAAQ/+B,KAAKge,IAAI4W,IAAW50B,KAAKge,IAAIghB,GAAUpK,EAASoK,EAGxDvZ,EAAOsZ,EAAQ,KAAOzjC,KAAKspB,MAAMJ,IAAMlpB,KAAKspB,MAAML,OAAS,GAE3Dga,EAAWjjC,KAAKspB,MAAML,MAAQkB,EAC9B+Y,EAASljC,KAAKspB,MAAMJ,IAAMiB,EAE1B9a,GACF0yB,WAAW,EACXI,QAAQ,EACRr4B,MAAOA,EAET9J,MAAKspB,MAAMsY,SAASqB,EAAUC,EAAQ7zB,IAkB1C,QAASm2B,GAAkB17B,GACzB,GAAK0M,EAAGnH,QAAQ81B,iBAChBr7B,EAAMD,iBACF2M,EAAGuuB,YAAY,CACjB,GAAIK,IAAYt7B,EAAM3H,OAAOsuB,SAC7Bja,GAAG6uB,cAAcD,GACjB5uB,EAAG8uB,UACH9uB,EAAG3B,KAAK,aAAc/K,IAc1B,QAAS27B,GAAe37B,GAMtB,GALIA,EAAMD,gBACRC,EAAMD,oBAIHC,EAAM3H,OAAO+F,UAAU/B,QAAQ,QAAU,GAG1Cu/B,GAIJ,MAFA57B,GAAM67B,aAAaC,WAAa,OAChCF,GAAsB,GACf,EAQT,QAASG,GAAW/7B,GAEdA,EAAMD,gBACRC,EAAMD,iBAEJC,EAAM0lB,iBACR1lB,EAAM0lB,iBAGR,KACE,GAAIyB,GAAW6U,KAAK5gC,MAAM4E,EAAM67B,aAAaI,QAAQ,QACrD,KAAK9U,IAAaA,EAAS7U,QAAS,OACpC,MAAO1I,GACP,OAAO,EAeT,MAZAgyB,IAAsB,EACtB57B,EAAMk4B,QACJryB,EAAG7F,EAAMs6B,QACTzoB,EAAG7R,EAAMu6B,SAGa,SAApBpT,EAAS9uB,OACXqU,EAAGiY,QAAQuX,WAAWl8B,GAEtB0M,EAAGiY,QAAQwX,oBAAoBn8B,GAEjC0M,EAAG3B,KAAK,OAAQ2B,EAAG0vB,mBAAmBp8B,KAC/B,EA7ST9J,KAAK+tB,OAEL/tB,KAAK+tB,IAAIrG,UAAYA,EAErB1nB,KAAK+tB,IAAItuB,KAAOuS,SAASC,cAAc,OACvCjS,KAAK+tB,IAAIhhB,WAAaiF,SAASC,cAAc,OAC7CjS,KAAK+tB,IAAIgI,mBAAqB/jB,SAASC,cAAc,OACrDjS,KAAK+tB,IAAIoY,qBAAuBn0B,SAASC,cAAc,OACvDjS,KAAK+tB,IAAI1E,gBAAkBrX,SAASC,cAAc,OAClDjS,KAAK+tB,IAAIqY,cAAgBp0B,SAASC,cAAc,OAChDjS,KAAK+tB,IAAIsY,eAAiBr0B,SAASC,cAAc,OACjDjS,KAAK+tB,IAAIiU,OAAShwB,SAASC,cAAc,OACzCjS,KAAK+tB,IAAIrmB,KAAOsK,SAASC,cAAc,OACvCjS,KAAK+tB,IAAInmB,MAAQoK,SAASC,cAAc,OACxCjS,KAAK+tB,IAAIjmB,IAAMkK,SAASC,cAAc,OACtCjS,KAAK+tB,IAAI1L,OAASrQ,SAASC,cAAc,OACzCjS,KAAK+tB,IAAIuY,UAAYt0B,SAASC,cAAc,OAC5CjS,KAAK+tB,IAAIwY,aAAev0B,SAASC,cAAc,OAC/CjS,KAAK+tB,IAAIyY,cAAgBx0B,SAASC,cAAc,OAChDjS,KAAK+tB,IAAI0Y,iBAAmBz0B,SAASC,cAAc,OACnDjS,KAAK+tB,IAAI2Y,eAAiB10B,SAASC,cAAc,OACjDjS,KAAK+tB,IAAI4Y,kBAAoB30B,SAASC,cAAc,OACpDjS,KAAK+tB,IAAI0T,eAAiBzvB,SAASC,cAAc,OAEjDjS,KAAK+tB,IAAItuB,KAAKyI,UAAY,eAC1BlI,KAAK+tB,IAAIhhB,WAAW7E,UAAY,2BAChClI,KAAK+tB,IAAIgI,mBAAmB7tB,UAAY,wCACxClI,KAAK+tB,IAAIoY,qBAAqBj+B,UAAY,0CAC1ClI,KAAK+tB,IAAI1E,gBAAgBnhB,UAAY,uBACrClI,KAAK+tB,IAAIqY,cAAcl+B,UAAY,qBACnClI,KAAK+tB,IAAIsY,eAAen+B,UAAY,sBACpClI,KAAK+tB,IAAIjmB,IAAII,UAAY,oBACzBlI,KAAK+tB,IAAI1L,OAAOna,UAAY,uBAC5BlI,KAAK+tB,IAAIrmB,KAAKQ,UAAY,cAC1BlI,KAAK+tB,IAAIiU,OAAO95B,UAAY,cAC5BlI,KAAK+tB,IAAInmB,MAAMM,UAAY,cAC3BlI,KAAK+tB,IAAIuY,UAAUp+B,UAAY,qBAC/BlI,KAAK+tB,IAAIwY,aAAar+B,UAAY,wBAClClI,KAAK+tB,IAAIyY,cAAct+B,UAAY,qBACnClI,KAAK+tB,IAAI0Y,iBAAiBv+B,UAAY,wBACtClI,KAAK+tB,IAAI2Y,eAAex+B,UAAY,qBACpClI,KAAK+tB,IAAI4Y,kBAAkBz+B,UAAY,wBACvClI,KAAK+tB,IAAI0T,eAAev5B,UAAY,uBAEpClI,KAAK+tB,IAAItuB,KAAK+S,YAAYxS,KAAK+tB,IAAIhhB,YACnC/M,KAAK+tB,IAAItuB,KAAK+S,YAAYxS,KAAK+tB,IAAIgI,oBACnC/1B,KAAK+tB,IAAItuB,KAAK+S,YAAYxS,KAAK+tB,IAAIoY,sBACnCnmC,KAAK+tB,IAAItuB,KAAK+S,YAAYxS,KAAK+tB,IAAI1E,iBACnCrpB,KAAK+tB,IAAItuB,KAAK+S,YAAYxS,KAAK+tB,IAAIqY,eACnCpmC,KAAK+tB,IAAItuB,KAAK+S,YAAYxS,KAAK+tB,IAAIsY,gBACnCrmC,KAAK+tB,IAAItuB,KAAK+S,YAAYxS,KAAK+tB,IAAIjmB,KACnC9H,KAAK+tB,IAAItuB,KAAK+S,YAAYxS,KAAK+tB,IAAI1L,QACnCriB,KAAK+tB,IAAItuB,KAAK+S,YAAYxS,KAAK+tB,IAAI1L,QACnCriB,KAAK+tB,IAAItuB,KAAK+S,YAAYxS,KAAK+tB,IAAI0T,gBAEnCzhC,KAAK+tB,IAAI1E,gBAAgB7W,YAAYxS,KAAK+tB,IAAIiU,QAC9ChiC,KAAK+tB,IAAIqY,cAAc5zB,YAAYxS,KAAK+tB,IAAIrmB,MAC5C1H,KAAK+tB,IAAIsY,eAAe7zB,YAAYxS,KAAK+tB,IAAInmB,OAC7C5H,KAAK+tB,IAAI1E,gBAAgB7W,YAAYxS,KAAK+tB,IAAIuY,WAC9CtmC,KAAK+tB,IAAI1E,gBAAgB7W,YAAYxS,KAAK+tB,IAAIwY,cAC9CvmC,KAAK+tB,IAAIqY,cAAc5zB,YAAYxS,KAAK+tB,IAAIyY,eAC5CxmC,KAAK+tB,IAAIqY,cAAc5zB,YAAYxS,KAAK+tB,IAAI0Y,kBAC5CzmC,KAAK+tB,IAAIsY,eAAe7zB,YAAYxS,KAAK+tB,IAAI2Y,gBAC7C1mC,KAAK+tB,IAAIsY,eAAe7zB,YAAYxS,KAAK+tB,IAAI4Y,mBAG7C3mC,KAAKoC,OACH3C,QACAsN,cACAsc,mBACA+c,iBACAC,kBACArE,UACAt6B,QACAE,SACAE,OACAua,UACArV,UACAyjB,UAAW,EACXmW,aAAc,GAGhB5mC,KAAK0U,GAAG,cAAe,YACQ,IAAzB1U,KAAK6mC,iBACP7mC,KAAKslC,WAEP/c,KAAKvoB,OACPA,KAAK0U,GAAG,eAAgB,WACjB1U,KAAK8mC,yBACR9mC,KAAK8mC,wBAAyB,IAEhCve,KAAKvoB,OACPA,KAAK0U,GAAG,QAAS1U,KAAKuhC,SAAShZ,KAAKvoB,OACpCA,KAAK0U,GAAG,UAAW1U,KAAK24B,QAAQpQ,KAAKvoB,MAErC,IAAIwW,GAAKxW,IACTA,MAAK+mC,YAAc/mC,KAAKslC,QAAQ/c,KAAKvoB,MACrCA,KAAKslC,QAAUzvB,EAAK9M,SAAS/I,KAAK+mC,aAElC/mC,KAAK0U,GAAG,UAAW,SAAUsyB,GACvBxwB,EAAGiY,SAAWjY,EAAGiY,QAAQwY,qBAAuBD,GAAkC,GAApBA,EAAWjxB,MAC3ES,EAAG8uB,UAEH9uB,EAAGuwB,gBAMP/mC,KAAKotB,OAAS,GAAIpY,GAAOhV,KAAK+tB,IAAItuB,KAClC,IAAImuB,GAAkB5tB,KAAKotB,OAAOlsB,IAAI,SAAS4T,KAAMoyB,QAAQ,GAC7DrC,GAAWlX,gCAAgCC,GAC3C5tB,KAAKotB,OAAOlsB,IAAI,OAAO4T,KAAM+jB,UAAW,EAAG5L,UAAWjY,EAAO8jB,uBAC7D94B,KAAK6zB,cAES,MAAO,YAAa,QAAS,QAAS,MAAO,WAAY,UAAW,UAO3EnrB,QAAQ,SAAUjC,GACvB,GAAI6C,GAAW,SAAkBQ,GAC3B0M,EAAGuuB,YACLvuB,EAAG3B,KAAKpO,EAAMqD,GAGlB0M,GAAG4W,OAAO1Y,GAAGjO,EAAM6C,GACnBkN,EAAGqd,UAAUptB,GAAQ6C,IAIvBu7B,EAAW1X,QAAQntB,KAAKotB,OAAQ,SAAUtjB,GACxC0M,EAAG3B,KAAK,QAAS/K,IACjBye,KAAKvoB,OAGP6kC,EAAWtX,UAAUvtB,KAAKotB,OAAQ,SAAUtjB,GAC1C0M,EAAG3B,KAAK,UAAW/K,IACnBye,KAAKvoB,OA6EHA,KAAK+tB,IAAI1E,gBAAgBlgB,kBAE3BnJ,KAAK+tB,IAAI1E,gBAAgBlgB,iBAAiB,aAAcmvB,EAAa/P,KAAKvoB,OAAO,GAEjFA,KAAK+tB,IAAI1E,gBAAgBlgB,iBAAiB,iBAAkBmvB,EAAa/P,KAAKvoB,OAAO,IAGrFA,KAAK+tB,IAAI1E,gBAAgB3f,YAAY,eAAgB4uB,EAAa/P,KAAKvoB,OAkBzEA,KAAK+tB,IAAIrmB,KAAK0C,WAAWjB,iBAAiB,SAAUq8B,EAAkBjd,KAAKvoB,OAC3EA,KAAK+tB,IAAInmB,MAAMwC,WAAWjB,iBAAiB,SAAUq8B,EAAkBjd,KAAKvoB,MAE5E,IAAI0lC,IAAsB,CAwE1B,IAbA1lC,KAAK+tB,IAAIiU,OAAO74B,iBAAiB,WAAYs8B,EAAeld,KAAKvoB,OAAO,GACxEA,KAAK+tB,IAAIiU,OAAO74B,iBAAiB,OAAQ08B,EAAWtd,KAAKvoB,OAAO,GAEhEA,KAAKmnC,eAGLnnC,KAAKqhC,SAELrhC,KAAKonC,YAAc,EACnBpnC,KAAK6mC,iBAAkB,EACvB7mC,KAAK8mC,wBAAyB,GAGzBpf,EAAW,KAAM,IAAI7hB,OAAM,wBAChC6hB,GAAUlV,YAAYxS,KAAK+tB,IAAItuB,OA4BjCqsB,EAAKvqB,UAAUmU,WAAa,SAAUrG,GACpC,GAAIA,EAAS,CAEX,GAAIX,IAAU,QAAS,SAAU,YAAa,YAAa,aAAc,QAAS,MAAO,aAAc,iBAAkB,cAAe,SAAU,UAAW,SAAU,MAAO,UAAW,mBAAoB,iBAqC7M,IApCAmH,EAAKnQ,gBAAgBgJ,EAAQ1O,KAAKqP,QAASA,GAE3CrP,KAAK+tB,IAAI0T,eAAeh0B,MAAM6E,WAAa,SAEvCtS,KAAKqP,QAAQ2gB,MACfhwB,KAAK+tB,IAAIrG,UAAUja,MAAMwf,UAAY,MACrCjtB,KAAK+tB,IAAIgI,mBAAmB7tB,UAAY,6CAGtClI,KAAKqP,QAAQ81B,iBACXnlC,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAIsY,eAAen+B,UAAY,0CAEpClI,KAAK+tB,IAAIqY,cAAcl+B,UAAY,0CAIoB,YAAvD,EAAIxE,EAAkB,SAAG1D,KAAKqP,QAAQqhB,eACxC1wB,KAAKqP,QAAQqhB,aAAgBhgB,SAAMxN,GAAWqxB,SAAMrxB,KAElD,eAAiBmM,KACgB,gBAAxBA,GAAQqhB,YACjB1wB,KAAKqP,QAAQqhB,aACXhgB,KAAMrB,EAAQqhB,YACd6D,KAAMllB,EAAQqhB,aAE2C,YAAlD,EAAIhtB,EAAkB,SAAG2L,EAAQqhB,eACtC,QAAUrhB,GAAQqhB,cACpB1wB,KAAKqP,QAAQqhB,YAAYhgB,KAAOrB,EAAQqhB,YAAYhgB,MAElD,QAAUrB,GAAQqhB,cACpB1wB,KAAKqP,QAAQqhB,YAAY6D,KAAOllB,EAAQqhB,YAAY6D,QAKpB,SAAlCv0B,KAAKqP,QAAQqhB,YAAY6D,MAC3B,IAAKv0B,KAAKqnC,UAAW,CACnB,GAAIA,GAAYrnC,KAAKqnC,UAAY,GAAItT,GAAS/zB,KAAKyS,KACnD40B,GAAU3xB,WAAa,SAAUrG,GAC/B,GAAI8F,GAAW9F,EAAUwG,EAAKrQ,UAAW6J,KACzC8F,GAASub,YAAc,MACvBqD,EAASxyB,UAAUmU,WAAWnV,KAAK8mC,EAAWlyB,IAEhDnV,KAAKsnC,WAAWlhC,KAAKihC,QAGvB,IAAIrnC,KAAKqnC,UAAW,CAClB,GAAIlM,GAAQn7B,KAAKsnC,WAAWnhC,QAAQnG,KAAKqnC,YAC1B,IAAXlM,GACFn7B,KAAKsnC,WAAW1T,OAAOuH,EAAO,GAEhCn7B,KAAKqnC,UAAUzyB,UACf5U,KAAKqnC,UAAY,KA4BrB,GAvBiC,kBAAtBh4B,GAAQk4B,aACjBl4B,EAAQk4B,YACNC,SAAUn4B,EAAQk4B,aAIlB,eAAiBvnC,MAAKqP,SACxBylB,EAASjM,qBAAqB7oB,KAAKqP,QAAQ1L,OAAQ3D,KAAKyS,KAAMzS,KAAKqP,QAAQyZ,aAGzE,cAAgBzZ,KACdA,EAAQo4B,WACLznC,KAAK0nC,YACR1nC,KAAK0nC,UAAY,GAAI5C,GAAU9kC,KAAK+tB,IAAItuB,OAGtCO,KAAK0nC,YACP1nC,KAAK0nC,UAAU9yB,gBACR5U,MAAK0nC,YAKd,kBAAoBr4B,GACtB,KAAM,IAAIxJ,OAAM,0GAIlB7F,MAAK2nC,kBASP,GALA3nC,KAAKsnC,WAAW5+B,QAAQ,SAAUk/B,GAChC,MAAOA,GAAUlyB,WAAWrG,KAI1B,aAAeA,GAAS,CACrBrP,KAAK6nC,eACR7nC,KAAK6nC,aAAe7nC,KAAK8nC,uBAG3B9nC,KAAK6nC,aAAanyB,WAAWrG,EAAQ04B,UAGrC,IAAIC,GAAiBnyB,EAAK7P,cAAehG,KAAKqP,QAC9CrP,MAAKsnC,WAAW5+B,QAAQ,SAAUk/B,GAChC/xB,EAAK7P,WAAWgiC,EAAgBJ,EAAUv4B,WAE5CrP,KAAK6nC,aAAaI,kBAAmBpoB,OAAQmoB,IAG/ChoC,KAAKslC,WAOPxZ,EAAKvqB,UAAUwjC,SAAW,WACxB,OAAQ/kC,KAAK0nC,WAAa1nC,KAAK0nC,UAAUQ,QAM3Cpc,EAAKvqB,UAAUqT,QAAU,WAEvB5U,KAAKmoC,SAAS,MACdnoC,KAAKooC,UAAU,MAGfpoC,KAAK2U,MAGL3U,KAAKqoC,kBAGDroC,KAAK+tB,IAAItuB,KAAK2K,YAChBpK,KAAK+tB,IAAItuB,KAAK2K,WAAWjG,YAAYnE,KAAK+tB,IAAItuB,MAEhDO,KAAK+tB,IAAM,KAGP/tB,KAAK0nC,YACP1nC,KAAK0nC,UAAU9yB,gBACR5U,MAAK0nC,UAId,KAAK,GAAI59B,KAAS9J,MAAK6zB,UACjB7zB,KAAK6zB,UAAUryB,eAAesI,UACzB9J,MAAK6zB,UAAU/pB,EAG1B9J,MAAK6zB,UAAY,KACjB7zB,KAAKotB,OAAS,KAGdptB,KAAKsnC,WAAW5+B,QAAQ,SAAUk/B,GAChC,MAAOA,GAAUhzB,YAGnB5U,KAAKyS,KAAO,MAQdqZ,EAAKvqB,UAAU23B,cAAgB,SAAUnN,EAAMzV,GAC7C,GAAI6wB,GAAcnnC,KAAKmnC,YAAY7+B,OAAO,SAAUs/B,GAClD,MAAOtxB,KAAOsxB,EAAUv4B,QAAQiH,IAGlC,IAA2B,IAAvB6wB,EAAY9kC,OACd,KAAM,IAAIwD,OAAM,qCAAsC,EAAI+P,EAAqB,SAAGU,GAGhF6wB,GAAY9kC,OAAS,GACvB8kC,EAAY,GAAGjO,cAAcnN,IASjCD,EAAKvqB,UAAU43B,cAAgB,SAAU7iB,GACvC,GAAI6wB,GAAcnnC,KAAKmnC,YAAY7+B,OAAO,SAAUs/B,GAClD,MAAOA,GAAUv4B,QAAQiH,KAAOA,GAGlC,IAA2B,IAAvB6wB,EAAY9kC,OACd,KAAM,IAAIwD,OAAM,qCAAsC,EAAI+P,EAAqB,SAAGU,GAEpF,OAAO6wB,GAAY,GAAGhO,iBASxBrN,EAAKvqB,UAAU+mC,mBAAqB,SAAUrY,EAAO3Z,GACnD,GAAI6wB,GAAcnnC,KAAKmnC,YAAY7+B,OAAO,SAAUs/B,GAClD,MAAOA,GAAUv4B,QAAQiH,KAAOA,GAGlC,IAA2B,IAAvB6wB,EAAY9kC,OACd,KAAM,IAAIwD,OAAM,qCAAsC,EAAI+P,EAAqB,SAAGU,GAEpF,IAAI6wB,EAAY9kC,OAAS,EACvB,MAAO8kC,GAAY,GAAG/N,eAAenJ,IAUzCnE,EAAKvqB,UAAU2kC,mBAAqB,SAAUp8B,GAC5C,OAASA,MAAOA,IAalBgiB,EAAKvqB,UAAUgnC,cAAgB,SAAUxc,EAAMzV,GAC7C,GAAIkyB,OAAqBtlC,KAAT6oB,EAAqBlW,EAAKrP,QAAQulB,EAAM,QAAQnlB,UAAY,GAAI9B,KAKhF,IAHa9E,KAAKmnC,YAAYsB,KAAK,SAAUrQ,GAC3C,MAAOA,GAAW/oB,QAAQiH,KAAOA,IAGjC,KAAM,IAAIzQ,OAAM,0BAA2B,EAAI+P,EAAqB,SAAGU,GAAM,kBAG/E,IAAI8hB,GAAa,GAAIF,GAAWl4B,KAAKyS,KAAMoD,EAAKrQ,UAAWxF,KAAKqP,SAC9D0c,KAAMyc,EACNlyB,GAAIA,IAON,OAJAtW,MAAKmnC,YAAY/gC,KAAKgyB,GACtBp4B,KAAKsnC,WAAWlhC,KAAKgyB,GACrBp4B,KAAKslC,UAEEhvB,GAQTwV,EAAKvqB,UAAUmnC,iBAAmB,SAAUpyB,GAC1C,GAAI6wB,GAAcnnC,KAAKmnC,YAAY7+B,OAAO,SAAUkwB,GAClD,MAAOA,GAAInpB,QAAQiH,KAAOA,GAG5B,IAA2B,IAAvB6wB,EAAY9kC,OACd,KAAM,IAAIwD,OAAM,qCAAsC,EAAI+P,EAAqB,SAAGU,GAGpF6wB,GAAYz+B,QAAQ,SAAU0vB,GAC5Bp4B,KAAKmnC,YAAYvT,OAAO5zB,KAAKmnC,YAAYhhC,QAAQiyB,GAAa,GAC9Dp4B,KAAKsnC,WAAW1T,OAAO5zB,KAAKsnC,WAAWnhC,QAAQiyB,GAAa,GAC5DA,EAAWxjB,WACX2T,KAAKvoB,QAOT8rB,EAAKvqB,UAAUonC,gBAAkB,WAC/B,MAAO3oC,MAAKyuB,SAAWzuB,KAAKyuB,QAAQka,uBActC7c,EAAKvqB,UAAUqnC,IAAM,SAAUv5B,EAAS1G,GACtC,GAAI2gB,GAAQtpB,KAAK6oC,cAGjB,IAAkB,OAAdvf,EAAMjlB,KAA8B,OAAdilB,EAAMhlB,IAAhC,CAKA,GAAIw9B,GAAWxY,EAAMhlB,IAAMglB,EAAMjlB,IAC7BA,EAAM,GAAIS,MAAKwkB,EAAMjlB,IAAIuC,UAAuB,IAAXk7B,GACrCx9B,EAAM,GAAIQ,MAAKwkB,EAAMhlB,IAAIsC,UAAuB,IAAXk7B,GACrCC,GAAY1yB,OAAiCnM,KAAtBmM,EAAQ0yB,WAA0B1yB,EAAQ0yB,SACrE/hC,MAAKspB,MAAMsY,SAASv9B,EAAKC,GAAOy9B,UAAWA,GAAap5B,KAQ1DmjB,EAAKvqB,UAAUsnC,aAAe,WAE5B,KAAM,IAAIhjC,OAAM,+CAyBlBimB,EAAKvqB,UAAUunC,UAAY,SAAU7f,EAAOC,EAAK7Z,EAAS1G,GAC7B,kBAAhBpD,WAAU,KACnBoD,EAAWpD,UAAU,GACrB8J,KAEF,IAAI0yB,GACAzY,CACoB,IAApB/jB,UAAUlD,QACZinB,EAAQ/jB,UAAU,GAClBw8B,MAAgC7+B,KAApBomB,EAAMyY,WAA0BzY,EAAMyY,UAClD/hC,KAAKspB,MAAMsY,SAAStY,EAAML,MAAOK,EAAMJ,KAAO6Y,UAAWA,KAC5B,GAApBx8B,UAAUlD,QAAsC,kBAAhBkD,WAAU,IACnD+jB,EAAQ/jB,UAAU,GAClBoD,EAAWpD,UAAU,GACrBw8B,MAAgC7+B,KAApBomB,EAAMyY,WAA0BzY,EAAMyY,UAClD/hC,KAAKspB,MAAMsY,SAAStY,EAAML,MAAOK,EAAMJ,KAAO6Y,UAAWA,GAAap5B,KAEtEo5B,GAAY1yB,OAAiCnM,KAAtBmM,EAAQ0yB,WAA0B1yB,EAAQ0yB,UACjE/hC,KAAKspB,MAAMsY,SAAS3Y,EAAOC,GAAO6Y,UAAWA,GAAap5B,KAgB9DmjB,EAAKvqB,UAAUqjC,OAAS,SAAU7Y,EAAM1c,EAAS1G,GACpB,kBAAhBpD,WAAU,KACnBoD,EAAWpD,UAAU,GACrB8J,KAEF,IAAIyyB,GAAW9hC,KAAKspB,MAAMJ,IAAMlpB,KAAKspB,MAAML,MACvC5a,EAAIwH,EAAKrP,QAAQulB,EAAM,QAAQnlB,UAE/BqiB,EAAQ5a,EAAIyzB,EAAW,EACvB5Y,EAAM7a,EAAIyzB,EAAW,EACrBC,GAAY1yB,OAAiCnM,KAAtBmM,EAAQ0yB,WAA0B1yB,EAAQ0yB,SAErE/hC,MAAKspB,MAAMsY,SAAS3Y,EAAOC,GAAO6Y,UAAWA,GAAap5B,IAO5DmjB,EAAKvqB,UAAUwnC,UAAY,WACzB,GAAIzf,GAAQtpB,KAAKspB,MAAM6Z,UACvB,QACEla,MAAO,GAAInkB,MAAKwkB,EAAML,OACtBC,IAAK,GAAIpkB,MAAKwkB,EAAMJ,OAgBxB4C,EAAKvqB,UAAUynC,OAAS,SAAUC,EAAY55B,EAAS1G,GACrD,MAAKsgC,GAAcA,EAAa,GAAKA,EAAa,GAAlD,CAC2B,kBAAhB1jC,WAAU,KACnBoD,EAAWpD,UAAU,GACrB8J,KAEF,IAAIia,GAAQtpB,KAAK+oC,YACb9f,EAAQK,EAAML,MAAMriB,UACpBsiB,EAAMI,EAAMJ,IAAItiB,UAChBk7B,EAAW5Y,EAAMD,EACjBigB,EAAcpH,GAAY,EAAImH,GAC9BzqB,GAAYsjB,EAAWoH,GAAe,EACtCjG,EAAWha,EAAQzK,EACnB0kB,EAASha,EAAM1K,CAEnBxe,MAAK8oC,UAAU7F,EAAUC,EAAQ7zB,EAAS1G,KAe5CmjB,EAAKvqB,UAAU4nC,QAAU,SAAUF,EAAY55B,EAAS1G,GACtD,MAAKsgC,GAAcA,EAAa,GAAKA,EAAa,GAAlD,CAC2B,kBAAhB1jC,WAAU,KACnBoD,EAAWpD,UAAU,GACrB8J,KAEF,IAAIia,GAAQtpB,KAAK+oC,YACb9f,EAAQK,EAAML,MAAMriB,UACpBsiB,EAAMI,EAAMJ,IAAItiB,UAChBk7B,EAAW5Y,EAAMD,EACjBga,EAAWha,EAAQ6Y,EAAWmH,EAAa,EAC3C/F,EAASha,EAAM4Y,EAAWmH,EAAa,CAE3CjpC,MAAK8oC,UAAU7F,EAAUC,EAAQ7zB,EAAS1G,KAQ5CmjB,EAAKvqB,UAAUie,OAAS,WACtBxf,KAAKslC,WAQPxZ,EAAKvqB,UAAU+jC,QAAU,WACvBtlC,KAAKonC,aACL,IAAI1nB,IAAU,EACVrQ,EAAUrP,KAAKqP,QACfjN,EAAQpC,KAAKoC,MACb2rB,EAAM/tB,KAAK+tB,GAEf,IAAKA,GAAQA,EAAIrG,WAAqC,GAAxBqG,EAAItuB,KAAKkT,YAAvC,CAEAmiB,EAAS3L,kBAAkBnpB,KAAKqP,QAAQ1L,OAAQ3D,KAAKyS,KAAMzS,KAAKqP,QAAQyZ,aAG7C,OAAvBzZ,EAAQqhB,aACV7a,EAAK9N,aAAagmB,EAAItuB,KAAM,WAC5BoW,EAAKrN,gBAAgBulB,EAAItuB,KAAM,gBAE/BoW,EAAKrN,gBAAgBulB,EAAItuB,KAAM,WAC/BoW,EAAK9N,aAAagmB,EAAItuB,KAAM,eAI9BsuB,EAAItuB,KAAKgO,MAAM27B,UAAYvzB,EAAKrL,OAAOK,OAAOwE,EAAQ+5B,UAAW,IACjErb,EAAItuB,KAAKgO,MAAM47B,UAAYxzB,EAAKrL,OAAOK,OAAOwE,EAAQg6B,UAAW,IACjEtb,EAAItuB,KAAKgO,MAAMyE,MAAQ2D,EAAKrL,OAAOK,OAAOwE,EAAQ6C,MAAO,IAGzD9P,EAAM4K,OAAOtF,MAAQqmB,EAAI1E,gBAAgB1W,YAAcob,EAAI1E,gBAAgBxW,aAAe,EAC1FzQ,EAAM4K,OAAOpF,MAAQxF,EAAM4K,OAAOtF,KAClCtF,EAAM4K,OAAOlF,KAAOimB,EAAI1E,gBAAgBigB,aAAevb,EAAI1E,gBAAgB2O,cAAgB,EAC3F51B,EAAM4K,OAAOqV,OAASjgB,EAAM4K,OAAOlF,IACnC1F,EAAMmnC,iBAAmBxb,EAAItuB,KAAK6pC,aAAevb,EAAItuB,KAAKu4B,aAC1D51B,EAAMonC,gBAAkBzb,EAAItuB,KAAKkT,YAAcob,EAAItuB,KAAKoT,YAIf,IAArCkb,EAAI1E,gBAAgB2O,eACtB51B,EAAM4K,OAAOtF,KAAOtF,EAAM4K,OAAOlF,IACjC1F,EAAM4K,OAAOpF,MAAQxF,EAAM4K,OAAOtF,MAEN,IAA1BqmB,EAAItuB,KAAKu4B,eACX51B,EAAMonC,gBAAkBpnC,EAAMmnC,kBAKhCnnC,EAAM4/B,OAAO7vB,OAAS4b,EAAIiU,OAAOsH,aACjClnC,EAAMsF,KAAKyK,OAAS4b,EAAIrmB,KAAK4hC,aAC7BlnC,EAAMwF,MAAMuK,OAAS4b,EAAInmB,MAAM0hC,aAC/BlnC,EAAM0F,IAAIqK,OAAS4b,EAAIjmB,IAAIkwB,eAAiB51B,EAAM4K,OAAOlF,IACzD1F,EAAMigB,OAAOlQ,OAAS4b,EAAI1L,OAAO2V,eAAiB51B,EAAM4K,OAAOqV,MAM/D,IAAIonB,GAAgB/kC,KAAKJ,IAAIlC,EAAMsF,KAAKyK,OAAQ/P,EAAM4/B,OAAO7vB,OAAQ/P,EAAMwF,MAAMuK,QAC7Eu3B,EAAatnC,EAAM0F,IAAIqK,OAASs3B,EAAgBrnC,EAAMigB,OAAOlQ,OAAS/P,EAAMmnC,iBAAmBnnC,EAAM4K,OAAOlF,IAAM1F,EAAM4K,OAAOqV,MACnI0L,GAAItuB,KAAKgO,MAAM0E,OAAS0D,EAAKrL,OAAOK,OAAOwE,EAAQ8C,OAAQu3B,EAAa,MAGxEtnC,EAAM3C,KAAK0S,OAAS4b,EAAItuB,KAAK6pC,aAC7BlnC,EAAM2K,WAAWoF,OAAS/P,EAAM3C,KAAK0S,OAAS/P,EAAMmnC,gBACpD,IAAII,GAAkBvnC,EAAM3C,KAAK0S,OAAS/P,EAAM0F,IAAIqK,OAAS/P,EAAMigB,OAAOlQ,OAAS/P,EAAMmnC,gBACzFnnC,GAAMinB,gBAAgBlX,OAASw3B,EAC/BvnC,EAAMgkC,cAAcj0B,OAASw3B,EAC7BvnC,EAAMikC,eAAel0B,OAAS/P,EAAMgkC,cAAcj0B,OAGlD/P,EAAM3C,KAAKyS,MAAQ6b,EAAItuB,KAAKkT,YAC5BvQ,EAAM2K,WAAWmF,MAAQ9P,EAAM3C,KAAKyS,MAAQ9P,EAAMonC,gBAE7CxpC,KAAK6mC,kBACRzkC,EAAMwnC,eAAiB/zB,EAAK/D,qBAG1BzC,EAAQ81B,eACN91B,EAAQ2gB,KACV5tB,EAAMsF,KAAKwK,MAAQ6b,EAAIqY,cAAcvzB,cAAgBzQ,EAAM4K,OAAOtF,KAClEtF,EAAMwF,MAAMsK,MAAQ6b,EAAIsY,eAAexzB,YAAczQ,EAAMwnC,iBAAmBxnC,EAAM4K,OAAOpF,QAE3FxF,EAAMsF,KAAKwK,MAAQ6b,EAAIqY,cAAcvzB,YAAczQ,EAAMwnC,iBAAmBxnC,EAAM4K,OAAOtF,KACzFtF,EAAMwF,MAAMsK,MAAQ6b,EAAIsY,eAAexzB,cAAgBzQ,EAAM4K,OAAOpF,QAGtExF,EAAMsF,KAAKwK,MAAQ6b,EAAIqY,cAAcvzB,cAAgBzQ,EAAM4K,OAAOtF,KAClEtF,EAAMwF,MAAMsK,MAAQ6b,EAAIsY,eAAexzB,cAAgBzQ,EAAM4K,OAAOpF,OAGtE5H,KAAK6pC,SAIL,IAAIjgB,GAAS5pB,KAAK8pC,kBAGc,QAA5Bz6B,EAAQqhB,YAAYhgB,OACtBkZ,GAAUllB,KAAKJ,IAAIlC,EAAMinB,gBAAgBlX,OAAS/P,EAAM4/B,OAAO7vB,OAAS/P,EAAM4K,OAAOlF,IAAM1F,EAAM4K,OAAOqV,OAAQ,IAElH0L,EAAIiU,OAAOv0B,MAAM3F,IAAM8hB,EAAS,IAGhC,IAAImgB,GAAmC,GAAnB3nC,EAAMquB,UAAiB,SAAW,GAClDuZ,EAAmB5nC,EAAMquB,WAAaruB,EAAMwkC,aAAe,SAAW,EAC1E7Y,GAAIuY,UAAU74B,MAAM6E,WAAay3B,EACjChc,EAAIwY,aAAa94B,MAAM6E,WAAa03B,EACpCjc,EAAIyY,cAAc/4B,MAAM6E,WAAay3B,EACrChc,EAAI0Y,iBAAiBh5B,MAAM6E,WAAa03B,EACxCjc,EAAI2Y,eAAej5B,MAAM6E,WAAay3B,EACtChc,EAAI4Y,kBAAkBl5B,MAAM6E,WAAa03B,EAErC36B,EAAQ81B,iBACVpX,EAAIsY,eAAen+B,UAAY,0CAC/B6lB,EAAIqY,cAAcl+B,UAAY,yCAE9B6lB,EAAI2Y,eAAej5B,MAAM6E,WAAa,SACtCyb,EAAI4Y,kBAAkBl5B,MAAM6E,WAAa,SACzCyb,EAAIyY,cAAc/4B,MAAM6E,WAAa,SACrCyb,EAAI0Y,iBAAiBh5B,MAAM6E,WAAa,SAExCyb,EAAIrmB,KAAK+F,MAAM3F,IAAM,MACrBimB,EAAInmB,MAAM6F,MAAM3F,IAAM,SAGnBuH,EAAQ81B,gBAAkB/iC,EAAM4/B,OAAO7vB,OAAS/P,EAAMinB,gBAAgBlX,UACzE4b,EAAIrmB,KAAK+F,MAAM3F,IAAM8hB,EAAS,KAC9BmE,EAAInmB,MAAM6F,MAAM3F,IAAM8hB,EAAS,KAC/BmE,EAAIsY,eAAen+B,UAAY6lB,EAAIsY,eAAen+B,UAAUgD,QAAQ,GAAI++B,QAAO,yCAAoD,KACnIlc,EAAIqY,cAAcl+B,UAAY6lB,EAAIqY,cAAcl+B,UAAUgD,QAAQ,GAAI++B,QAAO,yCAAoD,KACjI7nC,EAAMsF,KAAKwK,MAAQ6b,EAAIqY,cAAcvzB,cAAgBzQ,EAAM4K,OAAOtF,KAClEtF,EAAMwF,MAAMsK,MAAQ6b,EAAIsY,eAAexzB,cAAgBzQ,EAAM4K,OAAOpF,MACpE5H,KAAK6pC,UAIP,IAAIK,GAAmB9nC,EAAM4/B,OAAO7vB,OAAS/P,EAAMinB,gBAAgBlX,MACnEnS,MAAKotB,OAAOlsB,IAAI,OAAO4T,KACrBmY,UAAWid,EAAmBl1B,EAAOm1B,cAAgBn1B,EAAO8jB,uBAI9D94B,KAAKsnC,WAAW5+B,QAAQ,SAAUk/B,GAChCloB,EAAUkoB,EAAUpoB,UAAYE,GAGlC,IAAIA,EAAS,CACX,GAAI1f,KAAKonC,YAFM,EAIb,WADApnC,MAAKyS,KAAK8c,QAAQ1a,KAAK,UAGvBqC,SAAQ0G,IAAI,yCAGd5d,MAAKonC,YAAc,CAIrBpnC,MAAKyS,KAAK8c,QAAQ1a,KAAK,aAGzBiX,EAAKvqB,UAAUsoC,QAAU,WACvB,GAAIznC,GAAQpC,KAAKoC,MACb2rB,EAAM/tB,KAAK+tB,GAEf3rB,GAAMgkC,cAAcl0B,MAAQ9P,EAAMsF,KAAKwK,MACvC9P,EAAMikC,eAAen0B,MAAQ9P,EAAMwF,MAAMsK,KACzC,IAAIk4B,GAAchoC,EAAM3C,KAAKyS,MAAQ9P,EAAMsF,KAAKwK,MAAQ9P,EAAMwF,MAAMsK,MAAQ9P,EAAMonC,eAClFpnC,GAAM4/B,OAAO9vB,MAAQk4B,EACrBhoC,EAAMinB,gBAAgBnX,MAAQk4B,EAC9BhoC,EAAM0F,IAAIoK,MAAQk4B,EAClBhoC,EAAMigB,OAAOnQ,MAAQk4B,EAGrBrc,EAAIhhB,WAAWU,MAAM0E,OAAS/P,EAAM2K,WAAWoF,OAAS,KACxD4b,EAAIgI,mBAAmBtoB,MAAM0E,OAAS/P,EAAM2K,WAAWoF,OAAS,KAChE4b,EAAIoY,qBAAqB14B,MAAM0E,OAAS/P,EAAMinB,gBAAgBlX,OAAS,KACvE4b,EAAI1E,gBAAgB5b,MAAM0E,OAAS/P,EAAMinB,gBAAgBlX,OAAS,KAClE4b,EAAIqY,cAAc34B,MAAM0E,OAAS/P,EAAMgkC,cAAcj0B,OAAS,KAC9D4b,EAAIsY,eAAe54B,MAAM0E,OAAS/P,EAAMikC,eAAel0B,OAAS,KAEhE4b,EAAIhhB,WAAWU,MAAMyE,MAAQ9P,EAAM2K,WAAWmF,MAAQ,KACtD6b,EAAIgI,mBAAmBtoB,MAAMyE,MAAQ9P,EAAMinB,gBAAgBnX,MAAQ,KACnE6b,EAAIoY,qBAAqB14B,MAAMyE,MAAQ9P,EAAM2K,WAAWmF,MAAQ,KAChE6b,EAAI1E,gBAAgB5b,MAAMyE,MAAQ9P,EAAM4/B,OAAO9vB,MAAQ,KACvD6b,EAAIjmB,IAAI2F,MAAMyE,MAAQ9P,EAAM0F,IAAIoK,MAAQ,KACxC6b,EAAI1L,OAAO5U,MAAMyE,MAAQ9P,EAAMigB,OAAOnQ,MAAQ,KAG9C6b,EAAIhhB,WAAWU,MAAM/F,KAAO,IAC5BqmB,EAAIhhB,WAAWU,MAAM3F,IAAM,IAC3BimB,EAAIgI,mBAAmBtoB,MAAM/F,KAAOtF,EAAMsF,KAAKwK,MAAQ9P,EAAM4K,OAAOtF,KAAO,KAC3EqmB,EAAIgI,mBAAmBtoB,MAAM3F,IAAM,IACnCimB,EAAIoY,qBAAqB14B,MAAM/F,KAAO,IACtCqmB,EAAIoY,qBAAqB14B,MAAM3F,IAAM1F,EAAM0F,IAAIqK,OAAS,KACxD4b,EAAI1E,gBAAgB5b,MAAM/F,KAAOtF,EAAMsF,KAAKwK,MAAQ,KACpD6b,EAAI1E,gBAAgB5b,MAAM3F,IAAM1F,EAAM0F,IAAIqK,OAAS,KACnD4b,EAAIqY,cAAc34B,MAAM/F,KAAO,IAC/BqmB,EAAIqY,cAAc34B,MAAM3F,IAAM1F,EAAM0F,IAAIqK,OAAS,KACjD4b,EAAIsY,eAAe54B,MAAM/F,KAAOtF,EAAMsF,KAAKwK,MAAQ9P,EAAM4/B,OAAO9vB,MAAQ,KACxE6b,EAAIsY,eAAe54B,MAAM3F,IAAM1F,EAAM0F,IAAIqK,OAAS,KAClD4b,EAAIjmB,IAAI2F,MAAM/F,KAAOtF,EAAMsF,KAAKwK,MAAQ,KACxC6b,EAAIjmB,IAAI2F,MAAM3F,IAAM,IACpBimB,EAAI1L,OAAO5U,MAAM/F,KAAOtF,EAAMsF,KAAKwK,MAAQ,KAC3C6b,EAAI1L,OAAO5U,MAAM3F,IAAM1F,EAAM0F,IAAIqK,OAAS/P,EAAMinB,gBAAgBlX,OAAS,KACzE4b,EAAIiU,OAAOv0B,MAAM/F,KAAO,IACxBqmB,EAAIrmB,KAAK+F,MAAM/F,KAAO,IACtBqmB,EAAInmB,MAAM6F,MAAM/F,KAAO,KAIzBokB,EAAKvqB,UAAU8oC,QAAU,WACvB,KAAM,IAAIxkC,OAAM,wDAUlBimB,EAAKvqB,UAAU+oC,eAAiB,SAAUve,GACxC,IAAK/rB,KAAKuqC,YACR,KAAM,IAAI1kC,OAAM,sCAGlB7F,MAAKuqC,YAAYD,eAAeve,IAQlCD,EAAKvqB,UAAUipC,eAAiB,WAC9B,IAAKxqC,KAAKuqC,YACR,KAAM,IAAI1kC,OAAM,sCAGlB,OAAO7F,MAAKuqC,YAAYC,kBAU1B1e,EAAKvqB,UAAUkpC,QAAU,SAAU96B,GACjC,MAAOmlB,GAASxI,OAAOtsB,KAAM2P,EAAG3P,KAAKoC,MAAM4/B,OAAO9vB,QAUpD4Z,EAAKvqB,UAAUmpC,cAAgB,SAAU/6B,GACvC,MAAOmlB,GAASxI,OAAOtsB,KAAM2P,EAAG3P,KAAKoC,MAAM3C,KAAKyS,QAalD4Z,EAAKvqB,UAAUopC,UAAY,SAAU5e,GACnC,MAAO+I,GAASjJ,SAAS7rB,KAAM+rB,EAAM/rB,KAAKoC,MAAM4/B,OAAO9vB,QAYzD4Z,EAAKvqB,UAAUqpC,gBAAkB,SAAU7e,GACzC,MAAO+I,GAASjJ,SAAS7rB,KAAM+rB,EAAM/rB,KAAKoC,MAAM3C,KAAKyS,QASvD4Z,EAAKvqB,UAAUomC,gBAAkB,WACA,GAA3B3nC,KAAKqP,QAAQw7B,WACf7qC,KAAK8qC,mBAEL9qC,KAAKqoC,mBASTvc,EAAKvqB,UAAUupC,iBAAmB,WAChC,GAAIt0B,GAAKxW,IAETA,MAAKqoC,kBAELroC,KAAK+qC,UAAY,WACf,GAA6B,GAAzBv0B,EAAGnH,QAAQw7B,WAGb,WADAr0B,GAAG6xB,iBAID7xB,GAAGuX,IAAItuB,OAKL+W,EAAGuX,IAAItuB,KAAKkT,aAAe6D,EAAGpU,MAAM4oC,WAAax0B,EAAGuX,IAAItuB,KAAK6pC,cAAgB9yB,EAAGpU,MAAM6oC,aACxFz0B,EAAGpU,MAAM4oC,UAAYx0B,EAAGuX,IAAItuB,KAAKkT,YACjC6D,EAAGpU,MAAM6oC,WAAaz0B,EAAGuX,IAAItuB,KAAK6pC,aAClC9yB,EAAGpU,MAAMwnC,eAAiB/zB,EAAK/D,oBAE/B0E,EAAG/D,KAAK8c,QAAQ1a,KAAK,cAM3BgB,EAAK1M,iBAAiBY,OAAQ,SAAU/J,KAAK+qC,WAGzCv0B,EAAGuX,IAAItuB,OACT+W,EAAGpU,MAAM4oC,UAAYx0B,EAAGuX,IAAItuB,KAAKkT,YACjC6D,EAAGpU,MAAM6oC,WAAaz0B,EAAGuX,IAAItuB,KAAK6pC,cAGpCtpC,KAAKkrC,WAAaC,YAAYnrC,KAAK+qC,UAAW,MAOhDjf,EAAKvqB,UAAU8mC,gBAAkB,WAC3BroC,KAAKkrC,aACPE,cAAcprC,KAAKkrC,YACnBlrC,KAAKkrC,eAAahoC,IAIhBlD,KAAK+qC,YACPl1B,EAAKlM,oBAAoBI,OAAQ,SAAU/J,KAAK+qC,WAChD/qC,KAAK+qC,UAAY,OASrBjf,EAAKvqB,UAAUggC,SAAW,SAAUz3B,GAElC9J,KAAKqhC,MAAMkC,eAAgB,EAC3BvjC,KAAKqhC,MAAMgK,iBAAmBrrC,KAAKoC,MAAMquB,WAQ3C3E,EAAKvqB,UAAUigC,SAAW,SAAU13B,GAElC9J,KAAKqhC,MAAMkC,eAAgB,GAQ7BzX,EAAKvqB,UAAUo3B,QAAU,SAAU7uB,GACjC,GAAKA,GAGA9J,KAAKqhC,MAAMkC,cAAhB,CAEA,GAAIE,GAAQ35B,EAAM45B,OAEd4H,EAAetrC,KAAKurC,gBACpBC,EAAexrC,KAAKqlC,cAAcrlC,KAAKqhC,MAAMgK,iBAAmB5H,EAEhEzjC,MAAKqP,QAAQ81B,iBACfnlC,KAAK+tB,IAAIrmB,KAAK0C,WAAWqmB,WAAazwB,KAAKoC,MAAMquB,UACjDzwB,KAAK+tB,IAAInmB,MAAMwC,WAAWqmB,WAAazwB,KAAKoC,MAAMquB,WAGhD+a,GAAgBF,GAClBtrC,KAAK6U,KAAK,kBAUdiX,EAAKvqB,UAAU8jC,cAAgB,SAAU5U,GAGvC,MAFAzwB,MAAKoC,MAAMquB,UAAYA,EACvBzwB,KAAK8pC,mBACE9pC,KAAKoC,MAAMquB,WAQpB3E,EAAKvqB,UAAUuoC,iBAAmB,WAEhC,GAAIlD,GAAeliC,KAAKL,IAAIrE,KAAKoC,MAAMinB,gBAAgBlX,OAASnS,KAAKoC,MAAM4/B,OAAO7vB,OAAQ,EAmB1F,OAlBIy0B,IAAgB5mC,KAAKoC,MAAMwkC,eAGQ,OAAjC5mC,KAAKqP,QAAQqhB,YAAYhgB,OAC3B1Q,KAAKoC,MAAMquB,WAAamW,EAAe5mC,KAAKoC,MAAMwkC,cAEpD5mC,KAAKoC,MAAMwkC,aAAeA,GAIxB5mC,KAAKoC,MAAMquB,UAAY,IAAGzwB,KAAKoC,MAAMquB,UAAY,GACjDzwB,KAAKoC,MAAMquB,UAAYmW,IAAc5mC,KAAKoC,MAAMquB,UAAYmW,GAE5D5mC,KAAKqP,QAAQ81B,iBACfnlC,KAAK+tB,IAAIrmB,KAAK0C,WAAWqmB,WAAazwB,KAAKoC,MAAMquB,UACjDzwB,KAAK+tB,IAAInmB,MAAMwC,WAAWqmB,WAAazwB,KAAKoC,MAAMquB,WAG7CzwB,KAAKoC,MAAMquB,WAQpB3E,EAAKvqB,UAAUgqC,cAAgB,WAC7B,MAAOvrC,MAAKoC,MAAMquB,WAQpB3E,EAAKvqB,UAAUumC,oBAAsB,WACnC,KAAM,IAAIjiC,OAAM,sDAGlBjG,EAAOD,QAAUmsB,GAIX,SAAUlsB,EAAQD,EAASO,GAqCjC,QAASy0B,GAAS1L,EAAOC,EAAKkL,EAAatL,EAAazZ,GACtDrP,KAAK2D,OAASA,EAGd3D,KAAKwrB,QAAUxrB,KAAK2D,SACpB3D,KAAKyrC,OAASzrC,KAAK2D,SACnB3D,KAAKyrB,KAAOzrB,KAAK2D,SAEjB3D,KAAK0rC,WAAY,EACjB1rC,KAAKyE,MAAQ,MACbzE,KAAKk2B,KAAO,EAGZl2B,KAAK4hC,SAAS3Y,EAAOC,EAAKkL,GAG1Bp0B,KAAK4rB,aAAc,EACnB5rB,KAAK2rB,eAAgB,EACrB3rB,KAAK0rB,cAAe,EAChB/lB,MAAMC,QAAQkjB,GAChB9oB,KAAK8oB,YAAcA,EAEnB9oB,KAAK8oB,gBADmB5lB,IAAf4lB,GACWA,MAKtB9oB,KAAKiH,OAAS0tB,EAASC,OACvB50B,KAAKqP,QAAUA,MA5DjB,GAAI1L,GAASzD,EAAoB,GAC7B40B,EAAW50B,EAAoB,IAC/B2V,EAAO3V,EAAoB,EA8D/By0B,GAASC,QACP+W,aACEC,YAAa,MACbC,OAAQ,IACRC,OAAQ,QACRC,KAAM,QACNC,QAAS,QACTjiB,IAAK,IACLkiB,KAAM,IACN5hB,MAAO,MACPJ,KAAM,QAERiiB,aACEN,YAAa,WACbC,OAAQ,eACRC,OAAQ,aACRC,KAAM,aACNC,QAAS,YACTjiB,IAAK,YACLkiB,KAAM,YACN5hB,MAAO,OACPJ,KAAM,KASV0K,EAASpzB,UAAU40B,UAAY,SAAUxyB,GACvC3D,KAAK2D,OAASA,EAGd3D,KAAKwrB,QAAUxrB,KAAK2D,OAAO3D,KAAKwrB,QAAQ5kB,WACxC5G,KAAKyrC,OAASzrC,KAAK2D,OAAO3D,KAAKyrC,OAAO7kC,WACtC5G,KAAKyrB,KAAOzrB,KAAK2D,OAAO3D,KAAKyrB,KAAK7kB,YASpC+tB,EAASpzB,UAAU60B,UAAY,SAAUnvB,GACvC,GAAIklC,GAAgBt2B,EAAK7P,cAAe2uB,EAASC,OACjD50B,MAAKiH,OAAS4O,EAAK7P,WAAWmmC,EAAellC,IAa/C0tB,EAASpzB,UAAUqgC,SAAW,SAAU3Y,EAAOC,EAAKkL,GAClD,KAAMnL,YAAiBnkB,OAAWokB,YAAepkB,OAC/C,KAAM,+CAGR9E,MAAKyrC,WAAkBvoC,IAAT+lB,EAAqBjpB,KAAK2D,OAAOslB,EAAMriB,WAAa,GAAI9B,MACtE9E,KAAKyrB,SAAcvoB,IAAPgmB,EAAmBlpB,KAAK2D,OAAOulB,EAAItiB,WAAa,GAAI9B,MAE5D9E,KAAK0rC,WACP1rC,KAAKosC,eAAehY,IAOxBO,EAASpzB,UAAU0nB,MAAQ,WACzBjpB,KAAKwrB,QAAUxrB,KAAKyrC,OAAO3hB,QAC3B9pB,KAAKqsC,gBAOP1X,EAASpzB,UAAU8qC,aAAe,WAQhC,OALkB,QAAdrsC,KAAKyE,OACPzE,KAAKwrB,QAAQwgB,QAAQ,GAIfhsC,KAAKyE,OACX,IAAK,OACHzE,KAAKwrB,QAAQvB,KAAKjqB,KAAKk2B,KAAOxxB,KAAKwJ,MAAMlO,KAAKwrB,QAAQvB,OAASjqB,KAAKk2B,OACpEl2B,KAAKwrB,QAAQnB,MAAM,EACrB,KAAK,QACHrqB,KAAKwrB,QAAQpB,KAAK,EACpB,KAAK,OACL,IAAK,MACL,IAAK,UACHpqB,KAAKwrB,QAAQ+U,MAAM,EACrB,KAAK,OACHvgC,KAAKwrB,QAAQgV,QAAQ,EACvB,KAAK,SACHxgC,KAAKwrB,QAAQiV,QAAQ,EACvB,KAAK,SACHzgC,KAAKwrB,QAAQkV,aAAa,GAI9B,GAAiB,GAAb1gC,KAAKk2B,KAEP,OAAQl2B,KAAKyE,OACX,IAAK,cACHzE,KAAKwrB,QAAQzE,SAAS/mB,KAAKwrB,QAAQkV,eAAiB1gC,KAAKk2B,KAAM,eAAgB,MACjF,KAAK,SACHl2B,KAAKwrB,QAAQzE,SAAS/mB,KAAKwrB,QAAQiV,UAAYzgC,KAAKk2B,KAAM,UAAW,MACvE,KAAK,SACHl2B,KAAKwrB,QAAQzE,SAAS/mB,KAAKwrB,QAAQgV,UAAYxgC,KAAKk2B,KAAM,UAAW,MACvE,KAAK,OACHl2B,KAAKwrB,QAAQzE,SAAS/mB,KAAKwrB,QAAQ+U,QAAUvgC,KAAKk2B,KAAM,QAAS,MACnE,KAAK,UACL,IAAK,MACHl2B,KAAKwrB,QAAQzE,UAAU/mB,KAAKwrB,QAAQpB,OAAS,GAAKpqB,KAAKk2B,KAAM,MAAO,MACtE,KAAK,OACHl2B,KAAKwrB,QAAQzE,SAAS/mB,KAAKwrB,QAAQygB,OAASjsC,KAAKk2B,KAAM,OAAQ,MACjE,KAAK,QACHl2B,KAAKwrB,QAAQzE,SAAS/mB,KAAKwrB,QAAQnB,QAAUrqB,KAAKk2B,KAAM,QAAS,MACnE,KAAK,OACHl2B,KAAKwrB,QAAQzE,SAAS/mB,KAAKwrB,QAAQvB,OAASjqB,KAAKk2B,KAAM,UAW/DvB,EAASpzB,UAAUu1B,QAAU,WAC3B,MAAO92B,MAAKwrB,QAAQ5kB,WAAa5G,KAAKyrB,KAAK7kB,WAM7C+tB,EAASpzB,UAAUgS,KAAO,WACxB,GAAI+4B,GAAOtsC,KAAKwrB,QAAQ5kB,SAIxB,QAAQ5G,KAAKyE,OACX,IAAK,cACHzE,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,cAAe,MAC7C,KAAK,SACHl2B,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,SAAU,MACxC,KAAK,SACHl2B,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,SAAU,MACxC,KAAK,OACHl2B,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,QAExBl2B,KAAKwrB,QAAQnB,QAAU,EACzBrqB,KAAKwrB,QAAQzE,SAAS/mB,KAAKwrB,QAAQ+U,QAAUvgC,KAAKk2B,KAAM,QAEpDl2B,KAAKwrB,QAAQ+U,QAAUvgC,KAAKk2B,MAAS,GACvCl2B,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAOl2B,KAAKwrB,QAAQ+U,QAAUvgC,KAAKk2B,KAAM,OAGnE,MACF,KAAK,UACL,IAAK,MACHl2B,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,MAAO,MACrC,KAAK,OACH,GAA+B,IAA3Bl2B,KAAKwrB,QAAQwgB,UAEfhsC,KAAKwrB,QAAQwgB,QAAQ,GACrBhsC,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,YACvB,KAAqC,IAAjCl2B,KAAKqP,QAAQolB,gBACtBz0B,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,YACvB,CAEL,GAAIqW,GAAWvsC,KAAKwrB,QAAQ1B,OAC5ByiB,GAAS92B,IAAI,EAAG,QACZ82B,EAASC,OAAOxsC,KAAKwrB,QAAS,SAEhCxrB,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,SAG5Bl2B,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,QAC5Bl2B,KAAKwrB,QAAQpB,KAAK,IAGtB,KACF,KAAK,QACHpqB,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,QAAS,MACvC,KAAK,OACHl2B,KAAKwrB,QAAQ/V,IAAIzV,KAAKk2B,KAAM,QAKhC,GAAiB,GAAbl2B,KAAKk2B,KAEP,OAAQl2B,KAAKyE,OACX,IAAK,cACCzE,KAAKwrB,QAAQkV,eAAiB,GAAK1gC,KAAKwrB,QAAQkV,eAAiB1gC,KAAKk2B,MAAMl2B,KAAKwrB,QAAQkV,aAAa,EAAG,MAC/G,KAAK,SACC1gC,KAAKwrB,QAAQiV,UAAY,GAAKzgC,KAAKwrB,QAAQiV,UAAYzgC,KAAKk2B,MAAMl2B,KAAKwrB,QAAQiV,QAAQ,EAAG,MAChG,KAAK,SACCzgC,KAAKwrB,QAAQgV,UAAY,GAAKxgC,KAAKwrB,QAAQgV,UAAYxgC,KAAKk2B,MAAMl2B,KAAKwrB,QAAQgV,QAAQ,EAAG,MAChG,KAAK,OACCxgC,KAAKwrB,QAAQ+U,QAAU,GAAKvgC,KAAKwrB,QAAQ+U,QAAUvgC,KAAKk2B,MAAMl2B,KAAKwrB,QAAQ+U,MAAM,EAAG,MAC1F,KAAK,UACL,IAAK,MACCvgC,KAAKwrB,QAAQpB,OAASpqB,KAAKk2B,KAAO,GAAGl2B,KAAKwrB,QAAQpB,KAAK,EAAG,MAChE,KAAK,OACCpqB,KAAKwrB,QAAQygB,OAASjsC,KAAKk2B,MAAMl2B,KAAKwrB,QAAQygB,KAAK,EAAG,MAC5D,KAAK,QACCjsC,KAAKwrB,QAAQnB,QAAUrqB,KAAKk2B,MAAMl2B,KAAKwrB,QAAQnB,MAAM,GAS3DrqB,KAAKwrB,QAAQ5kB,WAAa0lC,IAC5BtsC,KAAKwrB,QAAUxrB,KAAKyrB,KAAK3B,SAI3B9pB,KAAK4rB,aAAc,EACnB5rB,KAAK2rB,eAAgB,EACrB3rB,KAAK0rB,cAAe,EAEpBoJ,EAAS3J,oBAAoBnrB,KAAK2D,OAAQ3D,KAAMssC,IAOlD3X,EAASpzB,UAAUs1B,WAAa,WAC9B,MAAO72B,MAAKwrB,SAedmJ,EAASpzB,UAAU80B,SAAW,SAAUlgB,GAClCA,GAAiC,gBAAhBA,GAAO1R,QAC1BzE,KAAKyE,MAAQ0R,EAAO1R,MACpBzE,KAAKk2B,KAAO/f,EAAO+f,KAAO,EAAI/f,EAAO+f,KAAO,EAC5Cl2B,KAAK0rC,WAAY,IAQrB/W,EAASpzB,UAAUkrC,aAAe,SAAUvF,GAC1ClnC,KAAK0rC,UAAYxE,GAOnBvS,EAASpzB,UAAU6qC,eAAiB,SAAUhY,GAC5C,OAAmBlxB,IAAfkxB,EAAJ,CAeIsY,QAAkBtY,IACpBp0B,KAAKyE,MAAQ,OAAOzE,KAAKk2B,KAAO,KAE9BwW,QAAiBtY,IACnBp0B,KAAKyE,MAAQ,OAAOzE,KAAKk2B,KAAO,KAE9BwW,QAAiBtY,IACnBp0B,KAAKyE,MAAQ,OAAOzE,KAAKk2B,KAAO,KAE9BwW,QAAgBtY,IAClBp0B,KAAKyE,MAAQ,OAAOzE,KAAKk2B,KAAO,IAE9BwW,QAAgBtY,IAClBp0B,KAAKyE,MAAQ,OAAOzE,KAAKk2B,KAAO,IAE9BwW,QAAetY,IACjBp0B,KAAKyE,MAAQ,OAAOzE,KAAKk2B,KAAO,GAzBnB,QA2BA9B,IACbp0B,KAAKyE,MAAQ,OAAOzE,KAAKk2B,KAAO,GAE9ByW,OAAgBvY,IAClBp0B,KAAKyE,MAAQ,QAAQzE,KAAKk2B,KAAO,GA9BnB,OAgCA9B,IACdp0B,KAAKyE,MAAQ,QAAQzE,KAAKk2B,KAAO,GAE/B0W,MAAcxY,IAChBp0B,KAAKyE,MAAQ,MAAMzE,KAAKk2B,KAAO,GAE7B0W,OAAcxY,IAChBp0B,KAAKyE,MAAQ,MAAMzE,KAAKk2B,KAAO,GAtCnB,MAwCA9B,IACZp0B,KAAKyE,MAAQ,MAAMzE,KAAKk2B,KAAO,GAE7B0W,MAAcxY,IAChBp0B,KAAKyE,MAAQ,UAAUzE,KAAKk2B,KAAO,GAEjC2W,MAAezY,IACjBp0B,KAAKyE,MAAQ,OAAOzE,KAAKk2B,KAAO,GA9CnB,KAgDA9B,IACbp0B,KAAKyE,MAAQ,OAAOzE,KAAKk2B,KAAO,GAE9B4W,IAAkB1Y,IACpBp0B,KAAKyE,MAAQ,SAASzE,KAAKk2B,KAAO,IAEhC4W,IAAkB1Y,IACpBp0B,KAAKyE,MAAQ,SAASzE,KAAKk2B,KAAO,IAEhC4W,IAAiB1Y,IACnBp0B,KAAKyE,MAAQ,SAASzE,KAAKk2B,KAAO,GAzDnB,IA2DA9B,IACfp0B,KAAKyE,MAAQ,SAASzE,KAAKk2B,KAAO,GAEhC6W,KAAkB3Y,IACpBp0B,KAAKyE,MAAQ,SAASzE,KAAKk2B,KAAO,IAEhC6W,IAAkB3Y,IACpBp0B,KAAKyE,MAAQ,SAASzE,KAAKk2B,KAAO,IAEhC6W,IAAiB3Y,IACnBp0B,KAAKyE,MAAQ,SAASzE,KAAKk2B,KAAO,GApEnB,IAsEA9B,IACfp0B,KAAKyE,MAAQ,SAASzE,KAAKk2B,KAAO,GAEhC8W,IAAwB5Y,IAC1Bp0B,KAAKyE,MAAQ,cAAczE,KAAKk2B,KAAO,KAErC8W,IAAwB5Y,IAC1Bp0B,KAAKyE,MAAQ,cAAczE,KAAKk2B,KAAO,KAErC8W,GAAuB5Y,IACzBp0B,KAAKyE,MAAQ,cAAczE,KAAKk2B,KAAO,IAErC8W,GAAuB5Y,IACzBp0B,KAAKyE,MAAQ,cAAczE,KAAKk2B,KAAO,IAErC8W,EAAsB5Y,IACxBp0B,KAAKyE,MAAQ,cAAczE,KAAKk2B,KAAO,GArFnB,EAuFA9B,IACpBp0B,KAAKyE,MAAQ,cAAczE,KAAKk2B,KAAO,KAc3CvB,EAASsY,KAAO,SAAU7iB,EAAM3lB,EAAOyxB,GACrC,GAAIpM,GAAQnmB,EAAOymB,EAEnB,IAAa,QAAT3lB,EAAiB,CACnB,GAAIwlB,GAAOH,EAAMG,OAASvlB,KAAKwoC,MAAMpjB,EAAMO,QAAU,GACrDP,GAAMG,KAAKvlB,KAAKwoC,MAAMjjB,EAAOiM,GAAQA,GACrCpM,EAAMO,MAAM,GACZP,EAAMM,KAAK,GACXN,EAAMyW,MAAM,GACZzW,EAAM0W,QAAQ,GACd1W,EAAM2W,QAAQ,GACd3W,EAAM4W,aAAa,OACd,IAAa,SAATj8B,EACLqlB,EAAMM,OAAS,IACjBN,EAAMM,KAAK,GACXN,EAAMrU,IAAI,EAAG,UAGbqU,EAAMM,KAAK,GAGbN,EAAMyW,MAAM,GACZzW,EAAM0W,QAAQ,GACd1W,EAAM2W,QAAQ,GACd3W,EAAM4W,aAAa,OACd,IAAa,QAATj8B,EACLqlB,EAAMkiB,UAAY,GAEpBliB,EAAMkiB,QAAQ,GACdliB,EAAMrU,IAAI,EAAG,SAEbqU,EAAMkiB,QAAQ,GAGhBliB,EAAMyW,MAAM,GACZzW,EAAM0W,QAAQ,GACd1W,EAAM2W,QAAQ,GACd3W,EAAM4W,aAAa,OACd,IAAa,OAATj8B,EAAgB,CAEzB,OAAQyxB,GACN,IAAK,GACL,IAAK,GACHpM,EAAMyW,MAAuC,GAAjC77B,KAAKwoC,MAAMpjB,EAAMyW,QAAU,IAAU,MACnD,SACEzW,EAAMyW,MAAuC,GAAjC77B,KAAKwoC,MAAMpjB,EAAMyW,QAAU,KAE3CzW,EAAM0W,QAAQ,GACd1W,EAAM2W,QAAQ,GACd3W,EAAM4W,aAAa,OACd,IAAa,WAATj8B,EAAoB,CAE7B,OAAQyxB,GACN,IAAK,GACL,IAAK,GACHpM,EAAMyW,MAAuC,GAAjC77B,KAAKwoC,MAAMpjB,EAAMyW,QAAU,IAAU,MACnD,SACEzW,EAAMyW,MAAsC,EAAhC77B,KAAKwoC,MAAMpjB,EAAMyW,QAAU,IAE3CzW,EAAM0W,QAAQ,GACd1W,EAAM2W,QAAQ,GACd3W,EAAM4W,aAAa,OACd,IAAa,QAATj8B,EAAiB,CAC1B,OAAQyxB,GACN,IAAK,GACHpM,EAAM0W,QAA2C,GAAnC97B,KAAKwoC,MAAMpjB,EAAM0W,UAAY,IAAU,MACvD,SACE1W,EAAM0W,QAA2C,GAAnC97B,KAAKwoC,MAAMpjB,EAAM0W,UAAY,KAE/C1W,EAAM2W,QAAQ,GACd3W,EAAM4W,aAAa,OACd,IAAa,UAATj8B,EAAmB,CAE5B,OAAQyxB,GACN,IAAK,IACL,IAAK,IACHpM,EAAM0W,QAA0C,EAAlC97B,KAAKwoC,MAAMpjB,EAAM0W,UAAY,IAC3C1W,EAAM2W,QAAQ,EACd,MACF,KAAK,GACH3W,EAAM2W,QAA2C,GAAnC/7B,KAAKwoC,MAAMpjB,EAAM2W,UAAY,IAAU,MACvD,SACE3W,EAAM2W,QAA2C,GAAnC/7B,KAAKwoC,MAAMpjB,EAAM2W,UAAY,KAE/C3W,EAAM4W,aAAa,OACd,IAAa,UAATj8B,EAET,OAAQyxB,GACN,IAAK,IACL,IAAK,IACHpM,EAAM2W,QAA0C,EAAlC/7B,KAAKwoC,MAAMpjB,EAAM2W,UAAY,IAC3C3W,EAAM4W,aAAa,EACnB,MACF,KAAK,GACH5W,EAAM4W,aAAuD,IAA1Ch8B,KAAKwoC,MAAMpjB,EAAM4W,eAAiB,KAAc,MACrE,SACE5W,EAAM4W,aAAsD,IAAzCh8B,KAAKwoC,MAAMpjB,EAAM4W,eAAiB,UAEpD,IAAa,eAATj8B,EAAwB,CACjC,GAAI4O,GAAQ6iB,EAAO,EAAIA,EAAO,EAAI,CAClCpM,GAAM4W,aAAah8B,KAAKwoC,MAAMpjB,EAAM4W,eAAiBrtB,GAASA,GAGhE,MAAOyW,IAQT6K,EAASpzB,UAAUg1B,QAAU,WAC3B,GAAyB,GAArBv2B,KAAK0rB,aACP,OAAQ1rB,KAAKyE,OACX,IAAK,OACL,IAAK,QACL,IAAK,OACL,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,cACH,OAAO,CACT,SACE,OAAO,MAEN,IAA0B,GAAtBzE,KAAK2rB,cACd,OAAQ3rB,KAAKyE,OACX,IAAK,OACL,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,cACH,OAAO,CACT,SACE,OAAO,MAEN,IAAwB,GAApBzE,KAAK4rB,YACd,OAAQ5rB,KAAKyE,OACX,IAAK,cACL,IAAK,SACL,IAAK,SACL,IAAK,OACH,OAAO,CACT,SACE,OAAO,EAIb,GAAI2lB,GAAOpqB,KAAK2D,OAAO3D,KAAKwrB,QAC5B,QAAQxrB,KAAKyE,OACX,IAAK,cACH,MAA8B,IAAvB2lB,EAAKsW,cACd,KAAK,SACH,MAAyB,IAAlBtW,EAAKqW,SACd,KAAK,SACH,MAAuB,IAAhBrW,EAAKmW,SAAkC,GAAlBnW,EAAKoW,SACnC,KAAK,OACH,MAAuB,IAAhBpW,EAAKmW,OACd,KAAK,UACL,IAAK,MAEL,IAAK,OACH,MAAsB,IAAfnW,EAAKA,MACd,KAAK,QACH,MAAuB,IAAhBA,EAAKC,OACd,KAAK,OAEL,QACE,OAAO,IAWbsK,EAASpzB,UAAUy1B,cAAgB,SAAU5M,GAQ3C,OAPYlnB,IAARknB,IACFA,EAAOpqB,KAAKwrB,SAEVpB,YAAgBtlB,QAClBslB,EAAOpqB,KAAK2D,OAAOymB,IAGkB,kBAA5BpqB,MAAKiH,OAAO0kC,YACrB,MAAO3rC,MAAKiH,OAAO0kC,YAAYvhB,EAAMpqB,KAAKyE,MAAOzE,KAAKk2B,KAGxD,IAAIjvB,GAASjH,KAAKiH,OAAO0kC,YAAY3rC,KAAKyE,MAE1C,QAAQzE,KAAKyE,OACX,IAAK,OACH,GAAIzE,KAAKu2B,WAAgC,IAAnBnM,EAAK4hB,UACzB,MAAO,EAEX,SAEE,MAAO/kC,IAAUA,EAAO5E,OAAS,EAAIrC,KAAK2D,OAAOymB,GAAMnjB,OAAOA,GAAU,KAW9E0tB,EAASpzB,UAAU41B,cAAgB,SAAU/M,GAQ3C,OAPYlnB,IAARknB,IACFA,EAAOpqB,KAAKwrB,SAEVpB,YAAgBtlB,QAClBslB,EAAOpqB,KAAK2D,OAAOymB,IAGkB,kBAA5BpqB,MAAKiH,OAAOilC,YACrB,MAAOlsC,MAAKiH,OAAOilC,YAAY9hB,EAAMpqB,KAAKyE,MAAOzE,KAAKk2B,KAGxD,IAAIjvB,GAASjH,KAAKiH,OAAOilC,YAAYlsC,KAAKyE,MAC1C,OAAOwC,IAAUA,EAAO5E,OAAS,EAAIrC,KAAK2D,OAAOymB,GAAMnjB,OAAOA,GAAU,IAG1E0tB,EAASpzB,UAAUw1B,aAAe,WAYhC,QAASoW,GAAK3oC,GACZ,MAAOA,GAAQ0xB,EAAO,GAAK,EAAI,YAAc,WAQ/C,QAASkX,GAAMhjB,GACb,MAAIA,GAAKoiB,OAAO,GAAI1nC,MAAQ,OACnB,aAELslB,EAAKoiB,OAAOa,IAAU53B,IAAI,EAAG,OAAQ,OAChC,gBAEL2U,EAAKoiB,OAAOa,IAAU53B,KAAK,EAAG,OAAQ,OACjC,iBAEF,GAQT,QAAS63B,GAAYljB,GACnB,MAAOA,GAAKoiB,OAAO,GAAI1nC,MAAQ,QAAU,oBAAsB,GAQjE,QAASyoC,GAAanjB,GACpB,MAAOA,GAAKoiB,OAAO,GAAI1nC,MAAQ,SAAW,qBAAuB,GAhDnE,GAAIuoC,GAAUrtC,KAAK2D,OACfnD,EAAIR,KAAK2D,OAAO3D,KAAKwrB,SACrBA,EAAUhrB,EAAEu0B,OAASv0B,EAAEu0B,OAAO,MAAQv0B,EAAEw0B,KAAK,MAC7CkB,EAAOl2B,KAAKk2B,KACZluB,IAwDJ,QAAQhI,KAAKyE,OACX,IAAK,cACHuD,EAAW5B,KAAKgnC,EAAM5hB,IACtBxjB,EAAW5B,KAAK+mC,EAAK3hB,EAAQkV,gBAC7B,MACF,KAAK,SACH14B,EAAW5B,KAAKgnC,EAAM5hB,IACtBxjB,EAAW5B,KAAK+mC,EAAK3hB,EAAQiV,WAC7B,MACF,KAAK,SACHz4B,EAAW5B,KAAKgnC,EAAM5hB,IACtBxjB,EAAW5B,KAAK+mC,EAAK3hB,EAAQgV,WAC7B,MACF,KAAK,OACHx4B,EAAW5B,KAAK,QAAUolB,EAAQ+U,SAAwB,GAAbvgC,KAAKk2B,KAAY,MAAQ1K,EAAQ+U,QAAU,GAAK,KAC7Fv4B,EAAW5B,KAAKgnC,EAAM5hB,IACtBxjB,EAAW5B,KAAK+mC,EAAK3hB,EAAQ+U,SAC7B,MACF,KAAK,UACHv4B,EAAW5B,KAAK,OAASolB,EAAQvkB,OAAO,QAAQ4X,eAChD7W,EAAW5B,KAAKgnC,EAAM5hB;aACtBxjB,EAAW5B,KAAKknC,EAAY9hB,IAC5BxjB,EAAW5B,KAAK+mC,EAAK3hB,EAAQpB,QAC7B,MACF,KAAK,MACHpiB,EAAW5B,KAAK,UAAYolB,EAAQpB,QACpCpiB,EAAW5B,KAAK,OAASolB,EAAQvkB,OAAO,QAAQ4X,eAChD7W,EAAW5B,KAAKgnC,EAAM5hB,IACtBxjB,EAAW5B,KAAKmnC,EAAa/hB,IAC7BxjB,EAAW5B,KAAKpG,KAAKk2B,MAAQ,EAAIkX,EAAM5hB,GAAW,IAClDxjB,EAAW5B,KAAKpG,KAAKk2B,MAAQ,EAAI,OAAS1K,EAAQvkB,OAAO,QAAQ4X,cAAgB,IACjF7W,EAAW5B,KAAK+mC,EAAK3hB,EAAQpB,OAAS,GACtC,MACF,KAAK,OACHpiB,EAAW5B,KAAK,WAAaolB,EAAQvkB,OAAO,MAC5Ce,EAAW5B,KAAKknC,EAAY9hB,IAC5BxjB,EAAW5B,KAAK+mC,EAAK3hB,EAAQygB,QAC7B,MACF,KAAK,QACHjkC,EAAW5B,KAAK,OAASolB,EAAQvkB,OAAO,QAAQ4X,eAChD7W,EAAW5B,KAAKmnC,EAAa/hB,IAC7BxjB,EAAW5B,KAAK+mC,EAAK3hB,EAAQnB,SAC7B,MACF,KAAK,OACHriB,EAAW5B,KAAK,WAAaolB,EAAQvB,QACrCjiB,EAAW5B,KAjDf,SAAqBgkB,GACnB,MAAOA,GAAKoiB,OAAO,GAAI1nC,MAAQ,QAAU,oBAAsB,IAgDjC0mB,IAC5BxjB,EAAW5B,KAAK+mC,EAAK3hB,EAAQvB,SAGjC,MAAOjiB,GAAWM,OAAO1D,QAAQ2D,KAAK,MAGxC3I,EAAOD,QAAUg1B,GAIX,SAAU/0B,EAAQD,EAASO,GAkBjC,QAASstC,GAAY/6B,EAAMpD,GACzBrP,KAAKyS,KAAOA,EAGZzS,KAAKs0B,gBACHtE,KAAK,EACLyd,iBAAiB,EAEjB9pC,OAAQA,EACRw0B,QAASA,EACTpD,OAAQ,MAEV/0B,KAAKqP,QAAUwG,EAAKrQ,UAAWxF,KAAKs0B,gBACpCt0B,KAAK4pB,OAAS,EAEd5pB,KAAKqD,UAELrD,KAAK0V,WAAWrG,GA9BlB,GAAIwG,GAAO3V,EAAoB,GAC3Bqf,EAAYrf,EAAoB,IAChCyD,EAASzD,EAAoB,GAC7Bi4B,EAAUj4B,EAAoB,GA8BlCstC,GAAYjsC,UAAY,GAAIge,GAM5BiuB,EAAYjsC,UAAU8B,QAAU,WAC9B,GAAIm1B,GAAMxmB,SAASC,cAAc,MACjCumB,GAAItwB,UAAY,mBAChBswB,EAAI/qB,MAAM4E,SAAW,WACrBmmB,EAAI/qB,MAAM3F,IAAM,MAChB0wB,EAAI/qB,MAAM0E,OAAS,OAEnBnS,KAAKw4B,IAAMA,GAMbgV,EAAYjsC,UAAUqT,QAAU,WAC9B5U,KAAKqP,QAAQo+B,iBAAkB,EAC/BztC,KAAKwf,SAELxf,KAAKyS,KAAO,MAQd+6B,EAAYjsC,UAAUmU,WAAa,SAAUrG,GACvCA,GAEFwG,EAAKnQ,iBAAiB,MAAO,kBAAmB,SAAU,SAAU,WAAY1F,KAAKqP,QAASA,IAQlGm+B,EAAYjsC,UAAUie,OAAS,WAC7B,GAAIxf,KAAKqP,QAAQo+B,gBAAiB,CAChC,GAAInjC,GAAStK,KAAKyS,KAAKsb,IAAIgI,kBACvB/1B,MAAKw4B,IAAIpuB,YAAcE,IAErBtK,KAAKw4B,IAAIpuB,YACXpK,KAAKw4B,IAAIpuB,WAAWjG,YAAYnE,KAAKw4B,KAEvCluB,EAAOkI,YAAYxS,KAAKw4B,KAExBx4B,KAAKipB,QAGP,IAAIqX,GAAMtgC,KAAKqP,QAAQ1L,QAAO,GAAImB,OAAO8B,UAAY5G,KAAK4pB,QACtDja,EAAI3P,KAAKyS,KAAKoD,KAAKgW,SAASyU,GAE5BvL,EAAS/0B,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,OAC1CA,KACE/0B,KAAK+4B,SACR7hB,QAAQ0G,IAAI,6BAAgC5d,KAAKqP,QAAQ0lB,OAAS,kEAClE/0B,KAAK+4B,QAAS,GAEhBhE,EAAS/0B,KAAKqP,QAAQ8oB,QAAY,GAEpC,IAAIlI,GAAQ8E,EAAOvJ,QAAU,IAAMuJ,EAAOhJ,KAAO,KAAOuU,EAAIr5B,OAAO,8BACnEgpB,GAAQA,EAAM3Q,OAAO,GAAG0Z,cAAgB/I,EAAMgJ,UAAU,GAEpDj5B,KAAKqP,QAAQ2gB,IACfhwB,KAAKw4B,IAAI/qB,MAAM7F,MAAQ+H,EAAI,KAE3B3P,KAAKw4B,IAAI/qB,MAAM/F,KAAOiI,EAAI,KAE5B3P,KAAKw4B,IAAIvI,MAAQA,MAGbjwB,MAAKw4B,IAAIpuB,YACXpK,KAAKw4B,IAAIpuB,WAAWjG,YAAYnE,KAAKw4B,KAEvCx4B,KAAK0tC,MAGP,QAAO,GAMTF,EAAYjsC,UAAU0nB,MAAQ,WAM5B,QAAStS,KACPH,EAAGk3B,MAGH,IAAIjpC,GAAQ+R,EAAG/D,KAAK6W,MAAM0C,WAAWxV,EAAG/D,KAAK2W,SAAS4Y,OAAO9vB,OAAOzN,MAChEq9B,EAAW,EAAIr9B,EAAQ,EACvBq9B,GAAW,KAAIA,EAAW,IAC1BA,EAAW,MAAMA,EAAW,KAEhCtrB,EAAGgJ,SACHhJ,EAAG/D,KAAK8c,QAAQ1a,KAAK,mBAGrB2B,EAAGyrB,iBAAmB9O,WAAWxc,EAAQmrB,GAlB3C,GAAItrB,GAAKxW,IAqBT2W,MAMF62B,EAAYjsC,UAAUmsC,KAAO,eACGxqC,KAA1BlD,KAAKiiC,mBACP/O,aAAalzB,KAAKiiC,wBACXjiC,MAAKiiC,mBAUhBuL,EAAYjsC,UAAU+oC,eAAiB,SAAUve,GAC/C,GAAI1d,GAAIwH,EAAKrP,QAAQulB,EAAM,QAAQnlB,UAC/B05B,GAAM,GAAIx7B,OAAO8B,SACrB5G,MAAK4pB,OAASvb,EAAIiyB,EAClBtgC,KAAKwf,UAOPguB,EAAYjsC,UAAUipC,eAAiB,WACrC,MAAO,IAAI1lC,OAAK,GAAIA,OAAO8B,UAAY5G,KAAK4pB,SAG9ChqB,EAAOD,QAAU6tC,GAIX,SAAU5tC,EAAQD,EAASO,GAoBjC,QAASytC,GAAMC,EAAS14B,EAAMuZ,GAqB5B,GApBAzuB,KAAK4tC,QAAUA,EACf5tC,KAAK6tC,aACL7tC,KAAK8tC,iBACL9tC,KAAK+tC,kBAAmB,EACxB/tC,KAAKguC,cAAe,EACpBhuC,KAAKiuC,cAAgB,EACrBjuC,KAAKkuC,gBAAkBh5B,GAAQA,EAAKi5B,cACpCnuC,KAAKyuB,QAAUA,EACfzuB,KAAKgvB,UAAY,KACjBhvB,KAAK2uB,YAAa,EAEdzZ,GAAQA,EAAKk5B,eACfpuC,KAAKouC,aAAel5B,EAAKk5B,aACF,GAAnBl5B,EAAKm5B,WACPruC,KAAKquC,YAAa,EAElBruC,KAAKquC,YAAa,GAIlBn5B,GAAQA,EAAK44B,cACf,GAAkC,iBAAvB54B,GAAK44B,cACd9tC,KAAKguC,aAAe94B,EAAK44B,cACzB9tC,KAAK+tC,iBAAmB74B,EAAK44B,kBAI7B,KAAK,GAAItrC,KAAO0S,GAAK44B,cACnB9tC,KAAK8tC,cAActrC,GAAO0S,EAAK44B,cAActrC,GAC7CxC,KAAKguC,aAAehuC,KAAKguC,cAAgB94B,EAAK44B,cAActrC,EAKlExC,MAAKsuC,cAAgB,KAErBtuC,KAAK+tB,OACL/tB,KAAKoC,OACH6Z,OACE/J,MAAO,EACPC,OAAQ,IAGZnS,KAAKkI,UAAY,KAEjBlI,KAAK0W,SACL1W,KAAKuuC,gBACLvuC,KAAKwuC,gBACLxuC,KAAKkQ,cACHu+B,WACAC,UAEF1uC,KAAK2uC,kBAAmB,CACxB,IAAIn4B,GAAKxW,IACTA,MAAKyuB,QAAQhc,KAAK8c,QAAQ7a,GAAG,mBAAoB,WAC/C8B,EAAGm4B,kBAAmB,IAGxB3uC,KAAKqD,UAELrD,KAAK4Z,QAAQ1E,GA5Ef,GAAI3R,GAAQrD,EAAoB,GAE5BsD,EAEJ,SAAgCvB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFrDsB,GAIhCsS,EAAO3V,EAAoB,GAC3BmuB,EAAQnuB,EAAoB,IA4EhCytC,GAAMpsC,UAAU8B,QAAU,WACxB,GAAI4Y,GAAQjK,SAASC,cAAc,MAC/BjS,MAAKyuB,QAAQpf,QAAQu/B,cAAcj3B,MACrCsE,EAAM/T,UAAY,sBAElB+T,EAAM/T,UAAY,YAEpBlI,KAAK+tB,IAAI9R,MAAQA,CAEjB,IAAIlK,GAAQC,SAASC,cAAc,MACnCF,GAAM7J,UAAY,YAClB+T,EAAMzJ,YAAYT,GAClB/R,KAAK+tB,IAAIhc,MAAQA,CAEjB,IAAIiiB,GAAahiB,SAASC,cAAc,MACxC+hB,GAAW9rB,UAAY,YACvB8rB,EAAW,kBAAoBh0B,KAC/BA,KAAK+tB,IAAIiG,WAAaA,EAEtBh0B,KAAK+tB,IAAIhhB,WAAaiF,SAASC,cAAc,OAC7CjS,KAAK+tB,IAAIhhB,WAAW7E,UAAY,YAEhClI,KAAK+tB,IAAIwG,KAAOviB,SAASC,cAAc,OACvCjS,KAAK+tB,IAAIwG,KAAKrsB,UAAY,YAK1BlI,KAAK+tB,IAAI8gB,OAAS78B,SAASC,cAAc,OACzCjS,KAAK+tB,IAAI8gB,OAAOphC,MAAM6E,WAAa,SACnCtS,KAAK+tB,IAAI8gB,OAAOphC,MAAM4E,SAAW,WACjCrS,KAAK+tB,IAAI8gB,OAAOhe,UAAY,GAC5B7wB,KAAK+tB,IAAIhhB,WAAWyF,YAAYxS,KAAK+tB,IAAI8gB,SAO3ClB,EAAMpsC,UAAUqY,QAAU,SAAU1E,GAElC,GAAIkH,GACAuU,CASJ,IAPI3wB,KAAKyuB,QAAQpf,SAAWrP,KAAKyuB,QAAQpf,QAAQuM,eAC/C+U,EAAmB3wB,KAAKyuB,QAAQpf,QAAQuM,cAAc2M,KAAKvoB,MAC3Doc,EAAUuU,EAAiBzb,EAAMlV,KAAK+tB,IAAIhc,QAE1CqK,EAAUlH,GAAQA,EAAKkH,QAGrBA,YAAmBtN,SAAS,CAE9B,IADA9O,KAAK+tB,IAAIhc,MAAMS,YAAY4J,GACpBpc,KAAK+tB,IAAIhc,MAAM7N,YACpBlE,KAAK+tB,IAAIhc,MAAM5N,YAAYnE,KAAK+tB,IAAIhc,MAAM7N,WAE5ClE,MAAK+tB,IAAIhc,MAAMS,YAAY4J,OAClBA,aAAmBtb,QAC5B6vB,EAAiBzb,EAAMlV,KAAK+tB,IAAIhc,OAEhC/R,KAAK+tB,IAAIhc,MAAM8e,cADM3tB,KAAZkZ,GAAqC,OAAZA,EACPA,EAEApc,KAAK4tC,SAAW,EAW7C,IAPA5tC,KAAK+tB,IAAI9R,MAAMgU,MAAQ/a,GAAQA,EAAK+a,OAAS,GACxCjwB,KAAK+tB,IAAIhc,MAAM7N,WAGlB2R,EAAKrN,gBAAgBxI,KAAK+tB,IAAIhc,MAAO,cAFrC8D,EAAK9N,aAAa/H,KAAK+tB,IAAIhc,MAAO,cAKhCmD,GAAQA,EAAKk5B,aAAc,CACxBpuC,KAAKouC,cAAgBpuC,KAAKouC,cAAgBl5B,EAAKk5B,eAClDpuC,KAAKouC,aAAel5B,EAAKk5B,kBAGHlrC,KAApBgS,EAAKm5B,gBAAgDnrC,KAApBlD,KAAKquC,aACjB,GAAnBn5B,EAAKm5B,WACPruC,KAAKquC,YAAa,EAElBruC,KAAKquC,YAAa,GAItBx4B,EAAK9N,aAAa/H,KAAK+tB,IAAI9R,MAAO,oBAClC,IAAI6yB,GAAwB9uC,KAAKyuB,QAAQpf,QAAQ2gB,IAAM,gBAAkB,WACrEhwB,MAAKquC,YACPx4B,EAAKrN,gBAAgBxI,KAAK+tB,IAAI9R,MAAO6yB,GACrCj5B,EAAK9N,aAAa/H,KAAK+tB,IAAI9R,MAAO,cAElCpG,EAAKrN,gBAAgBxI,KAAK+tB,IAAI9R,MAAO,YACrCpG,EAAK9N,aAAa/H,KAAK+tB,IAAI9R,MAAO6yB,QAE3B9uC,MAAKouC,eACdpuC,KAAKouC,aAAe,KACpBU,EAAwB9uC,KAAKyuB,QAAQpf,QAAQ2gB,IAAM,gBAAkB,YACrEna,EAAKrN,gBAAgBxI,KAAK+tB,IAAI9R,MAAO6yB,GACrCj5B,EAAKrN,gBAAgBxI,KAAK+tB,IAAI9R,MAAO,YACrCpG,EAAKrN,gBAAgBxI,KAAK+tB,IAAI9R,MAAO,qBAGnC/G,IAAQA,EAAKo5B,gBACfz4B,EAAK9N,aAAa/H,KAAK+tB,IAAI9R,MAAO,oBAC9Bjc,KAAKyuB,QAAQpf,SAAWrP,KAAKyuB,QAAQpf,QAAQ2gB,IAC/ChwB,KAAK+tB,IAAIhc,MAAMtE,MAAMshC,aAAe,OAEpC/uC,KAAK+tB,IAAIhc,MAAMtE,MAAMuhC,YAAc,OAKvC,IAAI9mC,GAAYgN,GAAQA,EAAKhN,WAAa,IACtCA,IAAalI,KAAKkI,YAChBlI,KAAKkI,YACP2N,EAAKrN,gBAAgBxI,KAAK+tB,IAAI9R,MAAOjc,KAAKkI,WAC1C2N,EAAKrN,gBAAgBxI,KAAK+tB,IAAIiG,WAAYh0B,KAAKkI,WAC/C2N,EAAKrN,gBAAgBxI,KAAK+tB,IAAIhhB,WAAY/M,KAAKkI,WAC/C2N,EAAKrN,gBAAgBxI,KAAK+tB,IAAIwG,KAAMv0B,KAAKkI,YAE3C2N,EAAK9N,aAAa/H,KAAK+tB,IAAI9R,MAAO/T,GAClC2N,EAAK9N,aAAa/H,KAAK+tB,IAAIiG,WAAY9rB,GACvC2N,EAAK9N,aAAa/H,KAAK+tB,IAAIhhB,WAAY7E,GACvC2N,EAAK9N,aAAa/H,KAAK+tB,IAAIwG,KAAMrsB,GACjClI,KAAKkI,UAAYA,GAIflI,KAAKyN,QACPoI,EAAK9H,cAAc/N,KAAK+tB,IAAI9R,MAAOjc,KAAKyN,OACxCzN,KAAKyN,MAAQ,MAEXyH,GAAQA,EAAKzH,QACfoI,EAAKjI,WAAW5N,KAAK+tB,IAAI9R,MAAO/G,EAAKzH,OACrCzN,KAAKyN,MAAQyH,EAAKzH,QAQtBkgC,EAAMpsC,UAAU0tC,cAAgB,WAC9B,MAAOjvC,MAAKoC,MAAM6Z,MAAM/J,OAG1By7B,EAAMpsC,UAAU2tC,uBAAyB,WACvC,GAAIC,GAAenvC,KAAK+tB,IAAI8gB,OAAO7W,YACnC,IAAImX,GAAgBnvC,KAAKovC,iBAAkB,CACzCpvC,KAAKovC,iBAAmBD,CACxB,IAAIE,MACAC,EAAoB,CAExBz5B,GAAKnN,QAAQ1I,KAAK0W,MAAO,SAAUhG,EAAMlO,GAEvC,GADAkO,EAAKwd,OAAQ,EACTxd,EAAKsd,UAAW,CAElBqhB,EAAY7sC,GAAOkO,EAAK8O,QADN,GAElB8vB,EAAoBD,EAAY7sC,GAAKH,SAKzC,IADiBitC,EAAoB,EAGnC,IAAK,GAAIjvC,GAAI,EAAGA,EAAIivC,EAAmBjvC,IACrCwV,EAAKnN,QAAQ2mC,EAAa,SAAUE,GAClCA,EAAIlvC,MAIV,QAAO,IAIXstC,EAAMpsC,UAAUiuC,+BAAiC,WAC/C,GAAIC,GAAYzvC,KAAK+tB,IAAIiG,WAAWyb,UAChCC,EAAa1vC,KAAK+tB,IAAIiG,WAAW0b,WACjC/8B,EAAc3S,KAAK+tB,IAAIiG,WAAWrhB,WACtC3S,MAAK8H,IAAM2nC,EACXzvC,KAAK4H,MAAQ8nC,EACb1vC,KAAKkS,MAAQS,GAGfg7B,EAAMpsC,UAAUouC,aAAe,SAAUC,EAAcC,EAAe3tB,EAAQoH,GAI5E,GAHcsmB,GAAgB5vC,KAAK2uB,YAAc3uB,KAAKgvB,YAAc6gB,EAGvD,CACX,GAAIC,MACAlhB,EAAW,IAEf,IAA0C,kBAA/B5uB,MAAKyuB,QAAQpf,QAAQsI,MAAsB,CAKpD,GAAInB,GAAKxW,KAGLqvC,KACAC,EAAoB,CAYxB,IAVAz5B,EAAKnN,QAAQ1I,KAAK0W,MAAO,SAAUhG,EAAMlO,GAClCkO,EAAKsd,YAERqhB,EAAY7sC,GAAOkO,EAAK8O,QADN,GAElB8vB,EAAoBD,EAAY7sC,GAAKH,OACrCmU,EAAG+3B,aAAanoC,KAAKsK,MAIR4+B,EAAoB,EAGnC,IAAK,GAAIjvC,GAAI,EAAGA,EAAIivC,EAAmBjvC,IACrCwV,EAAKnN,QAAQ2mC,EAAa,SAAUE,GAClCA,EAAIlvC,MASV,IAJAwV,EAAKnN,QAAQ1I,KAAK0W,MAAO,SAAUhG,GACjCA,EAAKue,aAzBS,KA4BZjvB,KAAKguC,cAAgBhuC,KAAKyuB,QAAQpf,QAAQ0gC,eAAgB,CAE5D,IAAKnhB,IAAY5uB,MAAK6tC,UACpBiC,EAAiBlhB,GAAY5uB,KAAK6tC,UAAUjf,GAAUlY,MAAMzK,QAAQmM,KAAK,SAAUvV,EAAGC,GACpF,MAAO0T,GAAGiY,QAAQpf,QAAQsI,MAAM9U,EAAEqS,KAAMpS,EAAEoS,OAI9CmZ,GAAM2hB,6BAA6BF,EAAkB5tB,EAAQliB,KAAK6tC,eAC7D,CAEL,GAAIoC,GAAqBjwC,KAAKkQ,aAAau+B,QAAQxiC,QAAQmM,KAAK,SAAUvV,EAAGC,GAC3E,MAAO0T,GAAGiY,QAAQpf,QAAQsI,MAAM9U,EAAEqS,KAAMpS,EAAEoS,OAE5CmZ,GAAMA,MAAM4hB,EAAoB/tB,GAAQ,GAG1CliB,KAAKuuC,aAAevuC,KAAKkwC,oBAAoBlwC,KAAKkQ,aAAclQ,KAAKuuC,aAAcjlB,OAKnF,IAFAtpB,KAAKuuC,aAAevuC,KAAKkwC,oBAAoBlwC,KAAKkQ,aAAclQ,KAAKuuC,aAAcjlB,GAE/EtpB,KAAKyuB,QAAQpf,QAAQgf,MACvB,GAAIruB,KAAKguC,cAAgBhuC,KAAKyuB,QAAQpf,QAAQ0gC,eAAgB,CAC5D,IAAKnhB,IAAY5uB,MAAK6tC,UACpBiC,EAAiBlhB,GAAY5uB,KAAK6tC,UAAUjf,GAAUlY,KAGxD2X,GAAM2hB,6BAA6BF,EAAkB5tB,EAAQliB,KAAK6tC,eAGlExf,GAAMA,MAAMruB,KAAKuuC,aAAcrsB,GAAQ,OAIzCmM,GAAM8hB,QAAQnwC,KAAKuuC,aAAcrsB,EAAQliB,KAAK6tC,UAAW7tC,KAAKyuB,QAAQpf,QAAQ0gC,eAIlF/vC,MAAK2uB,YAAa,IAItBgf,EAAMpsC,UAAU6uC,WAAa,SAAU1wB,EAASvN,GAC9CuN,EAAU7J,EAAK/M,eAAe9I,KAAM,SAAUmS,IAAWuN,CAEzD,IAAI2wB,GAAarwC,KAAK+tB,IAAIhc,MAAMc,YAC5By9B,EAActwC,KAAK+tB,IAAIhc,MAAMimB,YAGjC,OAFAtY,GAAU7J,EAAK/M,eAAe9I,KAAKoC,MAAM6Z,MAAO,QAASo0B,IAAe3wB,EACxEA,EAAU7J,EAAK/M,eAAe9I,KAAKoC,MAAM6Z,MAAO,SAAUq0B,IAAgB5wB,GAI5EiuB,EAAMpsC,UAAUgvC,kBAAoB,SAAUp+B,GAC5CnS,KAAK+tB,IAAIhhB,WAAWU,MAAM0E,OAASA,EAAS,KAC5CnS,KAAK+tB,IAAIiG,WAAWvmB,MAAM0E,OAASA,EAAS,KAC5CnS,KAAK+tB,IAAI9R,MAAMxO,MAAM0E,OAASA,EAAS,MAIzCw7B,EAAMpsC,UAAUivC,6BAA+B,SAAUtuB,GACvD,IAAK,GAAI7hB,GAAI,EAAGowC,EAAKzwC,KAAKuuC,aAAalsC,OAAQhC,EAAIowC,EAAIpwC,IAAK,CAC1D,GAAIqQ,GAAO1Q,KAAKuuC,aAAaluC,EAC7BqQ,GAAKwe,YAAYhN,GACZliB,KAAKgvB,WAA6B,kBAAhBhvB,KAAK4tC,SACtBl9B,EAAKsd,WAAWtd,EAAKqP,SAa/B4tB,EAAMpsC,UAAUie,OAAS,SAAU8J,EAAOpH,EAAQ0tB,EAAcc,GAC9D,GAEIv+B,GAFAuN,GAAU,EACVmwB,EAAgB7vC,KAAKgvB,UAGrBjZ,GAGJ,WACE65B,EAAe5vC,KAAKkvC,uBAAuB3mB,KAAKvoB,OAChDuoB,KAAKvoB,MAGPA,KAAK2wC,uBAAuBpoB,KAAKvoB,KAAMkiB,GAGvCliB,KAAKwvC,+BAA+BjnB,KAAKvoB,MAGzC,WACEA,KAAKgvB,UAAYhvB,KAAK4wC,gBAAgBroB,KAAKvoB,MAAMspB,EAAOpH,IACxDqG,KAAKvoB,MAGP,WACEA,KAAK2vC,aAAapnB,KAAKvoB,MAAM4vC,EAAcC,EAAe3tB,EAAQoH,IAClEf,KAAKvoB,MAGPA,KAAK6wC,sBAAsBtoB,KAAKvoB,MAGhC,WACEmS,EAASnS,KAAK8wC,iBAAiBvoB,KAAKvoB,MAAMkiB,IAC1CqG,KAAKvoB,MAGPA,KAAKwvC,+BAA+BjnB,KAAKvoB,MAGzC,WACE0f,EAAU1f,KAAKowC,WAAW7nB,KAAKvoB,MAAM0f,EAASvN,IAC9CoW,KAAKvoB,MAGP,WACEA,KAAKuwC,kBAAkBhoB,KAAKvoB,MAAMmS,IAClCoW,KAAKvoB,MAGP,WACEA,KAAKwwC,6BAA6BjoB,KAAKvoB,MAAMkiB,IAC7CqG,KAAKvoB,MAAO,WAIZ,OAHKA,KAAKgvB,WAAahvB,KAAKmS,SAC1BuN,GAAU,GAELA,GAGT,IAAIgxB,EACF,MAAO36B,EAEP,IAAI1K,EAIJ,OAHA0K,GAAMrN,QAAQ,SAAUM,GACtBqC,EAASrC,MAEJqC,GAUXsiC,EAAMpsC,UAAUovC,uBAAyB,SAAUzuB,GACjD,IAAI,EAAI1e,EAAgB,SAAGxD,KAAK6tC,WAAWxrC,OAAS,EAAG,CACrD,GAAImU,GAAKxW,IAETA,MAAK+wC,iBAELl7B,EAAKnN,QAAQ1I,KAAKuuC,aAAc,SAAU79B,OACbxN,KAAvBwN,EAAKwE,KAAK0Z,WACZpY,EAAGq3B,UAAUn9B,EAAKwE,KAAK0Z,UAAUzc,OAASzN,KAAKJ,IAAIkS,EAAGq3B,UAAUn9B,EAAKwE,KAAK0Z,UAAUzc,OAAQzB,EAAKyB,OAAS+P,EAAOxR,KAAKsgC,UACtHx6B,EAAGq3B,UAAUn9B,EAAKwE,KAAK0Z,UAAUmO,SAAU,OAcnD4Q,EAAMpsC,UAAUqvC,gBAAkB,SAAUtnB,EAAOpH,GACjD,MAAOliB,MAAK8H,KAAOwhB,EAAM7W,KAAK2W,SAASC,gBAAgBlX,OAASmX,EAAM7W,KAAK2W,SAASqH,UAAYvO,EAAOqS,MAAQv0B,KAAK8H,IAAM9H,KAAKmS,OAAS+P,EAAOqS,OAASjL,EAAM7W,KAAK2W,SAASqH,WAS9Kkd,EAAMpsC,UAAUuvC,iBAAmB,SAAU5uB,GAE3C,GAAI/P,GACAq8B,EAAexuC,KAAKuuC,YACxB,IAAIC,EAAansC,OAAS,EAAG,CAC3B,GAAIgC,GAAMmqC,EAAa,GAAG1mC,IACtBxD,EAAMkqC,EAAa,GAAG1mC,IAAM0mC,EAAa,GAAGr8B,MAKhD,IAJA0D,EAAKnN,QAAQ8lC,EAAc,SAAU99B,GACnCrM,EAAMK,KAAKL,IAAIA,EAAKqM,EAAK5I,KACzBxD,EAAMI,KAAKJ,IAAIA,EAAKoM,EAAK5I,IAAM4I,EAAKyB,UAElC9N,EAAM6d,EAAOqS,KAAM,CAErB,GAAI3K,GAASvlB,EAAM6d,EAAOqS,IAC1BjwB,IAAOslB,EACP/T,EAAKnN,QAAQ8lC,EAAc,SAAU99B,GACnCA,EAAK5I,KAAO8hB,IAGhBzX,EAAS7N,EAAM4d,EAAOxR,KAAKsgC,SAAW,MAEtC7+B,GAAS,CAIX,OAFAA,GAASzN,KAAKJ,IAAI6N,EAAQnS,KAAKoC,MAAM6Z,MAAM9J,SAQ7Cw7B,EAAMpsC,UAAUwtB,KAAO,WAChB/uB,KAAK+tB,IAAI9R,MAAM7R,YAClBpK,KAAKyuB,QAAQV,IAAIkjB,SAASz+B,YAAYxS,KAAK+tB,IAAI9R,OAG5Cjc,KAAK+tB,IAAIiG,WAAW5pB,YACvBpK,KAAKyuB,QAAQV,IAAIiG,WAAWxhB,YAAYxS,KAAK+tB,IAAIiG,YAG9Ch0B,KAAK+tB,IAAIhhB,WAAW3C,YACvBpK,KAAKyuB,QAAQV,IAAIhhB,WAAWyF,YAAYxS,KAAK+tB,IAAIhhB,YAG9C/M,KAAK+tB,IAAIwG,KAAKnqB,YACjBpK,KAAKyuB,QAAQV,IAAIwG,KAAK/hB,YAAYxS,KAAK+tB,IAAIwG,OAO/CoZ,EAAMpsC,UAAUwe,KAAO,WACrB,GAAI9D,GAAQjc,KAAK+tB,IAAI9R,KACjBA,GAAM7R,YACR6R,EAAM7R,WAAWjG,YAAY8X,EAG/B,IAAI+X,GAAah0B,KAAK+tB,IAAIiG,UACtBA,GAAW5pB,YACb4pB,EAAW5pB,WAAWjG,YAAY6vB,EAGpC,IAAIjnB,GAAa/M,KAAK+tB,IAAIhhB,UACtBA,GAAW3C,YACb2C,EAAW3C,WAAWjG,YAAY4I,EAGpC,IAAIwnB,GAAOv0B,KAAK+tB,IAAIwG,IAChBA,GAAKnqB,YACPmqB,EAAKnqB,WAAWjG,YAAYowB,IAQhCoZ,EAAMpsC,UAAUkU,IAAM,SAAU/E,GAU9B,GATA1Q,KAAK0W,MAAMhG,EAAK4F,IAAM5F,EACtBA,EAAKoe,UAAU9uB,MACfA,KAAK2uB,YAAa,MAESzrB,KAAvBwN,EAAKwE,KAAK0Z,WACZ5uB,KAAKkxC,eAAexgC,GACpB1Q,KAAKmxC,mBAGiC,GAApCnxC,KAAKuuC,aAAapoC,QAAQuK,GAAa,CACzC,GAAI4Y,GAAQtpB,KAAKyuB,QAAQhc,KAAK6W,KAC9BtpB,MAAKoxC,gBAAgB1gC,EAAM1Q,KAAKuuC,aAAcjlB,KAIlDqkB,EAAMpsC,UAAU2vC,eAAiB,SAAUxgC,EAAM2gC,GAC/CA,EAAaA,GAAc3gC,EAAKwE,KAAK0Z,aACnB1rB,IAAdmuC,OAA0DnuC,KAA/BlD,KAAK6tC,UAAUwD,KAC5CrxC,KAAK6tC,UAAUwD,IACbl/B,OAAQ,EACRrK,IAAK,EACLmhB,MAAOvY,EAAKwE,KAAK+T,MACjBC,IAAKxY,EAAKwE,KAAKgU,KAAOxY,EAAKwE,KAAK+T,MAChC8T,SAAS,EACT5B,MAAOn7B,KAAKiuC,cACZv3B,SACA2X,MAAOruB,KAAK+tC,kBAAoB/tC,KAAK8tC,cAAcuD,KAAe,GAEpErxC,KAAKiuC,iBAGH,GAAInpC,MAAK4L,EAAKwE,KAAK+T,OAAS,GAAInkB,MAAK9E,KAAK6tC,UAAUwD,GAAYpoB,SAClEjpB,KAAK6tC,UAAUwD,GAAYpoB,MAAQvY,EAAKwE,KAAK+T,MAG/C,IAAIqoB,GAAU5gC,EAAKwE,KAAKgU,KAAOxY,EAAKwE,KAAK+T,KACrC,IAAInkB,MAAKwsC,GAAW,GAAIxsC,MAAK9E,KAAK6tC,UAAUwD,GAAYnoB,OAC1DlpB,KAAK6tC,UAAUwD,GAAYnoB,IAAMooB,GAGnCtxC,KAAK6tC,UAAUwD,GAAY36B,MAAMtQ,KAAKsK,IAGxCi9B,EAAMpsC,UAAUsvC,sBAAwB,WACtC,GAAIr6B,GAAKxW,IACT,IAAIwW,EAAGq3B,UACL,IAAK,GAAIjf,KAAYpY,GAAGq3B,UAAW,CACjC,GAAI0D,GAAa/6B,EAAGq3B,UAAUjf,GAAUlY,MAAM,GAAGxB,KAAKgU,KAAO1S,EAAGq3B,UAAUjf,GAAUlY,MAAM,GAAGxB,KAAK+T,MAC9Fga,EAAWzsB,EAAGq3B,UAAUjf,GAAUlY,MAAM,GAAGxB,KAAK+T,MAChDia,EAASqO,EAAa,CAE1B/6B,GAAGq3B,UAAUjf,GAAUlY,MAAMhO,QAAQ,SAAUgI,GACzC,GAAI5L,MAAK4L,EAAKwE,KAAK+T,OAAS,GAAInkB,MAAKm+B,KACvCA,EAAWvyB,EAAKwE,KAAK+T,MAGvB,IAAIqoB,GAAU5gC,EAAKwE,KAAKgU,KAAOxY,EAAKwE,KAAK+T,KACrC,IAAInkB,MAAKwsC,GAAW,GAAIxsC,MAAKo+B,KAC/BA,EAASoO,KAIb96B,EAAGq3B,UAAUjf,GAAU3F,MAAQga,EAC/BzsB,EAAGq3B,UAAUjf,GAAU1F,IAAM,GAAIpkB,MAAKo+B,EAAS,KAKrDyK,EAAMpsC,UAAU4vC,eAAiB,WAC/B,OAA6BjuC,KAAzBlD,KAAKkuC,gBAA+B,CACtC,GACItf,GADA4iB,IAEJ,IAAmC,gBAAxBxxC,MAAKkuC,gBAA6B,CAC3C,IAAKtf,IAAY5uB,MAAK6tC,UACpB2D,EAAUprC,MAAOwoB,SAAUA,EAAU6iB,UAAWzxC,KAAK6tC,UAAUjf,GAAUlY,MAAM,GAAGxB,KAAKlV,KAAKkuC,kBAE9FsD,GAAUp5B,KAAK,SAAUvV,EAAGC,GAC1B,MAAOD,GAAE4uC,UAAY3uC,EAAE2uC,gBAEpB,IAAmC,kBAAxBzxC,MAAKkuC,gBAA+B,CACpD,IAAKtf,IAAY5uB,MAAK6tC,UACpB2D,EAAUprC,KAAKpG,KAAK6tC,UAAUjf,GAAUlY,MAAM,GAAGxB,KAEnDs8B,GAAUp5B,KAAKpY,KAAKkuC,iBAGtB,GAAIsD,EAAUnvC,OAAS,EACrB,IAAK,GAAIhC,GAAI,EAAGA,EAAImxC,EAAUnvC,OAAQhC,IACpCL,KAAK6tC,UAAU2D,EAAUnxC,GAAGuuB,UAAUuM,MAAQ96B,IAMtDstC,EAAMpsC,UAAUwvC,eAAiB,WAC/B,IAAK,GAAIniB,KAAY5uB,MAAK6tC,UACpB7tC,KAAK6tC,UAAUrsC,eAAeotB,KAChC5uB,KAAK6tC,UAAUjf,GAAUmO,SAAU,EACnC/8B,KAAK6tC,UAAUjf,GAAUzc,OAAS,IASxCw7B,EAAMpsC,UAAUgX,OAAS,SAAU7H,SAC1B1Q,MAAK0W,MAAMhG,EAAK4F,IACvB5F,EAAKoe,UAAU,MACf9uB,KAAK2uB,YAAa,CAGlB,IAAIwM,GAAQn7B,KAAKuuC,aAAapoC,QAAQuK,IACxB,GAAVyqB,GAAan7B,KAAKuuC,aAAa3a,OAAOuH,EAAO,OAEtBj4B,KAAvBwN,EAAKwE,KAAK0Z,WACZ5uB,KAAK0xC,oBAAoBhhC,GACzB1Q,KAAKmxC,mBAITxD,EAAMpsC,UAAUmwC,oBAAsB,SAAUhhC,EAAM2gC,GAEpD,OAAkBnuC,KADlBmuC,EAAaA,GAAc3gC,EAAKwE,KAAK0Z,UACR,CAC3B,GAAIA,GAAW5uB,KAAK6tC,UAAUwD,EAC9B,IAAIziB,EAAU,CACZ,GAAI+iB,GAAY/iB,EAASlY,MAAMvQ,QAAQuK,EAEnCihC,IAAa,IACf/iB,EAASlY,MAAMkd,OAAO+d,EAAW,GAC5B/iB,EAASlY,MAAMrU,OAGlBrC,KAAK6wC,8BAFE7wC,MAAK6tC,UAAUwD,OAahC1D,EAAMpsC,UAAU2uB,kBAAoB,SAAUxf,GAC5C1Q,KAAKyuB,QAAQmjB,WAAWlhC,EAAK4F,KAM/Bq3B,EAAMpsC,UAAUoW,MAAQ,WAKtB,IAAK,GAJD9O,GAAQgN,EAAKjN,QAAQ5I,KAAK0W,OAC1Bm7B,KACAC,KAEKzxC,EAAI,EAAGA,EAAIwI,EAAMxG,OAAQhC,QACN6C,KAAtB2F,EAAMxI,GAAG6U,KAAKgU,KAChB4oB,EAAS1rC,KAAKyC,EAAMxI,IAEtBwxC,EAAWzrC,KAAKyC,EAAMxI,GAExBL,MAAKkQ,cACHu+B,QAASoD,EACTnD,MAAOoD,GAGTzjB,EAAM0jB,aAAa/xC,KAAKkQ,aAAau+B,SACrCpgB,EAAM2jB,WAAWhyC,KAAKkQ,aAAaw+B,QAWrCf,EAAMpsC,UAAU2uC,oBAAsB,SAAUhgC,EAAc+hC,EAAiB3oB,GAC7E,GAAIilB,MACA2D,KAEApQ,GAAYxY,EAAMJ,IAAMI,EAAML,OAAS,EACvCkpB,EAAa7oB,EAAML,MAAQ6Y,EAC3BsQ,EAAa9oB,EAAMJ,IAAM4Y,EAGzBuQ,EAAiB,SAAwB7tC,GAC3C,MAAIA,GAAQ2tC,GACF,EACC3tC,GAAS4tC,EACX,EAEA,EAOX,IAAIH,EAAgB5vC,OAAS,EAC3B,IAAK,GAAIhC,GAAI,EAAGA,EAAI4xC,EAAgB5vC,OAAQhC,IAC1CL,KAAKsyC,6BAA6BL,EAAgB5xC,GAAIkuC,EAAc2D,EAAoB5oB,EAK5F,IAAIipB,GAAoB18B,EAAK5F,mBAAmBC,EAAau+B,QAAS4D,EAAgB,OAAQ,QAS9F,IANAryC,KAAKwyC,cAAcD,EAAmBriC,EAAau+B,QAASF,EAAc2D,EAAoB,SAAUxhC,GACtG,MAAOA,GAAKwE,KAAK+T,MAAQkpB,GAAczhC,EAAKwE,KAAK+T,MAAQmpB,IAK9B,GAAzBpyC,KAAK2uC,iBAEP,IADA3uC,KAAK2uC,kBAAmB,EACnBtuC,EAAI,EAAGA,EAAI6P,EAAaw+B,MAAMrsC,OAAQhC,IACzCL,KAAKsyC,6BAA6BpiC,EAAaw+B,MAAMruC,GAAIkuC,EAAc2D,EAAoB5oB,OAExF,CAEL,GAAImpB,GAAkB58B,EAAK5F,mBAAmBC,EAAaw+B,MAAO2D,EAAgB,OAAQ,MAG1FryC,MAAKwyC,cAAcC,EAAiBviC,EAAaw+B,MAAOH,EAAc2D,EAAoB,SAAUxhC,GAClG,MAAOA,GAAKwE,KAAKgU,IAAMipB,GAAczhC,EAAKwE,KAAKgU,IAAMkpB,IAIzD,GAAI/C,MACAC,EAAoB,CAExB,KAAKjvC,EAAI,EAAGA,EAAIkuC,EAAalsC,OAAQhC,IAAK,CACxC,GAAIqQ,GAAO69B,EAAaluC,EACxB,KAAKqQ,EAAKsd,UAAW,CAEnBqhB,EAAYhvC,GAAKqQ,EAAK8O,QADJ,GAElB8vB,EAAoBD,EAAYhvC,GAAGgC,QAKvC,GADiBitC,EAAoB,EAGnC,IAAK,GAAIpgC,GAAI,EAAGA,EAAIogC,EAAmBpgC,IACrC2G,EAAKnN,QAAQ2mC,EAAa,SAAUE,GAClCA,EAAIrgC,MAKV,KAAK7O,EAAI,EAAGA,EAAIkuC,EAAalsC,OAAQhC,IACnCkuC,EAAaluC,GAAG4uB,aAElB,OAAOsf,IAGTZ,EAAMpsC,UAAUixC,cAAgB,SAAUE,EAAYh8B,EAAO63B,EAAc2D,EAAoBS,GAC7F,IAAmB,GAAfD,EAAkB,CACpB,GAAIryC,GAAGqQ,CACP,KAAKrQ,EAAIqyC,EAAYryC,GAAK,IACxBqQ,EAAOgG,EAAMrW,IACTsyC,EAAejiC,IAFQrQ,QAKW6C,KAAhCgvC,EAAmBxhC,EAAK4F,MAC1B47B,EAAmBxhC,EAAK4F,KAAM,EAC9Bi4B,EAAanoC,KAAKsK,GAKxB,KAAKrQ,EAAIqyC,EAAa,EAAGryC,EAAIqW,EAAMrU,SACjCqO,EAAOgG,EAAMrW,IACTsyC,EAAejiC,IAFsBrQ,QAKH6C,KAAhCgvC,EAAmBxhC,EAAK4F,MAC1B47B,EAAmBxhC,EAAK4F,KAAM,EAC9Bi4B,EAAanoC,KAAKsK,MAkB5Bi9B,EAAMpsC,UAAU6vC,gBAAkB,SAAU1gC,EAAM69B,EAAcjlB,GAC1D5Y,EAAKse,UAAU1F,IACZ5Y,EAAKsd,WAAWtd,EAAKqe,OAE1Bre,EAAKue,cACLsf,EAAanoC,KAAKsK,IAEdA,EAAKsd,WAAWtd,EAAKqP,QAgB7B4tB,EAAMpsC,UAAU+wC,6BAA+B,SAAU5hC,EAAM69B,EAAc2D,EAAoB5oB,GAC3F5Y,EAAKse,UAAU1F,OACmBpmB,KAAhCgvC,EAAmBxhC,EAAK4F,MAC1B47B,EAAmBxhC,EAAK4F,KAAM,EAC9Bi4B,EAAanoC,KAAKsK,IAGhBA,EAAKsd,WAAWtd,EAAKqP,QAI7B4tB,EAAMpsC,UAAUstB,eAAiB,SAAUne,EAAMkiC,EAAaC,GAC5D7yC,KAAK0xC,oBAAoBhhC,EAAMkiC,GAC/B5yC,KAAKkxC,eAAexgC,EAAMmiC,GAC1B7yC,KAAKmxC,kBAGPvxC,EAAOD,QAAUguC,GAIX,SAAU/tC,EAAQD,EAASO,GAoBjC,QAAS4yC,GAAgBlF,EAAS14B,EAAMuZ,GACtCkf,EAAMptC,KAAKP,KAAM4tC,EAAS14B,EAAMuZ,GAEhCzuB,KAAKkS,MAAQ,EACblS,KAAKmS,OAAS,EACdnS,KAAK8H,IAAM,EACX9H,KAAK0H,KAAO,EArBd,GAAIrE,GAAUnD,EAAoB,IAE9BoD,EAEJ,SAAgCrB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFnDoB,GAIlCsqC,EAAQztC,EAAoB,GAkBhC4yC,GAAgBvxC,WAAY,EAAI+B,EAAkB,SAAGqqC,EAAMpsC,WAS3DuxC,EAAgBvxC,UAAUie,OAAS,SAAU8J,EAAOpH,EAAQ0tB,GAI1D5vC,KAAKuuC,aAAevuC,KAAKkwC,oBAAoBlwC,KAAKkQ,aAAclQ,KAAKuuC,aAAcjlB,GAGnFtpB,KAAKkS,MAAQlS,KAAK+tB,IAAIhhB,WAAW4F,YAGjC3S,KAAK+tB,IAAIhhB,WAAWU,MAAM0E,OAAS,GAGnC,KAAK,GAAI9R,GAAI,EAAGowC,EAAKzwC,KAAKuuC,aAAalsC,OAAQhC,EAAIowC,EAAIpwC,IAAK,CAC/CL,KAAKuuC,aAAaluC,GACxB6uB,YAAYhN,GAGnB,OAhBc,GAsBhB4wB,EAAgBvxC,UAAUwtB,KAAO,WAC1B/uB,KAAK+tB,IAAIhhB,WAAW3C,YACvBpK,KAAKyuB,QAAQV,IAAIhhB,WAAWyF,YAAYxS,KAAK+tB,IAAIhhB,aAIrDnN,EAAOD,QAAUmzC,GAIX,SAAUlzC,EAAQD,EAASO,GAiBjC,QAAS6yC,GAAU79B,EAAM8W,EAAY3c,GASnC,GARArP,KAAKoC,OACHga,SACElK,MAAO,IAGXlS,KAAKuS,UAAW,EAChBvS,KAAKqP,QAAUA,EAEX6F,EAAM,CACR,OAAkBhS,IAAdgS,EAAK+T,MACP,KAAM,IAAIpjB,OAAM,oCAAsCqP,EAAKoB,GAE7D,QAAgBpT,IAAZgS,EAAKgU,IACP,KAAM,IAAIrjB,OAAM,kCAAoCqP,EAAKoB,IAI7DwX,EAAKvtB,KAAKP,KAAMkV,EAAM8W,EAAY3c,GA9BpC,GAAIye,GAAO5tB,EAAoB,GAiC/B6yC,GAAUxxC,UAAY,GAAIusB,GAAK,KAAM,KAAM,MAE3CilB,EAAUxxC,UAAUyxC,cAAgB,qBAQpCD,EAAUxxC,UAAUytB,UAAY,SAAU1F,GAExC,MAAOtpB,MAAKkV,KAAK+T,MAAQK,EAAMJ,KAAOlpB,KAAKkV,KAAKgU,IAAMI,EAAML,OAG9D8pB,EAAUxxC,UAAU0xC,kBAAoB,WACjCjzC,KAAK+tB,MAER/tB,KAAK+tB,OAGL/tB,KAAK+tB,IAAI2B,IAAM1d,SAASC,cAAc,OAItCjS,KAAK+tB,IAAImlB,MAAQlhC,SAASC,cAAc,OACxCjS,KAAK+tB,IAAImlB,MAAMhrC,UAAY,oBAC3BlI,KAAK+tB,IAAI2B,IAAIld,YAAYxS,KAAK+tB,IAAImlB,OAGlClzC,KAAK+tB,IAAIolB,aAAenhC,SAASC,cAAc,OAC/CjS,KAAK+tB,IAAIolB,aAAajrC,UAAY,yBAClClI,KAAK+tB,IAAI2B,IAAIld,YAAYxS,KAAK+tB,IAAIolB,cAGlCnzC,KAAK+tB,IAAI3R,QAAUpK,SAASC,cAAc,OAC1CjS,KAAK+tB,IAAI3R,QAAQlU,UAAY,mBAC7BlI,KAAK+tB,IAAImlB,MAAM1gC,YAAYxS,KAAK+tB,IAAI3R,SAGpCpc,KAAK+tB,IAAI2B,IAAI,iBAAmB1vB,KAEhCA,KAAKkuB,OAAQ,IAIjB6kB,EAAUxxC,UAAU6xC,kBAAoB,WACtC,IAAKpzC,KAAKsK,OACR,KAAM,IAAIzE,OAAM,yCAElB,KAAK7F,KAAK+tB,IAAI2B,IAAItlB,WAAY,CAC5B,GAAI4pB,GAAah0B,KAAKsK,OAAOyjB,IAAIiG,UACjC,KAAKA,EACH,KAAM,IAAInuB,OAAM,iEAElBmuB,GAAWxhB,YAAYxS,KAAK+tB,IAAI2B,KAElC1vB,KAAKguB,WAAY,GAGnB+kB,EAAUxxC,UAAU8xC,0BAA4B,WAK9C,GAAIrzC,KAAKkuB,MAAO,CACdluB,KAAK8wB,gBAAgB9wB,KAAK+tB,IAAI3R,SAC9Bpc,KAAKwxB,sBAAsBxxB,KAAK+tB,IAAI2B,KACpC1vB,KAAK6xB,aAAa7xB,KAAK+tB,IAAI2B,IAE3B,IAAIvB,GAAWnuB,KAAKmuB,SAASiB,YAAcpvB,KAAKmuB,SAAS4D,YAGrD7pB,GAAalI,KAAKkV,KAAKhN,UAAY,IAAMlI,KAAKkV,KAAKhN,UAAY,KAAOlI,KAAKyjB,SAAW,gBAAkB,KAAO0K,EAAW,gBAAkB,gBAChJnuB,MAAK+tB,IAAI2B,IAAIxnB,UAAYlI,KAAKgzC,cAAgB9qC,EAI9ClI,KAAK+tB,IAAI3R,QAAQ3O,MAAM6lC,SAAW,SAItCP,EAAUxxC,UAAUgyC,uBAAyB,WAG3C,MADAvzC,MAAKuS,SAAgE,WAArDxI,OAAOypC,iBAAiBxzC,KAAK+tB,IAAImlB,OAAO3gC,UAEtD6J,SACElK,MAAOlS,KAAK+tB,IAAI3R,QAAQzJ,aAE1B+c,KACEvd,OAAQnS,KAAK+tB,IAAI2B,IAAI4Z,gBAK3ByJ,EAAUxxC,UAAUkyC,0BAA4B,SAAUC,GACxD1zC,KAAKoC,MAAMga,QAAQlK,MAAQwhC,EAAMt3B,QAAQlK,MACzClS,KAAKmS,OAASuhC,EAAMhkB,IAAIvd,OACxBnS,KAAK+tB,IAAI3R,QAAQ3O,MAAM6lC,SAAW,GAClCtzC,KAAKkuB,OAAQ,GAGf6kB,EAAUxxC,UAAUoyC,uBAAyB,WAC3C3zC,KAAKmwB,gCAAgCnwB,KAAK+tB,IAAI2B,KAC9C1vB,KAAK4vB,qBAAqB5vB,KAAK+tB,IAAI2B,KACnC1vB,KAAKmvB,qBACLnvB,KAAK4zC,mBACL5zC,KAAK6zC,qBAQPd,EAAUxxC,UAAUie,OAAS,SAAUkxB,GACrC,GAAIgD,GACA39B,GAEJ/V,KAAKizC,kBAAkB1qB,KAAKvoB,MAG5BA,KAAKozC,kBAAkB7qB,KAAKvoB,MAG5BA,KAAKqzC,0BAA0B9qB,KAAKvoB,MAAO,WACrCA,KAAKkuB,QACPwlB,EAAQ1zC,KAAKuzC,uBAAuBhrB,KAAKvoB,UAE3CuoB,KAAKvoB,MAAO,WACRA,KAAKkuB,OACPluB,KAAKyzC,0BAA0BlrB,KAAKvoB,MAAM0zC,IAE5CnrB,KAAKvoB,MAGPA,KAAK2zC,uBAAuBprB,KAAKvoB,MAEjC,IAAI0wC,EACF,MAAO36B,EAEP,IAAI1K,EAIJ,OAHA0K,GAAMrN,QAAQ,SAAUM,GACtBqC,EAASrC,MAEJqC,GAQX0nC,EAAUxxC,UAAUwtB,KAAO,WACpB/uB,KAAKguB,WACRhuB,KAAKwf,UAOTuzB,EAAUxxC,UAAUwe,KAAO,WACzB,GAAI/f,KAAKguB,UAAW,CAClB,GAAI0B,GAAM1vB,KAAK+tB,IAAI2B,GAEfA,GAAItlB,YACNslB,EAAItlB,WAAWjG,YAAYurB,GAG7B1vB,KAAKguB,WAAY,IAarB+kB,EAAUxxC,UAAU0tB,YAAc,SAAU6kB,GAC1C,GAIIC,GACAC,EALAC,EAAcj0C,KAAKsK,OAAO4H,MAC1B+W,EAAQjpB,KAAKgsB,WAAWH,SAAS7rB,KAAKkV,KAAK+T,OAC3CC,EAAMlpB,KAAKgsB,WAAWH,SAAS7rB,KAAKkV,KAAKgU,KACzCgrB,MAA4BhxC,KAApBlD,KAAKkV,KAAKg/B,MAAsBl0C,KAAKqP,QAAQ6kC,MAAQl0C,KAAKkV,KAAKg/B,OAM/C,IAAxBl0C,KAAKkV,KAAK4+B,eAAsC5wC,KAAd4wC,IAAyC,IAAdA,IAC3D7qB,GAASgrB,IACXhrB,GAASgrB,GAEP/qB,EAAM,EAAI+qB,IACZ/qB,EAAM,EAAI+qB,GAKd,IAAIE,GAAWzvC,KAAKJ,IAAI4kB,EAAMD,EAAQ,GAAK,EA+B3C,QA7BIjpB,KAAKuS,UACHvS,KAAKqP,QAAQ2gB,IACfhwB,KAAK4H,MAAQqhB,EAEbjpB,KAAK0H,KAAOuhB,EAEdjpB,KAAKkS,MAAQiiC,EAAWn0C,KAAKoC,MAAMga,QAAQlK,MAC3C8hC,EAAeh0C,KAAKoC,MAAMga,QAAQlK,QAM9BlS,KAAKqP,QAAQ2gB,IACfhwB,KAAK4H,MAAQqhB,EAEbjpB,KAAK0H,KAAOuhB,EAEdjpB,KAAKkS,MAAQiiC,EACbH,EAAetvC,KAAKL,IAAI6kB,EAAMD,EAAOjpB,KAAKoC,MAAMga,QAAQlK,QAGtDlS,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAI2B,IAAIjiB,MAAM7F,MAAQ5H,KAAK4H,MAAQ,KAExC5H,KAAK+tB,IAAI2B,IAAIjiB,MAAM/F,KAAO1H,KAAK0H,KAAO,KAExC1H,KAAK+tB,IAAI2B,IAAIjiB,MAAMyE,MAAQiiC,EAAW,KAE9BD,GACN,IAAK,OACCl0C,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAI3R,QAAQ3O,MAAM7F,MAAQ,IAE/B5H,KAAK+tB,IAAI3R,QAAQ3O,MAAM/F,KAAO,GAEhC,MAEF,KAAK,QACC1H,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAI3R,QAAQ3O,MAAM7F,MAAQlD,KAAKJ,IAAI6vC,EAAWH,EAAc,GAAK,KAEtEh0C,KAAK+tB,IAAI3R,QAAQ3O,MAAM/F,KAAOhD,KAAKJ,IAAI6vC,EAAWH,EAAc,GAAK,IAEvE,MAEF,KAAK,SACCh0C,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAI3R,QAAQ3O,MAAM7F,MAAQlD,KAAKJ,KAAK6vC,EAAWH,GAAgB,EAAG,GAAK,KAE5Eh0C,KAAK+tB,IAAI3R,QAAQ3O,MAAM/F,KAAOhD,KAAKJ,KAAK6vC,EAAWH,GAAgB,EAAG,GAAK,IAG7E,MAEF,SAKMD,EAFA/zC,KAAKuS,SACH2W,EAAM,EACexkB,KAAKJ,KAAK2kB,EAAO,IAEhB+qB,EAGtB/qB,EAAQ,GACcA,EAED,EAGvBjpB,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAI3R,QAAQ3O,MAAM7F,MAAQmsC,EAAuB,MAEtD/zC,KAAK+tB,IAAI3R,QAAQ3O,MAAM/F,KAAOqsC,EAAuB,KACrD/zC,KAAK+tB,IAAI3R,QAAQ3O,MAAMyE,MAAQ,eAAiB6hC,EAAuB,SAS/EhB,EAAUxxC,UAAU2tB,YAAc,WAChC,GAAIwB,GAAc1wB,KAAKqP,QAAQqhB,YAAYhgB,KACvCgf,EAAM1vB,KAAK+tB,IAAI2B,GAGjBA,GAAIjiB,MAAM3F,IADO,OAAf4oB,EACc1wB,KAAK8H,IAAM,KAEX9H,KAAKsK,OAAO6H,OAASnS,KAAK8H,IAAM9H,KAAKmS,OAAS,MAQlE4gC,EAAUxxC,UAAUqyC,iBAAmB,WACrC,IAAK5zC,KAAKyjB,UAAYzjB,KAAKqP,QAAQ+kC,qBAAqB9qB,QAAUtpB,KAAKqP,QAAQ8e,SAASiB,aAAepvB,KAAK+tB,IAAI4B,SAAU,CAExH,GAAIA,GAAW3d,SAASC,cAAc,MACtC0d,GAASznB,UAAY,gBACrBynB,EAAS0kB,aAAer0C,KAExBA,KAAK+tB,IAAI2B,IAAIld,YAAYmd,GACzB3vB,KAAK+tB,IAAI4B,SAAWA,MACV3vB,MAAKyjB,UAAazjB,KAAKqP,QAAQ+kC,qBAAqB9qB,QAAStpB,KAAK+tB,IAAI4B,WAE5E3vB,KAAK+tB,IAAI4B,SAASvlB,YACpBpK,KAAK+tB,IAAI4B,SAASvlB,WAAWjG,YAAYnE,KAAK+tB,IAAI4B,UAEpD3vB,KAAK+tB,IAAI4B,SAAW,OAQxBojB,EAAUxxC,UAAUsyC,kBAAoB,WACtC,IAAK7zC,KAAKyjB,UAAYzjB,KAAKqP,QAAQ+kC,qBAAqB9qB,QAAUtpB,KAAKqP,QAAQ8e,SAASiB,aAAepvB,KAAK+tB,IAAIumB,UAAW,CAEzH,GAAIA,GAAYtiC,SAASC,cAAc,MACvCqiC,GAAUpsC,UAAY,iBACtBosC,EAAUC,cAAgBv0C,KAE1BA,KAAK+tB,IAAI2B,IAAIld,YAAY8hC,GACzBt0C,KAAK+tB,IAAIumB,UAAYA,MACXt0C,MAAKyjB,UAAazjB,KAAKqP,QAAQ+kC,qBAAqB9qB,QAAStpB,KAAK+tB,IAAIumB,YAE5Et0C,KAAK+tB,IAAIumB,UAAUlqC,YACrBpK,KAAK+tB,IAAIumB,UAAUlqC,WAAWjG,YAAYnE,KAAK+tB,IAAIumB,WAErDt0C,KAAK+tB,IAAIumB,UAAY,OAIzB10C,EAAOD,QAAUozC,GAIX,SAAUnzC,EAAQD,EAASO,GAyBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GApBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAImR,GAAazV,EAAoB,IAEjC0V,EAAcjT,EAAuBgT,GAErClS,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCgZ,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAE3Bs0C,EAAct0C,EAAoB,KAAc,QAYhDu0C,EAAe,WAOjB,QAASA,GAAaC,EAAcC,EAAkBC,GACpD,GAAIC,GAAatvC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,GACrF,EAAImX,EAA0B,SAAG1c,KAAMy0C,GAEvCz0C,KAAKsK,OAASoqC,EACd10C,KAAK80C,kBACL90C,KAAK0nB,UAAYitB,EACjB30C,KAAK+0C,eAAgB,EAErB/0C,KAAKqP,WACLrP,KAAKg1C,aAAc,EACnBh1C,KAAKi1C,aAAe,EACpBj1C,KAAKs0B,gBACHxkB,SAAS,EACTxH,QAAQ,EACRof,cAAWxkB,GACXgyC,YAAY,GAEdr/B,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBAE/Bt0B,KAAK40C,iBAAmBA,EACxB50C,KAAKm1C,iBACLn1C,KAAKo1C,eACLp1C,KAAKq1C,YACLr1C,KAAKs1C,WAAa,EAClBt1C,KAAKu1C,gBACLv1C,KAAKw1C,YAAc,GAAIhB,GAAYK,GACnC70C,KAAKy1C,YAAUvyC,GAiwBjB,OAtvBA,EAAI0Z,EAAuB,SAAG63B,IAC5BjyC,IAAK,aACLgC,MAAO,SAAoB6K,GACzB,OAAgBnM,KAAZmM,EAAuB,CAEzBrP,KAAKu1C,gBACLv1C,KAAK01C,cAEL,IAAI5lC,IAAU,CACS,iBAAZT,GACTrP,KAAKqP,QAAQ/G,OAAS+G,EACbA,YAAmB1J,OAC5B3F,KAAKqP,QAAQ/G,OAAS+G,EAAQ9G,OACkE,gBAAnE,KAAZ8G,EAA0B,aAAc,EAAI3L,EAAkB,SAAG2L,SACxDnM,KAAtBmM,EAAQqY,YACV1nB,KAAKqP,QAAQqY,UAAYrY,EAAQqY,eAEZxkB,KAAnBmM,EAAQ/G,SACVtI,KAAKqP,QAAQ/G,OAAS+G,EAAQ/G,YAELpF,KAAvBmM,EAAQ6lC,aACVl1C,KAAKqP,QAAQ6lC,WAAa7lC,EAAQ6lC,gBAEZhyC,KAApBmM,EAAQS,UACVA,EAAUT,EAAQS,UAEQ,iBAAZT,IAChBrP,KAAKqP,QAAQ/G,QAAS,EACtBwH,EAAUT,GACkB,kBAAZA,KAChBrP,KAAKqP,QAAQ/G,OAAS+G,EACtBS,GAAU,IAEgB,IAAxB9P,KAAKqP,QAAQ/G,SACfwH,GAAU,GAGZ9P,KAAKqP,QAAQS,QAAUA,EAEzB9P,KAAK21C,YASPnzC,IAAK,mBACLgC,MAAO,SAA0B2wC,GAC/Bn1C,KAAKm1C,cAAgBA,GACQ,IAAzBn1C,KAAKqP,QAAQS,UACf9P,KAAK21C,aAC0BzyC,KAA3BlD,KAAKqP,QAAQqY,YACf1nB,KAAK0nB,UAAY1nB,KAAKqP,QAAQqY,WAEhC1nB,KAAKqD,cAUTb,IAAK,UACLgC,MAAO,WACL,GAAIoxC,GAAQ51C,IAEZA,MAAK21C,SACL31C,KAAK80C,iBAEL,IAAIxsC,GAAStI,KAAKqP,QAAQ/G,OACtButC,EAAU,EACV9mB,GAAO,CACX,KAAK,GAAIvkB,KAAUxK,MAAK40C,iBAClB50C,KAAK40C,iBAAiBpzC,eAAegJ,KACvCxK,KAAK+0C,eAAgB,EACrBhmB,GAAO,EACe,kBAAXzmB,IACTymB,EAAOzmB,EAAOkC,MACdukB,EAAOA,GAAQ/uB,KAAK81C,cAAc91C,KAAK40C,iBAAiBpqC,IAAUA,IAAS,KACvD,IAAXlC,IAA+C,IAA5BA,EAAOnC,QAAQqE,KAC3CukB,GAAO,IAGI,IAATA,IACF/uB,KAAK+0C,eAAgB,EAGjBc,EAAU,GACZ71C,KAAK+1C,cAGP/1C,KAAKg2C,YAAYxrC,GAGjBxK,KAAK81C,cAAc91C,KAAK40C,iBAAiBpqC,IAAUA,KAErDqrC,IAIJ,KAAgC,IAA5B71C,KAAKqP,QAAQ6lC,WAAqB,CACpC,GAAIe,GAAiBjkC,SAASC,cAAc,MAC5CgkC,GAAe/tC,UAAY,sCAC3B+tC,EAAeplB,UAAY,mBAC3BolB,EAAeC,QAAU,WACvBN,EAAMO,iBAERF,EAAeG,YAAc,WAC3BH,EAAe/tC,UAAY,6CAE7B+tC,EAAeI,WAAa,WAC1BJ,EAAe/tC,UAAY,uCAG7BlI,KAAKs2C,iBAAmBtkC,SAASC,cAAc,OAC/CjS,KAAKs2C,iBAAiBpuC,UAAY,gDAElClI,KAAKo1C,YAAYhvC,KAAKpG,KAAKs2C,kBAC3Bt2C,KAAKo1C,YAAYhvC,KAAK6vC,GAGxBj2C,KAAKu2C,WAUP/zC,IAAK,QACLgC,MAAO,WACLxE,KAAKy1C,QAAUzjC,SAASC,cAAc,OACtCjS,KAAKy1C,QAAQvtC,UAAY,4BACzBlI,KAAK0nB,UAAUlV,YAAYxS,KAAKy1C,QAChC,KAAK,GAAIp1C,GAAI,EAAGA,EAAIL,KAAKo1C,YAAY/yC,OAAQhC,IAC3CL,KAAKy1C,QAAQjjC,YAAYxS,KAAKo1C,YAAY/0C,GAG5CL,MAAKw2C,wBASPh0C,IAAK,SACLgC,MAAO,WACL,IAAK,GAAInE,GAAI,EAAGA,EAAIL,KAAKo1C,YAAY/yC,OAAQhC,IAC3CL,KAAKy1C,QAAQtxC,YAAYnE,KAAKo1C,YAAY/0C,QAGvB6C,KAAjBlD,KAAKy1C,UACPz1C,KAAK0nB,UAAUvjB,YAAYnE,KAAKy1C,SAChCz1C,KAAKy1C,YAAUvyC,IAEjBlD,KAAKo1C,eAELp1C,KAAK01C,kBAWPlzC,IAAK,YACLgC,MAAO,SAAmB2Y,GAExB,IAAK,GADDs5B,GAAOz2C,KAAKm1C,cACP90C,EAAI,EAAGA,EAAI8c,EAAK9a,OAAQhC,IAAK,CACpC,OAAsB6C,KAAlBuzC,EAAKt5B,EAAK9c,IAEP,CACLo2C,MAAOvzC,EACP,OAHAuzC,EAAOA,EAAKt5B,EAAK9c,IAMrB,MAAOo2C,MAYTj0C,IAAK,YACLgC,MAAO,SAAmB2Y,GACxB,IAA2B,IAAvBnd,KAAK+0C,cAAwB,CAC/B,GAAIrkC,GAAOsB,SAASC,cAAc,MAClCvB,GAAKxI,UAAY,iDAAmDiV,EAAK9a,MAEzE,KAAK,GAAIq0C,GAAOnxC,UAAUlD,OAAQ+yC,EAAczvC,MAAM+wC,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IACrGvB,EAAYuB,EAAO,GAAKpxC,UAAUoxC,EAOpC,OAJAvB,GAAY1sC,QAAQ,SAAUU,GAC5BsH,EAAK8B,YAAYpJ,KAEnBpJ,KAAKo1C,YAAYhvC,KAAKsK,GACf1Q,KAAKo1C,YAAY/yC,OAE1B,MAAO,MAUTG,IAAK,cACLgC,MAAO,SAAqB7D,GAC1B,GAAIi2C,GAAM5kC,SAASC,cAAc,MACjC2kC,GAAI1uC,UAAY,sCAChB0uC,EAAI/lB,UAAYlwB,EAChBX,KAAK+1C,aAAca,MAarBp0C,IAAK,aACLgC,MAAO,SAAoB7D,EAAMwc,GAC/B,GAAI05B,GAActxC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAE7EqxC,EAAM5kC,SAASC,cAAc,MAOjC,OANA2kC,GAAI1uC,UAAY,kDAAoDiV,EAAK9a,OAEvEu0C,EAAI/lB,WADc,IAAhBgmB,EACc,SAAWl2C,EAAO,YAElBA,EAAO,IAElBi2C,KAYTp0C,IAAK,gBACLgC,MAAO,SAAuB2C,EAAK3C,EAAO2Y,GACxC,GAAImR,GAAStc,SAASC,cAAc,SACpCqc,GAAOpmB,UAAY,qCACnB,IAAI4uC,GAAgB,MACN5zC,KAAVsB,IAC0B,IAAxB2C,EAAIhB,QAAQ3B,KACdsyC,EAAgB3vC,EAAIhB,QAAQ3B,GAIhC,KAAK,GAAInE,GAAI,EAAGA,EAAI8G,EAAI9E,OAAQhC,IAAK,CACnC,GAAImK,GAASwH,SAASC,cAAc,SACpCzH,GAAOhG,MAAQ2C,EAAI9G,GACfA,IAAMy2C,IACRtsC,EAAOiZ,SAAW,YAEpBjZ,EAAOqmB,UAAY1pB,EAAI9G,GACvBiuB,EAAO9b,YAAYhI,GAGrB,GAAIgM,GAAKxW,IACTsuB,GAAOyoB,SAAW,WAChBvgC,EAAGwgC,QAAQh3C,KAAKwE,MAAO2Y,GAGzB,IAAIlB,GAAQjc,KAAKi3C,WAAW95B,EAAKA,EAAK9a,OAAS,GAAI8a,EACnDnd,MAAK+1C,UAAU54B,EAAMlB,EAAOqS,MAY9B9rB,IAAK,aACLgC,MAAO,SAAoB2C,EAAK3C,EAAO2Y,GACrC,GAAIzS,GAAevD,EAAI,GACnB9C,EAAM8C,EAAI,GACV7C,EAAM6C,EAAI,GACV+uB,EAAO/uB,EAAI,GACXmiB,EAAQtX,SAASC,cAAc,QACnCqX,GAAMphB,UAAY,oCAClB,KACEohB,EAAM7iB,KAAO,QACb6iB,EAAMjlB,IAAMA,EACZilB,EAAMhlB,IAAMA,EAGd,MAAOoP,IACP4V,EAAM4M,KAAOA,CAGb,IAAIghB,GAAc,GACdC,EAAa,CAEjB,QAAcj0C,KAAVsB,EAAqB,CAEnBA,EAAQ,GADC,IACIA,EAAiBH,GAChCilB,EAAMjlB,IAAMK,KAAK46B,KAFN,IAEW96B,GACtB2yC,EAAa7tB,EAAMjlB,IACnB6yC,EAAc,mBACL1yC,EALE,IAKeH,IAC1BilB,EAAMjlB,IAAMK,KAAK46B,KAAK96B,EANX,KAOX2yC,EAAa7tB,EAAMjlB,IACnB6yC,EAAc,mBARH,IAUT1yC,EAAiBF,GAAe,IAARA,IAC1BglB,EAAMhlB,IAAMI,KAAK46B,KAXN,IAWW96B,GACtB2yC,EAAa7tB,EAAMhlB,IACnB4yC,EAAc,mBAEhB5tB,EAAM9kB,MAAQA,MAEd8kB,GAAM9kB,MAAQkG,CAGhB,IAAI0sC,GAAQplC,SAASC,cAAc,QACnCmlC,GAAMlvC,UAAY,0CAClBkvC,EAAM5yC,MAAQ8kB,EAAM9kB,KAEpB,IAAIgS,GAAKxW,IACTspB,GAAMytB,SAAW,WACfK,EAAM5yC,MAAQxE,KAAKwE,MAAMgS,EAAGwgC,QAAQlzC,OAAO9D,KAAKwE,OAAQ2Y,IAE1DmM,EAAM+tB,QAAU,WACdD,EAAM5yC,MAAQxE,KAAKwE,MAGrB,IAAIyX,GAAQjc,KAAKi3C,WAAW95B,EAAKA,EAAK9a,OAAS,GAAI8a,GAC/Cw0B,EAAY3xC,KAAK+1C,UAAU54B,EAAMlB,EAAOqN,EAAO8tB,EAG/B,MAAhBF,GAAsBl3C,KAAKu1C,aAAa5D,KAAewF,IACzDn3C,KAAKu1C,aAAa5D,GAAawF,EAC/Bn3C,KAAKs3C,YAAYJ,EAAavF,OAYlCnvC,IAAK,cACLgC,MAAO,SAAqB+yC,EAAQpc,GAClC,GAAIqc,GAASx3C,IAEb,KAAyB,IAArBA,KAAKg1C,cAA+C,IAAvBh1C,KAAK+0C,eAA0B/0C,KAAKi1C,aAAej1C,KAAKs1C,WAAY,CACnG,GAAIsB,GAAM5kC,SAASC,cAAc,MACjC2kC,GAAItgC,GAAK,0BACTsgC,EAAI1uC,UAAY,0BAChB0uC,EAAI/lB,UAAY0mB,EAChBX,EAAIV,QAAU,WACZsB,EAAO9B,gBAET11C,KAAKi1C,cAAgB,EACrBj1C,KAAKq1C,UAAaoC,KAAMb,EAAKzb,MAAOA,OAUxC34B,IAAK,eACLgC,MAAO,eACsBtB,KAAvBlD,KAAKq1C,SAASoC,OAChBz3C,KAAKq1C,SAASoC,KAAKrtC,WAAWjG,YAAYnE,KAAKq1C,SAASoC,MACxDvkB,aAAalzB,KAAKq1C,SAASqC,aAC3BxkB,aAAalzB,KAAKq1C,SAASsC,eAC3B33C,KAAKq1C,gBAUT7yC,IAAK,qBACLgC,MAAO,WACL,GAAIozC,GAAS53C,IAEb,QAA2BkD,KAAvBlD,KAAKq1C,SAASoC,KAAoB,CACpC,GAAII,GAAuB73C,KAAKo1C,YAAYp1C,KAAKq1C,SAASla,OACtD5e,EAAOs7B,EAAqBpwC,uBAChCzH,MAAKq1C,SAASoC,KAAKhqC,MAAM/F,KAAO6U,EAAK7U,KAAO,KAC5C1H,KAAKq1C,SAASoC,KAAKhqC,MAAM3F,IAAMyU,EAAKzU,IAAM,GAAK,KAC/CkK,SAASS,KAAKD,YAAYxS,KAAKq1C,SAASoC,MACxCz3C,KAAKq1C,SAASqC,YAAcvkB,WAAW,WACrCykB,EAAOvC,SAASoC,KAAKhqC,MAAMhC,QAAU,GACpC,MACHzL,KAAKq1C,SAASsC,cAAgBxkB,WAAW,WACvCykB,EAAOlC,gBACN,UAaPlzC,IAAK,gBACLgC,MAAO,SAAuBkG,EAAclG,EAAO2Y,GACjD,GAAI26B,GAAW9lC,SAASC,cAAc,QACtC6lC,GAASrxC,KAAO,WAChBqxC,EAAS5vC,UAAY,wCACrB4vC,EAASC,QAAUrtC,MACLxH,KAAVsB,IACFszC,EAASC,QAAUvzC,EACfA,IAAUkG,IACyF,gBAAxE,KAAjBA,EAA+B,aAAc,EAAIhH,EAAkB,SAAGgH,IAC5ElG,IAAUkG,EAAaoF,SACzB9P,KAAK80C,eAAe1uC,MAAO+W,KAAMA,EAAM3Y,MAAOA,IAGhDxE,KAAK80C,eAAe1uC,MAAO+W,KAAMA,EAAM3Y,MAAOA,KAKpD,IAAIgS,GAAKxW,IACT83C,GAASf,SAAW,WAClBvgC,EAAGwgC,QAAQh3C,KAAK+3C,QAAS56B,GAG3B,IAAIlB,GAAQjc,KAAKi3C,WAAW95B,EAAKA,EAAK9a,OAAS,GAAI8a,EACnDnd,MAAK+1C,UAAU54B,EAAMlB,EAAO67B,MAY9Bt1C,IAAK,iBACLgC,MAAO,SAAwBkG,EAAclG,EAAO2Y,GAClD,GAAI26B,GAAW9lC,SAASC,cAAc,QACtC6lC,GAASrxC,KAAO,OAChBqxC,EAAS5vC,UAAY,oCACrB4vC,EAAStzC,MAAQA,EACbA,IAAUkG,GACZ1K,KAAK80C,eAAe1uC,MAAO+W,KAAMA,EAAM3Y,MAAOA,GAGhD,IAAIgS,GAAKxW,IACT83C,GAASf,SAAW,WAClBvgC,EAAGwgC,QAAQh3C,KAAKwE,MAAO2Y,GAGzB,IAAIlB,GAAQjc,KAAKi3C,WAAW95B,EAAKA,EAAK9a,OAAS,GAAI8a,EACnDnd,MAAK+1C,UAAU54B,EAAMlB,EAAO67B,MAY9Bt1C,IAAK,kBACLgC,MAAO,SAAyB2C,EAAK3C,EAAO2Y,GAC1C,GAAI66B,GAASh4C,KAETi4C,EAAe9wC,EAAI,GACnByvC,EAAM5kC,SAASC,cAAc,MACjCzN,OAAkBtB,KAAVsB,EAAsByzC,EAAezzC,EAE/B,SAAVA,GACFoyC,EAAI1uC,UAAY,0CAChB0uC,EAAInpC,MAAMyqC,gBAAkB1zC,GAE5BoyC,EAAI1uC,UAAY,+CAGlB1D,MAAkBtB,KAAVsB,EAAsByzC,EAAezzC,EAC7CoyC,EAAIV,QAAU,WACZ8B,EAAOG,iBAAiB3zC,EAAOoyC,EAAKz5B,GAGtC,IAAIlB,GAAQjc,KAAKi3C,WAAW95B,EAAKA,EAAK9a,OAAS,GAAI8a,EACnDnd,MAAK+1C,UAAU54B,EAAMlB,EAAO26B,MAY9Bp0C,IAAK,mBACLgC,MAAO,SAA0BA,EAAOoyC,EAAKz5B,GAC3C,GAAIi7B,GAASp4C,IAGb42C,GAAIV,QAAU,aAEdl2C,KAAKw1C,YAAY6C,SAASzB,GAC1B52C,KAAKw1C,YAAYzmB,OAEjB/uB,KAAKw1C,YAAY8C,SAAS9zC,GAC1BxE,KAAKw1C,YAAY+C,kBAAkB,SAAU/sC,GAC3C,GAAIgtC,GAAc,QAAUhtC,EAAML,EAAI,IAAMK,EAAMJ,EAAI,IAAMI,EAAM1I,EAAI,IAAM0I,EAAM3I,EAAI,GACtF+zC,GAAInpC,MAAMyqC,gBAAkBM,EAC5BJ,EAAOpB,QAAQwB,EAAar7B,KAI9Bnd,KAAKw1C,YAAYiD,iBAAiB,WAChC7B,EAAIV,QAAU,WACZkC,EAAOD,iBAAiB3zC,EAAOoyC,EAAKz5B,SAe1C3a,IAAK,gBACLgC,MAAO,SAAuBvC,GAC5B,GAAIkb,GAAO5X,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,MACtEmzC,EAAYnzC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAE3EwpB,GAAO,EACPzmB,EAAStI,KAAKqP,QAAQ/G,OACtBqwC,GAAe,CACnB,KAAK,GAAIC,KAAU32C,GACjB,GAAIA,EAAIT,eAAeo3C,GAAS,CAC9B7pB,GAAO,CACP,IAAIre,GAAOzO,EAAI22C,GACXC,EAAUhjC,EAAK3O,mBAAmBiW,EAAMy7B,EAc5C,IAbsB,kBAAXtwC,KAII,KAHbymB,EAAOzmB,EAAOswC,EAAQz7B,OAIdzM,YAAgB/K,SAA0B,gBAAT+K,IAAqC,iBAATA,IAAsBA,YAAgB5P,UACvGd,KAAK+0C,eAAgB,EACrBhmB,EAAO/uB,KAAK81C,cAAcplC,EAAMmoC,GAAS,GACzC74C,KAAK+0C,eAA8B,IAAd2D,IAKd,IAAT3pB,EAAgB,CAClB4pB,GAAe,CACf,IAAIn0C,GAAQxE,KAAK84C,UAAUD,EAE3B,IAAInoC,YAAgB/K,OAClB3F,KAAK+4C,aAAaroC,EAAMlM,EAAOq0C,OAC1B,IAAoB,gBAATnoC,GAChB1Q,KAAKg5C,eAAetoC,EAAMlM,EAAOq0C,OAC5B,IAAoB,iBAATnoC,GAChB1Q,KAAKi5C,cAAcvoC,EAAMlM,EAAOq0C,OAC3B,IAAInoC,YAAgB5P,QAAQ,CAEjC,GAAI+kB,IAAO,CAOX,KANiC,IAA7B1I,EAAKhX,QAAQ,YACXnG,KAAKm1C,cAActZ,QAAQqd,SAAWN,IACxC/yB,GAAO,IAIE,IAATA,EAEF,OAAqB3iB,KAAjBwN,EAAKZ,QAAuB,CAC9B,GAAIqpC,GAActjC,EAAK3O,mBAAmB2xC,EAAS,WAC/CO,EAAep5C,KAAK84C,UAAUK,EAClC,KAAqB,IAAjBC,EAAuB,CACzB,GAAIn9B,GAAQjc,KAAKi3C,WAAW2B,EAAQC,GAAS,EAC7C74C,MAAK+1C,UAAU8C,EAAS58B,GACxB08B,EAAe34C,KAAK81C,cAAcplC,EAAMmoC,IAAYF,MAEpD34C,MAAKi5C,cAAcvoC,EAAM0oC,EAAcP,OAEpC,CACL,GAAIQ,GAASr5C,KAAKi3C,WAAW2B,EAAQC,GAAS,EAC9C74C,MAAK+1C,UAAU8C,EAASQ,GACxBV,EAAe34C,KAAK81C,cAAcplC,EAAMmoC,IAAYF,OAIxDzhC,SAAQoiC,MAAM,0BAA2B5oC,EAAMkoC,EAAQC,IAK/D,MAAOF,MAYTn2C,IAAK,eACLgC,MAAO,SAAsB2C,EAAK3C,EAAO2Y,GACjB,gBAAXhW,GAAI,IAA8B,UAAXA,EAAI,IACpCnH,KAAKu5C,gBAAgBpyC,EAAK3C,EAAO2Y,GAC7BhW,EAAI,KAAO3C,GACbxE,KAAK80C,eAAe1uC,MAAO+W,KAAMA,EAAM3Y,MAAOA,KAErB,gBAAX2C,GAAI,IACpBnH,KAAKw5C,cAAcryC,EAAK3C,EAAO2Y,GAC3BhW,EAAI,KAAO3C,GACbxE,KAAK80C,eAAe1uC,MAAO+W,KAAMA,EAAM3Y,MAAOA,KAErB,gBAAX2C,GAAI,KACpBnH,KAAKy5C,WAAWtyC,EAAK3C,EAAO2Y,GACxBhW,EAAI,KAAO3C,GACbxE,KAAK80C,eAAe1uC,MAAO+W,KAAMA,EAAM3Y,MAAOV,OAAOU,SAa3DhC,IAAK,UACLgC,MAAO,SAAiBA,EAAO2Y,GAC7B,GAAI9N,GAAUrP,KAAK05C,kBAAkBl1C,EAAO2Y,EAExCnd,MAAKsK,OAAOmI,MAAQzS,KAAKsK,OAAOmI,KAAK8c,SAAWvvB,KAAKsK,OAAOmI,KAAK8c,QAAQ1a,MAC3E7U,KAAKsK,OAAOmI,KAAK8c,QAAQ1a,KAAK,eAAgBxF,GAEhDrP,KAAKg1C,aAAc,EACnBh1C,KAAKsK,OAAOoL,WAAWrG,MAazB7M,IAAK,oBACLgC,MAAO,SAA2BA,EAAO2Y,GACvC,GAAIw8B,GAAap0C,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,MAE5E2+B,EAAUyV,CAGdn1C,GAAkB,SAAVA,GAA0BA,EAClCA,EAAkB,UAAVA,GAA4BA,CAEpC,KAAK,GAAInE,GAAI,EAAGA,EAAI8c,EAAK9a,OAAQhC,IACf,WAAZ8c,EAAK9c,SACkB6C,KAArBghC,EAAQ/mB,EAAK9c,MACf6jC,EAAQ/mB,EAAK9c,QAEXA,IAAM8c,EAAK9a,OAAS,EACtB6hC,EAAUA,EAAQ/mB,EAAK9c,IAEvB6jC,EAAQ/mB,EAAK9c,IAAMmE,EAIzB,OAAOm1C,MAQTn3C,IAAK,gBACLgC,MAAO,WACL,GAAI6K,GAAUrP,KAAK45C,YACnB55C,MAAKs2C,iBAAiBzlB,UAAY,uBAAwB,EAAIjb,EAAqB,SAAGvG,EAAS,KAAM,GAAK,YAS5G7M,IAAK,aACLgC,MAAO,WAEL,IAAK,GADD6K,MACKhP,EAAI,EAAGA,EAAIL,KAAK80C,eAAezyC,OAAQhC,IAC9CL,KAAK05C,kBAAkB15C,KAAK80C,eAAez0C,GAAGmE,MAAOxE,KAAK80C,eAAez0C,GAAG8c,KAAM9N;oIAEpF,OAAOA,OAGJolC,IAGT90C,GAAiB,QAAI80C,GAIf,SAAU70C,EAAQD,EAASO,GAoBjC,QAAS25C,GAAOjM,EAASv+B,IAgDzB,QAASyqC,GAAiBtrB,EAAOurB,GAE/B,MADAA,OAA2C,KAAnBA,KAAsCA,GAE5DtsC,MAAOssC,EAAetsC,OAAS+gB,EAAMnf,QAAQk4B,WAAW95B,MACxDD,OAAQusC,EAAevsC,QAAUghB,EAAMnf,QAAQk4B,WAAW/5B,OAC1DwO,KAAM+9B,EAAe/9B,MAAQwS,EAAMnf,QAAQk4B,WAAWvrB,KACtD9T,UAAW6xC,EAAe7xC,WAAasmB,EAAMtmB,WAUjD,QAAS8xC,GAAYC,EAAWzrB,GAC9B,GAAI7lB,OAAWzF,EAUf,OARI+2C,GAAU5qC,SAAW4qC,EAAU5qC,QAAQk4B,YAAc0S,EAAU5qC,QAAQk4B,WAAWC,UAA4D,kBAAzCyS,GAAU5qC,QAAQk4B,WAAWC,WACpI7+B,EAAWsxC,EAAU5qC,QAAQk4B,WAAWC,UAItChZ,EAAMA,MAAMnf,SAAWmf,EAAMA,MAAMnf,QAAQk4B,YAAc/Y,EAAMA,MAAMnf,QAAQk4B,WAAWC,UAA8D,kBAA3ChZ,GAAMA,MAAMnf,QAAQk4B,WAAWC,WAC5I7+B,EAAW6lB,EAAMA,MAAMnf,QAAQk4B,WAAWC,UAErC7+B,EA1FT,GAAIlF,GAAWvD,EAAoB,GAE/BwD,EAEJ,SAAgCzB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFnDwB,GAIlCy2C,EAAUh6C,EAAoB,GAoBlC25C,GAAOh0B,KAAO,SAAUs0B,EAAS3rB,EAAOyrB,EAAWrwB,GACjDA,EAASA,GAAU,CAGnB,KAAK,GAFDjhB,GAAWqxC,EAAYC,EAAWzrB,GAE7BnuB,EAAI,EAAGA,EAAI85C,EAAQ93C,OAAQhC,IAClC,GAAKsI,EAGE,CACL,GAAIoxC,GAAiBpxC,EAASwxC,EAAQ95C,GAAImuB,IACnB,IAAnBurB,GAAgI,gBAA1E,KAAnBA,EAAiC,aAAc,EAAIr2C,EAAkB,SAAGq2C,KAC7GG,EAAQx+B,UAAUy+B,EAAQ95C,GAAG+5C,SAAWxwB,EAAQuwB,EAAQ95C,GAAGg6C,SAAUP,EAAiBtrB,EAAOurB,GAAiBE,EAAUK,YAAaL,EAAUM,IAAKJ,EAAQ95C,GAAG4b,WAJjKi+B,GAAQx+B,UAAUy+B,EAAQ95C,GAAG+5C,SAAWxwB,EAAQuwB,EAAQ95C,GAAGg6C,SAAUP,EAAiBtrB,GAAQyrB,EAAUK,YAAaL,EAAUM,IAAKJ,EAAQ95C,GAAG4b,QAUrJ49B,EAAOW,SAAW,SAAUhsB,EAAO7e,EAAGgM,EAAG8+B,EAAWC,EAAYT,GAC9D,GAAIU,GAA0B,GAAbD,EAEbE,EAAUV,EAAQ/+B,cAAc,OAAQ8+B,EAAUK,YAAaL,EAAUM,IAC7EK,GAAQ7+B,eAAe,KAAM,IAAKpM,GAClCirC,EAAQ7+B,eAAe,KAAM,IAAKJ,EAAIg/B,GACtCC,EAAQ7+B,eAAe,KAAM,QAAS0+B,GACtCG,EAAQ7+B,eAAe,KAAM,SAAU,EAAI4+B,GAC3CC,EAAQ7+B,eAAe,KAAM,QAAS,eAGtCm+B,EAAQx+B,UAAU/L,EAAI,GAAM8qC,EAAW9+B,EAAGm+B,EAAiBtrB,GAAQyrB,EAAUK,YAAaL,EAAUM,MAuCtG36C,EAAOD,QAAUk6C,GAIX,SAAUj6C,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCE,EAAahlB,EAAoB,IAEjCilB,EAAaxiB,EAAuBuiB,GAmBpC21B,EAAkB,SAAUx1B,GAQ9B,QAASw1B,GAAgBxrC,EAASoD,EAAMuP,IACtC,EAAItF,EAA0B,SAAG1c,KAAM66C,EAEvC,IAAIjF,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAO66C,EAAgB7mC,YAAa,EAAI6Q,EAA0B,SAAGg2B,IAAkBt6C,KAAKP,KAAMqP,EAASoD,EAAMuP,GAIzK,OAFA4zB,GAAMkF,YAAc,EACpBlF,EAAMnyB,UAAW,EACVmyB,EAuLT,OArMA,EAAI3wB,EAAoB,SAAG41B,EAAiBx1B,IAyB5C,EAAIzI,EAAuB,SAAGi+B,IAC5Br4C,IAAK,aACLgC,MAAO,SAAoB6K,EAAS0sB,EAAUI,GAC5Cn8B,KAAKqP,QAAUA,MAEInM,KAAb64B,OAA0C74B,KAAhBi5B,GAC9Bn8B,KAAK+6C,UAAUhf,EAAUI,MAkB7B35B,IAAK,YACLgC,MAAO,SAAmBu3B,EAAUI,GAC9BA,GAAen8B,KAAKyjB,UACtBzjB,KAAK+7B,SAAWI,EAChBn8B,KAAKm8B,YAAcJ,IAEnB/7B,KAAK+7B,SAAWA,EAChB/7B,KAAKm8B,YAAcA,MAavB35B,IAAK,eACLgC,MAAO,SAAsBif,GAC3B,GAAIu3B,GAAoBv3B,IAAazjB,KAAKyjB,WAAaA,GAAYzjB,KAAKyjB,QAGxE,IAFAzjB,KAAKyjB,SAAWA,MAESvgB,KAArBlD,KAAKm8B,aAA6B6e,EAAmB,CACvD,GAAIC,GAAWj7C,KAAK+7B,QACpB/7B,MAAK+7B,SAAW/7B,KAAKm8B,YACrBn8B,KAAKm8B,YAAc8e,MAWvBz4C,IAAK,eACLgC,MAAO,WACL,GAAI0N,GAAOC,CAEX,KAAkD,IAA9CnS,KAAKqP,QAAQmU,gBAAgB03B,aAAwB,CAEvD,GAAIC,GAAc,EACdC,EAAe,CAGfp7C,MAAK+7B,SAAS7pB,OAASlS,KAAK+7B,SAAS5pB,SACnCnS,KAAK+7B,SAAS7pB,MAAQlS,KAAK+7B,SAAS5pB,OACtCgpC,EAAcn7C,KAAK+7B,SAAS7pB,MAAQlS,KAAK+7B,SAAS5pB,OAElDipC,EAAep7C,KAAK+7B,SAAS5pB,OAASnS,KAAK+7B,SAAS7pB,OAIxDA,EAA4B,EAApBlS,KAAKqP,QAAQ2M,KAAWm/B,EAChChpC,EAA6B,EAApBnS,KAAKqP,QAAQ2M,KAAWo/B,MAGjClpC,GAAQlS,KAAK+7B,SAAS7pB,MACtBC,EAASnS,KAAK+7B,SAAS5pB,MAGzBnS,MAAKkS,MAAQA,EACblS,KAAKmS,OAASA,EACdnS,KAAKiiB,OAAS,GAAMjiB,KAAKkS,SAa3B1P,IAAK,iBACLgC,MAAO,SAAwBsb,EAAKnQ,EAAGgM,EAAG1C,GACxCjZ,KAAKylB,mBAAmB3F,EAAK7G,GAC7B6G,EAAIu7B,OAAO1rC,EAAGgM,EAAG1C,EAAO+C,MACxBhc,KAAK0lB,YAAY5F,EAAK7G,MAWxBzW,IAAK,uBACLgC,MAAO,SAA8Bsb,EAAK7G,GACxC,GAA2B,GAAvBjZ,KAAK+7B,SAAS7pB,MAAY,CAE5B4N,EAAIw7B,YAAc,EAGlBt7C,KAAKqkB,aAAavE,EAAK7G,EAEvB,IAAIsiC,GAAS,GACsC,IAA/Cv7C,KAAKqP,QAAQmU,gBAAgBg4B,gBAC/BD,EAASv7C,KAAK+7B,SAAS7pB,MAAQlS,KAAKkS,MAAQlS,KAAKyS,KAAKkR,KAAKlf,OAG7DzE,KAAK+7B,SAAS0f,oBAAoB37B,EAAKy7B,EAAQv7C,KAAK0H,KAAM1H,KAAK8H,IAAK9H,KAAKkS,MAAOlS,KAAKmS,QAGrFnS,KAAKukB,cAAczE,EAAK7G,OAe5BzW,IAAK,kBACLgC,MAAO,SAAyBsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,GACnD,GAAI0Y,GACAgE,EAAS,CAEb,QAAoB1mB,KAAhBlD,KAAKmS,OAAsB,CAC7ByX,EAAuB,GAAd5pB,KAAKmS,MACd,IAAIupC,GAAkB17C,KAAKgiB,YAAY2C,YAAY7E,EAAK2D,EAAUvW,EAC9DwuC,GAAgBC,WAAa,IAC/B/xB,GAAU8xB,EAAgBvpC,OAAS,GAIvCyT,EAASjK,EAAIiO,EAET5pB,KAAKqP,QAAQ4M,QACfjc,KAAK86C,YAAclxB,GAErB5pB,KAAKgiB,YAAY6D,KAAK/F,EAAKnQ,EAAGiW,EAAQnC,EAAUvW,EAAO,eAGpD2tC,GACP11B,EAAoB,QAEtBxlB,GAAiB,QAAIk7C,GAIf,SAAUj7C,EAAQD,EAASO,GA6BjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAxBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAImR,GAAazV,EAAoB,IAEjC0V,EAAcjT,EAAuBgT,GAErClS,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCJ,EAAUnD,EAAoB,IAE9BoD,EAAWX,EAAuBU,GAElCoZ,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAC3Bs5B,EAAQt5B,EAAoB,KAAc,QAC1Cu5B,EAAgBv5B,EAAoB,IAAa,QACjD07C,EAAkB17C,EAAoB,KAAc,QACpD27C,EAAoB37C,EAAoB,KAAc,QACtD47C,EAAmB57C,EAAoB,KAAc,QACrD67C,EAAe77C,EAAoB,KAAc,QAMjD87C,EAAO,WAOT,QAASA,GAAK3sC,EAASoD,EAAMnD,EAAeglB,GAG1C,IAFA,EAAI5X,EAA0B,SAAG1c,KAAMg8C,OAE1B94C,KAATuP,EACF,KAAM,IAAI5M,OAAM,mBAMlB7F,MAAKqP,QAAUwG,EAAKhH,aAAaS,GACjCtP,KAAKsP,cAAgBA,EACrBtP,KAAKs0B,eAAiBA,EACtBt0B,KAAKyS,KAAOA,EAGZzS,KAAKsW,OAAKpT,GACVlD,KAAKi8C,WAAS/4C,GACdlD,KAAKk8C,SAAOh5C,GACZlD,KAAKyjB,UAAW,EAChBzjB,KAAKkN,OAAQ,EACblN,KAAKm8C,YAAa,EAElBn8C,KAAKo8C,UAAYp8C,KAAKqP,QAAQ6C,MAC9BlS,KAAK+6B,aAAe/6B,KAAKqP,QAAQ2rB,KAAKhf,KAEtChc,KAAKq8C,SAAOn5C,GACZlD,KAAKs8C,OAAKp5C,GAEVlD,KAAKu8C,aAAWr5C,GAEhBlD,KAAKw8C,WAAY,EAEjBx8C,KAAKgiB,YAAc,GAAIwX,GAAMx5B,KAAKyS,KAAMzS,KAAKqP,SAAS,GACtDrP,KAAK0V,WAAWrG,GAkvBlB,OAxuBA,EAAIuN,EAAuB,SAAGo/B,IAC5Bx5C,IAAK,aACLgC,MAAO,SAAoB6K,GACzB,GAAKA,EAAL,CAIA2sC,EAAKzgB,aAAav7B,KAAKqP,QAASA,GAAS,EAAMrP,KAAKsP,mBAEjCpM,KAAfmM,EAAQiH,KACVtW,KAAKsW,GAAKjH,EAAQiH,QAECpT,KAAjBmM,EAAQgtC,OACVr8C,KAAKi8C,OAAS5sC,EAAQgtC,UAELn5C,KAAfmM,EAAQitC,KACVt8C,KAAKk8C,KAAO7sC,EAAQitC,QAEAp5C,KAAlBmM,EAAQ4gB,QACVjwB,KAAKiwB,MAAQ5gB,EAAQ4gB,WAED/sB,KAAlBmM,EAAQ7K,QACV6K,EAAQ7K,MAAQ82B,WAAWjsB,EAAQ7K,OAGrC,IAAIuO,IAAQ1D,EAASrP,KAAKqP,QAASrP,KAAKs0B,eACxCt0B,MAAKw7B,QAAU/B,EAAcgC,SAAS,OAAQ1oB,GAG9C/S,KAAK27B,kBAAkBtsB,EAEvB,IAAIotC,GAAcz8C,KAAK08C,gBAYvB,OATA18C,MAAK28C,wBAGL38C,KAAK48C,cAEkB15C,KAAnBmM,EAAQub,YAA4C1nB,KAApBmM,EAAQwsB,UAC1C4gB,GAAc,GAGTA,MAaTj6C,IAAK,sBAOLgC,MAAO,WACL,GAAIq4C,IAAqC,IAA3B78C,KAAKqP,QAAQytC,OAAOR,KAAkD,IAAnCt8C,KAAKqP,QAAQytC,OAAOR,GAAGxsC,QACpEitC,GAAyC,IAA7B/8C,KAAKqP,QAAQytC,OAAOT,OAAsD,IAArCr8C,KAAKqP,QAAQytC,OAAOT,KAAKvsC,QAC1EktC,GAA6C,IAA/Bh9C,KAAKqP,QAAQytC,OAAOrsC,SAA0D,IAAvCzQ,KAAKqP,QAAQytC,OAAOrsC,OAAOX,QAChFmtC,EAAgBj9C,KAAKqP,QAAQ7D,MAAM0xC,QACnCjkC,GACF4jC,QAASA,EACTM,aAAcn9C,KAAKqP,QAAQytC,OAAOR,GAAGc,YACrCC,YAAar9C,KAAKqP,QAAQytC,OAAOR,GAAG71C,KACpCu2C,YAAaA,EACbM,iBAAkBt9C,KAAKqP,QAAQytC,OAAOrsC,OAAO2sC,YAC7CG,gBAAiBv9C,KAAKqP,QAAQytC,OAAOrsC,OAAOhK,KAC5Cs2C,UAAWA,EACXS,eAAgBx9C,KAAKqP,QAAQytC,OAAOT,KAAKe,YACzCK,cAAez9C,KAAKqP,QAAQytC,OAAOT,KAAK51C,KACxCi3C,mBAAoB19C,KAAKqP,QAAQquC,mBACjClyC,MAAOyxC,MAAgB/5C,GAAYlD,KAAKqP,QAAQ7D,MAAMA,MACtDyxC,cAAeA,EACfxxC,QAASzL,KAAKqP,QAAQ7D,MAAMC,QAC5Bmf,OAAQ5qB,KAAKqP,QAAQub,OACrBvoB,OAAQrC,KAAKqP,QAAQhN,OACrBwgB,OAAQ7iB,KAAKqP,QAAQwT,OAAO/S,QAC5BgT,YAAa9iB,KAAKqP,QAAQwT,OAAOrX,MACjCwX,WAAYhjB,KAAKqP,QAAQwT,OAAO7G,KAChCkH,QAASljB,KAAKqP,QAAQwT,OAAOlT,EAC7ByT,QAASpjB,KAAKqP,QAAQwT,OAAOlH,EAC7B4H,OAAQvjB,KAAKqP,QAAQkU,OACrBrR,MAAOlS,KAAKqP,QAAQ6C,MAEtB,IAAIlS,KAAKyjB,UAAYzjB,KAAKkN,MACxB,IAAqB,IAAjBlN,KAAKw7B,SACP,GAAIx7B,KAAKyjB,SAAU,CACjB,GAAIk6B,GAAgB39C,KAAKqP,QAAQuuC,cACJ,mBAAlBD,GACT1kC,EAAO/G,MAAQyrC,EAAc1kC,EAAO/G,OACF,gBAAlByrC,KAChB1kC,EAAO/G,OAASyrC,GAElB1kC,EAAO/G,MAAQxN,KAAKJ,IAAI2U,EAAO/G,MAAO,GAAMlS,KAAKyS,KAAKkR,KAAKlf,OAC3DwU,EAAOzN,MAAQxL,KAAKqP,QAAQ7D,MAAMyB,UAClCgM,EAAO4J,OAAS7iB,KAAKqP,QAAQwT,OAAO/S,YAC/B,IAAI9P,KAAKkN,MAAO,CACrB,GAAI2wC,GAAa79C,KAAKqP,QAAQwuC,UACJ,mBAAfA,GACT5kC,EAAO/G,MAAQ2rC,EAAW5kC,EAAO/G,OACF,gBAAf2rC,KAChB5kC,EAAO/G,OAAS2rC,GAElB5kC,EAAO/G,MAAQxN,KAAKJ,IAAI2U,EAAO/G,MAAO,GAAMlS,KAAKyS,KAAKkR,KAAKlf,OAC3DwU,EAAOzN,MAAQxL,KAAKqP,QAAQ7D,MAAM0B,MAClC+L,EAAO4J,OAAS7iB,KAAKqP,QAAQwT,OAAO/S,aAEL,kBAAjB9P,MAAKw7B,UACrBx7B,KAAKw7B,QAAQviB,EAAQjZ,KAAKqP,QAAQiH,GAAItW,KAAKyjB,SAAUzjB,KAAKkN,WACrChK,KAAjB+V,EAAOzN,QACTyN,EAAOgkC,eAAgB,IAEH,IAAlBhkC,EAAO4J,SACL5J,EAAO6J,cAAgB9iB,KAAKqP,QAAQwT,OAAOrX,OAASyN,EAAO+J,aAAehjB,KAAKqP,QAAQwT,OAAO7G,MAAQ/C,EAAOiK,UAAYljB,KAAKqP,QAAQwT,OAAOlT,GAAKsJ,EAAOmK,UAAYpjB,KAAKqP,QAAQwT,OAAOlH,IAC3L1C,EAAO4J,QAAS,SAKtB5J,GAAO4J,OAAS7iB,KAAKqP,QAAQwT,OAAO/S,QACpCmJ,EAAO/G,MAAQxN,KAAKJ,IAAI2U,EAAO/G,MAAO,GAAMlS,KAAKyS,KAAKkR,KAAKlf,MAE7D,OAAOwU,MAUTzW,IAAK,oBACLgC,MAAO,SAA2B6K,GAChC,GAAI0D,IAAQ1D,EAASrP,KAAKqP,QAASrP,KAAKsP,cACxCtP,KAAKs0B,eAELt0B,MAAKgiB,YAAYrL,OAAO3W,KAAKqP,QAAS0D,OAEJ7P,KAA9BlD,KAAKgiB,YAAY8Y,WACnB96B,KAAK+6B,aAAe/6B,KAAKgiB,YAAY8Y,aAUzCt4B,IAAK,iBACLgC,MAAO,WACL,GAAIs5C,GAAS99C,KAAKqP,QAAQyuC,OACtBrB,GAAc,EACdsB,GAAe,CA0BnB,YAzBsB76C,KAAlBlD,KAAKu8C,YACHv8C,KAAKu8C,mBAAoBV,KAAwC,IAAnBiC,EAAOhuC,SAAoC,YAAhBguC,EAAOr3C,MAAsBzG,KAAKu8C,mBAAoBX,KAAsC,IAAnBkC,EAAOhuC,SAAoC,gBAAhBguC,EAAOr3C,MAA0BzG,KAAKu8C,mBAAoBT,KAAuC,IAAnBgC,EAAOhuC,SAAoC,YAAhBguC,EAAOr3C,MAAsC,gBAAhBq3C,EAAOr3C,MAA0BzG,KAAKu8C,mBAAoBR,KAAwC,IAAxB+B,EAAOr3C,KAAKqJ,WAC3YiuC,GAAe,IAEI,IAAjBA,IACFtB,EAAcz8C,KAAKg+C,aAGF,IAAjBD,GACqB,IAAnBD,EAAOhuC,QACW,YAAhBguC,EAAOr3C,MACTg2C,GAAc,EACdz8C,KAAKu8C,SAAW,GAAIV,GAAkB77C,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,cAC3C,gBAAhB87B,EAAOr3C,KAChBzG,KAAKu8C,SAAW,GAAIX,GAAgB57C,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,aAElEhiB,KAAKu8C,SAAW,GAAIT,GAAiB97C,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,aAGrEhiB,KAAKu8C,SAAW,GAAIR,GAAa/7C,KAAKqP,QAASrP,KAAKyS,KAAMzS,KAAKgiB,aAIjEhiB,KAAKu8C,SAAS7mC,WAAW1V,KAAKqP,SAEzBotC,KAQTj6C,IAAK,UACLgC,MAAO,WACLxE,KAAKi+C,aAELj+C,KAAKq8C,KAAOr8C,KAAKyS,KAAKyrC,MAAMl+C,KAAKi8C,aAAW/4C,GAC5ClD,KAAKs8C,GAAKt8C,KAAKyS,KAAKyrC,MAAMl+C,KAAKk8C,WAASh5C,GACxClD,KAAKw8C,cAA0Bt5C,KAAdlD,KAAKq8C,UAAkCn5C,KAAZlD,KAAKs8C,IAE1B,IAAnBt8C,KAAKw8C,WACPx8C,KAAKq8C,KAAK8B,WAAWn+C,MACrBA,KAAKs8C,GAAG6B,WAAWn+C,QAEfA,KAAKq8C,MACPr8C,KAAKq8C,KAAK+B,WAAWp+C,MAEnBA,KAAKs8C,IACPt8C,KAAKs8C,GAAG8B,WAAWp+C,OAIvBA,KAAKu8C,SAASK,aAQhBp6C,IAAK,aACLgC,MAAO,WACDxE,KAAKq8C,OACPr8C,KAAKq8C,KAAK+B,WAAWp+C,MACrBA,KAAKq8C,SAAOn5C,IAEVlD,KAAKs8C,KACPt8C,KAAKs8C,GAAG8B,WAAWp+C,MACnBA,KAAKs8C,OAAKp5C,IAGZlD,KAAKw8C,WAAY,KAUnBh6C,IAAK,WACLgC,MAAO,WACL,MAAOxE,MAAKiwB,SASdztB,IAAK,aACLgC,MAAO,WACL,MAAOxE,MAAKyjB,YASdjhB,IAAK,WACLgC,MAAO,WACL,MAAOxE,MAAKqP,QAAQ7K,SAYtBhC,IAAK,gBACLgC,MAAO,SAAuBH,EAAKC,EAAKC,GACtC,OAA2BrB,KAAvBlD,KAAKqP,QAAQ7K,MAAqB,CACpC,GAAIC,GAAQzE,KAAKqP,QAAQotB,QAAQC,sBAAsBr4B,EAAKC,EAAKC,EAAOvE,KAAKqP,QAAQ7K,OACjF65C,EAAYr+C,KAAKqP,QAAQotB,QAAQn4B,IAAMtE,KAAKqP,QAAQotB,QAAQp4B,GAChE,KAA2C,IAAvCrE,KAAKqP,QAAQotB,QAAQxgB,MAAMnM,QAAkB,CAC/C,GAAI8sB,GAAW58B,KAAKqP,QAAQotB,QAAQxgB,MAAM3X,IAAMtE,KAAKqP,QAAQotB,QAAQxgB,MAAM5X,GAC3ErE,MAAKqP,QAAQ2rB,KAAKhf,KAAOhc,KAAKqP,QAAQotB,QAAQxgB,MAAM5X,IAAMI,EAAQm4B,EAEpE58B,KAAKqP,QAAQ6C,MAAQlS,KAAKqP,QAAQotB,QAAQp4B,IAAMI,EAAQ45C,MAExDr+C,MAAKqP,QAAQ6C,MAAQlS,KAAKo8C,UAC1Bp8C,KAAKqP,QAAQ2rB,KAAKhf,KAAOhc,KAAK+6B,YAGhC/6B,MAAK28C,wBACL38C,KAAK27B,uBASPn5B,IAAK,wBACLgC,MAAO,WACkC,kBAA5BxE,MAAKqP,QAAQwuC,WACtB79C,KAAKu8C,SAASsB,WAAa79C,KAAKqP,QAAQwuC,WAAW79C,KAAKqP,QAAQ6C,OAEhElS,KAAKu8C,SAASsB,WAAa79C,KAAKqP,QAAQwuC,WAAa79C,KAAKqP,QAAQ6C,MAEzB,kBAAhClS,MAAKqP,QAAQuuC,eACtB59C,KAAKu8C,SAASqB,eAAiB59C,KAAKqP,QAAQuuC,eAAe59C,KAAKqP,QAAQ6C,OAExElS,KAAKu8C,SAASqB,eAAiB59C,KAAKqP,QAAQuuC,eAAiB59C,KAAKqP,QAAQ6C,SAY9E1P,IAAK,OACLgC,MAAO,SAAcsb,GACnB,GAAI7G,GAASjZ,KAAK68B,qBAClB,KAAI5jB,EAAO2R,OAAX,CAKA,GAAI0zB,GAAUt+C,KAAKu8C,SAASgC,aACxBC,IAGJx+C,MAAKu8C,SAASkC,UAAYz+C,KAAKu8C,SAASF,KACxCr8C,KAAKu8C,SAASmC,QAAU1+C,KAAKu8C,SAASD,GAGlCrjC,EAAO8jC,YACTyB,EAAUnC,KAAOr8C,KAAKu8C,SAASoC,aAAa7+B,EAAK,OAAQw+B,EAASt+C,KAAKyjB,SAAUzjB,KAAKkN,MAAO+L,IAC3D,IAA9BA,EAAOykC,qBAA8B19C,KAAKu8C,SAASkC,UAAYD,EAAUnC,KAAKhoC,OAEhF4E,EAAO4jC,UACT2B,EAAUlC,GAAKt8C,KAAKu8C,SAASoC,aAAa7+B,EAAK,KAAMw+B,EAASt+C,KAAKyjB,SAAUzjB,KAAKkN,MAAO+L,IACvD,IAA9BA,EAAOykC,qBAA8B19C,KAAKu8C,SAASmC,QAAUF,EAAUlC,GAAGjoC,OAI5E4E,EAAO+jC,cACTwB,EAAU/tC,OAASzQ,KAAKu8C,SAASoC,aAAa7+B,EAAK,SAAUw+B,EAASt+C,KAAKyjB,SAAUzjB,KAAKkN,MAAO+L,IAInGjZ,KAAKu8C,SAASqC,SAAS9+B,EAAK7G,EAAQjZ,KAAKyjB,SAAUzjB,KAAKkN,MAAOoxC,GAC/Dt+C,KAAK6+C,WAAW/+B,EAAK0+B,EAAWvlC,GAChCjZ,KAAK8+C,UAAUh/B,EAAKw+B,OAWtB97C,IAAK,aACLgC,MAAO,SAAoBsb,EAAK0+B,EAAWvlC,GACrCA,EAAO8jC,WACT/8C,KAAKu8C,SAASwC,cAAcj/B,EAAK7G,EAAQjZ,KAAKyjB,SAAUzjB,KAAKkN,MAAOsxC,EAAUnC,MAE5EpjC,EAAO+jC,aACTh9C,KAAKu8C,SAASwC,cAAcj/B,EAAK7G,EAAQjZ,KAAKyjB,SAAUzjB,KAAKkN,MAAOsxC,EAAU/tC,QAE5EwI,EAAO4jC,SACT78C,KAAKu8C,SAASwC,cAAcj/B,EAAK7G,EAAQjZ,KAAKyjB,SAAUzjB,KAAKkN,MAAOsxC,EAAUlC,OAWlF95C,IAAK,YACLgC,MAAO,SAAmBsb,EAAKw+B,GAC7B,OAA2Bp7C,KAAvBlD,KAAKqP,QAAQ4M,MAAqB,CAEpC,GAAI+iC,GAAQh/C,KAAKq8C,KACb4C,EAAQj/C,KAAKs8C,EAMjB,IAJIt8C,KAAKgiB,YAAY0B,eAAe1jB,KAAKyjB,SAAUzjB,KAAKkN,QACtDlN,KAAKgiB,YAAY2C,YAAY7E,EAAK9f,KAAKyjB,SAAUzjB,KAAKkN,OAGpD8xC,EAAM1oC,IAAM2oC,EAAM3oC,GAAI,CACxBtW,KAAKgiB,YAAYk9B,aAAc,CAC/B,IAAIpjC,GAAQ9b,KAAKu8C,SAAS4C,SAAS,GAAKb,EACxCx+B,GAAIkE,MAEJ,IAAI+Z,GAAgB/9B,KAAKo/C,aAAat/B,EACjC7a,OAAM84B,EAAcpuB,IAAO1K,MAAM84B,EAAcpiB,GAGlDmE,EAAIu/B,UAAUL,EAAMrvC,EAAGqvC,EAAMrjC,GAF7BmE,EAAIu/B,UAAUthB,EAAcpuB,EAAGouB,EAAcpiB,GAIpB,GAAvBoiB,EAAcxb,OAChBzC,EAAIw/B,OAAOvhB,EAAcxb,OAI3BviB,KAAKgiB,YAAY6D,KAAK/F,EAAKhE,EAAMnM,EAAGmM,EAAMH,EAAG3b,KAAKyjB,SAAUzjB,KAAKkN,OAWjE4S,EAAIsE,cACC,CAELpkB,KAAKgiB,YAAYk9B,aAAc,CAC/B,IAAIvvC,GAAGgM,EACHsG,EAASjiB,KAAKqP,QAAQkwC,iBACtBP,GAAMz5B,MAAMrT,MAAQ8sC,EAAMz5B,MAAMpT,QAClCxC,EAAIqvC,EAAMrvC,EAAwB,GAApBqvC,EAAMz5B,MAAMrT,MAC1ByJ,EAAIqjC,EAAMrjC,EAAIsG,IAEdtS,EAAIqvC,EAAMrvC,EAAIsS,EACdtG,EAAIqjC,EAAMrjC,EAAyB,GAArBqjC,EAAMz5B,MAAMpT,QAE5B2J,EAAQ9b,KAAKw/C,eAAe7vC,EAAGgM,EAAGsG,EAAQ,MAC1CjiB,KAAKgiB,YAAY6D,KAAK/F,EAAKhE,EAAMnM,EAAGmM,EAAMH,EAAG3b,KAAKyjB,SAAUzjB,KAAKkN,YAcvE1K,IAAK,kBACLgC,MAAO,SAAyBsX,GAC9B,GAAIghB,KAEJ,IAAI98B,KAAKgiB,YAAY+a,UAAW,CAC9B,GAAIgB,GAAgB/9B,KAAKo/C,cACrB3lB,GAAcuD,YAAYh9B,KAAKgiB,YAAYib,UAAWnhB,EAAOiiB,IAC/DjB,EAAI12B,MAAOq5C,OAAQz/C,KAAKsW,GAAI6mB,QAAS,IAIzC,GAAIl7B,IACFyF,KAAMoU,EAAMnM,EACZ7H,IAAKgU,EAAMH,EAOb,OAJI3b,MAAK0/C,kBAAkBz9C,IACzB66B,EAAI12B,MAAOq5C,OAAQz/C,KAAKsW,KAGnBwmB,KAUTt6B,IAAK,oBACLgC,MAAO,SAA2BvC,GAChC,GAAIjC,KAAKw8C,UAAW,CAClB,GACImD,GAAQ3/C,KAAKq8C,KAAK1sC,EAClBiwC,EAAQ5/C,KAAKq8C,KAAK1gC,EAClBkkC,EAAM7/C,KAAKs8C,GAAG3sC,EACdmwC,EAAM9/C,KAAKs8C,GAAG3gC,EACdokC,EAAO99C,EAAIyF,KACXs4C,EAAO/9C,EAAI6F,GAIf,OAFW9H,MAAKu8C,SAAS0D,kBAAkBN,EAAOC,EAAOC,EAAKC,EAAKC,EAAMC,GAR3D,GAYd,OAAO,KAaXx9C,IAAK,eACLgC,MAAO,SAAsBsb,GAC3B,GAAIw+B,GAAUt+C,KAAKu8C,SAASgC,aACxBziC,EAAQ9b,KAAKu8C,SAAS4C,SAAS,GAAKb,OAE5Bp7C,KAAR4c,GACF9f,KAAKgiB,YAAY2D,mBAAmB7F,EAAK9f,KAAKyjB,SAAUzjB,KAAKkN,MAAO4O,EAAMnM,EAAGmM,EAAMH,EAGrF,IAAImhB,IACFntB,EAAGmM,EAAMnM,EACTgM,EAAG3b,KAAKgiB,YAAYhG,KAAKkkC,MACzB39B,MAAO,EAGT,KAAKviB,KAAKgiB,YAAY+a,UACpB,MAAOD,EAGT,IAAgC,eAA5B98B,KAAKqP,QAAQ2rB,KAAKkZ,MACpB,MAAOpX,EAGT,IAAIqjB,GAAKngD,KAAKq8C,KAAK1gC,EAAI3b,KAAKs8C,GAAG3gC,EAC3BykC,EAAKpgD,KAAKq8C,KAAK1sC,EAAI3P,KAAKs8C,GAAG3sC,EAC3B4S,EAAQ7d,KAAK27C,MAAMF,EAAIC,EAQ3B,QALI79B,GAAS,GAAK69B,EAAK,GAAK79B,EAAQ,GAAK69B,EAAK,KAC5C79B,GAAS7d,KAAK47C,IAEhBxjB,EAAIva,MAAQA,EAELua,KAcTt6B,IAAK,iBACLgC,MAAO,SAAwBmL,EAAGgM,EAAGsG,EAAQgnB,GAC3C,GAAI1mB,GAAqB,EAAb0mB,EAAiBvkC,KAAK47C,EAClC,QACE3wC,EAAGA,EAAIsS,EAASvd,KAAKie,IAAIJ,GACzB5G,EAAGA,EAAIsG,EAASvd,KAAKke,IAAIL,OAS7B/f,IAAK,SACLgC,MAAO,WACLxE,KAAKyjB,UAAW,KAQlBjhB,IAAK,WACLgC,MAAO,WACLxE,KAAKyjB,UAAW,KASlBjhB,IAAK,UACLgC,MAAO,WACL,MAAOxE,MAAKu8C,SAASyB,aAQvBx7C,IAAK,SACLgC,MAAO,WACLxE,KAAKg+C,UACLh+C,KAAKi+C,mBACEj+C,MAAKyS,KAAKooB,MAAM76B,KAAKsW,OAS9B9T,IAAK,iBACLgC,MAAO,WACL,WAAwCtB,KAAjClD,KAAKyS,KAAKyrC,MAAMl+C,KAAKi8C,aAAwD/4C,KAA/BlD,KAAKyS,KAAKyrC,MAAMl+C,KAAKk8C,WAG5E15C,IAAK,eACLgC,MAAO,SAAsB44B,EAAeC,GAC1C,GAAIr6B,GAAgBuC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAC/E+J,EAAgB/J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,MAC/Eg7C,EAAkBh7C,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAEjFmJ,GAAU,qBAAsB,KAAM,OAAQ,SAAU,aAAc,qBAAsB,SAAU,OAAQ,UAAW,UAAW,UAAW,iBAAkB,oBAAqB,KAAM,QAAS,QAAS,QAAS,OAAQ,SAAU,kBAmC7O,IAhCAmH,EAAK/P,oBAAoB4I,EAAQ0uB,EAAeC,EAAYr6B,GAGxDy2B,EAAc+mB,aAAanjB,EAAWphB,OACxCmhB,EAAcnhB,MAAQohB,EAAWphB,MAEjCmhB,EAAcnhB,UAAQ/Y,GAGxB2S,EAAK1G,aAAaiuB,EAAeC,EAAY,SAAU/tB,GACvDuG,EAAK1G,aAAaiuB,EAAeC,EAAY,SAAU/tB,OAE7BpM,KAAtBm6B,EAAW9Z,QAA8C,OAAtB8Z,EAAW9Z,OAChD6Z,EAAc7Z,OAAS8Z,EAAW9Z,QACP,IAAlBvgB,GAAgD,OAAtBq6B,EAAW9Z,SAC9C6Z,EAAc7Z,QAAS,EAAIjgB,EAAkB,SAAGgM,EAAciU,aAIrCrgB,KAAvBm6B,EAAWZ,SAAgD,OAAvBY,EAAWZ,aAClBv5B,KAA3Bm6B,EAAWZ,QAAQp4B,MACrB+4B,EAAcX,QAAQp4B,IAAMg5B,EAAWZ,QAAQp4B,SAElBnB,KAA3Bm6B,EAAWZ,QAAQn4B,MACrB84B,EAAcX,QAAQn4B,IAAM+4B,EAAWZ,QAAQn4B,KAEjDuR,EAAK1G,aAAaiuB,EAAcX,QAASY,EAAWZ,QAAS,QAASntB,EAAcmtB,WACzD,IAAlBz5B,GAAiD,OAAvBq6B,EAAWZ,UAC9CW,EAAcX,SAAU,EAAIn5B,EAAkB,SAAGgM,EAAcmtB,cAIvCv5B,KAAtBm6B,EAAWyf,QAA8C,OAAtBzf,EAAWyf,OAChD,GAAiC,gBAAtBzf,GAAWyf,OAAqB,CACzC,GAAIA,GAASzf,EAAWyf,OAAOj+B,aAC/Bue,GAAc0f,OAAOR,GAAGxsC,SAAmC,GAAzBgtC,EAAO32C,QAAQ,MACjDi3B,EAAc0f,OAAOrsC,OAAOX,SAAuC,GAA7BgtC,EAAO32C,QAAQ,UACrDi3B,EAAc0f,OAAOT,KAAKvsC,SAAqC,GAA3BgtC,EAAO32C,QAAQ,YAC9C,CAAA,GAAoD,YAAhD,EAAIzC,EAAkB,SAAG25B,EAAWyf,QAK7C,KAAM,IAAIj3C,OAAM,iGAAkG,EAAI+P,EAAqB,SAAGynB,EAAWyf,QAJzJjnC,GAAK1G,aAAaiuB,EAAc0f,OAAQzf,EAAWyf,OAAQ,KAAMxtC,EAAcwtC,QAC/EjnC,EAAK1G,aAAaiuB,EAAc0f,OAAQzf,EAAWyf,OAAQ,SAAUxtC,EAAcwtC,QACnFjnC,EAAK1G,aAAaiuB,EAAc0f,OAAQzf,EAAWyf,OAAQ,OAAQxtC,EAAcwtC,aAIxD,IAAlB95C,GAAgD,OAAtBq6B,EAAWyf,SAC9C1f,EAAc0f,QAAS,EAAIx5C,EAAkB,SAAGgM,EAAcwtC,QAIhE,QAAyB55C,KAArBm6B,EAAW7xB,OAA4C,OAArB6xB,EAAW7xB,MAAgB,CAC/D,GAAIi1C,GAAYpjB,EAAW7xB,MACvBk1C,EAAUtjB,EAAc5xB,KAG5B,IAAI+0C,EACF1qC,EAAK7P,WAAW06C,EAASpxC,EAAc9D,OAAO,EAAOxI,OAGrD,KAAK,GAAI3C,KAAKqgD,GACRA,EAAQl/C,eAAenB,UAClBqgD,GAAQrgD,EAKrB,IAAIwV,EAAKlR,SAAS+7C,GAChBA,EAAQl1C,MAAQk1C,EAChBA,EAAQzzC,UAAYyzC,EACpBA,EAAQxzC,MAAQwzC,EAChBA,EAAQxD,SAAU,MACQh6C,KAAtBu9C,EAAUh1C,UACZi1C,EAAQj1C,QAAU,OAEf,CACL,GAAIk1C,IAAgB,MACIz9C,KAApBu9C,EAAUj1C,QACZk1C,EAAQl1C,MAAQi1C,EAAUj1C,MAAMm1C,GAAgB,OAEtBz9C,KAAxBu9C,EAAUxzC,YACZyzC,EAAQzzC,UAAYwzC,EAAUxzC,UAAU0zC,GAAgB,OAElCz9C,KAApBu9C,EAAUvzC,QACZwzC,EAAQxzC,MAAQuzC,EAAUvzC,MAAMyzC,GAAgB,OAExBz9C,KAAtBu9C,EAAUvD,UACZwD,EAAQxD,QAAUuD,EAAUvD,aAEJh6C,KAAtBu9C,EAAUh1C,UACZi1C,EAAQj1C,QAAU/G,KAAKL,IAAI,EAAGK,KAAKJ,IAAI,EAAGm8C,EAAUh1C,YAGhC,IAAlBk1C,EACFD,EAAQxD,SAAU,MAEMh6C,KAApBw9C,EAAQxD,UACVwD,EAAQxD,QAAU,cAIG,IAAlBl6C,GAA+C,OAArBq6B,EAAW7xB,QAC9C4xB,EAAc5xB,MAAQqK,EAAKhH,aAAaS,EAAc9D,SAGlC,IAAlBxI,GAA8C,OAApBq6B,EAAWrC,OACvCoC,EAAcpC,KAAOnlB,EAAKhH,aAAaS,EAAc0rB,WAIpDghB,IAGTr8C,GAAiB,QAAIq8C,GAIf,SAAUp8C,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpC47B,EAAa1gD,EAAoB,KAEjC2gD,EAAal+C,EAAuBi+C,GAUpCE,EAAiB,SAAUC,GAQ7B,QAASD,GAAezxC,EAASoD,EAAMuP,GAErC,OADA,EAAItF,EAA0B,SAAG1c,KAAM8gD,IAChC,EAAI/7B,EAAqC,SAAG/kB,MAAO8gD,EAAe9sC,YAAa,EAAI6Q,EAA0B,SAAGi8B,IAAiBvgD,KAAKP,KAAMqP,EAASoD,EAAMuP,IA2JpK,OApKA,EAAIiD,EAAoB,SAAG67B,EAAgBC,IAuB3C,EAAInkC,EAAuB,SAAGkkC,IAC5Bt+C,IAAK,4BACLgC,MAAO,SAAmCw8C,EAAUlhC,GAClD,GAMImhC,GAAK1+B,EAAOga,EAAkB2kB,EAAiBC,EAN/C7C,EAAU/4C,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKohD,qBAGnF9wC,EAAY,EACZC,EAAM,EACNC,EAAO,EAGP6wC,EAAOrhD,KAAKs8C,GACZD,GAAO,CAMX,KALI2E,EAAS1qC,KAAOtW,KAAKq8C,KAAK/lC,KAC5B+qC,EAAOrhD,KAAKq8C,KACZA,GAAO,GAGF9rC,GAAOC,GAAQF,EAbF,IAa6B,CAC/C,GAAIG,GAAwB,IAAdF,EAAMC,EAOpB,IALAywC,EAAMjhD,KAAKm/C,SAAS1uC,EAAQ6tC,GAC5B/7B,EAAQ7d,KAAK27C,MAAMgB,EAAK1lC,EAAIslC,EAAItlC,EAAG0lC,EAAK1xC,EAAIsxC,EAAItxC,GAChD4sB,EAAmB8kB,EAAK9kB,iBAAiBzc,EAAKyC,GAC9C2+B,EAAkBx8C,KAAK2iB,KAAK3iB,KAAK48C,IAAIL,EAAItxC,EAAI0xC,EAAK1xC,EAAG,GAAKjL,KAAK48C,IAAIL,EAAItlC,EAAI0lC,EAAK1lC,EAAG,IACnFwlC,EAAa5kB,EAAmB2kB,EAC5Bx8C,KAAKge,IAAIy+B,GAhBC,GAiBZ,KACSA,GAAa,GAET,IAAT9E,EACF9rC,EAAME,EAEND,EAAOC,GAGI,IAAT4rC,EACF7rC,EAAOC,EAEPF,EAAME,EAIVH,IAIF,MAFA2wC,GAAI5yC,EAAIoC,EAEDwwC,KAmBTz+C,IAAK,2BACLgC,MAAO,SAAkC+8C,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAE/D,GAAIC,GAAc,IACdtjC,MAAW,GACXne,MAAI,GACJgO,MAAI,GACJsB,MAAI,GACJgM,MAAI,GACJomC,EAAQR,EACRS,EAAQR,CACZ,KAAKnhD,EAAI,EAAGA,EAAI,GAAIA,IAClBgO,EAAI,GAAMhO,EACVsP,EAAIjL,KAAK48C,IAAI,EAAIjzC,EAAG,GAAKkzC,EAAK,EAAIlzC,GAAK,EAAIA,GAAKwzC,EAAIlyC,EAAIjL,KAAK48C,IAAIjzC,EAAG,GAAKozC,EACzE9lC,EAAIjX,KAAK48C,IAAI,EAAIjzC,EAAG,GAAKmzC,EAAK,EAAInzC,GAAK,EAAIA,GAAKwzC,EAAIlmC,EAAIjX,KAAK48C,IAAIjzC,EAAG,GAAKqzC,EACrErhD,EAAI,IACNme,EAAWxe,KAAKiiD,mBAAmBF,EAAOC,EAAOryC,EAAGgM,EAAGgmC,EAAIC,GAC3DE,EAActjC,EAAWsjC,EAActjC,EAAWsjC,GAEpDC,EAAQpyC,EACRqyC,EAAQrmC,CAGV,OAAOmmC,MAkBTt/C,IAAK,eACLgC,MAAO,SAAsBsb,EAAK7G,EAAQipC,EAAUC,GAClD,GAAIC,OAAwBl/C,KAAbg/C,OAAyCh/C,KAAfg/C,EAASvyC,EAC9C0yC,MAAwBn/C,KAAbi/C,OAAyCj/C,KAAfi/C,EAASxyC,CAElDmQ,GAAIwiC,YACJxiC,EAAI8kB,OAAO5kC,KAAKy+C,UAAU9uC,EAAG3P,KAAKy+C,UAAU9iC,GAExCymC,GAAYC,EACdviC,EAAIyiC,cAAcL,EAASvyC,EAAGuyC,EAASvmC,EAAGwmC,EAASxyC,EAAGwyC,EAASxmC,EAAG3b,KAAK0+C,QAAQ/uC,EAAG3P,KAAK0+C,QAAQ/iC,GACtFymC,EACTtiC,EAAI0iC,iBAAiBN,EAASvyC,EAAGuyC,EAASvmC,EAAG3b,KAAK0+C,QAAQ/uC,EAAG3P,KAAK0+C,QAAQ/iC,GAG1EmE,EAAI2iC,OAAOziD,KAAK0+C,QAAQ/uC,EAAG3P,KAAK0+C,QAAQ/iC,GAI1C3b,KAAKqkB,aAAavE,EAAK7G,GACvB6G,EAAIoE,SACJlkB,KAAKukB,cAAczE,EAAK7G,MAS1BzW,IAAK,aACLgC,MAAO,WACL,MAAOxE,MAAKohD,yBAGTN,GACPD,EAAoB,QAEtBlhD,GAAiB,QAAImhD,GAIf,SAAUlhD,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAM3BwiD,EAAc,WAIhB,QAASA,MACP,EAAIhmC,EAA0B,SAAG1c,KAAM0iD,GA8HzC,OAjHA,EAAI9lC,EAAuB,SAAG8lC,EAAa,OACzClgD,IAAK,WACLgC,MAAO,SAAkBm+C,GACvB,GAMItB,GANAuB,EAAgBr9C,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,MAE/Es9C,EAAO,IACPC,GAAQ,IACRC,EAAO,IACPC,GAAQ,GAEZ,IAAIJ,EAAcvgD,OAAS,EACzB,IAAK,GAAIhC,GAAI,EAAGA,EAAIuiD,EAAcvgD,OAAQhC,IACxCghD,EAAOsB,EAASC,EAAcviD,IAC1B0iD,EAAO1B,EAAK97B,MAAMnD,YAAY1a,OAChCq7C,EAAO1B,EAAK97B,MAAMnD,YAAY1a,MAE5Bs7C,EAAO3B,EAAK97B,MAAMnD,YAAYxa,QAChCo7C,EAAO3B,EAAK97B,MAAMnD,YAAYxa,OAE5Bi7C,EAAOxB,EAAK97B,MAAMnD,YAAYta,MAChC+6C,EAAOxB,EAAK97B,MAAMnD,YAAYta,KAE5Bg7C,EAAOzB,EAAK97B,MAAMnD,YAAYC,SAChCygC,EAAOzB,EAAK97B,MAAMnD,YAAYC,OAQpC,OAHa,OAAT0gC,IAA0B,MAAVC,GAA0B,MAATH,IAA0B,MAAVC,IACnDD,EAAO,EAAGC,EAAO,EAAGC,EAAO,EAAGC,EAAO,IAE9BD,KAAMA,EAAMC,KAAMA,EAAMH,KAAMA,EAAMC,KAAMA,MAarDtgD,IAAK,eACLgC,MAAO,SAAsBm+C,GAC3B,GAMItB,GANAuB,EAAgBr9C,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,MAE/Es9C,EAAO,IACPC,GAAQ,IACRC,EAAO,IACPC,GAAQ,GAEZ,IAAIJ,EAAcvgD,OAAS,EACzB,IAAK,GAAIhC,GAAI,EAAGA,EAAIuiD,EAAcvgD,OAAQhC,IACxCghD,EAAOsB,EAASC,EAAcviD,IAC1B0iD,EAAO1B,EAAK1xC,IACdozC,EAAO1B,EAAK1xC,GAEVqzC,EAAO3B,EAAK1xC,IACdqzC,EAAO3B,EAAK1xC,GAEVkzC,EAAOxB,EAAK1lC,IACdknC,EAAOxB,EAAK1lC,GAEVmnC,EAAOzB,EAAK1lC,IACdmnC,EAAOzB,EAAK1lC,EAQlB,OAHa,OAATonC,IAA0B,MAAVC,GAA0B,MAATH,IAA0B,MAAVC,IACnDD,EAAO,EAAGC,EAAO,EAAGC,EAAO,EAAGC,EAAO,IAE9BD,KAAMA,EAAMC,KAAMA,EAAMH,KAAMA,EAAMC,KAAMA,MAUrDtgD,IAAK,aACLgC,MAAO,SAAoB8kB,GACzB,OAAS3Z,EAAG,IAAO2Z,EAAM05B,KAAO15B,EAAMy5B,MACpCpnC,EAAG,IAAO2N,EAAMw5B,KAAOx5B,EAAMu5B,UAYjCrgD,IAAK,eACLgC,MAAO,SAAsBkM,EAAMjK,GACjC,GAAIw8C,KASJ,YARa//C,KAATuD,GAA+B,SAATA,GACxBoP,EAAK7P,WAAWi9C,EAAevyC,EAAKrB,SAAS,GAC7C4zC,EAActzC,EAAIe,EAAKf,EACvBszC,EAActnC,EAAIjL,EAAKiL,EACvBsnC,EAAcC,oBAAsBxyC,EAAKmqB,MAAMx4B,QAE/CwT,EAAK7P,WAAWi9C,EAAevyC,EAAKrB,SAAS,GAExC4zC,MAGJP,IAGT/iD,GAAiB,QAAI+iD,GAIf,SAAU9iD,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAGjC,GAAIijD,GAAMjjD,EAAoB,GAE9BN,GAAOD,QAAUmB,OAAO,KAAKwxB,qBAAqB,GAAKxxB,OAAS,SAAUghB,GACxE,MAAkB,UAAXqhC,EAAIrhC,GAAkBA,EAAG3Z,MAAM,IAAMrH,OAAOghB,KAM/C,SAAUliB,EAAQD,EAASO,GAIjC,GAAI+/B,GAAU//B,EAAoB,IAC9B+f,EAAU/f,EAAoB,IAC9BkjD,EAAWljD,EAAoB,IAC/B6f,EAAO7f,EAAoB,IAC3B+9B,EAAY/9B,EAAoB,IAChCmjD,EAAcnjD,EAAoB,KAClCojD,EAAiBpjD,EAAoB,IACrCqjD,EAAiBrjD,EAAoB,IACrCsjD,EAAWtjD,EAAoB,IAAI,YACnCujD,OAAa78B,MAAQ,WAAaA,QAKlC88B,EAAa,WAAc,MAAO1jD,MAEtCJ,GAAOD,QAAU,SAAUgkD,EAAMvlB,EAAMv8B,EAAa0R,EAAMqwC,EAASC,EAAQC,GACzET,EAAYxhD,EAAau8B,EAAM7qB,EAC/B,IAeIsf,GAASrwB,EAAKuhD,EAfdC,EAAY,SAAUC,GACxB,IAAKR,GAASQ,IAAQ3lB,GAAO,MAAOA,GAAM2lB,EAC1C,QAAQA,GACN,IAVK,OAWL,IAVO,SAUM,MAAO,YAAoB,MAAO,IAAIpiD,GAAY7B,KAAMikD,IACrE,MAAO,YAAqB,MAAO,IAAIpiD,GAAY7B,KAAMikD,KAEzDtkB,EAAMvB,EAAO,YACb8lB,EAdO,UAcMN,EACbO,GAAa,EACb7lB,EAAQqlB,EAAKpiD,UACb6iD,EAAU9lB,EAAMklB,IAAallB,EAnBjB,eAmBuCslB,GAAWtlB,EAAMslB,GACpES,EAAWD,GAAWJ,EAAUJ,GAChCU,EAAWV,EAAWM,EAAwBF,EAAU,WAArBK,MAAkCnhD,GACrEqhD,EAAqB,SAARnmB,EAAkBE,EAAMkmB,SAAWJ,EAAUA,CAwB9D,IArBIG,IACFR,EAAoBR,EAAegB,EAAWhkD,KAAK,GAAIojD,QAC7B7iD,OAAOS,WAAawiD,EAAkBxwC,OAE9D+vC,EAAeS,EAAmBpkB,GAAK,GAElCM,GAAiD,kBAA/B8jB,GAAkBP,IAAyBzjC,EAAKgkC,EAAmBP,EAAUE,IAIpGQ,GAAcE,GAjCP,WAiCkBA,EAAQzjD,OACnCwjD,GAAa,EACbE,EAAW,WAAoB,MAAOD,GAAQ7jD,KAAKP,QAG/CigC,IAAW6jB,IAAYL,IAASU,GAAe7lB,EAAMklB,IACzDzjC,EAAKue,EAAOklB,EAAUa,GAGxBpmB,EAAUG,GAAQimB,EAClBpmB,EAAU0B,GAAO+jB,EACbE,EAMF,GALA/wB,GACE5Z,OAAQirC,EAAaG,EAAWL,EA9CzB,UA+CPp9B,KAAMi9B,EAASQ,EAAWL,EAhDrB,QAiDLQ,QAASF,GAEPR,EAAQ,IAAKthD,IAAOqwB,GAChBrwB,IAAO87B,IAAQ8kB,EAAS9kB,EAAO97B,EAAKqwB,EAAQrwB,QAC7Cyd,GAAQA,EAAQW,EAAIX,EAAQK,GAAKmjC,GAASU,GAAa/lB,EAAMvL,EAEtE,OAAOA,KAMH,SAAUjzB,EAAQD,EAASO,GAGjC,GAAIukD,GAAYvkD,EAAoB,IACpCN,GAAOD,QAAU,SAAUqJ,EAAI07C,EAAMriD,GAEnC,GADAoiD,EAAUz7C,OACG9F,KAATwhD,EAAoB,MAAO17C,EAC/B,QAAQ3G,GACN,IAAK,GAAG,MAAO,UAAUQ,GACvB,MAAOmG,GAAGzI,KAAKmkD,EAAM7hD,GAEvB,KAAK,GAAG,MAAO,UAAUA,EAAGC,GAC1B,MAAOkG,GAAGzI,KAAKmkD,EAAM7hD,EAAGC,GAE1B,KAAK,GAAG,MAAO,UAAUD,EAAGC,EAAGrC,GAC7B,MAAOuI,GAAGzI,KAAKmkD,EAAM7hD,EAAGC,EAAGrC,IAG/B,MAAO,YACL,MAAOuI,GAAG2Q,MAAM+qC,EAAMn/C,cAOpB,SAAU3F,EAAQD,EAASO,GAEjCN,EAAOD,SAAWO,EAAoB,MAAQA,EAAoB,IAAI,WACpE,MAA2G,IAApGY,OAAOC,eAAeb,EAAoB,IAAI,OAAQ,KAAOgB,IAAK,WAAc,MAAO,MAAQ2B,KAMlG,SAAUjD,EAAQD,EAASO,GAEjC,GAAIsP,GAAWtP,EAAoB,IAC/B8R,EAAW9R,EAAoB,IAAI8R,SAEnC2yC,EAAKn1C,EAASwC,IAAaxC,EAASwC,EAASC,cACjDrS,GAAOD,QAAU,SAAUmiB,GACzB,MAAO6iC,GAAK3yC,EAASC,cAAc6P,QAM/B,SAAUliB,EAAQD,EAASO,GAEjCN,EAAOD,QAAUO,EAAoB,KAK/B,SAAUN,EAAQD,EAASO,GAEjC,GAAI8f,GAAM9f,EAAoB,IAC1B0kD,EAAY1kD,EAAoB,IAChC2kD,EAAe3kD,EAAoB,MAAK,GACxCu+B,EAAWv+B,EAAoB,IAAI,WAEvCN,GAAOD,QAAU,SAAU0B,EAAQyjD,GACjC,GAGItiD,GAHAof,EAAIgjC,EAAUvjD,GACdhB,EAAI,EACJgL,IAEJ,KAAK7I,IAAOof,GAAOpf,GAAOi8B,GAAUze,EAAI4B,EAAGpf,IAAQ6I,EAAOjF,KAAK5D,EAE/D,MAAOsiD,EAAMziD,OAAShC,GAAO2f,EAAI4B,EAAGpf,EAAMsiD,EAAMzkD,SAC7CwkD,EAAax5C,EAAQ7I,IAAQ6I,EAAOjF,KAAK5D,GAE5C,OAAO6I,KAMH,SAAUzL,EAAQD,EAASO,GAGjC,GAAI8f,GAAM9f,EAAoB,IAC1B6kD,EAAW7kD,EAAoB,IAC/Bu+B,EAAWv+B,EAAoB,IAAI,YACnC8kD,EAAclkD,OAAOS,SAEzB3B,GAAOD,QAAUmB,OAAOyiD,gBAAkB,SAAU3hC,GAElD,MADAA,GAAImjC,EAASnjC,GACT5B,EAAI4B,EAAG6c,GAAkB7c,EAAE6c,GACH,kBAAjB7c,GAAE7b,aAA6B6b,YAAaA,GAAE7b,YAChD6b,EAAE7b,YAAYxE,UACdqgB,YAAa9gB,QAASkkD,EAAc,OAMzC,SAAUplD,EAAQD,EAASO,GAGjC,GAAIijD,GAAMjjD,EAAoB,IAC1By/B,EAAMz/B,EAAoB,IAAI,eAE9B+kD,EAAkD,aAA5C9B,EAAI,WAAc,MAAO59C,eAG/B2/C,EAAS,SAAUpjC,EAAItf,GACzB,IACE,MAAOsf,GAAGtf,GACV,MAAO+H,KAGX3K,GAAOD,QAAU,SAAUmiB,GACzB,GAAIF,GAAGujC,EAAGrkC,CACV,YAAc5d,KAAP4e,EAAmB,YAAqB,OAAPA,EAAc,OAEN,iBAApCqjC,EAAID,EAAOtjC,EAAI9gB,OAAOghB,GAAK6d,IAAoBwlB,EAEvDF,EAAM9B,EAAIvhC,GAEM,WAAfd,EAAIqiC,EAAIvhC,KAAsC,kBAAZA,GAAEwjC,OAAuB,YAActkC,IAM1E,SAAUlhB,EAAQD,EAASO,GAGjC,GAAI+f,GAAU/f,EAAoB,IAC9BmU,EAAOnU,EAAoB,GAC3BmlD,EAAQnlD,EAAoB,GAChCN,GAAOD,QAAU,SAAU2lD,EAAKtgD,GAC9B,GAAIgE,IAAMqL,EAAKvT,YAAcwkD,IAAQxkD,OAAOwkD,GACxCC,IACJA,GAAID,GAAOtgD,EAAKgE,GAChBiX,EAAQA,EAAQS,EAAIT,EAAQK,EAAI+kC,EAAM,WAAcr8C,EAAG,KAAQ,SAAUu8C,KAMrE,SAAU3lD,EAAQD,EAASO,GAGjC,GAAIwmB,GAAQxmB,EAAoB,IAC5BslD,EAAatlD,EAAoB,IAAImI,OAAO,SAAU,YAE1D1I,GAAQwO,EAAIrN,OAAO2kD,qBAAuB,SAA6B7jC,GACrE,MAAO8E,GAAM9E,EAAG4jC,KAMZ,SAAU5lD,EAAQD,EAASO,GAEjC,GAAIwlD,GAAMxlD,EAAoB,IAC1B+lB,EAAa/lB,EAAoB,IACjC0kD,EAAY1kD,EAAoB,IAChCwhB,EAAcxhB,EAAoB,IAClC8f,EAAM9f,EAAoB,IAC1BuhB,EAAiBvhB,EAAoB,IACrCylD,EAAO7kD,OAAO8kD,wBAElBjmD,GAAQwO,EAAIjO,EAAoB,IAAMylD,EAAO,SAAkC/jC,EAAGhB,GAGhF,GAFAgB,EAAIgjC,EAAUhjC,GACdhB,EAAIc,EAAYd,GAAG,GACfa,EAAgB,IAClB,MAAOkkC,GAAK/jC,EAAGhB,GACf,MAAOrW,IACT,GAAIyV,EAAI4B,EAAGhB,GAAI,MAAOqF,IAAYy/B,EAAIv3C,EAAE5N,KAAKqhB,EAAGhB,GAAIgB,EAAEhB,MAMlD,SAAUhhB,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAUjC,QAAS2lD,GAAQl2C,EAAGgM,GAClB3b,KAAK2P,MAAUzM,KAANyM,EAAkBA,EAAI,EAC/B3P,KAAK2b,MAAUzY,KAANyY,EAAkBA,EAAI,EAGjC/b,EAAOD,QAAUkmD,GAIX,SAAUjmD,EAAQD,EAASO,GAgBjC,QAAS4lD,GAAOp+B,EAAWrY,GACzB,OAAkBnM,KAAdwkB,EACF,KAAM,IAAI7hB,OAAM,+BAKlB,IAHA7F,KAAK0nB,UAAYA,EACjB1nB,KAAK+8B,SAAU1tB,OAA8BnM,IAAnBmM,EAAQ0tB,SAAuB1tB,EAAQ0tB,QAE7D/8B,KAAK+8B,QAAS,CAChB/8B,KAAKkzC,MAAQlhC,SAASC,cAAc,OAEpCjS,KAAKkzC,MAAMzlC,MAAMyE,MAAQ,OACzBlS,KAAKkzC,MAAMzlC,MAAM4E,SAAW,WAC5BrS,KAAK0nB,UAAUlV,YAAYxS,KAAKkzC,OAEhClzC,KAAKkzC,MAAM5G,KAAOt6B,SAASC,cAAc,SACzCjS,KAAKkzC,MAAM5G,KAAK7lC,KAAO,SACvBzG,KAAKkzC,MAAM5G,KAAK9nC,MAAQ,OACxBxE,KAAKkzC,MAAM1gC,YAAYxS,KAAKkzC,MAAM5G,MAElCtsC,KAAKkzC,MAAM6S,KAAO/zC,SAASC,cAAc,SACzCjS,KAAKkzC,MAAM6S,KAAKt/C,KAAO,SACvBzG,KAAKkzC,MAAM6S,KAAKvhD,MAAQ,OACxBxE,KAAKkzC,MAAM1gC,YAAYxS,KAAKkzC,MAAM6S,MAElC/lD,KAAKkzC,MAAM3/B,KAAOvB,SAASC,cAAc,SACzCjS,KAAKkzC,MAAM3/B,KAAK9M,KAAO,SACvBzG,KAAKkzC,MAAM3/B,KAAK/O,MAAQ,OACxBxE,KAAKkzC,MAAM1gC,YAAYxS,KAAKkzC,MAAM3/B,MAElCvT,KAAKkzC,MAAM1a,IAAMxmB,SAASC,cAAc,SACxCjS,KAAKkzC,MAAM1a,IAAI/xB,KAAO,SACtBzG,KAAKkzC,MAAM1a,IAAI/qB,MAAM4E,SAAW,WAChCrS,KAAKkzC,MAAM1a,IAAI/qB,MAAMT,OAAS,gBAC9BhN,KAAKkzC,MAAM1a,IAAI/qB,MAAMyE,MAAQ,QAC7BlS,KAAKkzC,MAAM1a,IAAI/qB,MAAM0E,OAAS,MAC9BnS,KAAKkzC,MAAM1a,IAAI/qB,MAAM2uB,aAAe,MACpCp8B,KAAKkzC,MAAM1a,IAAI/qB,MAAMu4C,gBAAkB,MACvChmD,KAAKkzC,MAAM1a,IAAI/qB,MAAMT,OAAS,oBAC9BhN,KAAKkzC,MAAM1a,IAAI/qB,MAAMyqC,gBAAkB,UACvCl4C,KAAKkzC,MAAM1gC,YAAYxS,KAAKkzC,MAAM1a,KAElCx4B,KAAKkzC,MAAM+S,MAAQj0C,SAASC,cAAc,SAC1CjS,KAAKkzC,MAAM+S,MAAMx/C,KAAO,SACxBzG,KAAKkzC,MAAM+S,MAAMx4C,MAAMyU,OAAS,MAChCliB,KAAKkzC,MAAM+S,MAAMzhD,MAAQ,IACzBxE,KAAKkzC,MAAM+S,MAAMx4C,MAAM4E,SAAW,WAClCrS,KAAKkzC,MAAM+S,MAAMx4C,MAAM/F,KAAO,SAC9B1H,KAAKkzC,MAAM1gC,YAAYxS,KAAKkzC,MAAM+S,MAGlC,IAAIzvC,GAAKxW,IACTA,MAAKkzC,MAAM+S,MAAMC,YAAc,SAAUp8C,GACvC0M,EAAG2vC,aAAar8C,IAElB9J,KAAKkzC,MAAM5G,KAAK4J,QAAU,SAAUpsC,GAClC0M,EAAG81B,KAAKxiC,IAEV9J,KAAKkzC,MAAM6S,KAAK7P,QAAU,SAAUpsC,GAClC0M,EAAG4vC,WAAWt8C,IAEhB9J,KAAKkzC,MAAM3/B,KAAK2iC,QAAU,SAAUpsC,GAClC0M,EAAGjD,KAAKzJ,IAIZ9J,KAAKqmD,qBAAmBnjD,GAExBlD,KAAKiZ,UACLjZ,KAAKm7B,UAAQj4B,GAEblD,KAAKsmD,gBAAcpjD,GACnBlD,KAAKumD,aAAe,IACpBvmD,KAAKwmD,UAAW,EAnFlB,GAAI3wC,GAAO3V,EAAoB,EAyF/B4lD,GAAOvkD,UAAU+qC,KAAO,WACtB,GAAInR,GAAQn7B,KAAKymD,UACbtrB,GAAQ,IACVA,IACAn7B,KAAK0mD,SAASvrB,KAOlB2qB,EAAOvkD,UAAUgS,KAAO,WACtB,GAAI4nB,GAAQn7B,KAAKymD,UACbtrB,GAAQn7B,KAAKiZ,OAAO5W,OAAS,IAC/B84B,IACAn7B,KAAK0mD,SAASvrB,KAOlB2qB,EAAOvkD,UAAUolD,SAAW,WAC1B,GAAI19B,GAAQ,GAAInkB,MAEZq2B,EAAQn7B,KAAKymD,UACbtrB,GAAQn7B,KAAKiZ,OAAO5W,OAAS,GAC/B84B,IACAn7B,KAAK0mD,SAASvrB,IACLn7B,KAAKwmD,WAEdrrB,EAAQ,EACRn7B,KAAK0mD,SAASvrB,GAGhB,IAAIjS,GAAM,GAAIpkB,MACVqlB,EAAOjB,EAAMD,EAIb6Y,EAAWp9B,KAAKJ,IAAItE,KAAKumD,aAAep8B,EAAM,GAG9C3T,EAAKxW,IACTA,MAAKsmD,YAAcnzB,WAAW,WAC5B3c,EAAGmwC,YACF7kB,IAMLgkB,EAAOvkD,UAAU6kD,WAAa,eACHljD,KAArBlD,KAAKsmD,YACPtmD,KAAK+lD,OAEL/lD,KAAK0tC,QAOToY,EAAOvkD,UAAUwkD,KAAO,WAElB/lD,KAAKsmD,cAETtmD,KAAK2mD,WAED3mD,KAAKkzC,QACPlzC,KAAKkzC,MAAM6S,KAAKvhD,MAAQ,UAO5BshD,EAAOvkD,UAAUmsC,KAAO,WACtBtC,cAAcprC,KAAKsmD,aACnBtmD,KAAKsmD,gBAAcpjD,GAEflD,KAAKkzC,QACPlzC,KAAKkzC,MAAM6S,KAAKvhD,MAAQ,SAU5BshD,EAAOvkD,UAAUqlD,oBAAsB,SAAUj+C,GAC/C3I,KAAKqmD,iBAAmB19C,GAO1Bm9C,EAAOvkD,UAAUslD,gBAAkB,SAAU/kB,GAC3C9hC,KAAKumD,aAAezkB,GAOtBgkB,EAAOvkD,UAAUulD,gBAAkB,WACjC,MAAO9mD,MAAKumD,cAUdT,EAAOvkD,UAAUwlD,YAAc,SAAUC,GACvChnD,KAAKwmD,SAAWQ,GAMlBlB,EAAOvkD,UAAU0lD,SAAW,eACI/jD,KAA1BlD,KAAKqmD,kBACPrmD,KAAKqmD,oBAOTP,EAAOvkD,UAAUie,OAAS,WACxB,GAAIxf,KAAKkzC,MAAO,CAEdlzC,KAAKkzC,MAAM1a,IAAI/qB,MAAM3F,IAAM9H,KAAKkzC,MAAMlb,aAAe,EAAIh4B,KAAKkzC,MAAM1a,IAAI8Q,aAAe,EAAI,KAC3FtpC,KAAKkzC,MAAM1a,IAAI/qB,MAAMyE,MAAQlS,KAAKkzC,MAAMrgC,YAAc7S,KAAKkzC,MAAM5G,KAAKz5B,YAAc7S,KAAKkzC,MAAM6S,KAAKlzC,YAAc7S,KAAKkzC,MAAM3/B,KAAKV,YAAc,GAAK,IAGrJ,IAAInL,GAAO1H,KAAKknD,YAAYlnD,KAAKm7B,MACjCn7B,MAAKkzC,MAAM+S,MAAMx4C,MAAM/F,KAAOA,EAAO,OAQzCo+C,EAAOvkD,UAAU4lD,UAAY,SAAUluC,GACrCjZ,KAAKiZ,OAASA,EAEVjZ,KAAKiZ,OAAO5W,OAAS,EAAGrC,KAAK0mD,SAAS,GAAQ1mD,KAAKm7B,UAAQj4B,IAOjE4iD,EAAOvkD,UAAUmlD,SAAW,SAAUvrB,GACpC,KAAIA,EAAQn7B,KAAKiZ,OAAO5W,QAMtB,KAAM,IAAIwD,OAAM,qBALhB7F,MAAKm7B,MAAQA,EAEbn7B,KAAKwf,SACLxf,KAAKinD,YAUTnB,EAAOvkD,UAAUklD,SAAW,WAC1B,MAAOzmD,MAAKm7B,OAOd2qB,EAAOvkD,UAAUL,IAAM,WACrB,MAAOlB,MAAKiZ,OAAOjZ,KAAKm7B,QAG1B2qB,EAAOvkD,UAAU4kD,aAAe,SAAUr8C,GAGxC,GADqBA,EAAMs9C,MAAwB,IAAhBt9C,EAAMs9C,MAA+B,IAAjBt9C,EAAMu9C,OAC7D,CAEArnD,KAAKsnD,aAAex9C,EAAMs6B,QAC1BpkC,KAAKunD,YAAcjsB,WAAWt7B,KAAKkzC,MAAM+S,MAAMx4C,MAAM/F,MAErD1H,KAAKkzC,MAAMzlC,MAAM+1B,OAAS,MAK1B,IAAIhtB,GAAKxW,IACTA,MAAKwnD,YAAc,SAAU19C,GAC3B0M,EAAGixC,aAAa39C,IAElB9J,KAAK0nD,UAAY,SAAU59C,GACzB0M,EAAGmxC,WAAW79C,IAEhB+L,EAAK1M,iBAAiB6I,SAAU,YAAahS,KAAKwnD,aAClD3xC,EAAK1M,iBAAiB6I,SAAU,UAAWhS,KAAK0nD,WAChD7xC,EAAKhM,eAAeC,KAGtBg8C,EAAOvkD,UAAUqmD,YAAc,SAAUlgD,GACvC,GAAIwK,GAAQopB,WAAWt7B,KAAKkzC,MAAM1a,IAAI/qB,MAAMyE,OAASlS,KAAKkzC,MAAM+S,MAAMpzC,YAAc,GAChFlD,EAAIjI,EAAO,EAEXyzB,EAAQz2B,KAAKwoC,MAAMv9B,EAAIuC,GAASlS,KAAKiZ,OAAO5W,OAAS,GAIzD,OAHI84B,GAAQ,IAAGA,EAAQ,GACnBA,EAAQn7B,KAAKiZ,OAAO5W,OAAS,IAAG84B,EAAQn7B,KAAKiZ,OAAO5W,OAAS,GAE1D84B,GAGT2qB,EAAOvkD,UAAU2lD,YAAc,SAAU/rB,GACvC,GAAIjpB,GAAQopB,WAAWt7B,KAAKkzC,MAAM1a,IAAI/qB,MAAMyE,OAASlS,KAAKkzC,MAAM+S,MAAMpzC,YAAc,EAKpF,OAHQsoB,IAASn7B,KAAKiZ,OAAO5W,OAAS,GAAK6P,EAC5B,GAKjB4zC,EAAOvkD,UAAUkmD,aAAe,SAAU39C,GACxC,GAAIqgB,GAAOrgB,EAAMs6B,QAAUpkC,KAAKsnD,aAC5B33C,EAAI3P,KAAKunD,YAAcp9B,EAEvBgR,EAAQn7B,KAAK4nD,YAAYj4C,EAE7B3P,MAAK0mD,SAASvrB,GAEdtlB,EAAKhM,kBAGPi8C,EAAOvkD,UAAUomD,WAAa,SAAU79C,GAEtC9J,KAAKkzC,MAAMzlC,MAAM+1B,OAAS,OAG1B3tB,EAAKlM,oBAAoBqI,SAAU,YAAahS,KAAKwnD,aACrD3xC,EAAKlM,oBAAoBqI,SAAU,UAAWhS,KAAK0nD,WAEnD7xC,EAAKhM,kBAGPjK,EAAOD,QAAUmmD,GAIX,SAAUlmD,EAAQD,EAASO,GA8BjC,QAAS2nD,GAAW5+B,EAAOC,EAAKgN,EAAM4xB,GAEpC9nD,KAAKyrC,OAAS,EACdzrC,KAAKyrB,KAAO,EACZzrB,KAAKqT,MAAQ,EACbrT,KAAK8nD,YAAa,EAClB9nD,KAAK+nD,UAAY,EAEjB/nD,KAAKgoD,SAAW,EAChBhoD,KAAK4hC,SAAS3Y,EAAOC,EAAKgN,EAAM4xB,GAWlCD,EAAWtmD,UAAU0mD,UAAY,SAAU9mD,GACzC,OAAQ8D,MAAMq2B,WAAWn6B,KAAO+mD,SAAS/mD,IAY3C0mD,EAAWtmD,UAAUqgC,SAAW,SAAU3Y,EAAOC,EAAKgN,EAAM4xB,GAC1D,IAAK9nD,KAAKioD,UAAUh/B,GAClB,KAAM,IAAIpjB,OAAM,4CAAgDojB,EAElE,KAAKjpB,KAAKioD,UAAU/+B,GAClB,KAAM,IAAIrjB,OAAM,0CAA8CojB,EAEhE,KAAKjpB,KAAKioD,UAAU/xB,GAClB,KAAM,IAAIrwB,OAAM,2CAA+CojB,EAGjEjpB,MAAKyrC,OAASxiB,GAAgB,EAC9BjpB,KAAKyrB,KAAOvC,GAAY,EAExBlpB,KAAKmoD,QAAQjyB,EAAM4xB,IASrBD,EAAWtmD,UAAU4mD,QAAU,SAAUjyB,EAAM4xB,OAChC5kD,KAATgzB,GAAsBA,GAAQ,QAEfhzB,KAAf4kD,IAA0B9nD,KAAK8nD,WAAaA,IAExB,IAApB9nD,KAAK8nD,WAAqB9nD,KAAKqT,MAAQw0C,EAAWO,oBAAoBlyB,GAAWl2B,KAAKqT,MAAQ6iB,IAUpG2xB,EAAWO,oBAAsB,SAAUlyB,GACzC,GAAImyB,GAAQ,SAAe14C,GACzB,MAAOjL,MAAKkZ,IAAIjO,GAAKjL,KAAK4jD,MAIxBC,EAAQ7jD,KAAK48C,IAAI,GAAI58C,KAAKwoC,MAAMmb,EAAMnyB,KACtCsyB,EAAQ,EAAI9jD,KAAK48C,IAAI,GAAI58C,KAAKwoC,MAAMmb,EAAMnyB,EAAO,KACjDuyB,EAAQ,EAAI/jD,KAAK48C,IAAI,GAAI58C,KAAKwoC,MAAMmb,EAAMnyB,EAAO,KAGjD4xB,EAAaS,CASjB,OARI7jD,MAAKge,IAAI8lC,EAAQtyB,IAASxxB,KAAKge,IAAIolC,EAAa5xB,KAAO4xB,EAAaU,GACpE9jD,KAAKge,IAAI+lC,EAAQvyB,IAASxxB,KAAKge,IAAIolC,EAAa5xB,KAAO4xB,EAAaW,GAGpEX,GAAc,IAChBA,EAAa,GAGRA,GAOTD,EAAWtmD,UAAUs1B,WAAa,WAChC,MAAOyE,YAAWt7B,KAAKgoD,SAASU,YAAY1oD,KAAK+nD,aAOnDF,EAAWtmD,UAAUonD,QAAU,WAC7B,MAAO3oD,MAAKqT,OAcdw0C,EAAWtmD,UAAU0nB,MAAQ,SAAU2/B,OAClB1lD,KAAf0lD,IACFA,GAAa,GAGf5oD,KAAKgoD,SAAWhoD,KAAKyrC,OAASzrC,KAAKyrC,OAASzrC,KAAKqT,MAE7Cu1C,GACE5oD,KAAK62B,aAAe72B,KAAKyrC,QAC3BzrC,KAAKuT,QAQXs0C,EAAWtmD,UAAUgS,KAAO,WAC1BvT,KAAKgoD,UAAYhoD,KAAKqT,OAOxBw0C,EAAWtmD,UAAU2nB,IAAM,WACzB,MAAOlpB,MAAKgoD,SAAWhoD,KAAKyrB,MAG9B7rB,EAAOD,QAAUkoD,GAIX,SAAUjoD,EAAQD,EAASO,GA0EjC,QAAS2oD,GAAQ5mD,GACf,IAAK,GAAIc,KAAQd,GACf,GAAIA,EAAIT,eAAeuB,GAAO,OAAO,CAGvC,QAAO,EAWT,QAAS+lD,GAAW7pC,GAClB,WAAY/b,KAAR+b,GAA6B,KAARA,GAA4B,gBAAPA,GACrCA,EAGFA,EAAIK,OAAO,GAAG0Z,cAAgB/Z,EAAIhT,MAAM,GAUjD,QAAS88C,GAAgB/pC,EAAQgqC,GAC/B,WAAe9lD,KAAX8b,GAAmC,KAAXA,EACnBgqC,EAGFhqC,EAAS8pC,EAAWE,GAmB7B,QAASC,GAAUl5C,EAAKC,EAAKtB,EAAQsQ,GAInC,IAAK,GAHDkqC,GACAC,EAEK9oD,EAAI,EAAGA,EAAIqO,EAAOrM,SAAUhC,EACnC6oD,EAASx6C,EAAOrO,GAChB8oD,EAASJ,EAAgB/pC,EAAQkqC,GAEjCl5C,EAAIm5C,GAAUp5C,EAAIm5C,GAetB,QAASE,GAASr5C,EAAKC,EAAKtB,EAAQsQ,GAIlC,IAAK,GAHDkqC,GACAC,EAEK9oD,EAAI,EAAGA,EAAIqO,EAAOrM,SAAUhC,EACnC6oD,EAASx6C,EAAOrO,OACI6C,KAAhB6M,EAAIm5C,KAERC,EAASJ,EAAgB/pC,EAAQkqC,GAEjCl5C,EAAIm5C,GAAUp5C,EAAIm5C,IAetB,QAASG,GAAYt5C,EAAKC,GACxB,OAAY9M,KAAR6M,GAAqB84C,EAAQ94C,GAC/B,KAAM,IAAIlK,OAAM,qBAElB,QAAY3C,KAAR8M,EACF,KAAM,IAAInK,OAAM,gBAIlByjD,GAAWv5C,EAGXk5C,EAAUl5C,EAAKC,EAAKu5C,GACpBN,EAAUl5C,EAAKC,EAAKw5C,EAAoB,WAGxCC,EAAmB15C,EAAKC,GAGxBA,EAAIkS,OAAS,GACblS,EAAI05C,gBAAiB,EACrB15C,EAAI25C,aAAc,EAClB35C,EAAI45C,iBAAmB,KACvB55C,EAAI65C,IAAM,GAAIhjC,GAAQ,EAAG,GAAI,GAQ/B,QAASnR,GAAWrG,EAASW,GAC3B,OAAgB9M,KAAZmM,EAAJ,CAGA,OAAYnM,KAAR8M,EACF,KAAM,IAAInK,OAAM,gBAGlB,QAAiB3C,KAAbomD,GAA0BT,EAAQS,GACpC,KAAM,IAAIzjD,OAAM,uCAIlBujD,GAAS/5C,EAASW,EAAKu5C,GACvBH,EAAS/5C,EAASW,EAAKw5C,EAAoB,WAG3CC,EAAmBp6C,EAASW,IAW9B,QAASy5C,GAAmB15C,EAAKC,OACH9M,KAAxB6M,EAAImoC,iBACN4R,EAAmB/5C,EAAImoC,gBAAiBloC,GAG1C+5C,EAAah6C,EAAIi6C,UAAWh6C,GAC5Bi6C,EAASl6C,EAAItC,MAAOuC,GACpBk6C,EAAcn6C,EAAIo6C,WAAYn6C,GAC9Bo6C,EAAkBr6C,EAAIs6C,eAAgBr6C,OAIlB9M,KAAhB6M,EAAIu6C,UACNt6C,EAAI25C,YAAc55C,EAAIu6C,aAELpnD,IAAf6M,EAAImmC,UACNlmC,EAAI45C,iBAAmB75C,EAAImmC,aAGJhzC,KAArB6M,EAAIw6C,cACN10C,EAAK/P,qBAAqB,gBAAiBkK,EAAKD,GAapD,QAASm6C,GAAcC,EAAYn6C,GACjC,OAAmB9M,KAAfinD,EAA0B,CAI5B,OAF8CjnD,KAAxBomD,EAASa,WAEV,CAEnB,GAAIK,GAAqBx6C,EAAIvC,QAAUg9C,EAAMC,UAAY16C,EAAIvC,QAAUg9C,EAAME,OAE7E36C,GAAIm6C,WAAaK,OAKnBx6C,GAAIm6C,WAAaA,EAUrB,QAASS,GAAqBC,GAC5B,GAAIC,GAASC,EAAUF,EAEvB,YAAe3nD,KAAX4nD,GACM,EAGHA,EAST,QAASE,GAAiBv9C,GACxB,GAAIw9C,IAAQ,CAEZ,KAAK,GAAI9pD,KAAKspD,GACZ,GAAIA,EAAMtpD,KAAOsM,EAAO,CACtBw9C,GAAQ,CACR,OAIJ,MAAOA,GAQT,QAAShB,GAASx8C,EAAOuC,GACvB,OAAc9M,KAAVuK,EAAJ,CAIA,GAAIy9C,EAEJ,IAAqB,gBAAVz9C,IAGT,IAAqB,KAFrBy9C,EAAcN,EAAqBn9C,IAGjC,KAAM,IAAI5H,OAAM,UAAa4H,EAAQ,oBAElC,CAEL,IAAKu9C,EAAiBv9C,GACpB,KAAM,IAAI5H,OAAM,UAAa4H,EAAQ,eAGvCy9C,GAAcz9C,EAGhBuC,EAAIvC,MAAQy9C,GAQd,QAASpB,GAAmB5R,EAAiBloC,GAC3C,GAAIsU,GAAO,QACPJ,EAAS,OACTinC,EAAc,CAElB,IAA+B,gBAApBjT,GACT5zB,EAAO4zB,EACPh0B,EAAS,OACTinC,EAAc,MACT,CAAA,GAA2G,gBAA3E,KAApBjT,EAAkC,aAAc,EAAIx0C,EAAkB,SAAGw0C,IAK1F,KAAM,IAAIryC,OAAM,2CAJa3C,KAAzBg1C,EAAgB5zB,OAAoBA,EAAO4zB,EAAgB5zB,UAChCphB,KAA3Bg1C,EAAgBh0B,SAAsBA,EAASg0B,EAAgBh0B,YAC/BhhB,KAAhCg1C,EAAgBiT,cAA2BA,EAAcjT,EAAgBiT,aAK/En7C,EAAIkjC,MAAMzlC,MAAMyqC,gBAAkB5zB,EAClCtU,EAAIkjC,MAAMzlC,MAAMqW,YAAcI,EAC9BlU,EAAIkjC,MAAMzlC,MAAM+U,YAAc2oC,EAAc,KAC5Cn7C,EAAIkjC,MAAMzlC,MAAM29C,YAAc,QAQhC,QAASrB,GAAaC,EAAWh6C,OACb9M,KAAd8mD,QAIkB9mD,KAAlB8M,EAAIg6C,YACNh6C,EAAIg6C,cAGmB,gBAAdA,IACTh6C,EAAIg6C,UAAU1lC,KAAO0lC,EACrBh6C,EAAIg6C,UAAU9lC,OAAS8lC,IAEnBA,EAAU1lC,OACZtU,EAAIg6C,UAAU1lC,KAAO0lC,EAAU1lC,MAE7B0lC,EAAU9lC,SACZlU,EAAIg6C,UAAU9lC,OAAS8lC,EAAU9lC,YAELhhB,KAA1B8mD,EAAUmB,cACZn7C,EAAIg6C,UAAUmB,YAAcnB,EAAUmB,eAU5C,QAASf,GAAkBC,EAAgBr6C,GACzC,GAAIq7C,GAAShB,MACEnnD,KAAXmoD,QAIenoD,KAAf8M,EAAIs7C,SACNt7C,EAAIs7C,OAAS,GAAIC,IAGnBv7C,EAAIs7C,OAAOE,eAAeH,EAAOI,WAAYJ,EAAOra,UACpDhhC,EAAIs7C,OAAOI,aAAaL,EAAO7sC,WArajC,GAAI/a,GAAWvD,EAAoB,GAE/BwD,EAEJ,SAAgCzB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFnDwB,GAQlCoS,EAAO3V,EAAoB,GAC3BqrD,EAASrrD,EAAoB,IAC7B2mB,EAAU3mB,EAAoB,IAG9BuqD,GACFkB,IAAK,EACLC,SAAU,EACVC,QAAS,EACTC,IAAK,EACLC,QAAS,EACTrB,SAAU,EACVC,QAAS,EACTqB,KAAM,EACNC,KAAM,EACNC,QAAS,GAIPnB,GACFoB,IAAO1B,EAAMqB,IACbM,WAAY3B,EAAMsB,QAClBM,YAAa5B,EAAMC,SACnB4B,WAAY7B,EAAME,QAClBj0B,KAAQ+zB,EAAMwB,KACdM,KAAQ9B,EAAMuB,KACdQ,QAAW/B,EAAMyB,QACjB1zB,IAAOiyB,EAAMkB,IACbc,YAAahC,EAAMmB,SACnBc,WAAYjC,EAAMoB,SAShBtC,GAAc,QAAS,SAAU,cAAe,cAAe,SAAU,SAAU,SAAU,cAAe,cAAe,cAAe,YAAa,YAAa,YAAa,WAAY,kBAAmB,aAAc,kBAAmB,gBAAiB,eAAgB,qBAAsB,qBAAsB,wBAAyB,oBAAqB,mBAAoB,qBAAsB,YAAa,YAAa,UAAW,WAQ3bC,GAAsB,YAAa,YAAa,WAAY,WAAY,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,SAG1IF,MAAWpmD,EA6WftD,GAAOD,QAAQ8qD,MAAQA,EACvB7qD,EAAOD,QAAQ0pD,YAAcA,EAC7BzpD,EAAOD,QAAQ+V,WAAaA,EAC5B9V,EAAOD,QAAQyqD,kBAAoBA,GAI7B,SAAUxqD,EAAQD,EAASO,GAuBjC,QAASqrD,KACPvrD,KAAK2sD,YAAc,GAAI9lC,GACvB7mB,KAAK4sD,eACL5sD,KAAK4sD,YAAYnB,WAAa,EAC9BzrD,KAAK4sD,YAAY5b,SAAW,EAC5BhxC,KAAK6sD,UAAY,IACjB7sD,KAAK8sD,aAAe,GAAIjmC,GACxB7mB,KAAK+sD,iBAAmB,GAExB/sD,KAAKgtD,eAAiB,GAAInmC,GAC1B7mB,KAAKitD,eAAiB,GAAIpmC,GAAQ,GAAMniB,KAAK47C,GAAI,EAAG,GAEpDtgD,KAAKktD,6BA9BP,GAAIC,GAAQjtD,EAAoB,KAE5BktD,EAEJ,SAAgCnrD,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFrDkrD,GAIhCtmC,EAAU3mB,EAAoB,GAgClCqrD,GAAOhqD,UAAU8rD,UAAY,SAAU19C,EAAGgM,GACxC,GAAI+G,GAAMhe,KAAKge,IACX4qC,EAAOF,EAAgB,QACvBG,EAAMvtD,KAAK+sD,iBACX//C,EAAShN,KAAK6sD,UAAYU,CAE1B7qC,GAAI/S,GAAK3C,IACX2C,EAAI29C,EAAK39C,GAAK3C,GAEZ0V,EAAI/G,GAAK3O,IACX2O,EAAI2xC,EAAK3xC,GAAK3O,GAEhBhN,KAAK8sD,aAAan9C,EAAIA,EACtB3P,KAAK8sD,aAAanxC,EAAIA,EACtB3b,KAAKktD,8BAOP3B,EAAOhqD,UAAUisD,UAAY,WAC3B,MAAOxtD,MAAK8sD,cASdvB,EAAOhqD,UAAUksD,eAAiB,SAAU99C,EAAGgM,EAAGmL,GAChD9mB,KAAK2sD,YAAYh9C,EAAIA,EACrB3P,KAAK2sD,YAAYhxC,EAAIA,EACrB3b,KAAK2sD,YAAY7lC,EAAIA,EAErB9mB,KAAKktD,8BAWP3B,EAAOhqD,UAAUiqD,eAAiB,SAAUC,EAAYza,OACnC9tC,KAAfuoD,IACFzrD,KAAK4sD,YAAYnB,WAAaA,OAGfvoD,KAAb8tC,IACFhxC,KAAK4sD,YAAY5b,SAAWA,EACxBhxC,KAAK4sD,YAAY5b,SAAW,IAAGhxC,KAAK4sD,YAAY5b,SAAW,GAC3DhxC,KAAK4sD,YAAY5b,SAAW,GAAMtsC,KAAK47C,KAAItgD,KAAK4sD,YAAY5b,SAAW,GAAMtsC,KAAK47C,SAGrEp9C,KAAfuoD,OAAyCvoD,KAAb8tC,GAC9BhxC,KAAKktD,8BAQT3B,EAAOhqD,UAAUmsD,eAAiB,WAChC,GAAIC,KAIJ,OAHAA,GAAIlC,WAAazrD,KAAK4sD,YAAYnB;iDAClCkC,EAAI3c,SAAWhxC,KAAK4sD,YAAY5b,SAEzB2c,GAOTpC,EAAOhqD,UAAUmqD,aAAe,SAAUrpD,OACzBa,KAAXb,IAEJrC,KAAK6sD,UAAYxqD,EAKbrC,KAAK6sD,UAAY,MAAM7sD,KAAK6sD,UAAY,KACxC7sD,KAAK6sD,UAAY,IAAK7sD,KAAK6sD,UAAY,GAE3C7sD,KAAKqtD,UAAUrtD,KAAK8sD,aAAan9C,EAAG3P,KAAK8sD,aAAanxC,GACtD3b,KAAKktD,+BAOP3B,EAAOhqD,UAAUqsD,aAAe,WAC9B,MAAO5tD,MAAK6sD,WAOdtB,EAAOhqD,UAAUssD,kBAAoB,WACnC,MAAO7tD,MAAKgtD,gBAOdzB,EAAOhqD,UAAUusD,kBAAoB,WACnC,MAAO9tD,MAAKitD,gBAOd1B,EAAOhqD,UAAU2rD,2BAA6B,WAE5CltD,KAAKgtD,eAAer9C,EAAI3P,KAAK2sD,YAAYh9C,EAAI3P,KAAK6sD,UAAYnoD,KAAKke,IAAI5iB,KAAK4sD,YAAYnB,YAAc/mD,KAAKie,IAAI3iB,KAAK4sD,YAAY5b,UAChIhxC,KAAKgtD,eAAerxC,EAAI3b,KAAK2sD,YAAYhxC,EAAI3b,KAAK6sD,UAAYnoD,KAAKie,IAAI3iB,KAAK4sD,YAAYnB,YAAc/mD,KAAKie,IAAI3iB,KAAK4sD,YAAY5b,UAChIhxC,KAAKgtD,eAAelmC,EAAI9mB,KAAK2sD,YAAY7lC,EAAI9mB,KAAK6sD,UAAYnoD,KAAKke,IAAI5iB,KAAK4sD,YAAY5b,UAGxFhxC,KAAKitD,eAAet9C,EAAIjL,KAAK47C,GAAK,EAAItgD,KAAK4sD,YAAY5b,SACvDhxC,KAAKitD,eAAetxC,EAAI,EACxB3b,KAAKitD,eAAenmC,GAAK9mB,KAAK4sD,YAAYnB,UAE1C,IAAIsC,GAAK/tD,KAAKitD,eAAet9C,EACzBq+C,EAAKhuD,KAAKitD,eAAenmC,EACzBs5B,EAAKpgD,KAAK8sD,aAAan9C,EACvBwwC,EAAKngD,KAAK8sD,aAAanxC,EACvBiH,EAAMle,KAAKke,IACXD,EAAMje,KAAKie,GAEf3iB,MAAKgtD,eAAer9C,EAAI3P,KAAKgtD,eAAer9C,EAAIywC,EAAKz9B,EAAIqrC,GAAM7N,GAAMv9B,EAAIorC,GAAMrrC,EAAIorC,GACnF/tD,KAAKgtD,eAAerxC,EAAI3b,KAAKgtD,eAAerxC,EAAIykC,EAAKx9B,EAAIorC,GAAM7N,EAAKx9B,EAAIqrC,GAAMrrC,EAAIorC,GAClF/tD,KAAKgtD,eAAelmC,EAAI9mB,KAAKgtD,eAAelmC,EAAIq5B,EAAKv9B,EAAImrC,IAG3DnuD,EAAOD,QAAU4rD,GAIX,SAAU3rD,EAAQD,EAASO,GAcjC,QAAS+tD,GAAOC,EAAWC,EAAQC,GACjCpuD,KAAKkuD,UAAYA,EACjBluD,KAAKmuD,OAASA,EACdnuD,KAAKouD,MAAQA,EAEbpuD,KAAKm7B,UAAQj4B,GACblD,KAAKwE,UAAQtB,GAGblD,KAAKiZ,OAASi1C,EAAUG,kBAAkBruD,KAAKmuD,QAE3CnuD,KAAKiZ,OAAO5W,OAAS,GACvBrC,KAAKsuD,YAAY,GAInBtuD,KAAKuuD,cAELvuD,KAAKwuD,QAAS,EACdxuD,KAAKyuD,mBAAiBvrD,GAElBkrD,EAAMM,kBACR1uD,KAAKwuD,QAAS,EACdxuD,KAAK2uD,oBAEL3uD,KAAKwuD,QAAS,EAlClB,GAAIh1C,GAAWtZ,EAAoB,GA0CnC+tD,GAAO1sD,UAAUqtD,SAAW,WAC1B,MAAO5uD,MAAKwuD,QAOdP,EAAO1sD,UAAUstD,kBAAoB,WAInC,IAHA,GAAItoD,GAAMvG,KAAKiZ,OAAO5W,OAElBhC,EAAI,EACDL,KAAKuuD,WAAWluD,IACrBA,GAGF,OAAOqE,MAAKwoC,MAAM7sC,EAAIkG,EAAM,MAO9B0nD,EAAO1sD,UAAUutD,SAAW,WAC1B,MAAO9uD,MAAKouD,MAAMW,aAOpBd,EAAO1sD,UAAUytD,UAAY,WAC3B,MAAOhvD,MAAKmuD,QAOdF,EAAO1sD,UAAU0tD,iBAAmB,WAClC,OAAmB/rD,KAAflD,KAAKm7B,MAET,MAAOn7B,MAAKiZ,OAAOjZ,KAAKm7B,QAO1B8yB,EAAO1sD,UAAU2tD,UAAY,WAC3B,MAAOlvD,MAAKiZ,QAQdg1C,EAAO1sD,UAAU4tD,SAAW,SAAUh0B,GACpC,GAAIA,GAASn7B,KAAKiZ,OAAO5W,OAAQ,KAAM,IAAIwD,OAAM,qBAEjD,OAAO7F,MAAKiZ,OAAOkiB,IAQrB8yB,EAAO1sD,UAAU6tD,eAAiB,SAAUj0B,GAG1C,OAFcj4B,KAAVi4B,IAAqBA,EAAQn7B,KAAKm7B,WAExBj4B,KAAVi4B,EAAqB,QAEzB,IAAIozB,EACJ,IAAIvuD,KAAKuuD,WAAWpzB,GAClBozB,EAAavuD,KAAKuuD,WAAWpzB,OACxB,CACL,GAAIhtB,KACJA,GAAEggD,OAASnuD,KAAKmuD,OAChBhgD,EAAE3J,MAAQxE,KAAKiZ,OAAOkiB,EAEtB,IAAIk0B,GAAW,GAAI71C,GAASxZ,KAAKkuD,UAAUl2C,cAAgB1P,OAAQ,SAAgBoI,GAC/E,MAAOA,GAAKvC,EAAEggD,SAAWhgD,EAAE3J,SACxBtD,KACPqtD,GAAavuD,KAAKkuD,UAAUkB,eAAeC,GAE3CrvD,KAAKuuD,WAAWpzB,GAASozB,EAG3B,MAAOA,IAQTN,EAAO1sD,UAAU+tD,kBAAoB,SAAU3mD,GAC7C3I,KAAKyuD,eAAiB9lD,GAQxBslD,EAAO1sD,UAAU+sD,YAAc,SAAUnzB,GACvC,GAAIA,GAASn7B,KAAKiZ,OAAO5W,OAAQ,KAAM,IAAIwD,OAAM,qBAEjD7F,MAAKm7B,MAAQA,EACbn7B,KAAKwE,MAAQxE,KAAKiZ,OAAOkiB,IAS3B8yB,EAAO1sD,UAAUotD,iBAAmB,SAAUxzB,OAC9Bj4B,KAAVi4B,IAAqBA,EAAQ,EAEjC,IAAI+X,GAAQlzC,KAAKouD,MAAMlb,KAEvB,IAAI/X,EAAQn7B,KAAKiZ,OAAO5W,OAAQ,KAEPa,KAAnBgwC,EAAMqc,WACRrc,EAAMqc,SAAWv9C,SAASC,cAAc,OACxCihC,EAAMqc,SAAS9hD,MAAM4E,SAAW,WAChC6gC,EAAMqc,SAAS9hD,MAAMjC,MAAQ,OAC7B0nC,EAAM1gC,YAAY0gC,EAAMqc,UAE1B,IAAIA,GAAWvvD,KAAK6uD,mBACpB3b,GAAMqc,SAAS1+B,UAAY,wBAA0B0+B,EAAW,IAEhErc,EAAMqc,SAAS9hD,MAAM4U,OAAS,OAC9B6wB,EAAMqc,SAAS9hD,MAAM/F,KAAO,MAE5B,IAAI8O,GAAKxW,IACTmzB,YAAW,WACT3c,EAAGm4C,iBAAiBxzB,EAAQ,IAC3B,IACHn7B,KAAKwuD,QAAS,MAEdxuD,MAAKwuD,QAAS,MAGStrD,KAAnBgwC,EAAMqc,WACRrc,EAAM/uC,YAAY+uC,EAAMqc,UACxBrc,EAAMqc,aAAWrsD,IAGflD,KAAKyuD,gBAAgBzuD,KAAKyuD,kBAIlC7uD,EAAOD,QAAUsuD,GAIX,SAAUruD,EAAQD,EAASO,GAoBjC,QAAS4kC,GAAUpd,GACjB1nB,KAAKkoC,QAAS,EAEdloC,KAAK+tB,KACHrG,UAAWA,GAGb1nB,KAAK+tB,IAAIyhC,QAAUx9C,SAASC,cAAc,OAC1CjS,KAAK+tB,IAAIyhC,QAAQtnD,UAAY,cAE7BlI,KAAK+tB,IAAIrG,UAAUlV,YAAYxS,KAAK+tB,IAAIyhC,SAExCxvD,KAAKotB,OAASpY,EAAOhV,KAAK+tB,IAAIyhC,SAC9BxvD,KAAKotB,OAAO1Y,GAAG,MAAO1U,KAAKyvD,cAAclnC,KAAKvoB,MAG9C,IAAIwW,GAAKxW,MACK,MAAO,YAAa,QAAS,QAAS,MAAO,WAAY,UAAW,UAC3E0I,QAAQ,SAAUoB,GACvB0M,EAAG4W,OAAO1Y,GAAG5K,EAAO,SAAUA,GAC5BA,EAAM0lB,sBAKNxd,UAAYA,SAASS,OACvBzS,KAAK0vD,QAAU,SAAU5lD,GAClB6lD,EAAW7lD,EAAM3H,OAAQulB,IAC5BlR,EAAGo5C,cAGP59C,SAASS,KAAKtJ,iBAAiB,QAASnJ,KAAK0vD,cAGzBxsD,KAAlBlD,KAAKynB,UACPznB,KAAKynB,SAAS7S,UAEhB5U,KAAKynB,SAAWA,IAGhBznB,KAAK6vD,YAAc7vD,KAAK4vD,WAAWrnC,KAAKvoB,MAsF1C,QAAS2vD,GAAWvmD,EAASkB,GAC3B,KAAOlB,GAAS,CACd,GAAIA,IAAYkB,EACd,OAAO,CAETlB,GAAUA,EAAQgB,WAEpB,OAAO,EApJT,GAAIqd,GAAWvnB,EAAoB,IAC/BkzB,EAAUlzB,EAAoB,IAC9B8U,EAAS9U,EAAoB,IAC7B2V,EAAO3V,EAAoB,EAwD/BkzB,GAAQ0R,EAAUvjC,WAGlBujC,EAAUtZ,QAAU,KAKpBsZ,EAAUvjC,UAAUqT,QAAU,WAC5B5U,KAAK4vD,aAGL5vD,KAAK+tB,IAAIyhC,QAAQplD,WAAWjG,YAAYnE,KAAK+tB,IAAIyhC,SAG7CxvD,KAAK0vD,SACP19C,SAASS,KAAK9I,oBAAoB,QAAS3J,KAAK0vD,SAIlD1vD,KAAKotB,OAAOxY,UACZ5U,KAAKotB,OAAS,MAQhB0X,EAAUvjC,UAAUuuD,SAAW,WAEzBhrB,EAAUtZ,SACZsZ,EAAUtZ,QAAQokC,aAEpB9qB,EAAUtZ,QAAUxrB,KAEpBA,KAAKkoC,QAAS,EACdloC,KAAK+tB,IAAIyhC,QAAQ/hD,MAAMqxB,QAAU,OACjCjpB,EAAK9N,aAAa/H,KAAK+tB,IAAIrG,UAAW,cAEtC1nB,KAAK6U,KAAK,UACV7U,KAAK6U,KAAK,YAIV7U,KAAKynB,SAASc,KAAK,MAAOvoB,KAAK6vD,cAOjC/qB,EAAUvjC,UAAUquD,WAAa,WAC/B5vD,KAAKkoC,QAAS,EACdloC,KAAK+tB,IAAIyhC,QAAQ/hD,MAAMqxB,QAAU,GACjCjpB,EAAKrN,gBAAgBxI,KAAK+tB,IAAIrG,UAAW,cACzC1nB,KAAKynB,SAASiB,OAAO,MAAO1oB,KAAK6vD,aAEjC7vD,KAAK6U,KAAK,UACV7U,KAAK6U,KAAK,eAQZiwB,EAAUvjC,UAAUkuD,cAAgB,SAAU3lD,GAE5C9J,KAAK8vD,WACLhmD,EAAM0lB,mBAsBR5vB,EAAOD,QAAUmlC,GAIX,SAAUllC,EAAQD,EAASO,GAMjCP,EAAY,IACV6rB,QAAS,UACTO,KAAM,QAERpsB,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV6rB,QAAS,UACTO,KAAM,SAERpsB,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV6rB,QAAS,UACTO,KAAM,QAERpsB,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV6rB,QAAS,WACTO,KAAM,QAERpsB,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV6rB,QAAS,SACTO,KAAM,SAERpsB,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV6rB,QAAS,YACTO,KAAM,QAERpsB,EAAe,MAAIA,EAAY,IAIzB,SAAUC,EAAQD,EAASO,GAajC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA4BzF,QAAS8tD,GAAQt9C,EAAMpD,GACrBrP,KAAKyS,KAAOA,EACZzS,KAAKs0B,gBACH7tB,KAAM,KACNiqB,aACEhgB,KAAM,UAERwjC,MAAO,OACP7lB,OAAO,EACP0hB,gBAAgB,EAChBigB,eAAgB,SAAwBC,EAAWC,EAASC,GAE1D,GAAIC,GAAcF,EAAQv4C,KAC1Bu4C,GAAQv4C,MAAQs4C,EAAUt4C,MAC1Bs4C,EAAUt4C,MAAQy4C,GAEpBC,WAAY,QAEZC,YAAY,EACZC,aAAa,EACbnc,sBACE1jC,MAAM,EACN4Y,OAAO,GAGT6E,UACEiB,YAAY,EACZ2C,aAAa,EACbtc,KAAK,EACL8C,QAAQ,EACRuX,eAAe,GAGjB8e,eACEj3B,OAAO,EACPlC,KAAK,EACL8C,QAAQ,GAGV00B,KAAMtY,EAASsY,KAGfujB,mBAAoB,SAA4BC,EAAY//C,EAAM/H,GAChEA,EAAS+H,IAEXggD,MAAO,SAAehgD,EAAM/H,GAC1BA,EAAS+H,IAEXigD,SAAU,SAAkBjgD,EAAM/H,GAChCA,EAAS+H,IAEXkgD,OAAQ,SAAgBlgD,EAAM/H,GAC5BA,EAAS+H,IAEXmgD,SAAU,SAAkBngD,EAAM/H,GAChCA,EAAS+H,IAEXogD,SAAU,SAAkBpgD,EAAM/H,GAChCA,EAAS+H,IAEXqgD,WAAY,SAAoBrgD,EAAM/H,GACpCA,EAAS+H,IAEXsgD,YAAa,SAAqBtgD,EAAM/H,GACtCA,EAAS+H,IAEXugD,cAAe,SAAuBvgD,EAAM/H,GAC1CA,EAAS+H,IAGXwR,QACExR,MACE+6C,WAAY,GACZza,SAAU,IAEZzc,KAAM,IAGR28B,cAAc,EAEd5G,SACE6G,aAAa,EACbC,eAAgB,QAGlBhhC,yBAAyB,GAI3BpwB,KAAKqP,QAAUwG,EAAKrQ,UAAWxF,KAAKs0B,gBACpCt0B,KAAKqP,QAAQ2gB,IAAM3gB,EAAQ2gB,IAG3BhwB,KAAKqxD,aACH5qD,MAAQwiB,MAAO,OAAQC,IAAK,SAG9BlpB,KAAKgsB,YACHH,SAAUpZ,EAAKoD,KAAKgW,SACpBS,OAAQ7Z,EAAKoD,KAAKyW,QAEpBtsB,KAAK+tB,OACL/tB,KAAKoC,SACLpC,KAAKotB,OAAS,IAEd,IAAI5W,GAAKxW,IACTA,MAAKkxB,UAAY,KACjBlxB,KAAKsxD,WAAa,KAGlBtxD,KAAKuxD,eACH97C,IAAO,SAAa3L,EAAOqM,EAAQC,GAEjCI,EAAGg7C,OAAOr7C,EAAOO,QAEnBC,OAAU,SAAgB7M,EAAOqM,EAAQC,GAEvCI,EAAGi7C,UAAUt7C,EAAOO,QAEtB6B,OAAU,SAAgBzO,EAAOqM,EAAQC,GAEvCI,EAAGk7C,UAAUv7C,EAAOO,SAKxB1W,KAAK2xD,gBACHl8C,IAAO,SAAa3L,EAAOqM,EAAQC,GAIjC,GAFAI,EAAGo7C,aAAaz7C,EAAOO,OAEnBF,EAAG86C,YAAc96C,EAAG86C,WAAWjvD,OAAS,EAAG,CAC7C,GAAIivD,GAAa96C,EAAG86C,WAAWt5C,YAC/Bs5C,GAAWpwD,MAAMwH,QAAQ,SAAUmpD,GACjC,GAAIA,EAAUzjB,aAAc,CACE,GAAxByjB,EAAUxjB,aACZwjB,EAAUxjB,YAAa,EAEzB,IAAIyjB,KACJD,GAAUzjB,aAAa1lC,QAAQ,SAAUqpD,GACvC,GAAIC,GAAqBV,EAAWpwD,IAAI6wD,EACnCC,KAGLA,EAAmB1jB,cAAgBujB,EAAUv7C,GACjB,GAAxBu7C,EAAUxjB,aACZ2jB,EAAmBj1B,SAAU,GAE/B+0B,EAAgBA,EAAczpD,OAAO2pD,MAEvCV,EAAW36C,OAAOm7C,EAAe17C,QAKzCO,OAAU,SAAgB7M,EAAOqM,EAAQC,GAEvCI,EAAGy7C,gBAAgB97C,EAAOO,QAE5B6B,OAAU,SAAgBzO,EAAOqM,EAAQC,GAEvCI,EAAG07C,gBAAgB/7C,EAAOO,SAI9B1W,KAAK0W,SACL1W,KAAKmwD,UACLnwD,KAAKmyD,YAELnyD,KAAKoyD,aAELpyD,KAAKqyD,MAAQ,KAEbryD,KAAKswB,eACLtwB,KAAKsyD,oBAGLtyD,KAAKqD,UAELrD,KAAK0V,WAAWrG,GAvNlB,GAAIhM,GAAUnD,EAAoB,IAE9BoD,EAAWX,EAAuBU,GAElCI,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAIlCuR,EAAS9U,EAAoB,IAC7B2V,EAAO3V,EAAoB,GAC3B+U,EAAU/U,EAAoB,IAC9BsZ,EAAWtZ,EAAoB,IAC/By0B,EAAWz0B,EAAoB,IAC/Bqf,EAAYrf,EAAoB,IAChCytC,EAAQztC,EAAoB,IAC5B4yC,EAAkB5yC,EAAoB,IACtCqyD,EAAUryD,EAAoB,KAC9BsyD,EAAYtyD,EAAoB,KAChC6yC,EAAY7yC,EAAoB,IAChCuyD,EAAiBvyD,EAAoB,KACrCwyD,EAAQxyD,EAAoB,KAAc,QAE1CyyD,EAAY,gBACZC,EAAa,gBAiMjB7C,GAAQxuD,UAAY,GAAIge,GAGxBwwC,EAAQ12C,OACNtM,WAAY0lD,EACZ/iC,IAAK6iC,EACLjpC,MAAOypB,EACPj3B,MAAO02C,GAMTzC,EAAQxuD,UAAU8B,QAAU,WAC1B,GAAI6vC,GAAQlhC,SAASC,cAAc,MACnCihC,GAAMhrC,UAAY,cAClBgrC,EAAM,oBAAsBlzC,KAC5BA,KAAK+tB,IAAImlB,MAAQA,CAGjB,IAAInmC,GAAaiF,SAASC,cAAc,MACxClF,GAAW7E,UAAY,iBACvBgrC,EAAM1gC,YAAYzF,GAClB/M,KAAK+tB,IAAIhhB,WAAaA,CAGtB,IAAIinB,GAAahiB,SAASC,cAAc,MACxC+hB,GAAW9rB,UAAY,iBACvBgrC,EAAM1gC,YAAYwhB,GAClBh0B,KAAK+tB,IAAIiG,WAAaA,CAGtB,IAAIO,GAAOviB,SAASC,cAAc,MAClCsiB,GAAKrsB,UAAY,WACjBlI,KAAK+tB,IAAIwG,KAAOA,CAGhB,IAAI0c,GAAWj/B,SAASC,cAAc,MACtCg/B,GAAS/oC,UAAY,eACrBlI,KAAK+tB,IAAIkjB,SAAWA,EAGpBjxC,KAAK6yD,kBAGL,IAAIC,GAAkB,GAAIhgB,GAAgB8f,EAAY,KAAM5yD,KAC5D8yD,GAAgB/jC,OAChB/uB,KAAKmwD,OAAOyC,GAAcE,EAM1B9yD,KAAKotB,OAAS,GAAIpY,GAAOhV,KAAKyS,KAAKsb,IAAI1E,iBAGvCrpB,KAAKotB,OAAO1Y,GAAG,eAAgB,SAAU5K,GACnCA,EAAMwjB,SACRttB,KAAKuhC,SAASz3B,IAEhBye,KAAKvoB,OACPA,KAAKotB,OAAO1Y,GAAG,WAAY1U,KAAK04B,aAAanQ,KAAKvoB,OAClDA,KAAKotB,OAAO1Y,GAAG,UAAW1U,KAAK24B,QAAQpQ,KAAKvoB,OAC5CA,KAAKotB,OAAO1Y,GAAG,SAAU1U,KAAK44B,WAAWrQ,KAAKvoB,OAC9CA,KAAKotB,OAAOlsB,IAAI,OAAO4T,KAAM+jB,UAAW,EAAG5L,UAAWjY,EAAO8jB,uBAG7D94B,KAAKotB,OAAO1Y,GAAG,MAAO1U,KAAK+yD,cAAcxqC,KAAKvoB,OAG9CA,KAAKotB,OAAO1Y,GAAG,QAAS1U,KAAKgzD,mBAAmBzqC,KAAKvoB,OAGrDA,KAAKotB,OAAO1Y,GAAG,YAAa1U,KAAKgmC,WAAWzd,KAAKvoB,OAE7CA,KAAKqP,QAAQ2gB,IACfhwB,KAAKizD,YAAc,GAAIj+C,GAAOhV,KAAKyS,KAAKsb,IAAIsY,gBAE5CrmC,KAAKizD,YAAc,GAAIj+C,GAAOhV,KAAKyS,KAAKsb,IAAIqY,eAG9CpmC,KAAKizD,YAAYv+C,GAAG,MAAO1U,KAAKkzD,cAAc3qC,KAAKvoB,OACnDA,KAAKizD,YAAYv+C,GAAG,WAAY1U,KAAKmzD,kBAAkB5qC,KAAKvoB,OAC5DA,KAAKizD,YAAYv+C,GAAG,UAAW1U,KAAKozD,aAAa7qC,KAAKvoB,OACtDA,KAAKizD,YAAYv+C,GAAG,SAAU1U,KAAKqzD,gBAAgB9qC,KAAKvoB,OACxDA,KAAKizD,YAAY/xD,IAAI,OAAO4T,KAAM+jB,UAAW,EAAG5L,UAAWjY,EAAOs+C,qBAElEtzD,KAAKyS,KAAKsb,IAAI1E,gBAAgBlgB,iBAAiB,YAAanJ,KAAKuzD,aAAahrC,KAAKvoB,OACnFA,KAAKyS,KAAKsb,IAAI1E,gBAAgBlgB,iBAAiB,WAAYnJ,KAAKwzD,YAAYjrC,KAAKvoB,OACjFA,KAAKyS,KAAKsb,IAAI1E,gBAAgBlgB,iBAAiB,YAAanJ,KAAKynD,aAAal/B,KAAKvoB,OAEnFA,KAAKyS,KAAKsb,IAAI1E,gBAAgBlgB,iBAAiB,cAAenJ,KAAK44B,WAAWrQ,KAAKvoB,OAEnFA,KAAKyS,KAAKsb,IAAI1E,gBAAgBlgB,iBAAiB,aAAcnJ,KAAKu4B,cAAchQ,KAAKvoB,OAGrFA,KAAK+uB,QAmEPghC,EAAQxuD,UAAUmU,WAAa,SAAUrG,GACvC,GAAIA,EAAS,CAEX,GAAIX,IAAU,OAAQ,MAAO,QAAS,QAAS,QAAS,iBAAkB,aAAc,cAAe,sBAAuB,aAAc,iBAAkB,WAAY,gBAAiB,uBAAwB,OAAQ,OAAQ,iBAAkB,eAAgB,UAAW,0BAChRmH,GAAKnQ,gBAAgBgJ,EAAQ1O,KAAKqP,QAASA,GAEvC,wBAA0BA,KACgB,iBAAjCA,GAAQ+kC,sBACjBp0C,KAAKqP,QAAQ+kC,qBAAqB1jC,KAAOrB,EAAQ+kC,qBACjDp0C,KAAKqP,QAAQ+kC,qBAAqB9qB,OAAQ,GAC0B,YAA3D,EAAI5lB,EAAkB,SAAG2L,EAAQ+kC,wBAC1Cv+B,EAAKnQ,iBAAiB,OAAQ,SAAU1F,KAAKqP,QAAQ+kC,qBAAsB/kC,EAAQ+kC,sBAE9Ep0C,KAAKqP,QAAQ+kC,qBAAqB1jC,OACrC1Q,KAAKqP,QAAQ+kC,qBAAqB9qB,OAAQ,KAK5C,eAAiBja,KACgB,gBAAxBA,GAAQqhB,YACjB1wB,KAAKqP,QAAQqhB,YAAYhgB,KAA+B,QAAxBrB,EAAQqhB,YAAwB,MAAQ,SACb,YAAlD,EAAIhtB,EAAkB,SAAG2L,EAAQqhB,cAA6B,QAAUrhB,GAAQqhB,cACzF1wB,KAAKqP,QAAQqhB,YAAYhgB,KAAOrB,EAAQqhB,YAAYhgB,OAIpD,UAAYrB,KACgB,gBAAnBA,GAAQ6S,QACjBliB,KAAKqP,QAAQ6S,OAAOqS,KAAOllB,EAAQ6S,OACnCliB,KAAKqP,QAAQ6S,OAAOxR,KAAK+6C,WAAap8C,EAAQ6S,OAC9CliB,KAAKqP,QAAQ6S,OAAOxR,KAAKsgC,SAAW3hC,EAAQ6S,QACU,YAA7C,EAAIxe,EAAkB,SAAG2L,EAAQ6S,UAC1CrM,EAAKnQ,iBAAiB,QAAS1F,KAAKqP,QAAQ6S,OAAQ7S,EAAQ6S,QACxD,QAAU7S,GAAQ6S,SACe,gBAAxB7S,GAAQ6S,OAAOxR,MACxB1Q,KAAKqP,QAAQ6S,OAAOxR,KAAK+6C,WAAap8C,EAAQ6S,OAAOxR,KACrD1Q,KAAKqP,QAAQ6S,OAAOxR,KAAKsgC,SAAW3hC,EAAQ6S,OAAOxR,MACQ,YAAlD,EAAIhN,EAAkB,SAAG2L,EAAQ6S,OAAOxR,OACjDmF,EAAKnQ,iBAAiB,aAAc,YAAa1F,KAAKqP,QAAQ6S,OAAOxR,KAAMrB,EAAQ6S,OAAOxR,SAM9F,YAAcrB,KACgB,iBAArBA,GAAQ8e,UACjBnuB,KAAKqP,QAAQ8e,SAASiB,WAAa/f,EAAQ8e,SAC3CnuB,KAAKqP,QAAQ8e,SAAS4D,YAAc1iB,EAAQ8e,SAC5CnuB,KAAKqP,QAAQ8e,SAAS1Y,IAAMpG,EAAQ8e,SACpCnuB,KAAKqP,QAAQ8e,SAAS5V,OAASlJ,EAAQ8e,SACvCnuB,KAAKqP,QAAQ8e,SAAS2B,eAAgB,GACkB,YAA/C,EAAIpsB,EAAkB,SAAG2L,EAAQ8e,WAC1CtY,EAAKnQ,iBAAiB,aAAc,cAAe,MAAO,SAAU,iBAAkB1F,KAAKqP,QAAQ8e,SAAU9e,EAAQ8e,WAIrH,iBAAmB9e,KACgB,iBAA1BA,GAAQu/B,eACjB5uC,KAAKqP,QAAQu/B,cAAcj3B,MAAQtI,EAAQu/B,cAC3C5uC,KAAKqP,QAAQu/B,cAAcn5B,IAAMpG,EAAQu/B,cACzC5uC,KAAKqP,QAAQu/B,cAAcr2B,OAASlJ,EAAQu/B,eACiB,YAApD,EAAIlrC,EAAkB,SAAG2L,EAAQu/B,gBAC1C/4B,EAAKnQ,iBAAiB,QAAS,MAAO,UAAW1F,KAAKqP,QAAQu/B,cAAev/B,EAAQu/B,iBAcxF,qBAAsB,QAAS,WAAY,WAAY,SAAU,WAAY,aAAc,cAAe,iBAAiBlmC,QAT1G,SAAU/H,GAC1B,GAAIqI,GAAKqG,EAAQ1O,EACjB,IAAIqI,EAAI,CACN,KAAMA,YAAcmY,WAClB,KAAM,IAAItb,OAAM,UAAYlF,EAAO,uBAAyBA,EAAO,mBAErEX,MAAKqP,QAAQ1O,GAAQqI,IAEvBuf,KAAKvoB,OAIPA,KAAKyzD,cAST1D,EAAQxuD,UAAUkyD,UAAY,SAAUpkD,GACtCrP,KAAKmyD,YAED9iD,GAAWA,EAAQqkD,cACrB79C,EAAKnN,QAAQ1I,KAAK0W,MAAO,SAAUhG,GACjCA,EAAKwd,OAAQ,EACTxd,EAAKsd,WAAWtd,EAAK8O,YAQ/BuwC,EAAQxuD,UAAUqT,QAAU,WAC1B5U,KAAK+f,OACL/f,KAAKmoC,SAAS,MACdnoC,KAAKooC,UAAU,MAEfpoC,KAAKotB,OAAS,KAEdptB,KAAKyS,KAAO,KACZzS,KAAKgsB,WAAa,MAMpB+jC,EAAQxuD,UAAUwe,KAAO,WAEnB/f,KAAK+tB,IAAImlB,MAAM9oC,YACjBpK,KAAK+tB,IAAImlB,MAAM9oC,WAAWjG,YAAYnE,KAAK+tB,IAAImlB,OAI7ClzC,KAAK+tB,IAAIwG,KAAKnqB,YAChBpK,KAAK+tB,IAAIwG,KAAKnqB,WAAWjG,YAAYnE,KAAK+tB,IAAIwG,MAI5Cv0B,KAAK+tB,IAAIkjB,SAAS7mC,YACpBpK,KAAK+tB,IAAIkjB,SAAS7mC,WAAWjG,YAAYnE,KAAK+tB,IAAIkjB,WAOtD8e,EAAQxuD,UAAUwtB,KAAO,WAElB/uB,KAAK+tB,IAAImlB,MAAM9oC,YAClBpK,KAAKyS,KAAKsb,IAAIiU,OAAOxvB,YAAYxS,KAAK+tB,IAAImlB,OAIvClzC,KAAK+tB,IAAIwG,KAAKnqB,YACjBpK,KAAKyS,KAAKsb,IAAIgI,mBAAmBvjB,YAAYxS,KAAK+tB,IAAIwG,MAInDv0B,KAAK+tB,IAAIkjB,SAAS7mC,aACjBpK,KAAKqP,QAAQ2gB,IACfhwB,KAAKyS,KAAKsb,IAAInmB,MAAM4K,YAAYxS,KAAK+tB,IAAIkjB,UAEzCjxC,KAAKyS,KAAKsb,IAAIrmB,KAAK8K,YAAYxS,KAAK+tB,IAAIkjB,YAY9C8e,EAAQxuD,UAAUoyD,aAAe,SAAUt8C,GACzC,GAAIhX,GAAGowC,EAAIn6B,EAAI5F,CAMf,SAJWxN,IAAPmU,IAAkBA,MACjB1R,MAAMC,QAAQyR,KAAMA,GAAOA,IAG3BhX,EAAI,EAAGowC,EAAKzwC,KAAKoyD,UAAU/vD,OAAQhC,EAAIowC,EAAIpwC,IAC9CiW,EAAKtW,KAAKoyD,UAAU/xD,IACpBqQ,EAAO1Q,KAAK0W,MAAMJ,KACR5F,EAAK6d,UAKjB,KADAvuB,KAAKoyD,aACA/xD,EAAI,EAAGowC,EAAKp5B,EAAIhV,OAAQhC,EAAIowC,EAAIpwC,IACnCiW,EAAKe,EAAIhX,IACTqQ,EAAO1Q,KAAK0W,MAAMJ,MAEhBtW,KAAKoyD,UAAUhsD,KAAKkQ,GACpB5F,EAAK4d,WASXyhC,EAAQxuD,UAAUqyD,aAAe,WAC/B,MAAO5zD,MAAKoyD,UAAU/pD,YAOxB0nD,EAAQxuD,UAAUonC,gBAAkB,WAClC,GACI/gC,GAAOF,EADP4hB,EAAQtpB,KAAKyS,KAAK6W,MAAM6Z,UAGxBnjC,MAAKqP,QAAQ2gB,KACfpoB,EAAQ5H,KAAKyS,KAAKoD,KAAKgW,SAASvC,EAAML,OACtCvhB,EAAO1H,KAAKyS,KAAKoD,KAAKgW,SAASvC,EAAMJ,OAErCxhB,EAAO1H,KAAKyS,KAAKoD,KAAKgW,SAASvC,EAAML,OACrCrhB,EAAQ5H,KAAKyS,KAAKoD,KAAKgW,SAASvC,EAAMJ,KAGxC,IAAI7R,KACJ,KAAK,GAAIu2B,KAAW5tC,MAAKmwD,OACvB,GAAInwD,KAAKmwD,OAAO3uD,eAAeosC,GAM7B,IAAK,GALDpf,GAAQxuB,KAAKmwD,OAAOviB,GACpBimB,EAAkBrlC,EAAMQ,UAAYR,EAAM+f,gBAIrCluC,EAAI,EAAGA,EAAIwzD,EAAgBxxD,OAAQhC,IAAK,CAC/C,GAAIqQ,GAAOmjD,EAAgBxzD,EAEvBL,MAAKqP,QAAQ2gB,IACXtf,EAAK9I,MAAQF,GAAQgJ,EAAK9I,MAAQ8I,EAAKwB,MAAQtK,GACjDyP,EAAIjR,KAAKsK,EAAK4F,IAGZ5F,EAAKhJ,KAAOE,GAAS8I,EAAKhJ,KAAOgJ,EAAKwB,MAAQxK,GAChD2P,EAAIjR,KAAKsK,EAAK4F,IAOxB,MAAOe,IAQT04C,EAAQxuD,UAAUuyD,UAAY,SAAUx9C,GAEtC,IAAK,GADD87C,GAAYpyD,KAAKoyD,UACZ/xD,EAAI,EAAGowC,EAAK2hB,EAAU/vD,OAAQhC,EAAIowC,EAAIpwC,IAC7C,GAAI+xD,EAAU/xD,IAAMiW,EAAI,CAEtB87C,EAAUx+B,OAAOvzB,EAAG,EACpB,SASN0vD,EAAQxuD,UAAUie,OAAS,WACzB,GAAI0C,GAASliB,KAAKqP,QAAQ6S,OACtBoH,EAAQtpB,KAAKyS,KAAK6W,MAClBze,EAASgL,EAAKrL,OAAOK,OACrBwE,EAAUrP,KAAKqP,QACfqhB,EAAcrhB,EAAQqhB,YAAYhgB,KAClCgP,GAAU,EACVwzB,EAAQlzC,KAAK+tB,IAAImlB,KAGrBlzC,MAAKoC,MAAM0F,IAAM9H,KAAKyS,KAAK2W,SAASthB,IAAIqK,OAASnS,KAAKyS,KAAK2W,SAASpc,OAAOlF,IAEvE9H,KAAKqP,QAAQ2gB,IACfhwB,KAAKoC,MAAMwF,MAAQ5H,KAAKyS,KAAK2W,SAASxhB,MAAMsK,MAAQlS,KAAKyS,KAAK2W,SAASpc,OAAOpF,MAE9E5H,KAAKoC,MAAMsF,KAAO1H,KAAKyS,KAAK2W,SAAS1hB,KAAKwK,MAAQlS,KAAKyS,KAAK2W,SAASpc,OAAOtF,KAI9EwrC,EAAMhrC,UAAY,cAGlBwX,EAAU1f,KAAK+zD,gBAAkBr0C,CAIjC,IAAIs0C,GAAkB1qC,EAAMJ,IAAMI,EAAML,MACpCgrC,EAASD,GAAmBh0D,KAAKk0D,qBAAuBl0D,KAAKoC,MAAM8P,OAASlS,KAAKoC,MAAM4oC,UACvFmpB,EAAW7qC,EAAML,OAASjpB,KAAKo0D,eAC/BC,EAAqBhlD,EAAQgf,OAASruB,KAAKs0D,UAC3CC,EAA8BllD,EAAQ0gC,gBAAkB/vC,KAAKw0D,mBAC7D5kB,EAAeqkB,GAAUE,GAAYE,GAAsBE,CAC/Dv0D,MAAKk0D,oBAAsBF,EAC3Bh0D,KAAKo0D,eAAiB9qC,EAAML,MAC5BjpB,KAAKs0D,UAAYjlD,EAAQgf,MACzBruB,KAAKw0D,mBAAqBnlD,EAAQ0gC,eAElC/vC,KAAKoC,MAAM4oC,UAAYhrC,KAAKoC,MAAM8P,KAElC,IAAIuiD,GAAaz0D,KAAK00D,cAClBC,GACFjkD,KAAMwR,EAAOxR,KACb6jB,KAAMrS,EAAOqS,MAEXqgC,GACFlkD,KAAMwR,EAAOxR,KACb6jB,KAAMrS,EAAOxR,KAAKsgC,SAAW,GAE3B7+B,EAAS,EACTk3B,EAAYnnB,EAAOqS,KAAOrS,EAAOxR,KAAKsgC,QAG1ChxC,MAAKmwD,OAAOyC,GAAYpzC,OAAO8J,EAAOsrC,EAAgBhlB,EAEtD,IAAIP,MACAC,EAAoB,CAYxB,IATAz5B,EAAKnN,QAAQ1I,KAAKmwD,OAAQ,SAAU3hC,EAAOhsB,GACzC,GAAIA,IAAQowD,EAAZ,CACA,GAAIiC,GAAcrmC,GAASimC,EAAaE,EAAcC,CAEtDvlB,GAAY7sC,GAAOgsB,EAAMhP,OAAO8J,EAAOurC,EAAajlB,GADlC,GAElBN,EAAoBD,EAAY7sC,GAAKH,UAGtBitC,EAAoB,EACrB,CAGd,IAAK,GAFDwlB,MAEKz0D,EAAI,EAAGA,EAAIivC,EAAmBjvC,IACrCwV,EAAKnN,QAAQ2mC,EAAa,SAAUE,EAAK/sC,GACvCsyD,EAActyD,GAAO+sC,EAAIlvC,MAK7BwV,GAAKnN,QAAQ1I,KAAKmwD,OAAQ,SAAU3hC,EAAOhsB,GACzC,GAAIA,IAAQowD,EAAZ,CACA,GAAImC,GAAeD,EAActyD,EACjCkd,GAAUq1C,GAAgBr1C,EAC1BvN,GAAUqc,EAAMrc,UAElBA,EAASzN,KAAKJ,IAAI6N,EAAQk3B,GAwB5B,MArBAl3B,GAASzN,KAAKJ,IAAI6N,EAAQk3B,GAG1B6J,EAAMzlC,MAAM0E,OAAStH,EAAOsH,GAG5BnS,KAAKoC,MAAM8P,MAAQghC,EAAMvgC,YACzB3S,KAAKoC,MAAM+P,OAASA,EAGpBnS,KAAK+tB,IAAIwG,KAAK9mB,MAAM3F,IAAM+C,EAAsB,OAAf6lB,EAAuB1wB,KAAKyS,KAAK2W,SAASthB,IAAIqK,OAASnS,KAAKyS,KAAK2W,SAASpc,OAAOlF,IAAM9H,KAAKyS,KAAK2W,SAASthB,IAAIqK,OAASnS,KAAKyS,KAAK2W,SAASC,gBAAgBlX,QACvLnS,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAIwG,KAAK9mB,MAAM7F,MAAQ,IAE5B5H,KAAK+tB,IAAIwG,KAAK9mB,MAAM/F,KAAO,IAG7B1H,KAAKinC,qBAAsB,EAE3BvnB,EAAU1f,KAAKyf,cAAgBC,GAUjCqwC,EAAQxuD,UAAUmzD,YAAc,WAC9B,GAAIM,GAAmD,OAAjCh1D,KAAKqP,QAAQqhB,YAAYhgB,KAAgB,EAAI1Q,KAAKmyD,SAAS9vD,OAAS,EACtF4yD,EAAej1D,KAAKmyD,SAAS6C,EAGjC,OAFiBh1D,MAAKmwD,OAAO8E,IAAiBj1D,KAAKmwD,OAAOwC,IAErC,MAQvB5C,EAAQxuD,UAAUsxD,iBAAmB,WACnC,GACIniD,GAAM+G,EADNy9C,EAAYl1D,KAAKmwD,OAAOwC,EAG5B,IAAI3yD,KAAKsxD,YAEP,GAAI4D,EAAW,CACbA,EAAUn1C,aACH/f,MAAKmwD,OAAOwC,EAEnB,KAAKl7C,IAAUzX,MAAK0W,MAClB,GAAI1W,KAAK0W,MAAMlV,eAAeiW,GAAS,CACrC/G,EAAO1Q,KAAK0W,MAAMe,GAClB/G,EAAKpG,QAAUoG,EAAKpG,OAAOiO,OAAO7H,EAClC,IAAIk9B,GAAU5tC,KAAKm1D,YAAYzkD,EAAKwE,MAChCsZ,EAAQxuB,KAAKmwD,OAAOviB,EACxBpf,IAASA,EAAM/Y,IAAI/E,IAASA,EAAKqP,aAMvC,KAAKm1C,EAAW,CAGdA,EAAY,GAAIvnB,GAFP,KACE,KACqB3tC,MAChCA,KAAKmwD,OAAOwC,GAAauC,CAEzB,KAAKz9C,IAAUzX,MAAK0W,MACd1W,KAAK0W,MAAMlV,eAAeiW,KAC5B/G,EAAO1Q,KAAK0W,MAAMe,GAClBy9C,EAAUz/C,IAAI/E,GAIlBwkD,GAAUnmC,SAShBghC,EAAQxuD,UAAU6zD,YAAc,WAC9B,MAAOp1D,MAAK+tB,IAAIkjB,UAOlB8e,EAAQxuD,UAAU4mC,SAAW,SAAUzxB,GACrC,GACIW,GADAb,EAAKxW,KAELq1D,EAAer1D,KAAKkxB,SAGxB,IAAKxa,EAEE,CAAA,KAAIA,YAAiBzB,IAAWyB,YAAiB8C,IAGtD,KAAM,IAAI1X,WAAU,kDAFpB9B,MAAKkxB,UAAYxa,MAFjB1W,MAAKkxB,UAAY,IAkBnB,IAXImkC,IAEFx/C,EAAKnN,QAAQ1I,KAAKuxD,cAAe,SAAU5oD,EAAUmB,GACnDurD,EAAa1gD,IAAI7K,EAAOnB,KAI1B0O,EAAMg+C,EAAat9C,SACnB/X,KAAK0xD,UAAUr6C,IAGbrX,KAAKkxB,UAAW,CAElB,GAAI5a,GAAKtW,KAAKsW,EACdT,GAAKnN,QAAQ1I,KAAKuxD,cAAe,SAAU5oD,EAAUmB,GACnD0M,EAAG0a,UAAUxc,GAAG5K,EAAOnB,EAAU2N,KAInCe,EAAMrX,KAAKkxB,UAAUnZ,SACrB/X,KAAKwxD,OAAOn6C,GAGZrX,KAAK6yD,mBAGP7yD,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAakB,OAAO,KAO7Cg6C,EAAQxuD,UAAU+zD,SAAW,WAC3B,MAAOt1D,MAAKkxB,WAOd6+B,EAAQxuD,UAAU6mC,UAAY,SAAU+nB,GACtC,GACI94C,GADAb,EAAKxW,IAgBT,IAZIA,KAAKsxD,aACPz7C,EAAKnN,QAAQ1I,KAAK2xD,eAAgB,SAAUhpD,EAAUmB,GACpD0M,EAAG86C,WAAW38C,IAAI7K,EAAOnB,KAI3B0O,EAAMrX,KAAKsxD,WAAWv5C,SACtB/X,KAAKsxD,WAAa,KAClBtxD,KAAKkyD,gBAAgB76C,IAIlB84C,EAEE,CAAA,KAAIA,YAAkBl7C,IAAWk7C,YAAkB32C,IAGxD,KAAM,IAAI1X,WAAU,kDAFpB9B,MAAKsxD,WAAanB,MAFlBnwD,MAAKsxD,WAAa,IAOpB,IAAItxD,KAAKsxD,WAAY,CAEnB,GAAIA,GAAatxD,KAAKsxD,UAClBtxD,MAAKsxD,qBAAsB93C,KAC7B83C,EAAatxD,KAAKsxD,WAAWt5C,cAG/Bs5C,EAAWpwD,MAAMwH,QAAQ,SAAU8lB,GAC7BA,EAAM4f,cACR5f,EAAM4f,aAAa1lC,QAAQ,SAAUqpD,GACnC,GAAIC,GAAqBV,EAAWpwD,IAAI6wD,EACxCC,GAAmB1jB,cAAgB9f,EAAMlY,GACjB,GAApBkY,EAAM6f,aACR2jB,EAAmBj1B,SAAU,GAE/Bu0B,EAAW36C,OAAOq7C,MAMxB,IAAI17C,GAAKtW,KAAKsW,EACdT,GAAKnN,QAAQ1I,KAAK2xD,eAAgB,SAAUhpD,EAAUmB,GACpD0M,EAAG86C,WAAW58C,GAAG5K,EAAOnB,EAAU2N,KAIpCe,EAAMrX,KAAKsxD,WAAWv5C,SACtB/X,KAAK4xD,aAAav6C,GAIpBrX,KAAK6yD,mBAGL7yD,KAAKu1D,SAELv1D,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAakB,OAAO,KAO7Cg6C,EAAQxuD,UAAUi0D,UAAY,WAC5B,MAAOx1D,MAAKsxD,YAOdvB,EAAQxuD,UAAUqwC,WAAa,SAAUt7B,GACvC,GAAI5F,GAAO1Q,KAAKkxB,UAAUhwB,IAAIoV,GAC1B6jC,EAAUn6C,KAAKkxB,UAAUlZ,YAEzBtH,IAEF1Q,KAAKqP,QAAQwhD,SAASngD,EAAM,SAAUA,GAChCA,GAGFypC,EAAQ5hC,OAAOjC,MAYvBy5C,EAAQxuD,UAAUk0D,SAAW,SAAUxkC,GACrC,MAAOA,GAASxqB,MAAQzG,KAAKqP,QAAQ5I,OAASwqB,EAAS/H,IAAM,QAAU,QASzE6mC,EAAQxuD,UAAU4zD,YAAc,SAAUlkC,GAExC,MAAY,cADDjxB,KAAKy1D,SAASxkC,QACqB/tB,IAAlB+tB,EAASzC,MAC5BokC,EAEA5yD,KAAKsxD,WAAargC,EAASzC,MAAQmkC,GAS9C5C,EAAQxuD,UAAUkwD,UAAY,SAAUp6C,GACtC,GAAIb,GAAKxW,IAETqX,GAAI3O,QAAQ,SAAU4N,GACpB,GAKImN,GALAwN,EAAWza,EAAG0a,UAAUhwB,IAAIoV,EAAIE,EAAG66C,aACnC3gD,EAAO8F,EAAGE,MAAMJ,GAChB7P,EAAOwqB,EAAWza,EAAGi/C,SAASxkC,GAAY,KAE1ClrB,EAAcgqD,EAAQ12C,MAAM5S,EAehC,IAZIiK,IAEG3K,GAAiB2K,YAAgB3K,GAMpCyQ,EAAGS,YAAYvG,EAAMugB,IAJrBxN,EAAW/S,EAAK+S,SAChBjN,EAAGk/C,YAAYhlD,GACfA,EAAO,QAMNA,GAAQugB,EAAU,CAErB,IAAIlrB,EASG,KAAY,iBAARU,EAEH,GAAI3E,WAAU,gIAEd,GAAIA,WAAU,sBAAwB2E,EAAO,IAZnDiK,GAAO,GAAI3K,GAAYkrB,EAAUza,EAAGwV,WAAYxV,EAAGnH,SACnDqB,EAAK4F,GAAKA,EAEVE,EAAGC,SAAS/F,GACR+S,IACFzjB,KAAKoyD,UAAUhsD,KAAKkQ,GACpB5F,EAAK4d,YASX/F,KAAKvoB,OAEPA,KAAKu1D,SACLv1D,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAakB,OAAO,KAQ7Cg6C,EAAQxuD,UAAUiwD,OAASzB,EAAQxuD,UAAUkwD,UAO7C1B,EAAQxuD,UAAUmwD,UAAY,SAAUr6C,GACtC,GAAI8B,GAAQ,EACR3C,EAAKxW,IACTqX,GAAI3O,QAAQ,SAAU4N,GACpB,GAAI5F,GAAO8F,EAAGE,MAAMJ,EAChB5F,KACFyI,IACA3C,EAAGk/C,YAAYhlD,MAIfyI,IAEFnZ,KAAKu1D,SACLv1D,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAakB,OAAO,MAQ/Cg6C,EAAQxuD,UAAUg0D,OAAS,WAGzB1/C,EAAKnN,QAAQ1I,KAAKmwD,OAAQ,SAAU3hC,GAClCA,EAAM7W,WASVo4C,EAAQxuD,UAAU0wD,gBAAkB,SAAU56C,GAC5CrX,KAAK4xD,aAAav6C,IAQpB04C,EAAQxuD,UAAUqwD,aAAe,SAAUv6C,GACzC,GAAIb,GAAKxW,IAETqX,GAAI3O,QAAQ,SAAU4N,GACpB,GAAIu7C,GAAYr7C,EAAG86C,WAAWpwD,IAAIoV,GAC9BkY,EAAQhY,EAAG25C,OAAO75C,EAEtB,IAAKkY,EA4BHA,EAAM5U,QAAQi4C,OA5BJ,CAEV,GAAIv7C,GAAMq8C,GAAar8C,GAAMs8C,EAC3B,KAAM,IAAI/sD,OAAM,qBAAuByQ,EAAK,qBAG9C,IAAIq/C,IAAe,EAAIryD,EAAkB,SAAGkT,EAAGnH,QAC/CwG,GAAKrQ,OAAOmwD,GACVxjD,OAAQ,OAGVqc,EAAQ,GAAImf,GAAMr3B,EAAIu7C,EAAWr7C,GACjCA,EAAG25C,OAAO75C,GAAMkY,CAGhB,KAAK,GAAI/W,KAAUjB,GAAGE,MACpB,GAAIF,EAAGE,MAAMlV,eAAeiW,GAAS,CACnC,GAAI/G,GAAO8F,EAAGE,MAAMe,EAChB/G,GAAKwE,KAAKsZ,OAASlY,GACrBkY,EAAM/Y,IAAI/E,GAKhB8d,EAAM7W,QACN6W,EAAMO,UAOV/uB,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAakB,OAAO,KAQ7Cg6C,EAAQxuD,UAAU2wD,gBAAkB,SAAU76C,GAC5C,GAAI84C,GAASnwD,KAAKmwD,MAClB94C,GAAI3O,QAAQ,SAAU4N,GACpB,GAAIkY,GAAQ2hC,EAAO75C,EAEfkY,KACFA,EAAMzO,aACCowC,GAAO75C,MAIlBtW,KAAKyzD,YAELzzD,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAakB,OAAO,KAQ7Cg6C,EAAQxuD,UAAUwyD,aAAe,WAC/B,GAAI/zD,KAAKsxD,WAAY,CAEnB,GAAIa,GAAWnyD,KAAKsxD,WAAWv5C,QAC7BJ,MAAO3X,KAAKqP,QAAQghD,YAGtB8B,GAAWnyD,KAAK41D,mBAAmBzD,EAEnC,IAAIrvB,IAAWjtB,EAAKvP,WAAW6rD,EAAUnyD,KAAKmyD,SAC9C,IAAIrvB,EAAS,CAEX,GAAIqtB,GAASnwD,KAAKmwD,MAClBgC,GAASzpD,QAAQ,SAAUklC,GACzBuiB,EAAOviB,GAAS7tB,SAIlBoyC,EAASzpD,QAAQ,SAAUklC,GACzBuiB,EAAOviB,GAAS7e,SAGlB/uB,KAAKmyD,SAAWA,EAGlB,MAAOrvB,GAEP,OAAO,GAWXitB,EAAQxuD,UAAUq0D,mBAAqB,SAAUzD,GAC/C,GAAI0D,KAoBJ,OAlBA1D,GAASzpD,QAAQ,SAAUklC,GACzB,GAAIikB,GAAY7xD,KAAKsxD,WAAWpwD,IAAI0sC,EAIpC,IAHKikB,EAAUvjB,eACbunB,EAAiBzvD,KAAKwnC,GAEpBikB,EAAUzjB,aAAc,CAC1B,GAAIA,GAAepuC,KAAKsxD,WAAWpwD,KACjCoH,OAAQ,SAAgBwtD,GACtB,MAAOA,GAAYxnB,eAAiBV,GAEtCj2B,MAAO3X,KAAKqP,QAAQghD,aAElB0F,EAAiB3nB,EAAahiC,IAAI,SAAU0pD,GAC9C,MAAOA,GAAYx/C,IAErBu/C,GAAmBA,EAAiBxtD,OAAO0tD,KAE5C/1D,MACI61D,GAQT9F,EAAQxuD,UAAUkV,SAAW,SAAU/F,GACrC1Q,KAAK0W,MAAMhG,EAAK4F,IAAM5F,CAGtB,IAAIk9B,GAAU5tC,KAAKm1D,YAAYzkD,EAAKwE,MAChCsZ,EAAQxuB,KAAKmwD,OAAOviB,EAEnBpf,GAEMA,GAASA,EAAMtZ,MAAQsZ,EAAMtZ,KAAKm5B,aAC3C39B,EAAKud,cAAe,GAFpBvd,EAAKud,cAAe,EAKlBO,GAAOA,EAAM/Y,IAAI/E,IASvBq/C,EAAQxuD,UAAU0V,YAAc,SAAUvG,EAAMugB,GAE9CvgB,EAAKkJ,QAAQqX,EAEb,IAAI2c,GAAU5tC,KAAKm1D,YAAYzkD,EAAKwE,MAChCsZ,EAAQxuB,KAAKmwD,OAAOviB,EACnBpf,GAEMA,GAASA,EAAMtZ,MAAQsZ,EAAMtZ,KAAKm5B,aAC3C39B,EAAKud,cAAe,GAFpBvd,EAAKud,cAAe,GAYxB8hC,EAAQxuD,UAAUm0D,YAAc,SAAUhlD,GAExCA,EAAKqP,aAGE/f,MAAK0W,MAAMhG,EAAK4F,GAGvB,IAAI6kB,GAAQn7B,KAAKoyD,UAAUjsD,QAAQuK,EAAK4F,KAC1B,GAAV6kB,GAAan7B,KAAKoyD,UAAUx+B,OAAOuH,EAAO,GAG9CzqB,EAAKpG,QAAUoG,EAAKpG,OAAOiO,OAAO7H,IASpCq/C,EAAQxuD,UAAUy0D,qBAAuB,SAAUntD,GAGjD,IAAK,GAFDipC,MAEKzxC,EAAI,EAAGA,EAAIwI,EAAMxG,OAAQhC,IAC5BwI,EAAMxI,YAAc0yC,IACtBjB,EAAS1rC,KAAKyC,EAAMxI,GAGxB,OAAOyxC,IAaTie,EAAQxuD,UAAUggC,SAAW,SAAUz3B,GAErC9J,KAAKswB,YAAY5f,KAAO1Q,KAAKi2D,eAAensD,GAC5C9J,KAAKswB,YAAY+jB,aAAevqC,EAAM3H,OAAOkyC,eAAgB,EAC7Dr0C,KAAKswB,YAAYikB,cAAgBzqC,EAAM3H,OAAOoyC,gBAAiB,EAC/Dv0C,KAAKswB,YAAY4lC,UAAY,MAU/BnG,EAAQxuD,UAAU40D,eAAiB,SAAUvoB,GAC3C,IAAK,GAAIvtC,GAAI,EAAGA,EAAIL,KAAKmyD,SAAS9vD,OAAQhC,IACxC,GAAIutC,GAAW5tC,KAAKmyD,SAAS9xD,GAAI,MAAOA,IAS5C0vD,EAAQxuD,UAAUm3B,aAAe,SAAU5uB,GACzC,IAAI9J,KAAKswB,YAAYC,eAArB,CAGA,GAEInuB,GAFAsO,EAAO1Q,KAAKswB,YAAY5f,MAAQ,KAChC8F,EAAKxW,IAGT,IAAI0Q,IAASA,EAAK+S,UAAYzjB,KAAKqP,QAAQ+kC,qBAAqB1jC,MAAO,CAErE,GAAI1Q,KAAKqP,QAAQ8e,SAAS2B,gBAAkB9vB,KAAKqP,QAAQ8e,SAASiB,aAAepvB,KAAKqP,QAAQ8e,SAAS4D,YACrG,MAIF,IAAqB,MAAjBrhB,EAAKyd,WAAqBzd,EAAKyd,SAASiB,aAAe1e,EAAKyd,SAAS4D,cAAgB/xB,KAAKqP,QAAQ8e,SAAS2B,cAC7G,MAGF,IAAIukB,GAAer0C,KAAKswB,YAAY+jB,aAChCE,EAAgBv0C,KAAKswB,YAAYikB,aAIrC,IAHAv0C,KAAKswB,YAAYC,gBAAiB,EAClCvwB,KAAKswB,YAAY8lC,aAAe1lD,EAE5B2jC,EACFjyC,GACEsO,KAAM2jC,EACNgiB,SAAUvsD,EAAMk4B,OAAOryB,EACvBggB,UAAU,EACVza,KAAMlV,KAAKs2D,eAAe5lD,EAAKwE,OAGjClV,KAAKswB,YAAY4lC,WAAa9zD,OACzB,IAAImyC,EACTnyC,GACEsO,KAAM6jC,EACN8hB,SAAUvsD,EAAMk4B,OAAOryB,EACvB2kC,WAAW,EACXp/B,KAAMlV,KAAKs2D,eAAe5lD,EAAKwE,OAGjClV,KAAKswB,YAAY4lC,WAAa9zD,OACzB,IAAIpC,KAAKqP,QAAQ8e,SAAS1Y,MAAQ3L,EAAMysD,SAASC,SAAW1sD,EAAMysD,SAASE,SAEhFz2D,KAAK02D,oBAAoB5sD,OACpB,CACD9J,KAAKmyD,SAAS9vD,OAAS,GAGzBrC,KAAKwf,QAGP,IAAIm3C,GAAiB32D,KAAKm2D,eAAezlD,EAAKwE,KAAKsZ,OAE/CooC,EAAc52D,KAAKqP,QAAQ+kC,qBAAqB1jC,OAASA,EAAK+S,UAAY/S,EAAK4F,IAAMtW,KAAK4zD,cAE9F5zD,MAAKswB,YAAY4lC,UAAYU,EAAYxqD,IAAI,SAAUkK,GACrD,GAAI5F,GAAO8F,EAAGE,MAAMJ,GAChBugD,EAAargD,EAAG2/C,eAAezlD,EAAKwE,KAAKsZ,MAC7C,QACE9d,KAAMA,EACN2lD,SAAUvsD,EAAMk4B,OAAOryB,EACvBmnD,YAAaH,EAAiBE,EAC9B3hD,KAAMlV,KAAKs2D,eAAe5lD,EAAKwE,QAEjCqT,KAAKvoB,OAGT8J,EAAM0lB,sBACGxvB,MAAKqP,QAAQ8e,SAAS1Y,MAAQ3L,EAAMysD,SAASC,SAAW1sD,EAAMysD,SAASE,UAEhFz2D,KAAK02D,oBAAoB5sD,KAS7BimD,EAAQxuD,UAAUm1D,oBAAsB,SAAU5sD,GAChD,GAAIitD,GACApnD,EACAs9B,EAAOjtC,KAAKqP,QAAQ49B,MAAQ,IAE5BjtC,MAAKqP,QAAQ2gB,KACf+mC,EAAOlhD,EAAKlO,iBAAiB3H,KAAK+tB,IAAImlB,OACtCvjC,EAAIonD,EAAOjtD,EAAMk4B,OAAOryB,EAAI,KAE5BonD,EAAOlhD,EAAKtO,gBAAgBvH,KAAK+tB,IAAImlB,OACrCvjC,EAAI7F,EAAMk4B,OAAOryB,EAAIonD,EAAO,GAG9B,IAAIhrC,GAAO/rB,KAAKyS,KAAKoD,KAAKyW,OAAO3c,GAC7BlL,EAAQzE,KAAKyS,KAAKoD,KAAKmhD,WACvB9gC,EAAOl2B,KAAKyS,KAAKoD,KAAK8yC,UACtB1/B,EAAQgkB,EAAOA,EAAKlhB,EAAMtnB,EAAOyxB,GAAQnK,EACzC7C,EAAMD,EAENgI,GACFxqB,KAAM,QACNwiB,MAAOA,EACPC,IAAKA,EACL9M,QAAS,YAGP9F,EAAKT,EAAK1Q,YACd8rB,GAASjxB,KAAKkxB,UAAU7b,UAAYiB,CAEpC,IAAIkY,GAAQxuB,KAAKi3D,gBAAgBntD,EAC7B0kB,KACFyC,EAASzC,MAAQA,EAAMof,QAEzB,IAAIspB,GAAU,GAAInkB,GAAU9hB,EAAUjxB,KAAKgsB,WAAYhsB,KAAKqP,QAC5D6nD,GAAQ5gD,GAAKA,EACb4gD,EAAQhiD,KAAOlV,KAAKs2D,eAAerlC,GACnCjxB,KAAKyW,SAASygD,GACdl3D,KAAKswB,YAAY8lC,aAAec,CAEhC,IAAI90D,IACFsO,KAAMwmD,EACNb,SAAUvsD,EAAMk4B,OAAOryB,EACvBuF,KAAMgiD,EAAQhiD,KAGZlV,MAAKqP,QAAQ2gB,IACf5tB,EAAMutB,UAAW,EAEjBvtB,EAAMkyC,WAAY,EAEpBt0C,KAAKswB,YAAY4lC,WAAa9zD,GAE9B0H,EAAM0lB,mBAQRugC,EAAQxuD,UAAUo3B,QAAU,SAAU7uB,GACpC,GAAI9J,KAAKswB,YAAY4lC,UAAW,CAC9BpsD,EAAM0lB,iBAEN,IAEItT,GAFA1F,EAAKxW,KACLitC,EAAOjtC,KAAKqP,QAAQ49B,MAAQ,IAI9B/wB,GADElc,KAAKqP,QAAQ2gB,IACLhwB,KAAKyS,KAAKsb,IAAItuB,KAAKiwC,WAAa1vC,KAAKyS,KAAK2W,SAASxhB,MAAMsK,MAEzDlS,KAAKyS,KAAKsb,IAAItuB,KAAKiwC,WAAa1vC,KAAKyS,KAAK2W,SAAS1hB,KAAKwK,KAGpE,IAAIzN,GAAQzE,KAAKyS,KAAKoD,KAAKmhD,WACvB9gC,EAAOl2B,KAAKyS,KAAKoD,KAAK8yC,UAGtByN,EAAep2D,KAAKswB,YAAY8lC,aAChCe,GAAsBn3D,KAAKqP,QAAQ8e,SAAS2B,eAA0C,MAAzBsmC,EAAajoC,WAAqBnuB,KAAKqP,QAAQ8e,SAAS4D,cAAgB/xB,KAAKqP,QAAQ8e,SAAS2B,eAA0C,MAAzBsmC,EAAajoC,UAAoBioC,EAAajoC,SAAS4D,YACnOqlC,EAAe,IACnB,IAAID,GAAsBf,OACOlzD,IAA3BkzD,EAAalhD,KAAKsZ,MAAoB,CAExC,GAAIA,GAAQhY,EAAGygD,gBAAgBntD,EAC3B0kB,KAGF4oC,EAAep3D,KAAKm2D,eAAe3nC,EAAMof,UAM/C5tC,KAAKswB,YAAY4lC,UAAUxtD,QAAQ,SAAUtG,GAC3C,GAEIwnB,GACAytC,EACA9lB,EACAtoB,EACAC,EANAsC,EAAUhV,EAAG/D,KAAKoD,KAAKyW,OAAOxiB,EAAMk4B,OAAOryB,EAAIuM,GAC/Co7C,EAAU9gD,EAAG/D,KAAKoD,KAAKyW,OAAOlqB,EAAMi0D,SAAWn6C,EAQjD0N,GADE5pB,KAAKqP,QAAQ2gB,MACJxE,EAAU8rC,GAEZ9rC,EAAU8rC,CAGrB,IAAIrmC,GAAWjxB,KAAKs2D,eAAel0D,EAAMsO,KAAKwE,KAC9C,IAA2B,MAAvB9S,EAAMsO,KAAKyd,UAAqB/rB,EAAMsO,KAAKyd,SAASiB,YAAehtB,EAAMsO,KAAKyd,SAAS4D,aAAgBvb,EAAGnH,QAAQ8e,SAAS2B,cAA/H,CAKA,IADyB9vB,KAAKqP,QAAQ8e,SAAS2B,eAA0C,MAAzBsmC,EAAajoC,WAAqBnuB,KAAKqP,QAAQ8e,SAASiB,aAAepvB,KAAKqP,QAAQ8e,SAAS2B,eAA0C,MAAzBsmC,EAAajoC,UAAoBioC,EAAajoC,SAASiB,WAEnO,GAAIhtB,EAAMutB,SAEJ3vB,KAAKqP,QAAQ2gB,QACK9sB,IAAhB+tB,EAAS/H,MACXqoB,EAAa17B,EAAKrP,QAAQpE,EAAM8S,KAAKgU,IAAK,QAC1CA,EAAM,GAAIpkB,MAAKysC,EAAW3qC,UAAYgjB,GAEtCqH,EAAS/H,IAAM+jB,EAAOA,EAAK/jB,EAAKzkB,EAAOyxB,GAAQhN,OAG3BhmB,IAAlB+tB,EAAShI,QACXouC,EAAexhD,EAAKrP,QAAQpE,EAAM8S,KAAK+T,MAAO,QAC9CA,EAAQ,GAAInkB,MAAKuyD,EAAazwD,UAAYgjB,GAE1CqH,EAAShI,MAAQgkB,EAAOA,EAAKhkB,EAAOxkB,EAAOyxB,GAAQjN,OAGlD,IAAI7mB,EAAMkyC,UAEXt0C,KAAKqP,QAAQ2gB,QACO9sB,IAAlB+tB,EAAShI,QACXouC,EAAexhD,EAAKrP,QAAQpE,EAAM8S,KAAK+T,MAAO,QAC9CA,EAAQ,GAAInkB,MAAKuyD,EAAazwD,UAAYgjB,GAE1CqH,EAAShI,MAAQgkB,EAAOA,EAAKhkB,EAAOxkB,EAAOyxB,GAAQjN,OAGjC/lB,IAAhB+tB,EAAS/H,MACXqoB,EAAa17B,EAAKrP,QAAQpE,EAAM8S,KAAKgU,IAAK,QAC1CA,EAAM,GAAIpkB,MAAKysC,EAAW3qC,UAAYgjB,GAEtCqH,EAAS/H,IAAM+jB,EAAOA,EAAK/jB,EAAKzkB,EAAOyxB,GAAQhN,OAKnD,QAAsBhmB,IAAlB+tB,EAAShI,MAKX,GAHAouC,EAAexhD,EAAKrP,QAAQpE,EAAM8S,KAAK+T,MAAO,QAAQriB,UACtDqiB,EAAQ,GAAInkB,MAAKuyD,EAAeztC,OAEZ1mB,IAAhB+tB,EAAS/H,IAAkB,CAC7BqoB,EAAa17B,EAAKrP,QAAQpE,EAAM8S,KAAKgU,IAAK,OAC1C,IAAIS,GAAW4nB,EAAW3qC,UAAYywD,EAAazwD,SAGnDqqB,GAAShI,MAAQgkB,EAAOA,EAAKhkB,EAAOxkB,EAAOyxB,GAAQjN,EACnDgI,EAAS/H,IAAM,GAAIpkB,MAAKmsB,EAAShI,MAAMriB,UAAY+iB,OAGnDsH,GAAShI,MAAQgkB,EAAOA,EAAKhkB,EAAOxkB,EAAOyxB,GAAQjN,CAM3D,IAAIkuC,IAAuB/0D,EAAMutB,WAAavtB,EAAMkyC,WAA6B,MAAhB8iB,OACzCl0D,IAAlB+tB,EAASzC,MAAoB,CAC/B,GAAI+oC,GAAYH,EAAeh1D,EAAM00D,WAGrCS,GAAY7yD,KAAKJ,IAAI,EAAGizD,GACxBA,EAAY7yD,KAAKL,IAAImS,EAAG27C,SAAS9vD,OAAS,EAAGk1D,GAC7CtmC,EAASzC,MAAQhY,EAAG27C,SAASoF,GAKjCtmC,EAAWjxB,KAAKs2D,eAAerlC,GAC/Bza,EAAGnH,QAAQyhD,SAAS7/B,EAAU,SAAUA,GAClCA,GACF7uB,EAAMsO,KAAKkJ,QAAQ5Z,KAAKs2D,eAAerlC,EAAU,UAEnD1I,KAAKvoB,SACPuoB,KAAKvoB,OAEPA,KAAKyS,KAAK8c,QAAQ1a,KAAK,aAU3Bk7C,EAAQxuD,UAAUmtB,aAAe,SAAUhe,EAAMk9B,GAC/C,GAAIpf,GAAQxuB,KAAKmwD,OAAOviB,EACxB,IAAIpf,GAASA,EAAMof,SAAWl9B,EAAKwE,KAAKsZ,MAAO,CAC7C,GAAIgpC,GAAW9mD,EAAKpG,MACpBktD,GAASj/C,OAAO7H,GAChB8mD,EAAS7/C,QAETjH,EAAKwE,KAAKsZ,MAAQA,EAAMof,QAExBpf,EAAM/Y,IAAI/E,GACV8d,EAAM7W,UASVo4C,EAAQxuD,UAAUq3B,WAAa,SAAU9uB,GAEvC,GADA9J,KAAKswB,YAAYC,gBAAiB,EAC9BvwB,KAAKswB,YAAY4lC,UAAW,CAC9BpsD,EAAM0lB,iBAEN,IAAIhZ,GAAKxW,KACLm6C,EAAUn6C,KAAKkxB,UAAUlZ,aACzBk+C,EAAYl2D,KAAKswB,YAAY4lC,SACjCl2D,MAAKswB,YAAY4lC,UAAY,KAE7BA,EAAUxtD,QAAQ,SAAUtG,GAC1B,GAAIkU,GAAKlU,EAAMsO,KAAK4F,EAGpB,IAFqD,MAAxCE,EAAG0a,UAAUhwB,IAAIoV,EAAIE,EAAG66C,aAa9B,CAEL,GAAIpgC,GAAWjxB,KAAKs2D,eAAel0D,EAAMsO,KAAKwE,KAC9CsB,GAAGnH,QAAQuhD,OAAO3/B,EAAU,SAAUA,GAChCA,GAEFA,EAASkpB,EAAQ9kC,UAAYiB,EAC7B6jC,EAAQxjC,OAAOsa,KAGf7uB,EAAMsO,KAAKkJ,QAAQxX,EAAM8S,MAEzBsB,EAAG/D,KAAK8c,QAAQ1a,KAAK,kBArBzB2B,GAAGnH,QAAQqhD,MAAMtuD,EAAMsO,KAAKwE,KAAM,SAAU+b,GAC1Cza,EAAGk/C,YAAYtzD,EAAMsO,MACjBugB,GACFza,EAAG0a,UAAUlZ,aAAavC,IAAIwb,GAIhCza,EAAG/D,KAAK8c,QAAQ1a,KAAK,cAkBzB0T,KAAKvoB,SAIX+vD,EAAQxuD,UAAU2xD,cAAgB,SAAUppD,GAC1C,GAAI0kB,GAAQxuB,KAAKi3D,gBAAgBntD,EAEjC,IAAK0kB,GAAUA,EAAM4f,aAArB,CAEA,GAAIkjB,GAAatxD,KAAKsxD,WAAWt5C,aAE7By/C,EAAenG,EAAWpwD,IAAIstB,EAAMof,aACT1qC,IAA3Bu0D,EAAappB,aACfopB,EAAappB,YAAa,GAE5BopB,EAAappB,YAAcopB,EAAappB,UAExC,IAAID,GAAekjB,EAAWpwD,IAAIstB,EAAM4f,cAAchiC,IAAI,SAAU0pD,GAElE,MADAA,GAAY/4B,QAAU06B,EAAappB,WAC5BynB,GAKT,IAFAxE,EAAW36C,OAAOy3B,EAAa/lC,OAAOovD,IAElCA,EAAappB,WACfx4B,EAAKrN,gBAAgBgmB,EAAMT,IAAI9R,MAAO,aACtCpG,EAAK9N,aAAaymB,EAAMT,IAAI9R,MAAO,gBAC9B,CACLpG,EAAKrN,gBAAgBgmB,EAAMT,IAAI9R,MAAO,WACtC,IAAI6yB,GAAwB9uC,KAAKqP,QAAQ2gB,IAAM,gBAAkB,WACjEna,GAAK9N,aAAaymB,EAAMT,IAAI9R,MAAO6yB,MAIvCihB,EAAQxuD,UAAU4xD,kBAAoB,SAAUrpD,GAC1C9J,KAAKqP,QAAQu/B,cAAcj3B,QAC7B3X,KAAKsyD,iBAAiB9jC,MAAQxuB,KAAKi3D,gBAAgBntD,GAE/C9J,KAAKsyD,iBAAiB9jC,QACxB1kB,EAAM0lB,kBAENxvB,KAAKsyD,iBAAiBoF,cAAgB13D,KAAKsxD,WAAWv5C,QACpDJ,MAAO3X,KAAKqP,QAAQghD,gBAM5BN,EAAQxuD,UAAU6xD,aAAe,SAAUtpD,GACzC,GAAI9J,KAAKqP,QAAQu/B,cAAcj3B,OAAS3X,KAAKsyD,iBAAiB9jC,MAAO,CACnE1kB,EAAM0lB,iBAEN,IAAI8hC,GAAatxD,KAAKsxD,UAClBtxD,MAAKsxD,qBAAsB93C,KAC7B83C,EAAatxD,KAAKsxD,WAAWt5C,aAG/B,IAAIwW,GAAQxuB,KAAKi3D,gBAAgBntD,EAGjC,IAAI0kB,GAASA,EAAMrc,QAAUnS,KAAKsyD,iBAAiB9jC,MAAMrc,OAAQ,CAC/D,GAAIwlD,GAAWnpC,EAAM1mB,IAAM9H,KAAKsyD,iBAAiB9jC,MAAM1mB,IACnDu8B,EAAUv6B,EAAMk4B,OAASl4B,EAAMk4B,OAAOrmB,EAAI7R,EAAMu6B,QAChDuzB,EAAiB/hD,EAAKhO,eAAe2mB,EAAMT,IAAIiG,YAC/C6jC,EAAqB73D,KAAKsyD,iBAAiB9jC,MAAMrc,MACrD,IAAIwlD,GAEF,GAAIC,EAAiBC,EAAqBxzB,EACxC,WAEG,CAGL,GAAIuzB,EAFoBppC,EAAMrc,OAEW0lD,EAAqBxzB,EAC5D,QAKN,GAAI7V,GAASA,GAASxuB,KAAKsyD,iBAAiB9jC,MAAO,CACjD,GAAIspC,GAAcxG,EAAWpwD,IAAIstB,EAAMof,SACnCmqB,EAAezG,EAAWpwD,IAAIlB,KAAKsyD,iBAAiB9jC,MAAMof,QAG1DmqB,IAAgBD,IAClB93D,KAAKqP,QAAQ2gD,eAAe+H,EAAcD,EAAaxG,GACvDA,EAAW36C,OAAOohD,GAClBzG,EAAW36C,OAAOmhD,GAIpB,IAAIE,GAAW1G,EAAWv5C,QACxBJ,MAAO3X,KAAKqP,QAAQghD,YAItB,KAAKx6C,EAAKvP,WAAW0xD,EAAUh4D,KAAKsyD,iBAAiBoF,eAOnD,IANA,GAAIO,GAAYj4D,KAAKsyD,iBAAiBoF,cAClCQ,EAAYl4D,KAAKsyD,iBAAiB9jC,MAAMof,QACxCuqB,EAAYzzD,KAAKL,IAAI4zD,EAAU51D,OAAQ21D,EAAS31D,QAChD+1D,EAAS,EACTb,EAAY,EACZc,EAAY,EACTD,EAASD,GAAW,CAEzB,KAAOC,EAASb,EAAYY,GAAaC,EAASC,EAAYF,GAAaH,EAASI,EAASb,IAAcU,EAAUG,EAASC,IAC5HD,GAIF,IAAIA,EAASb,GAAaY,EACxB,KAKF,IAAIH,EAASI,EAASb,IAAcW,EAClCX,EAAY,MAGT,IAAIU,EAAUG,EAASC,IAAcH,EACtCG,EAAY,MAIT,CACD,GAAIC,GAAkBN,EAAS7xD,QAAQ8xD,EAAUG,EAASC,IACtDE,EAAcjH,EAAWpwD,IAAI82D,EAASI,EAASb,IAC/CiB,EAAgBlH,EAAWpwD,IAAI+2D,EAAUG,EAASC,GACtDr4D,MAAKqP,QAAQ2gD,eAAeuI,EAAaC,EAAelH,GACxDA,EAAW36C,OAAO4hD,GAClBjH,EAAW36C,OAAO6hD,EAElB,IAAIC,GAAgBT,EAASI,EAASb,EACtCS,GAASI,EAASb,GAAaU,EAAUG,EAASC,GAClDL,EAASM,GAAmBG,EAE5BL,SAQhBrI,EAAQxuD,UAAU8xD,gBAAkB,SAAUvpD,GAC5C,GAAI9J,KAAKqP,QAAQu/B,cAAcj3B,OAAS3X,KAAKsyD,iBAAiB9jC,MAAO,CACnE1kB,EAAM0lB,iBAGN,IAAIhZ,GAAKxW,KACLsW,EAAKE,EAAG87C,iBAAiB9jC,MAAMof,QAC/BuM,EAAU3jC,EAAG86C,WAAWt5C,aACxB65C,EAAYh8C,EAAKrQ,UAAW20C,EAAQj5C,IAAIoV,GAC5CE,GAAGnH,QAAQ2hD,YAAYa,EAAW,SAAUA,GAC1C,GAAIA,EAEFA,EAAU1X,EAAQ9kC,UAAYiB,EAC9B6jC,EAAQxjC,OAAOk7C,OACV,CAGL,GAAImG,GAAW7d,EAAQpiC,QACrBJ,MAAOnB,EAAGnH,QAAQghD,YAIpB,KAAKx6C,EAAKvP,WAAW0xD,EAAUxhD,EAAG87C,iBAAiBoF,eAIjD,IAHA,GAAIO,GAAYzhD,EAAG87C,iBAAiBoF,cAChCS,EAAYzzD,KAAKL,IAAI4zD,EAAU51D,OAAQ21D,EAAS31D,QAChD+1D,EAAS,EACNA,EAASD,GAAW,CAEzB,KAAOC,EAASD,GAAaH,EAASI,IAAWH,EAAUG,IACzDA,GAIF,IAAIA,GAAUD,EACZ,KAKF,IAAIG,GAAkBN,EAAS7xD,QAAQ8xD,EAAUG,IAC7CG,EAAcpe,EAAQj5C,IAAI82D,EAASI,IACnCI,EAAgBre,EAAQj5C,IAAI+2D,EAAUG,GAC1C5hD,GAAGnH,QAAQ2gD,eAAeuI,EAAaC,EAAere,GACtDA,EAAQxjC,OAAO4hD,GACfpe,EAAQxjC,OAAO6hD,EAEf,IAAIC,GAAgBT,EAASI,EAC7BJ,GAASI,GAAUH,EAAUG,GAC7BJ,EAASM,GAAmBG,EAE5BL,QAMR5hD,EAAG/D,KAAK8c,QAAQ1a,KAAK,gBAAkB+4B,QAASt3B,MASpDy5C,EAAQxuD,UAAUwxD,cAAgB,SAAUjpD,GAC1C,GAAK9J,KAAKqP,QAAQihD,WAAlB,CAEA,GAAIkG,GAAU1sD,EAAMysD,WAAazsD,EAAMysD,SAASC,SAAW1sD,EAAMysD,SAASE,SACtEnuC,EAAWxe,EAAMysD,UAAYzsD,EAAMysD,SAASjuC,QAChD,IAAIkuC,GAAWluC,EAEb,WADAtoB,MAAKgzD,mBAAmBlpD,EAI1B,IAAI4uD,GAAe14D,KAAK4zD,eAEpBljD,EAAO1Q,KAAKi2D,eAAensD,GAC3BsoD,EAAY1hD,GAAQA,EAAK4F,MAC7BtW,MAAK2zD,aAAavB,EAElB,IAAIuG,GAAe34D,KAAK4zD,gBAIpB+E,EAAat2D,OAAS,GAAKq2D,EAAar2D,OAAS,IACnDrC,KAAKyS,KAAK8c,QAAQ1a,KAAK,UACrB6B,MAAOiiD,EACP7uD,MAAOA,MAUbimD,EAAQxuD,UAAUgyD,aAAe,SAAUzpD,GACzC,GAAI4G,GAAO1Q,KAAKi2D,eAAensD,EAC/B,IAAK4G,EAAL,CAIA,GAAIA,IADU1Q,KAAK44D,sBAAsB9uD,GACzC,CAKA,GAAImmB,GAAQvf,EAAKwhB,UACjB,IAAIlyB,KAAKqP,QAAQ6hD,cAAgBjhC,EAAO,CACpB,MAAdjwB,KAAKqyD,QACPryD,KAAKqyD,MAAQ,GAAIK,GAAM1yD,KAAKyS,KAAKsb,IAAItuB,KAAMO,KAAKqP,QAAQi7C,QAAQ8G,gBAAkB,SAGpFpxD,KAAKqyD,MAAMwG,QAAQ5oC,EACnB,IAAIvI,GAAY1nB,KAAKyS,KAAKsb,IAAI1E,eAC9BrpB,MAAKqyD,MAAMyG,YAAYhvD,EAAMs6B,QAAUvuB,EAAKtO,gBAAgBmgB,GAAaA,EAAUgoB,WAAY5lC,EAAMu6B,QAAUxuB,EAAKhO,eAAe6f,GAAaA,EAAU+nB,WAC1JzvC,KAAKqyD,MAAMtjC,WAIO,OAAd/uB,KAAKqyD,OACPryD,KAAKqyD,MAAMtyC,MAIf/f,MAAKyS,KAAK8c,QAAQ1a,KAAK,YACrBnE,KAAMA,EAAK4F,GACXxM,MAAOA,OAGXimD,EAAQxuD,UAAUiyD,YAAc,SAAU1pD,GACxC,GAAI4G,GAAO1Q,KAAKi2D,eAAensD,EAC/B,IAAK4G,EAAL,CAIIA,IADU1Q,KAAK44D,sBAAsB9uD,KAMvB,MAAd9J,KAAKqyD,OACPryD,KAAKqyD,MAAMtyC,OAGb/f,KAAKyS,KAAK8c,QAAQ1a,KAAK,WACrBnE,KAAMA,EAAK4F,GACXxM,MAAOA,OAGXimD,EAAQxuD,UAAUkmD,aAAe,SAAU39C,GAEzC,GADW9J,KAAKi2D,eAAensD,IAG3B9J,KAAKqP,QAAQ6hD,cAAgBlxD,KAAKqP,QAAQi7C,QAAQ6G,aAChDnxD,KAAKqyD,QACFryD,KAAKqyD,MAAMznC,OAAQ,CACtB,GAAIlD,GAAY1nB,KAAKyS,KAAKsb,IAAI1E,eAC9BrpB,MAAKqyD,MAAMyG,YAAYhvD,EAAMs6B,QAAUvuB,EAAKtO,gBAAgBmgB,GAAaA,EAAUgoB,WAAY5lC,EAAMu6B,QAAUxuB,EAAKhO,eAAe6f,GAAaA,EAAU+nB,WAC1JzvC,KAAKqyD,MAAMtjC,SAWnBghC,EAAQxuD,UAAUg3B,cAAgB,SAAUzuB,GACtC9J,KAAKswB,YAAYC,gBACnBvwB,KAAK44B,WAAW9uB,IASpBimD,EAAQxuD,UAAUkuB,cAAgB,SAAU/e,GAC1C,GAAK1Q,KAAKqP,QAAQihD,YACbtwD,KAAKqP,QAAQ8e,SAAS1Y,IAA3B,CAEA,GAAIe,GAAKxW,IAET,IAAI0Q,EAAM,CAER,GAAIugB,GAAWza,EAAG0a,UAAUhwB,IAAIwP,EAAK4F,GACrCtW,MAAKqP,QAAQshD,SAAS1/B,EAAU,SAAUA,GACpCA,GACFza,EAAG0a,UAAUlZ,aAAarB,OAAOsa,QAYzC8+B,EAAQxuD,UAAU0kC,oBAAsB,SAAUn8B,GAChD,GAAI4G,GAAO1Q,KAAKi2D,eAAensD,GAC3B2mD,EAAa3qB,KAAK5gC,MAAM4E,EAAM67B,aAAaI,QAAQ,QACvD/lC,MAAKqP,QAAQmhD,mBAAmBC,EAAY//C,IAQ9Cq/C,EAAQxuD,UAAUykC,WAAa,SAAUl8B,GACvC,GAAK9J,KAAKqP,QAAQihD,YACbtwD,KAAKqP,QAAQ8e,SAAS1Y,IAA3B,CAEA,GAEIshD,GACApnD,EAHA6G,EAAKxW,KACLitC,EAAOjtC,KAAKqP,QAAQ49B,MAAQ,IAI5BjtC,MAAKqP,QAAQ2gB,KACf+mC,EAAOlhD,EAAKlO,iBAAiB3H,KAAK+tB,IAAImlB,OACtCvjC,EAAIonD,EAAOjtD,EAAMk4B,OAAOryB,IAExBonD,EAAOlhD,EAAKtO,gBAAgBvH,KAAK+tB,IAAImlB,OACrCvjC,EAAI7F,EAAMk4B,OAAOryB,EAAIonD,EAIvB,IAGI7tC,GAEA6vC,EALA9vC,EAAQjpB,KAAKyS,KAAKoD,KAAKyW,OAAO3c,GAC9BlL,EAAQzE,KAAKyS,KAAKoD,KAAKmhD,WACvB9gC,EAAOl2B,KAAKyS,KAAKoD,KAAK8yC,SAIR,SAAd7+C,EAAMrD,MACRsyD,EAAcjzB,KAAK5gC,MAAM4E,EAAM67B,aAAaI,QAAQ,SACpDgzB,EAAY38C,QAAU28C,EAAY38C,QAAU28C,EAAY38C,QAAU,WAClE28C,EAAY9vC,MAAQ8vC,EAAY9vC,MAAQ8vC,EAAY9vC,MAAQgkB,EAAOA,EAAKhkB,EAAOxkB,EAAOyxB,GAAQjN,EAC9F8vC,EAAYtyD,KAAOsyD,EAAYtyD,MAAQ,MACvCsyD,EAAY/4D,KAAKkxB,UAAU7b,UAAY0jD,EAAYziD,IAAMT,EAAK1Q,aAEtC,SAApB4zD,EAAYtyD,MAAoBsyD,EAAY7vC,MAC9CA,EAAMlpB,KAAKyS,KAAKoD,KAAKyW,OAAO3c,EAAI3P,KAAKoC,MAAM8P,MAAQ,GACnD6mD,EAAY7vC,IAAM+jB,EAAOA,EAAK/jB,EAAKzkB,EAAOyxB,GAAQhN,KAGpD6vC,GACE9vC,MAAOgkB,EAAOA,EAAKhkB,EAAOxkB,EAAOyxB,GAAQjN,EACzC7M,QAAS,YAEX28C,EAAY/4D,KAAKkxB,UAAU7b,UAAYQ,EAAK1Q,aAGlB,UAAtBnF,KAAKqP,QAAQ5I,OACfyiB,EAAMlpB,KAAKyS,KAAKoD,KAAKyW,OAAO3c,EAAI3P,KAAKoC,MAAM8P,MAAQ,GACnD6mD,EAAY7vC,IAAM+jB,EAAOA,EAAK/jB,EAAKzkB,EAAOyxB,GAAQhN,GAItD,IAAIsF,GAAQxuB,KAAKi3D,gBAAgBntD;8BAC7B0kB,KACFuqC,EAAYvqC,MAAQA,EAAMof,SAI5BmrB,EAAc/4D,KAAKs2D,eAAeyC,GAClC/4D,KAAKqP,QAAQqhD,MAAMqI,EAAa,SAAUroD,GACpCA,IACF8F,EAAG0a,UAAUlZ,aAAavC,IAAI/E,GACZ,QAAd5G,EAAMrD,MACR+P,EAAGm9C,cAAcjjD,EAAK4F,UAY9By5C,EAAQxuD,UAAUyxD,mBAAqB,SAAUlpD,GAC/C,GAAK9J,KAAKqP,QAAQihD,WAAlB,CAEA,GAAI5/C,GAAO1Q,KAAKi2D,eAAensD,EAE/B,IAAI4G,EAAM,CAGR,GAAI0hD,GAAYpyD,KAAKqP,QAAQkhD,YAAcvwD,KAAK4zD,iBAKhD,KAFe9pD,EAAMysD,UAAYzsD,EAAMysD,SAASjuC,WAAY,IAE5CtoB,KAAKqP,QAAQkhD,YAAa,CAExC,GAAIyI,GAAYh5D,KAAKkxB,UAAUhwB,IAAIwP,EAAK4F,IAAIkY,MAGxCyqC,MAAoB/1D,EACpBlD,MAAKqP,QAAQ6pD,qBACX9G,EAAU/vD,OAAS,IACrB42D,EAAoBj5D,KAAKkxB,UAAUhwB,IAAIkxD,EAAU,IAAI5jC,OAKpDxuB,KAAKqP,QAAQ6pD,yBAA4Ch2D,IAArB+1D,GAAkCA,GAAqBD,GAC9F5G,EAAUhsD,KAAKsK,EAAK4F,GAEtB,IAAIgT,GAAQymC,EAAQoJ,cAAcn5D,KAAKkxB,UAAUhwB,IAAIkxD,EAAWpyD,KAAKqxD,aAErE,KAAKrxD,KAAKqP,QAAQ6pD,qBAAuBD,GAAqBD,EAAW,CAEvE5G,IACA,KAAK,GAAI97C,KAAMtW,MAAK0W,MAClB,GAAI1W,KAAK0W,MAAMlV,eAAe8U,GAAK,CACjC,GAAI8iD,GAAQp5D,KAAK0W,MAAMJ,GACnB2S,EAAQmwC,EAAMlkD,KAAK+T,MACnBC,MAAyBhmB,KAAnBk2D,EAAMlkD,KAAKgU,IAAoBkwC,EAAMlkD,KAAKgU,IAAMD,IAEtDA,GAASK,EAAMjlB,KAAO6kB,GAAOI,EAAMhlB,MAAStE,KAAKqP,QAAQ6pD,qBAAuBD,GAAqBj5D,KAAKkxB,UAAUhwB,IAAIk4D,EAAM9iD,IAAIkY,OAAY4qC,YAAiB3G,IACjKL,EAAUhsD,KAAKgzD,EAAM9iD,UAKxB,CAEL,GAAI6kB,GAAQi3B,EAAUjsD,QAAQuK,EAAK4F,KACrB,GAAV6kB,EAEFi3B,EAAUhsD,KAAKsK,EAAK4F,IAGpB87C,EAAUx+B,OAAOuH,EAAO,GAI5Bn7B,KAAK2zD,aAAavB,GAElBpyD,KAAKyS,KAAK8c,QAAQ1a,KAAK,UACrB6B,MAAO1W,KAAK4zD,eACZ9pD,MAAOA,OAWbimD,EAAQoJ,cAAgB,SAAUjoC,GAChC,GAAI5sB,GAAM,KACND,EAAM,IAkBV,OAhBA6sB,GAAUxoB,QAAQ,SAAUwM,IACf,MAAP7Q,GAAe6Q,EAAK+T,MAAQ5kB,KAC9BA,EAAM6Q,EAAK+T,WAGG/lB,IAAZgS,EAAKgU,KACI,MAAP5kB,GAAe4Q,EAAKgU,IAAM5kB,KAC5BA,EAAM4Q,EAAKgU,MAGF,MAAP5kB,GAAe4Q,EAAK+T,MAAQ3kB,KAC9BA,EAAM4Q,EAAK+T,UAMf5kB,IAAKA,EACLC,IAAKA,IAUTyrD,EAAQxuD,UAAU83D,gBAAkB,SAAUjwD,GAE5C,IADA,GAAIkwD,GAAMlwD,EACHkwD,GAAK,CACV,GAAIA,EAAI93D,eAAe,iBACrB,MAAO83D,GAAI,gBAEbA,GAAMA,EAAIlvD,WAGZ,MAAO,OAST2lD,EAAQxuD,UAAU00D,eAAiB,SAAUnsD,GAC3C,MAAO9J,MAAKq5D,gBAAgBvvD,EAAM3H,SASpC4tD,EAAQxuD,UAAUq3D,sBAAwB,SAAU9uD,GAClD,MAAO9J,MAAKq5D,gBAAgBvvD,EAAMyvD,gBASpCxJ,EAAQxuD,UAAU01D,gBAAkB,SAAUntD,GAC5C,GAAIu6B,GAAUv6B,EAAMk4B,OAASl4B,EAAMk4B,OAAOrmB,EAAI7R,EAAMu6B,QAChD8tB,EAAWnyD,KAAKmyD,QAEhBA,GAAS9vD,QAAU,GAAKrC,KAAKsxD,aAC/Ba,EAAWnyD,KAAKsxD,WAAWv5C,QACzBJ,MAAO3X,KAAKqP,QAAQghD,aAIxB,KAAK,GAAIhwD,GAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAAK,CACxC,GAAIutC,GAAUukB,EAAS9xD,GACnBmuB,EAAQxuB,KAAKmwD,OAAOviB,GACpB5Z,EAAaxF,EAAMT,IAAIiG,WACvBlsB,EAAM+N,EAAKhO,eAAemsB,EAC9B,IAAIqQ,EAAUv8B,GAAOu8B,EAAUv8B,EAAMksB,EAAWsV,aAC9C,MAAO9a,EAGT,IAAsC,QAAlCxuB,KAAKqP,QAAQqhB,YAAYhgB,MAC3B,GAAIrQ,IAAML,KAAKmyD,SAAS9vD,OAAS,GAAKgiC,EAAUv8B,EAC9C,MAAO0mB,OAGT,IAAU,IAANnuB,GAAWgkC,EAAUv8B,EAAMksB,EAAWpK,OACxC,MAAO4E,GAKb,MAAO,OASTuhC,EAAQyJ,kBAAoB,SAAU1vD,GAEpC,IADA,GAAI3H,GAAS2H,EAAM3H,OACZA,GAAQ,CACb,GAAIA,EAAOX,eAAe,oBACxB,MAAOW,GAAO,mBAEhBA,GAASA,EAAOiI,WAGlB,MAAO,OAYT2lD,EAAQxuD,UAAU+0D,eAAiB,SAAUrlC,EAAUxqB,GACrD,GAAIqjB,GAAQjU,EAAKrQ,UAAWyrB,EAc5B,OAZKxqB,KAEHA,EAAOzG,KAAKkxB,UAAUlZ,aAAa7C,SAAS1O,UAG3BvD,IAAf4mB,EAAMb,QACRa,EAAMb,MAAQpT,EAAKrP,QAAQsjB,EAAMb,MAAOxiB,GAAQA,EAAKwiB,OAAS,aAE/C/lB,IAAb4mB,EAAMZ,MACRY,EAAMZ,IAAMrT,EAAKrP,QAAQsjB,EAAMZ,IAAKziB,GAAQA,EAAKyiB,KAAO,SAGnDY,GAGTlqB,EAAOD,QAAUowD,GAIX,SAAUnwD,EAAQD,EAASO,GAYjCP,EAAQoyC,aAAe,SAAUr7B,GAC/BA,EAAM0B,KAAK,SAAUvV,EAAGC,GACtB,MAAOD,GAAEqS,KAAK+T,MAAQnmB,EAAEoS,KAAK+T,SASjCtpB,EAAQqyC,WAAa,SAAUt7B,GAC7BA,EAAM0B,KAAK,SAAUvV,EAAGC,GAItB,OAHY,OAASD,GAAEqS,KAAOrS,EAAEqS,KAAKgU,IAAMrmB,EAAEqS,KAAK+T,QACtC,OAASnmB,GAAEoS,KAAOpS,EAAEoS,KAAKgU,IAAMpmB,EAAEoS,KAAK+T,UAiBtDtpB,EAAQ0uB,MAAQ,SAAU3X,EAAOwL,EAAQu3C,GACvC,GAAIA,EAEF,IAAK,GAAIp5D,GAAI,EAAGA,EAAIqW,EAAMrU,OAAQhC,IAChCqW,EAAMrW,GAAGyH,IAAM,IAKnB,KAAK,GAAIzH,GAAI,EAAGA,EAAIqW,EAAMrU,OAAQhC,IAAK,CAErC,GAAIqQ,GAAOgG,EAAMrW,EACjB,IAAIqQ,EAAK2d,OAAsB,OAAb3d,EAAK5I,IAAc,CAEnC4I,EAAK5I,IAAMoa,EAAOqS,IAElB,GAAG,CAID,IAAK,GADDmlC,GAAgB,KACXxqD,EAAI,EAAGyqD,EAAKjjD,EAAMrU,OAAQ6M,EAAIyqD,EAAIzqD,IAAK,CAC9C,GAAIzJ,GAAQiR,EAAMxH,EAClB,IAAkB,OAAdzJ,EAAMqC,KAAgBrC,IAAUiL,GAAQjL,EAAM4oB,OAAS1uB,EAAQi6D,UAAUlpD,EAAMjL,EAAOyc,EAAOxR,KAAMjL,EAAM4J,QAAQ2gB,KAAM,CACzH0pC,EAAgBj0D,CAChB,QAIiB,MAAjBi0D,IAEFhpD,EAAK5I,IAAM4xD,EAAc5xD,IAAM4xD,EAAcvnD,OAAS+P,EAAOxR,KAAKsgC,gBAE7D0oB,MAef/5D,EAAQk6D,SAAW,SAAUnjD,EAAOwL,EAAQ0M,GAC1C,IAAK,GAAIvuB,GAAI,EAAGA,EAAIqW,EAAMrU,OAAQhC,IAChCqW,EAAMrW,GAAGyH,IAAM,IAIjB,IAAIgyD,GAAiBlrC,EAASzc,MAG9B,KAAK9R,EAAI,EAAGA,EAAIqW,EAAMrU,OAAQhC,IAAK,CACjC,GAAIqQ,GAAOgG,EAAMrW,EAEjB,IAAIqQ,EAAK2d,OAAsB,OAAb3d,EAAK5I,IAAc,CAEnC4I,EAAK5I,IAAM4I,EAAKqpD,OAEhB,GAAG,CAID,IAAK,GADDL,GAAgB,KACXxqD,EAAI,EAAGyqD,EAAKjjD,EAAMrU,OAAQ6M,EAAIyqD,EAAIzqD,IAAK,CAC9C,GAAIzJ,GAAQiR,EAAMxH,EAClB,IAAkB,OAAdzJ,EAAMqC,KAAgBrC,IAAUiL,GAA2B/Q,EAAQi6D,UAAUlpD,EAAMjL,EAAOyc,EAAOxR,KAAMjL,EAAM4J,QAAQ2gB,KAAM,CAC7H0pC,EAAgBj0D,CAChB,QAIiB,MAAjBi0D,IAEFhpD,EAAK5I,IAAM4xD,EAAc5xD,IAAM4xD,EAAcvnD,OAAS+P,EAAOxR,KAAKsgC,UAGhEtgC,EAAK5I,IAAM4I,EAAKyB,OAAS2nD,IAC3BA,EAAiBppD,EAAK5I,IAAM4I,EAAKyB,cAE5BunD,IAKb9qC,EAASzc,OAAS2nD,EAAiBlrC,EAAS9mB,IAAM,GAAMoa,EAAOxR,KAAKsgC,UAatErxC,EAAQwwC,QAAU,SAAUz5B,EAAOwL,EAAQ2rB,EAAWkC,GACpD,IAAK,GAAI1vC,GAAI,EAAGA,EAAIqW,EAAMrU,OAAQhC,IAChC,OAA8B6C,IAA1BwT,EAAMrW,GAAG6U,KAAK0Z,SAChBlY,EAAMrW,GAAGyH,IAAMoa,EAAOxR,KAAKsgC,aACtB,QAA+B9tC,KAA3BwT,EAAMrW,GAAG6U,KAAK0Z,UAA0BmhB,EAAgB,CACjE,GAAIiqB,GAAS,CACb,KAAK,GAAIprC,KAAYif,GACfA,EAAUrsC,eAAeotB,IACQ,GAA/Bif,EAAUjf,GAAUmO,SAAmB8Q,EAAUjf,GAAUuM,MAAQ0S,EAAUn3B,EAAMrW,GAAG6U,KAAK0Z,UAAUuM,QACvG6+B,GAAUnsB,EAAUjf,GAAUzc,OAC9B07B,EAAUn3B,EAAMrW,GAAG6U,KAAK0Z,UAAU9mB,IAAMkyD,EAI9CtjD,GAAMrW,GAAGyH,IAAMkyD,EAAS,GAAM93C,EAAOxR,KAAKsgC,SAGzCjB,GACHpwC,EAAQowC,eAAer5B,EAAOwL,EAAQ2rB,IAY1CluC,EAAQowC,eAAiB,SAAUr5B,EAAOwL,EAAQ2rB,GAChD,IAAK,GAAIjf,KAAYif,GACnB,GAAIA,EAAUrsC,eAAeotB,GAAW,CAEtCif,EAAUjf,GAAU9mB,IAAM,CAC1B,GAAG,CAGD,GAAI4xD,GAAgB,IACpB,KAAK,GAAIO,KAAiBpsB,GACxB,GAAqC,OAAjCA,EAAUosB,GAAenyD,KAAgBmyD,IAAkBrrC,GAAYif,EAAUjf,GAAUuM,MAAQ0S,EAAUosB,GAAe9+B,OAASx7B,EAAQu6D,iBAAiBrsB,EAAUjf,GAAWif,EAAUosB,IAAiB,CAChNP,EAAgB7rB,EAAUosB,EAC1B,OAIiB,MAAjBP,IAEF7rB,EAAUjf,GAAU9mB,IAAM4xD,EAAc5xD,IAAM4xD,EAAcvnD,cAEvDunD,GAGb,IAAK,GAAIr5D,GAAI,EAAGA,EAAIqW,EAAMrU,OAAQhC,QACD6C,KAA3BwT,EAAMrW,GAAG6U,KAAK0Z,WAChBlY,EAAMrW,GAAGyH,IAAM+lC,EAAUn3B,EAAMrW,GAAG6U,KAAK0Z,UAAU9mB,IAAM,GAAMoa,EAAOxR,KAAKsgC,WAe/ErxC,EAAQqwC,6BAA+B,SAAUmqB,EAAej4C,EAAQ2rB,GACtE,GAAIusB,IAAa,EAGbjsB,IAEJ,KAAK,GAAIvf,KAAYif,GACfA,EAAUjf,GAAUptB,eAAe,SACrC2sC,EAAcN,EAAUjf,GAAUuM,OAASvM,EAE3Cuf,EAAc/nC,KAAKwoB,EAIvB,KAAK,GAAI1f,GAAI,EAAGA,EAAIi/B,EAAc9rC,OAAQ6M,IAExC,GADA0f,EAAWuf,EAAcj/B,GACrB2+B,EAAUrsC,eAAeotB,GAAW,CAEtCwrC,EAAaA,GAAcvsB,EAAUjf,GAAUP,MAC/Cwf,EAAUjf,GAAU9mB,IAAM,CAE1B,KAAK,GAAImyD,KAAiBpsB,GACpBA,EAAUosB,GAAel9B,SAAW8Q,EAAUjf,GAAUuM,MAAQ0S,EAAUosB,GAAe9+B,QAC3F0S,EAAUjf,GAAU9mB,KAAO+lC,EAAUosB,GAAe9nD,OAKxD,KAAK,GADDuE,GAAQyjD,EAAcvrC,GACjBvuB,EAAI,EAAGA,EAAIqW,EAAMrU,OAAQhC,QACD6C,KAA3BwT,EAAMrW,GAAG6U,KAAK0Z,WAChBlY,EAAMrW,GAAGyH,IAAM+lC,EAAUn3B,EAAMrW,GAAG6U,KAAK0Z,UAAU9mB,IAAM,GAAMoa,EAAOxR,KAAKsgC,SAErEnD,EAAUjf,GAAUP,QACtB3X,EAAMrW,GAAG05D,QAAUrjD,EAAMrW,GAAGyH,KAK9BsyD,IAAcvsB,EAAUjf,GAAUP,OACpC1uB,EAAQk6D,SAASM,EAAcvrC,GAAW1M,EAAQ2rB,EAAUjf,MAiBpEjvB,EAAQi6D,UAAY,SAAU/2D,EAAGC,EAAGof,EAAQ8N,GAC1C,MAAIA,GACKntB,EAAE+E,MAAQsa,EAAOupC,WA1Qd,KA0QqC3oD,EAAE8E,MAAQ9E,EAAEoP,OAASrP,EAAE+E,MAAQ/E,EAAEqP,MAAQgQ,EAAOupC,WA1QrF,KA0Q4G3oD,EAAE8E,OAAS/E,EAAEiF,IAAMoa,EAAO8uB,SA1QtI,KA0Q2JluC,EAAEgF,IAAMhF,EAAEqP,QAAUtP,EAAEiF,IAAMjF,EAAEsP,OAAS+P,EAAO8uB,SA1QzM,KA0Q8NluC,EAAEgF,IAEnOjF,EAAE6E,KAAOwa,EAAOupC,WA5Qb,KA4QoC3oD,EAAE4E,KAAO5E,EAAEoP,OAASrP,EAAE6E,KAAO7E,EAAEqP,MAAQgQ,EAAOupC,WA5QlF,KA4QyG3oD,EAAE4E,MAAQ7E,EAAEiF,IAAMoa,EAAO8uB,SA5QlI,KA4QuJluC,EAAEgF,IAAMhF,EAAEqP,QAAUtP,EAAEiF,IAAMjF,EAAEsP,OAAS+P,EAAO8uB,SA5QrM,KA4Q0NluC,EAAEgF,KAW1OnI,EAAQu6D,iBAAmB,SAAUr3D,EAAGC,GACtC,MAAOD,GAAEomB,OAASnmB,EAAEmmB,OAASpmB,EAAEqmB,KAAOpmB,EAAEmmB,OAASpmB,EAAEiF,IAAMhF,EAAEgF,IAAMhF,EAAEqP,QAAUtP,EAAEiF,IAAMjF,EAAEsP,OAASrP,EAAEgF,KAAOhF,EAAEmmB,OAASpmB,EAAEomB,OAASnmB,EAAEomB,KAAOrmB,EAAEomB,OAASnmB,EAAEgF,IAAMjF,EAAEiF,IAAMjF,EAAEsP,QAAUrP,EAAEgF,IAAMhF,EAAEqP,OAAStP,EAAEiF,MAKhM,SAAUlI,EAAQD,EAASO,GAiBjC,QAASqyD,GAAQr9C,EAAM8W,EAAY3c,GAajC,GAZArP,KAAKoC,OACH+pD,KACEj6C,MAAO,EACPC,OAAQ,GAEVukB,MACExkB,MAAO,EACPC,OAAQ,IAGZnS,KAAKqP,QAAUA,EAEX6F,OACgBhS,IAAdgS,EAAK+T,MACP,KAAM,IAAIpjB,OAAM,oCAAsCqP,EAI1D4Y,GAAKvtB,KAAKP,KAAMkV,EAAM8W,EAAY3c,GA/BpC,GAAIye,GAAO5tB,EAAoB,GAkC/BqyD,GAAQhxD,UAAY,GAAIusB,GAAK,KAAM,KAAM,MAOzCykC,EAAQhxD,UAAUytB,UAAY,SAAU1F,GAEtC,GACI4qB,GAAQl0C,KAAKqP,QAAQ6kC,MACrBmmB,EAAYr6D,KAAKkS,MAAQoX,EAAM0Z,yBAUnC,OARa,SAATkR,EACUl0C,KAAKkV,KAAK+T,MAAMqxC,UAAYhxC,EAAML,OAASjpB,KAAKkV,KAAK+T,MAAMqxC,UAAYD,EAAY/wC,EAAMJ,IACnF,QAATgrB,EACGl0C,KAAKkV,KAAK+T,MAAMqxC,UAAYD,EAAY/wC,EAAML,OAASjpB,KAAKkV,KAAK+T,MAAMqxC,UAAYhxC,EAAMJ,IAGzFlpB,KAAKkV,KAAK+T,MAAMqxC,UAAYD,EAAY,EAAI/wC,EAAML,OAASjpB,KAAKkV,KAAK+T,MAAMqxC,UAAYD,EAAY,EAAI/wC,EAAMJ,KAK7HqpC,EAAQhxD,UAAU0xC,kBAAoB,WAC/BjzC,KAAK+tB,MAER/tB,KAAK+tB,OAGL/tB,KAAK+tB,IAAI2B,IAAM1d,SAASC,cAAc,OAGtCjS,KAAK+tB,IAAI3R,QAAUpK,SAASC,cAAc,OAC1CjS,KAAK+tB,IAAI3R,QAAQlU,UAAY,mBAC7BlI,KAAK+tB,IAAI2B,IAAIld,YAAYxS,KAAK+tB,IAAI3R,SAGlCpc,KAAK+tB,IAAI2I,KAAO1kB,SAASC,cAAc,OACvCjS,KAAK+tB,IAAI2I,KAAKxuB,UAAY,WAG1BlI,KAAK+tB,IAAIo+B,IAAMn6C,SAASC,cAAc,OACtCjS,KAAK+tB,IAAIo+B,IAAIjkD,UAAY,UAGzBlI,KAAK+tB,IAAI2B,IAAI,iBAAmB1vB,KAEhCA,KAAKkuB,OAAQ,IAIjBqkC,EAAQhxD,UAAU6xC,kBAAoB,WACpC,IAAKpzC,KAAKsK,OACR,KAAM,IAAIzE,OAAM,yCAElB,KAAK7F,KAAK+tB,IAAI2B,IAAItlB,WAAY,CAC5B,GAAI4pB,GAAah0B,KAAKsK,OAAOyjB,IAAIiG,UACjC,KAAKA,EAAY,KAAM,IAAInuB,OAAM,iEACjCmuB,GAAWxhB,YAAYxS,KAAK+tB,IAAI2B,KAElC,IAAK1vB,KAAK+tB,IAAI2I,KAAKtsB,WAAY,CAC7B,GAAI2C,GAAa/M,KAAKsK,OAAOyjB,IAAIhhB,UACjC,KAAKA,EAAY,KAAM,IAAIlH,OAAM,iEACjCkH,GAAWyF,YAAYxS,KAAK+tB,IAAI2I,MAElC,IAAK12B,KAAK+tB,IAAIo+B,IAAI/hD,WAAY,CAC5B,GAAImqB,GAAOv0B,KAAKsK,OAAOyjB,IAAIwG,IAC3B,KAAKxnB,EAAY,KAAM,IAAIlH,OAAM,2DACjC0uB,GAAK/hB,YAAYxS,KAAK+tB,IAAIo+B,KAE5BnsD,KAAKguB,WAAY,GAGnBukC,EAAQhxD,UAAU8xC,0BAA4B,WAK5C,GAAIrzC,KAAKkuB,MAAO,CACdluB,KAAK8wB,gBAAgB9wB,KAAK+tB,IAAI3R,SAC9Bpc,KAAKwxB,sBAAsBxxB,KAAK+tB,IAAI2B,KACpC1vB,KAAK6xB,aAAa7xB,KAAK+tB,IAAI2B,IAE3B,IAAIvB,GAAWnuB,KAAKmuB,SAASiB,YAAcpvB,KAAKmuB,SAAS4D,YAGrD7pB,GAAalI,KAAKkV,KAAKhN,UAAY,IAAMlI,KAAKkV,KAAKhN,UAAY,KAAOlI,KAAKyjB,SAAW,gBAAkB,KAAO0K,EAAW,gBAAkB,gBAChJnuB,MAAK+tB,IAAI2B,IAAIxnB,UAAY,mBAAqBA,EAC9ClI,KAAK+tB,IAAI2I,KAAKxuB,UAAY,oBAAsBA,EAChDlI,KAAK+tB,IAAIo+B,IAAIjkD,UAAY,mBAAqBA,IAIlDqqD,EAAQhxD,UAAUgyC,uBAAyB,WACzC,OACEgnB,UACE3yD,MAAO5H,KAAK+tB,IAAI2B,IAAIjiB,MAAM7F,MAC1BF,KAAM1H,KAAK+tB,IAAI2B,IAAIjiB,MAAM/F,MAE3BykD,KACEh6C,OAAQnS,KAAK+tB,IAAIo+B,IAAI7iB,aACrBp3B,MAAOlS,KAAK+tB,IAAIo+B,IAAIx5C,aAEtB+jB,MACExkB,MAAOlS,KAAK+tB,IAAI2I,KAAK/jB,aAEvB+c,KACExd,MAAOlS,KAAK+tB,IAAI2B,IAAI/c,YACpBR,OAAQnS,KAAK+tB,IAAI2B,IAAI4Z,gBAK3BipB,EAAQhxD,UAAUkyC,0BAA4B,SAAUC,GAClD1zC,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAI2B,IAAIjiB,MAAM7F,MAAQ,MAE3B5H,KAAK+tB,IAAI2B,IAAIjiB,MAAM/F,KAAO,MAI5B1H,KAAKoC,MAAM+pD,IAAIh6C,OAASuhC,EAAMyY,IAAIh6C,OAClCnS,KAAKoC,MAAM+pD,IAAIj6C,MAAQwhC,EAAMyY,IAAIj6C,MACjClS,KAAKoC,MAAMs0B,KAAKxkB,MAAQwhC,EAAMhd,KAAKxkB,MACnClS,KAAKkS,MAAQwhC,EAAMhkB,IAAIxd,MACvBlS,KAAKmS,OAASuhC,EAAMhkB,IAAIvd,OAGpBnS,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAI2B,IAAIjiB,MAAM7F,MAAQ8rC,EAAM6mB,SAAS3yD,MAE1C5H,KAAK+tB,IAAI2B,IAAIjiB,MAAM/F,KAAOgsC,EAAM6mB,SAAS7yD,KAG3C1H,KAAKkuB,OAAQ,GAGfqkC,EAAQhxD,UAAUoyC,uBAAyB,WACzC3zC,KAAKmwB,gCAAgCnwB,KAAK+tB,IAAI2B,KAC9C1vB,KAAKmvB,qBACLnvB,KAAK4vB,qBAAqB5vB,KAAK+tB,IAAI2B,MAQrC6iC,EAAQhxD,UAAUie,OAAS,SAAUkxB,GACnC,GAAIgD,GACA39B,GAEJ/V,KAAKizC,kBAAkB1qB,KAAKvoB,MAG5BA,KAAKozC,kBAAkB7qB,KAAKvoB,MAG5BA,KAAKqzC,0BAA0B9qB,KAAKvoB,MAAO,WACrCA,KAAKkuB,QACPwlB,EAAQ1zC,KAAKuzC,2BAEfhrB,KAAKvoB,MAAO,WACRA,KAAKkuB,OACPluB,KAAKyzC,0BAA0BlrB,KAAKvoB,MAAM0zC,IAE5CnrB,KAAKvoB,MAGPA,KAAK2zC,uBAAuBprB,KAAKvoB,MAEjC,IAAI0wC,EACF,MAAO36B,EAEP,IAAI1K,EAIJ,OAHA0K,GAAMrN,QAAQ,SAAUM,GACtBqC,EAASrC,MAEJqC,GAQXknD,EAAQhxD,UAAUwtB,KAAO,WAClB/uB,KAAKguB,WACRhuB,KAAKwf,UAOT+yC,EAAQhxD,UAAUwe,KAAO,WACvB,GAAI/f,KAAKguB,UAAW,CAClB,GAAID,GAAM/tB,KAAK+tB,GAEXA,GAAI2B,IAAItlB,YAAY2jB,EAAI2B,IAAItlB,WAAWjG,YAAY4pB,EAAI2B,KACvD3B,EAAI2I,KAAKtsB,YAAY2jB,EAAI2I,KAAKtsB,WAAWjG,YAAY4pB,EAAI2I,MACzD3I,EAAIo+B,IAAI/hD,YAAY2jB,EAAIo+B,IAAI/hD,WAAWjG,YAAY4pB,EAAIo+B,KAE3DnsD,KAAKguB,WAAY,IAQrBukC,EAAQhxD,UAAU0tB,YAAc,WAC9B,GAAIhG,GAAQjpB,KAAKgsB,WAAWH,SAAS7rB,KAAKkV,KAAK+T,OAC3CirB,EAAQl0C,KAAKqP,QAAQ6kC,KAGZ,UAATA,EACEl0C,KAAKqP,QAAQ2gB,KACfhwB,KAAK4H,MAAQqhB,EAAQjpB,KAAKkS,MAG1BlS,KAAK+tB,IAAI2B,IAAIjiB,MAAM7F,MAAQ5H,KAAK4H,MAAQ,KACxC5H,KAAK+tB,IAAI2I,KAAKjpB,MAAM7F,MAAQqhB,EAAQjpB,KAAKoC,MAAMs0B,KAAKxkB,MAAQ,KAC5DlS,KAAK+tB,IAAIo+B,IAAI1+C,MAAM7F,MAAQqhB,EAAQjpB,KAAKoC,MAAMs0B,KAAKxkB,MAAQ,EAAIlS,KAAKoC,MAAM+pD,IAAIj6C,MAAQ,EAAI,OAE1FlS,KAAK0H,KAAOuhB,EAAQjpB,KAAKkS,MAGzBlS,KAAK+tB,IAAI2B,IAAIjiB,MAAM/F,KAAO1H,KAAK0H,KAAO,KACtC1H,KAAK+tB,IAAI2I,KAAKjpB,MAAM/F,KAAOuhB,EAAQjpB,KAAKoC,MAAMs0B,KAAKxkB,MAAQ,KAC3DlS,KAAK+tB,IAAIo+B,IAAI1+C,MAAM/F,KAAOuhB,EAAQjpB,KAAKoC,MAAMs0B,KAAKxkB,MAAQ,EAAIlS,KAAKoC,MAAM+pD,IAAIj6C,MAAQ,EAAI,MAEzE,QAATgiC,EACLl0C,KAAKqP,QAAQ2gB,KACfhwB,KAAK4H,MAAQqhB,EAGbjpB,KAAK+tB,IAAI2B,IAAIjiB,MAAM7F,MAAQ5H,KAAK4H,MAAQ,KACxC5H,KAAK+tB,IAAI2I,KAAKjpB,MAAM7F,MAAQqhB,EAAQ,KACpCjpB,KAAK+tB,IAAIo+B,IAAI1+C,MAAM7F,MAAQqhB,EAAQjpB,KAAKoC,MAAMs0B,KAAKxkB,MAAQ,EAAIlS,KAAKoC,MAAM+pD,IAAIj6C,MAAQ,EAAI,OAE1FlS,KAAK0H,KAAOuhB,EAGZjpB,KAAK+tB,IAAI2B,IAAIjiB,MAAM/F,KAAO1H,KAAK0H,KAAO,KACtC1H,KAAK+tB,IAAI2I,KAAKjpB,MAAM/F,KAAOuhB,EAAQ,KACnCjpB,KAAK+tB,IAAIo+B,IAAI1+C,MAAM/F,KAAOuhB,EAAQjpB,KAAKoC,MAAMs0B,KAAKxkB,MAAQ,EAAIlS,KAAKoC,MAAM+pD,IAAIj6C,MAAQ,EAAI,MAIvFlS,KAAKqP,QAAQ2gB,KACfhwB,KAAK4H,MAAQqhB,EAAQjpB,KAAKkS,MAAQ,EAGlClS,KAAK+tB,IAAI2B,IAAIjiB,MAAM7F,MAAQ5H,KAAK4H,MAAQ,KACxC5H,KAAK+tB,IAAI2I,KAAKjpB,MAAM7F,MAAQqhB,EAAQjpB,KAAKoC,MAAMs0B,KAAKxkB,MAAQ,KAC5DlS,KAAK+tB,IAAIo+B,IAAI1+C,MAAM7F,MAAQqhB,EAAQjpB,KAAKoC,MAAM+pD,IAAIj6C,MAAQ,EAAI,OAE9DlS,KAAK0H,KAAOuhB,EAAQjpB,KAAKkS,MAAQ,EAGjClS,KAAK+tB,IAAI2B,IAAIjiB,MAAM/F,KAAO1H,KAAK0H,KAAO,KACtC1H,KAAK+tB,IAAI2I,KAAKjpB,MAAM/F,KAAOuhB,EAAQjpB,KAAKoC,MAAMs0B,KAAKxkB,MAAQ,EAAI,KAC/DlS,KAAK+tB,IAAIo+B,IAAI1+C,MAAM/F,KAAOuhB,EAAQjpB,KAAKoC,MAAM+pD,IAAIj6C,MAAQ,EAAI,OASnEqgD,EAAQhxD,UAAU2tB,YAAc,WAC9B,GAAIwB,GAAc1wB,KAAKqP,QAAQqhB,YAAYhgB,KACvCgf,EAAM1vB,KAAK+tB,IAAI2B,IACfgH,EAAO12B,KAAK+tB,IAAI2I,KAChBy1B,EAAMnsD,KAAK+tB,IAAIo+B,GAEnB,IAAmB,OAAfz7B,EACFhB,EAAIjiB,MAAM3F,KAAO9H,KAAK8H,KAAO,GAAK,KAElC4uB,EAAKjpB,MAAM3F,IAAM,IACjB4uB,EAAKjpB,MAAM0E,OAASnS,KAAKsK,OAAOxC,IAAM9H,KAAK8H,IAAM,EAAI,KACrD4uB,EAAKjpB,MAAM4U,OAAS,OACf,CAEL,GAAIm4C,GAAgBx6D,KAAKsK,OAAOmkB,QAAQrsB,MAAM+P,OAC1CsoD,EAAaD,EAAgBx6D,KAAKsK,OAAOxC,IAAM9H,KAAKsK,OAAO6H,OAASnS,KAAK8H,GAE7E4nB,GAAIjiB,MAAM3F,KAAO9H,KAAKsK,OAAO6H,OAASnS,KAAK8H,IAAM9H,KAAKmS,QAAU,GAAK,KACrEukB,EAAKjpB,MAAM3F,IAAM0yD,EAAgBC,EAAa,KAC9C/jC,EAAKjpB,MAAM4U,OAAS,IAGtB8pC,EAAI1+C,MAAM3F,KAAO9H,KAAKoC,MAAM+pD,IAAIh6C,OAAS,EAAI,MAO/CogD,EAAQhxD,UAAUywB,aAAe,WAC/B,MAAOhyB,MAAKkS,MAAQ,GAOtBqgD,EAAQhxD,UAAU0wB,cAAgB,WAChC,MAAOjyB,MAAKkS,MAAQ,GAGtBtS,EAAOD,QAAU4yD,GAIX,SAAU3yD,EAAQD,EAASO,GAiBjC,QAASsyD,GAAUt9C,EAAM8W,EAAY3c,GAenC,GAdArP,KAAKoC,OACH+pD,KACErkD,IAAK,EACLoK,MAAO,EACPC,OAAQ,GAEViK,SACEjK,OAAQ,EACRuoD,WAAY,EACZC,YAAa,IAGjB36D,KAAKqP,QAAUA,EAEX6F,OACgBhS,IAAdgS,EAAK+T,MACP,KAAM,IAAIpjB,OAAM,oCAAsCqP,EAI1D4Y,GAAKvtB,KAAKP,KAAMkV,EAAM8W,EAAY3c,GAjCpC,GAAIye,GAAO5tB,EAAoB,GAoC/BsyD,GAAUjxD,UAAY,GAAIusB,GAAK,KAAM,KAAM,MAO3C0kC,EAAUjxD,UAAUytB,UAAY,SAAU1F,GAExC,GAAI+wC,GAAYr6D,KAAKkS,MAAQoX,EAAM0Z,yBAEnC,OAAOhjC,MAAKkV,KAAK+T,MAAMqxC,UAAYD,EAAY/wC,EAAML,OAASjpB,KAAKkV,KAAK+T,MAAQK,EAAMJ,KAGxFspC,EAAUjxD,UAAU0xC,kBAAoB,WACjCjzC,KAAK+tB,MAER/tB,KAAK+tB,OAGL/tB,KAAK+tB,IAAIjS,MAAQ9J,SAASC,cAAc,OAIxCjS,KAAK+tB,IAAI3R,QAAUpK,SAASC,cAAc,OAC1CjS,KAAK+tB,IAAI3R,QAAQlU,UAAY,mBAC7BlI,KAAK+tB,IAAIjS,MAAMtJ,YAAYxS,KAAK+tB,IAAI3R,SAGpCpc,KAAK+tB,IAAIo+B,IAAMn6C,SAASC,cAAc,OACtCjS,KAAK+tB,IAAIjS,MAAMtJ,YAAYxS,KAAK+tB,IAAIo+B,KAGpCnsD,KAAK+tB,IAAIjS,MAAM,iBAAmB9b,KAElCA,KAAKkuB,OAAQ,IAIjBskC,EAAUjxD,UAAU6xC,kBAAoB,WACtC,IAAKpzC,KAAKsK,OACR,KAAM,IAAIzE,OAAM,yCAElB,KAAK7F,KAAK+tB,IAAIjS,MAAM1R,WAAY,CAC9B,GAAI4pB,GAAah0B,KAAKsK,OAAOyjB,IAAIiG,UACjC,KAAKA,EACH,KAAM,IAAInuB,OAAM,iEAElBmuB,GAAWxhB,YAAYxS,KAAK+tB,IAAIjS,OAElC9b,KAAKguB,WAAY,GAGnBwkC,EAAUjxD,UAAU8xC,0BAA4B,WAK9C,GAAIrzC,KAAKkuB,MAAO,CACdluB,KAAK8wB,gBAAgB9wB,KAAK+tB,IAAI3R,SAC9Bpc,KAAKwxB,sBAAsBxxB,KAAK+tB,IAAIjS,OACpC9b,KAAK6xB,aAAa7xB,KAAK+tB,IAAIjS,MAE3B,IAAIqS,GAAWnuB,KAAKmuB,SAASiB,YAAcpvB,KAAKmuB,SAAS4D,YAErD7pB,GAAalI,KAAKkV,KAAKhN,UAAY,IAAMlI,KAAKkV,KAAKhN,UAAY,KAAOlI,KAAKyjB,SAAW,gBAAkB,KAAO0K,EAAW,gBAAkB,gBAChJnuB,MAAK+tB,IAAIjS,MAAM5T,UAAY,qBAAuBA,EAClDlI,KAAK+tB,IAAIo+B,IAAIjkD,UAAY,mBAAqBA,IAIlDsqD,EAAUjxD,UAAUgyC,uBAAyB,WAC3C,OACE4Y,KACEj6C,MAAOlS,KAAK+tB,IAAIo+B,IAAIx5C,YACpBR,OAAQnS,KAAK+tB,IAAIo+B,IAAI7iB,cAEvBltB,SACElK,MAAOlS,KAAK+tB,IAAI3R,QAAQzJ,YACxBR,OAAQnS,KAAK+tB,IAAI3R,QAAQktB,cAE3BxtB,OACE5J,MAAOlS,KAAK+tB,IAAIjS,MAAMnJ,YACtBR,OAAQnS,KAAK+tB,IAAIjS,MAAMwtB,gBAK7BkpB,EAAUjxD,UAAUkyC,0BAA4B,SAAUC,GAExD1zC,KAAKoC,MAAM+pD,IAAIj6C,MAAQwhC,EAAMyY,IAAIj6C,MACjClS,KAAKoC,MAAM+pD,IAAIh6C,OAASuhC,EAAMyY,IAAIh6C,OAClCnS,KAAKoC,MAAMga,QAAQjK,OAASuhC,EAAMt3B,QAAQjK,OAGtCnS,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAI3R,QAAQ3O,MAAMktD,YAAc,EAAI36D,KAAKoC,MAAM+pD,IAAIj6C,MAAQ,KAEhElS,KAAK+tB,IAAI3R,QAAQ3O,MAAMitD,WAAa,EAAI16D,KAAKoC,MAAM+pD,IAAIj6C,MAAQ,KAKjElS,KAAKkS,MAAQwhC,EAAM53B,MAAM5J,MACzBlS,KAAKmS,OAASuhC,EAAM53B,MAAM3J,OAG1BnS,KAAK+tB,IAAIo+B,IAAI1+C,MAAM3F,KAAO9H,KAAKmS,OAASnS,KAAKoC,MAAM+pD,IAAIh6C,QAAU,EAAI,KACjEnS,KAAKqP,QAAQ2gB,IACfhwB,KAAK+tB,IAAIo+B,IAAI1+C,MAAM7F,MAAQ5H,KAAKoC,MAAM+pD,IAAIj6C,MAAQ,EAAI,KAEtDlS,KAAK+tB,IAAIo+B,IAAI1+C,MAAM/F,KAAO1H,KAAKoC,MAAM+pD,IAAIj6C,MAAQ,EAAI,KAGvDlS,KAAKkuB,OAAQ,GAGfskC,EAAUjxD,UAAUoyC,uBAAyB,WAC3C3zC,KAAKmwB,gCAAgCnwB,KAAK+tB,IAAIjS,OAC9C9b,KAAKmvB,qBACLnvB,KAAK4vB,qBAAqB5vB,KAAK+tB,IAAIjS,QAQrC02C,EAAUjxD,UAAUie,OAAS,SAAUkxB,GACrC,GAAIgD,GACA39B,GAEJ/V,KAAKizC,kBAAkB1qB,KAAKvoB,MAG5BA,KAAKozC,kBAAkB7qB,KAAKvoB,MAG5BA,KAAKqzC,0BAA0B9qB,KAAKvoB,MAAO,WACrCA,KAAKkuB,QACPwlB,EAAQ1zC,KAAKuzC,2BAEfhrB,KAAKvoB,MAAO,WACRA,KAAKkuB,OACPluB,KAAKyzC,0BAA0BlrB,KAAKvoB,MAAM0zC,IAE5CnrB,KAAKvoB,MAGPA,KAAK2zC,uBAAuBprB,KAAKvoB,MAEjC,IAAI0wC,EACF,MAAO36B,EAEP,IAAI1K,EAIJ,OAHA0K,GAAMrN,QAAQ,SAAUM,GACtBqC,EAASrC,MAEJqC,GAQXmnD,EAAUjxD,UAAUwtB,KAAO,WACpB/uB,KAAKguB,WACRhuB,KAAKwf,UAOTgzC,EAAUjxD,UAAUwe,KAAO,WACrB/f,KAAKguB,YACHhuB,KAAK+tB,IAAIjS,MAAM1R,YACjBpK,KAAK+tB,IAAIjS,MAAM1R,WAAWjG,YAAYnE,KAAK+tB,IAAIjS,OAGjD9b,KAAKguB,WAAY,IAQrBwkC,EAAUjxD,UAAU0tB,YAAc,WAChC,GAAIhG,GAAQjpB,KAAKgsB,WAAWH,SAAS7rB,KAAKkV,KAAK+T,MAE3CjpB,MAAKqP,QAAQ2gB,KACfhwB,KAAK4H,MAAQqhB,EAAQjpB,KAAKoC,MAAM+pD,IAAIj6C,MAGpClS,KAAK+tB,IAAIjS,MAAMrO,MAAM7F,MAAQ5H,KAAK4H,MAAQ,OAE1C5H,KAAK0H,KAAOuhB,EAAQjpB,KAAKoC,MAAM+pD,IAAIj6C,MAGnClS,KAAK+tB,IAAIjS,MAAMrO,MAAM/F,KAAO1H,KAAK0H,KAAO,OAQ5C8qD,EAAUjxD,UAAU2tB,YAAc,WAChC,GAAIwB,GAAc1wB,KAAKqP,QAAQqhB,YAAYhgB,KACvCoL,EAAQ9b,KAAK+tB,IAAIjS,KAEnBA,GAAMrO,MAAM3F,IADK,OAAf4oB,EACgB1wB,KAAK8H,IAAM,KAEX9H,KAAKsK,OAAO6H,OAASnS,KAAK8H,IAAM9H,KAAKmS,OAAS,MAQpEqgD,EAAUjxD,UAAUywB,aAAe,WACjC,MAAOhyB,MAAKoC,MAAM+pD,IAAIj6C,OAOxBsgD,EAAUjxD,UAAU0wB,cAAgB,WAClC,MAAOjyB,MAAKoC,MAAM+pD,IAAIj6C,OAGxBtS,EAAOD,QAAU6yD,GAIX,SAAU5yD,EAAQD,EAASO,GAoBjC,QAASuyD,GAAev9C,EAAM8W,EAAY3c,GASxC,GARArP,KAAKoC,OACHga,SACElK,MAAO,IAGXlS,KAAKuS,UAAW,EAGZ2C,EAAM,CACR,OAAkBhS,IAAdgS,EAAK+T,MACP,KAAM,IAAIpjB,OAAM,oCAAsCqP,EAAKoB,GAE7D,QAAgBpT,IAAZgS,EAAKgU,IACP,KAAM,IAAIrjB,OAAM,kCAAoCqP,EAAKoB,IAI7DwX,EAAKvtB,KAAKP,KAAMkV,EAAM8W,EAAY3c,GAjCpC,GAAIye,GAAO5tB,EAAoB,IAC3B4yC,EAAkB5yC,EAAoB,IACtC6yC,EAAY7yC,EAAoB,GAkCpCuyD,GAAelxD,UAAY,GAAIusB,GAAK,KAAM,KAAM,MAEhD2kC,EAAelxD,UAAUyxC,cAAgB,0BAEzCyf,EAAelxD,UAAU8sB,OAAQ,EAOjCokC,EAAelxD,UAAUytB,UAAY,SAAU1F,GAE7C,MAAOtpB,MAAKkV,KAAK+T,MAAQK,EAAMJ,KAAOlpB,KAAKkV,KAAKgU,IAAMI,EAAML,OAG9DwpC,EAAelxD,UAAU0xC,kBAAoB,WACtCjzC,KAAK+tB,MAER/tB,KAAK+tB,OAGL/tB,KAAK+tB,IAAI2B,IAAM1d,SAASC,cAAc,OAItCjS,KAAK+tB,IAAImlB,MAAQlhC,SAASC,cAAc,OACxCjS,KAAK+tB,IAAImlB,MAAMhrC,UAAY,oBAC3BlI,KAAK+tB,IAAI2B,IAAIld,YAAYxS,KAAK+tB,IAAImlB,OAGlClzC,KAAK+tB,IAAI3R,QAAUpK,SAASC,cAAc,OAC1CjS,KAAK+tB,IAAI3R,QAAQlU,UAAY,mBAC7BlI,KAAK+tB,IAAImlB,MAAM1gC,YAAYxS,KAAK+tB,IAAI3R,SAMpCpc,KAAKkuB,OAAQ,IAIjBukC,EAAelxD,UAAU6xC,kBAAoB,WAC3C,IAAKpzC,KAAKsK,OACR,KAAM,IAAIzE,OAAM,yCAElB,KAAK7F,KAAK+tB,IAAI2B,IAAItlB,WAAY,CAC5B,GAAI2C,GAAa/M,KAAKsK,OAAOyjB,IAAIhhB,UACjC,KAAKA,EACH,KAAM,IAAIlH,OAAM,iEAElBkH,GAAWyF,YAAYxS,KAAK+tB,IAAI2B,KAElC1vB,KAAKguB,WAAY,GAGnBykC,EAAelxD,UAAU8xC,0BAA4B,WAKnD,GAAIrzC,KAAKkuB,MAAO,CACdluB,KAAK8wB,gBAAgB9wB,KAAK+tB,IAAI3R,SAC9Bpc,KAAKwxB,sBAAsBxxB,KAAK+tB,IAAI3R,SACpCpc,KAAK6xB,aAAa7xB,KAAK+tB,IAAI2B,IAG3B,IAAIxnB,IAAalI,KAAKkV,KAAKhN,UAAY,IAAMlI,KAAKkV,KAAKhN,UAAY,KAAOlI,KAAKyjB,SAAW,gBAAkB,GAC5GzjB,MAAK+tB,IAAI2B,IAAIxnB,UAAYlI,KAAKgzC,cAAgB9qC,IAIlDuqD,EAAelxD,UAAUgyC,uBAAyB,WAGhD,MADAvzC,MAAKuS,SAAkE,WAAvDxI,OAAOypC,iBAAiBxzC,KAAK+tB,IAAI3R,SAAS7J,UAExD6J,SACElK,MAAOlS,KAAK+tB,IAAI3R,QAAQzJ,eAK9B8/C,EAAelxD,UAAUkyC,0BAA4B,SAAUC,GAE7D1zC,KAAKoC,MAAMga,QAAQlK,MAAQwhC,EAAMt3B,QAAQlK,MACzClS,KAAKmS,OAAS,EAEdnS,KAAKkuB,OAAQ,GAGfukC,EAAelxD,UAAUoyC,uBAAyB,aAOlD8e,EAAelxD,UAAUie,OAAS,SAAUkxB,GAC1C,GAAIgD,GACA39B,GAEJ/V,KAAKizC,kBAAkB1qB,KAAKvoB,MAG5BA,KAAKozC,kBAAkB7qB,KAAKvoB,MAAOA,KAAKqzC,0BAA0B9qB,KAAKvoB,MAAO,WACxEA,KAAKkuB,QACPwlB,EAAQ1zC,KAAKuzC,uBAAuBhrB,KAAKvoB,UAE3CuoB,KAAKvoB,MAAO,WACRA,KAAKkuB,OACPluB,KAAKyzC,0BAA0BlrB,KAAKvoB,MAAM0zC,IAE5CnrB,KAAKvoB,MAGPA,KAAK2zC,uBAAuBprB,KAAKvoB,MAEjC,IAAI0wC,EACF,MAAO36B,EAEP,IAAI1K,EAIJ,OAHA0K,GAAMrN,QAAQ,SAAUM,GACtBqC,EAASrC,MAEJqC,GAQXonD,EAAelxD,UAAUwtB,KAAOgkB,EAAUxxC,UAAUwtB,KAMpD0jC,EAAelxD,UAAUwe,KAAOgzB,EAAUxxC,UAAUwe,KAMpD0yC,EAAelxD,UAAU0tB,YAAc8jB,EAAUxxC,UAAU0tB,YAM3DwjC,EAAelxD,UAAU2tB,YAAc,SAAUhN,GAE/C,GAAI/P,GACAue,EAAc1wB,KAAKqP,QAAQqhB,YAAYhgB,IAG3C,QAA2BxN,KAAvBlD,KAAKkV,KAAK0Z,SAAwB,CAEpC,GAAIgsC,GAAe56D,KAAKkV,KAAK0Z,QAE7B5uB,MAAK+tB,IAAI2B,IAAIjiB,MAAM0E,OAASnS,KAAKsK,OAAOujC,UAAU+sB,GAAczoD,OAAS,KAGvEnS,KAAK+tB,IAAI2B,IAAIjiB,MAAM3F,IADF,OAAf4oB,EACuB1wB,KAAKsK,OAAOxC,IAAM9H,KAAKsK,OAAOujC,UAAU+sB,GAAc9yD,IAAM,KAE5D9H,KAAKsK,OAAOxC,IAAM9H,KAAKsK,OAAO6H,OAASnS,KAAKsK,OAAOujC,UAAU+sB,GAAc9yD,IAAM9H,KAAKsK,OAAOujC,UAAU+sB,GAAczoD,OAAS,KAEzJnS,KAAK+tB,IAAI2B,IAAIjiB,MAAM4U,OAAS,OAKtBriB,MAAKsK,iBAAkBwoC,IAEzB3gC,EAASzN,KAAKJ,IAAItE,KAAKsK,OAAO6H,OAAQnS,KAAKsK,OAAOmkB,QAAQhc,KAAK2W,SAAS4Y,OAAO7vB,OAAQnS,KAAKsK,OAAOmkB,QAAQhc,KAAK2W,SAASC,gBAAgBlX,QACzInS,KAAK+tB,IAAI2B,IAAIjiB,MAAM4U,OAAwB,UAAfqO,EAA0B,IAAM,GAC5D1wB,KAAK+tB,IAAI2B,IAAIjiB,MAAM3F,IAAqB,OAAf4oB,EAAuB,IAAM,KAEtDve,EAASnS,KAAKsK,OAAO6H,OAErBnS,KAAK+tB,IAAI2B,IAAIjiB,MAAM3F,IAAM9H,KAAKsK,OAAOxC,IAAM,KAC3C9H,KAAK+tB,IAAI2B,IAAIjiB,MAAM4U,OAAS,GAGlCriB,MAAK+tB,IAAI2B,IAAIjiB,MAAM0E,OAASA,EAAS,MAGvCvS,EAAOD,QAAU8yD,GAIX,SAAU7yD,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAOvC+1C,EAAQ,WAKV,QAASA,GAAMhrC,EAAW0pC,IACxB,EAAI10C,EAA0B,SAAG1c,KAAM0yD,GAEvC1yD,KAAK0nB,UAAYA,EACjB1nB,KAAKoxD,eAAiBA,GAAkB,MAExCpxD,KAAK2P,EAAI,EACT3P,KAAK2b,EAAI,EACT3b,KAAK66D,QAAU,EACf76D,KAAK4qB,QAAS,EAGd5qB,KAAKkzC,MAAQlhC,SAASC,cAAc,OACpCjS,KAAKkzC,MAAMhrC,UAAY,cACvBlI,KAAK0nB,UAAUlV,YAAYxS,KAAKkzC,OA8HlC,OArHA,EAAIt2B,EAAuB,SAAG81C,IAC5BlwD,IAAK,cACLgC,MAAO,SAAqBmL,EAAGgM,GAC7B3b,KAAK2P,EAAIrE,SAASqE,GAClB3P,KAAK2b,EAAIrQ,SAASqQ,MASpBnZ,IAAK,UACLgC,MAAO,SAAiB4X,GAClBA,YAAmBtN,UACrB9O,KAAKkzC,MAAMriB,UAAY,GACvB7wB,KAAKkzC,MAAM1gC,YAAY4J,IAEvBpc,KAAKkzC,MAAMriB,UAAYzU,KAU3B5Z,IAAK,OACLgC,MAAO,SAAcs2D,GAKnB,OAJe53D,KAAX43D,IACFA,GAAS,IAGI,IAAXA,EAAiB,CACnB,GAAI3oD,GAASnS,KAAKkzC,MAAMlb,aACpB9lB,EAAQlS,KAAKkzC,MAAMrgC,YACnBu2B,EAAYppC,KAAKkzC,MAAM9oC,WAAW4tB,aAClCsb,EAAWtzC,KAAKkzC,MAAM9oC,WAAWyI,YAEjCnL,EAAO,EACPI,EAAM,CAEV,IAA2B,QAAvB9H,KAAKoxD,eAA0B,CACjC,GAAI2J,IAAS,EACTC,GAAQ,CAERh7D,MAAK2b,EAAIxJ,EAASnS,KAAK66D,UACzBG,GAAQ,GAGNh7D,KAAK2P,EAAIuC,EAAQohC,EAAWtzC,KAAK66D,UACnCE,GAAS,GAITrzD,EADEqzD,EACK/6D,KAAK2P,EAAIuC,EAETlS,KAAK2P,EAIZ7H,EADEkzD,EACIh7D,KAAK2b,EAAIxJ,EAETnS,KAAK2b,MAGb7T,GAAM9H,KAAK2b,EAAIxJ,EACXrK,EAAMqK,EAASnS,KAAK66D,QAAUzxB,IAChCthC,EAAMshC,EAAYj3B,EAASnS,KAAK66D,SAE9B/yD,EAAM9H,KAAK66D,UACb/yD,EAAM9H,KAAK66D,SAGbnzD,EAAO1H,KAAK2P,EACRjI,EAAOwK,EAAQlS,KAAK66D,QAAUvnB,IAChC5rC,EAAO4rC,EAAWphC,EAAQlS,KAAK66D,SAE7BnzD,EAAO1H,KAAK66D,UACdnzD,EAAO1H,KAAK66D,QAIhB76D,MAAKkzC,MAAMzlC,MAAM/F,KAAOA,EAAO,KAC/B1H,KAAKkzC,MAAMzlC,MAAM3F,IAAMA,EAAM,KAC7B9H,KAAKkzC,MAAMzlC,MAAM6E,WAAa,UAC9BtS,KAAK4qB,QAAS,MAEd5qB,MAAK+f,UASTvd,IAAK,OACLgC,MAAO,WACLxE,KAAK4qB,QAAS,EACd5qB,KAAKkzC,MAAMzlC,MAAM/F,KAAO,IACxB1H,KAAKkzC,MAAMzlC,MAAM3F,IAAM,IACvB9H,KAAKkzC,MAAMzlC,MAAM6E,WAAa,YAQhC9P,IAAK,UACLgC,MAAO,WACLxE,KAAKkzC,MAAM9oC,WAAWjG,YAAYnE,KAAKkzC,WAGpCwf,IAGT/yD,GAAiB,QAAI+yD,GAIf,SAAU9yD,EAAQD,EAASO,GAKjCY,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAST,IAAI+yC,GAAS,SACT0jB,EAAO,UACPnQ,EAAS,SAGTzpD,EAAS,SAKTyb,GACFirB,WACEj4B,SAAWorD,QAAWD,GACtB3yD,QAAU4yD,QAAWD,EAAME,SAAY,YACvCzzC,WAAaqG,IARP,OASNrQ,UAAYrc,OAAQA,EAAQ65D,QAAWD,EAAME,SAAY,aAI3DjnB,OAASqD,OAAQA,GACjBvnB,KAAOkrC,QAAWD,EAAM/3D,UAAa,aACrCi+B,aACEC,QAAU85B,QAAWD,GACrBrxC,QAAUkhC,OAAQA,EAAQ5nD,UAAa,aACvCwa,UAAYrc,OAAQA,IAEtB8jC,gBAAkB+1B,QAAWD,EAAM/3D,UAAa,aAChDqiC,kBAAoB21B,QAAWD,EAAM/3D,UAAa,aAClD2nC,YAAcqwB,QAAWD,GACzBG,gBAAkBtQ,OAAQA,GAC1BrjB,YAAcyzB,QAAWD,GACzBxpC,gBAAkB8lB,OAAQA,EAAQ1uC,MA5BxB,SA6BVslB,UACE1Y,KAAOylD,QAAWD,EAAM/3D,UAAa,aACrCqV,QAAU2iD,QAAWD,EAAM/3D,UAAa,aACxC6uB,aAAempC,QAAWD,EAAM/3D,UAAa,aAC7CksB,YAAc8rC,QAAWD,EAAM/3D,UAAa,aAC5C4sB,eAAiBorC,QAAWD,EAAM/3D,UAAa,aAC/Cwa,UAAYw9C,QAAWD,EAAM55D,OAAQA,IAEvC6nB,KAAO4hC,OAAQA,EAAQ1gC,KApCd,OAoC0BmtB,OAAQA,EAAQ5zC,OAjCxC,UAkCXsD,QACE0kC,aACEC,aAAe2L,OAAQA,EAAQr0C,UAAa,aAC5C2oC,QAAU0L,OAAQA,EAAQr0C,UAAa,aACvC4oC,QAAUyL,OAAQA,EAAQr0C,UAAa,aACvC6oC,MAAQwL,OAAQA,EAAQr0C,UAAa,aACrC8oC,SAAWuL,OAAQA,EAAQr0C,UAAa,aACxC6mB,KAAOwtB,OAAQA,EAAQr0C,UAAa,aACpC+oC,MAAQsL,OAAQA,EAAQr0C,UAAa,aACrCmnB,OAASktB,OAAQA,EAAQr0C,UAAa,aACtC+mB,MAAQstB,OAAQA,EAAQr0C,UAAa,aACrCwa,UAAYrc,OAAQA,EAAQ85D,SAAY,aAE1CjvB,aACEN,aAAe2L,OAAQA,EAAQr0C,UAAa,aAC5C2oC,QAAU0L,OAAQA,EAAQr0C,UAAa,aACvC4oC,QAAUyL,OAAQA,EAAQr0C,UAAa,aACvC6oC,MAAQwL,OAAQA,EAAQr0C,UAAa,aACrC8oC,SAAWuL,OAAQA,EAAQr0C,UAAa,aACxC6mB,KAAOwtB,OAAQA,EAAQr0C,UAAa,aACpC+oC,MAAQsL,OAAQA,EAAQr0C,UAAa,aACrCmnB,OAASktB,OAAQA,EAAQr0C,UAAa,aACtC+mB,MAAQstB,OAAQA,EAAQr0C,UAAa,aACrCwa,UAAYrc,OAAQA,EAAQ85D,SAAY,aAE1Cz9C,UAAYrc,OAAQA,IAEtBsC,QAAUw3D,SAAY,YACtB9K,YAAc9Y,OAAQA,EAAQ4jB,SAAY,YAC1CvsB,eACEn5B,KAAOylD,QAAWD,EAAM/3D,UAAa,aACrCqV,QAAU2iD,QAAWD,EAAM/3D,UAAa,aACxCyU,OAASujD,QAAWD,EAAM/3D,UAAa,aACvCwa,UAAYw9C,QAAWD,EAAM55D,OAAQA,IAEvC2uD,gBAAkBmL,SAAY,YAC9BhpD,QAAUolC,OAAQA,EAAQuT,OAAQA,GAClChiC,aACEG,OAASmB,KA3EF,OA2Ec0gC,OAAQA,EAAQvT,OAAQA,EAAQ5zC,OAxE5C,UAyETulB,KAAOkB,KA5EA,OA4EY0gC,OAAQA,EAAQvT,OAAQA,EAAQ5zC,OAzE1C,UA0ETolB,QAAUwuB,OAAQA,GAClB75B,UAAYrc,OAAQA,EAAQwH,MA/EpB,UAiFVurC,sBACE1jC,MAAQwqD,QAAWD,EAAM/3D,UAAa,aACtComB,OAAS4xC,QAAWD,EAAM/3D,UAAa,aACvCwa,UAAYw9C,QAAWD,EAAM55D,OAAQA,IAEvCyyC,WAAaonB,QAAWD,GACxBlmC,QAAUwiB,OAAQA,GAClBpf,SACE9a,SAAWg+C,IApFL,OAqFN39C,UAAYrc,OAAQA,IAEtB6gB,QACEqS,MAAQu2B,OAAQA,GAChBp6C,MACE+6C,YAAcX,OAAQA,EAAQ5nD,UAAa,aAC3C8tC,UAAY8Z,OAAQA,EAAQ5nD,UAAa,aACzCwa,UAAYrc,OAAQA,EAAQypD,OAAQA,IAEtCptC,UAAYrc,OAAQA,EAAQypD,OAAQA,IAEtCxmD,KAAO8lB,KApGE,OAoGU0gC,OAAQA,EAAQvT,OAAQA,EAAQ5zC,OAjGxC,UAkGXylC,WAAa0hB,OAAQA,EAAQvT,OAAQA,GACrC7iB,eAAiBo2B,OAAQA,GACzBzmD,KAAO+lB,KAvGE,OAuGU0gC,OAAQA,EAAQvT,OAAQA,EAAQ5zC,OApGxC,UAqGX0lC,WAAayhB,OAAQA,EAAQvT,OAAQA,GACrCxW,UAAYm6B,QAAWD,GACvB1K,aAAe2K,QAAWD,GAC1B/B,qBAAuBgC,QAAWD,GAClCvK,OAASyK,SAAY,YACrB3K,oBAAsB2K,SAAY,YAClCxK,UAAYwK,SAAY,YACxBvK,QAAUuK,SAAY,YACtBrK,UAAYqK,SAAY,YACxBtK,UAAYsK,SAAY,YACxBpK,YAAcoK,SAAY,YAC1BnK,aAAemK,SAAY,YAC3BlK,eAAiBkK,SAAY,YAC7BG,uBAAyBH,SAAY,YACrCxjD,OAASwjD,SAAY,YACrBzqC,aACE6D,MAAQgjB,OAAQA,EAAQr0C,UAAa,aACrCwN,MAAQ6mC,OAAQA,EAAQr0C,UAAa,aACrCwa,UAAY65B,OAAQA,EAAQl2C,OAAQA,IAEtCivD,YAAc4K,QAAWD,GACzBxtB,iBAAmBytB,QAAWD,GAC9BxmC,iBAAmBymC,QAAWD,GAC9BzmC,iBAAmB0mC,QAAWD,GAC9B5sC,OAAS6sC,QAAWD,GACpBlrB,gBAAkBmrB,QAAWD,GAC7BhuB,MAAQkuB,SAAY,WAAYI,KAAQ,QACxCtyC,OAASmB,KAnIA,OAmIY0gC,OAAQA,EAAQvT,OAAQA,EAAQ5zC,OAhI1C,UAiIXitB,UAAYuqC,SAAY,YACxBv/C,eAAiBu/C,SAAY,YAC7B7pC,sBAAwBimB,OAAQA,EAAQ4jB,SAAY,YACpDjK,cAAgBgK,QAAWD,GAC3B3Q,SACE6G,aAAe+J,QAAWD,GAC1B7J,gBAAkB7Z,QAAW,MAAO,SACpC75B,UAAYrc,OAAQA,IAEtB+uB,yBACEQ,UAAYuqC,SAAY,YACxBz9C,UAAYw9C,QAAWD,EAAM55D,OAAQA,IAEvCwzB,UACEpwB,OAAS8yC,OAAQA,EAAQr0C,UAAa,aACtCgzB,MAAQ40B,OAAQA,EAAQ5nD,UAAa,aACrCwa,UAAYrc,OAAQA,IAEtBoF,MAAQ8wC,OAAQA,GAChBrlC,OAASqlC,OAAQA,EAAQuT,OAAQA,GACjC9pB,UAAYk6B,QAAWD,GACvBj3B,SAAWuT,QAAS,UAAW,SAAU,UAAW,KACpDrW,SAAW4pB,OAAQA,GACnB7pB,SAAW6pB,OAAQA,GAEnBptC,UAAYrc,OAAQA,IAGlBuzC,GACF/0B,QACEq0B,OAAQ,SAAU,OAAQ,SAC1BjnB,WAAW,EACX4d,YAAY,EACZpD,YAAY,EAEZtZ,UACE1Y,KAAK,EACL8C,QAAQ,EACRwZ,aAAa,EACb3C,YAAY,GAEdlG,IAAK,GACLjiB,QACE0kC,aACEC,YAAa,MACbC,OAAQ,IACRC,OAAQ,QACRC,KAAM,QACNC,QAAS,QACTjiB,IAAK,IACLkiB,KAAM,IACN5hB,MAAO,MACPJ,KAAM,QAERiiB,aACEN,YAAa,WACbC,OAAQ,eACRC,OAAQ,aACRC,KAAM,aACNC,QAAS,YACTjiB,IAAK,YACLkiB,KAAM,YACN5hB,MAAO,OACPJ,KAAM,KAKVuxC,iBAAiB,EACjBrpD,OAAQ,GAER4iB,OAAQ,GACR7S,QACEqS,MAAO,GAAI,EAAG,IAAK,GACnB7jB,MACE+6C,YAAa,GAAI,EAAG,IAAK,GACzBza,UAAW,GAAI,EAAG,IAAK,KAG3B1sC,IAAK,GACL8kC,UAAW,GACX1U,eAAgB,EAAG,EAAG,GAAI,GAC1BrwB,IAAK,GACLglC,UAAW,GACXtI,UAAU,EACVwvB,aAAa,EACb2I,qBAAqB,EAOrBxoC,aACE6D,MAAO,OAAQ,SAAU,OACzB7jB,MAAO,SAAU,QAEnB4/C,YAAY,EACZ7iB,iBAAiB,EACjBhZ,iBAAiB,EACjBD,iBAAiB,EACjBnG,OAAO,EACP0hB,gBAAgB,EAEhB9mB,MAAO,GAMPioC,cAAc,EACd5G,SACE6G,aAAa,EACbC,eAAgB,QAElBhhC,yBAAyB,EACzB3pB,MAAO,MAAO,QAAS,QAAS,cAChCyL,MAAO,OACP8uB,UAAU,EACVgD,SAAU,UAAW,SAAU,UAAW,IAC1C9C,SAAU,SAAiB,GAAI,SAAiB,GAChDD,SAAU,GAAI,GAAI,SAAiB,IAIvCthC,GAAQmd,WAAaA,EACrBnd,EAAQi1C,iBAAmBA,GAIrB,SAAUh1C,EAAQD,EAASO,GAiCjC,QAASu7D,GAAUhpD,EAAMpD,GACvBrP,KAAKsW,GAAKT,EAAK1Q,aACfnF,KAAKyS,KAAOA,EAEZzS,KAAKs0B,gBACHonC,iBAAkB,OAClBC,aAAc,UACdvjD,MAAM,EACNwjD,UAAU,EACVvtC,OAAO,EACPwtC,YAAa,QACbC,QACEhsD,SAAS,EACT4gB,YAAa,UAEfjjB,MAAO,OACPsuD,UACE7pD,MAAO,GACP8pD,YAAY,EACZ9nB,MAAO,UAETsH,eACE1rC,SAAS,EACTmsD,gBAAiB,cACjBC,MAAO,IAET30B,YACEz3B,SAAS,EACTkM,KAAM,EACNvO,MAAO,UAET0uD,YACAC,UACAjM,QACE79C,gBAKJtS,KAAKqP,QAAUwG,EAAKrQ,UAAWxF,KAAKs0B,gBACpCt0B,KAAK+tB,OACL/tB,KAAKoC,SACLpC,KAAKotB,OAAS,KACdptB,KAAKmwD,UACLnwD,KAAKq8D,oBAAqB,EAC1Br8D,KAAKs8D,iBAAkB,EACvBt8D,KAAKu8D,yBAA0B,EAC/Bv8D,KAAKw8D,kBAAmB,CAExB,IAAIhmD,GAAKxW,IACTA,MAAKkxB,UAAY,KACjBlxB,KAAKsxD,WAAa,KAGlBtxD,KAAKuxD,eACH97C,IAAO,SAAa3L,EAAOqM,EAAQC,GAEjCI,EAAGg7C,OAAOr7C,EAAOO,QAEnBC,OAAU,SAAgB7M,EAAOqM,EAAQC,GAEvCI,EAAGi7C,UAAUt7C,EAAOO,QAEtB6B,OAAU,SAAgBzO,EAAOqM,EAAQC,GAEvCI,EAAGk7C,UAAUv7C,EAAOO,SAKxB1W,KAAK2xD,gBACHl8C,IAAO,SAAa3L,EAAOqM,EAAQC,GAEjCI,EAAGo7C,aAAaz7C,EAAOO,QAEzBC,OAAU,SAAgB7M,EAAOqM,EAAQC,GAEvCI,EAAGy7C,gBAAgB97C,EAAOO,QAE5B6B,OAAU,SAAgBzO,EAAOqM,EAAQC,GAEvCI,EAAG07C,gBAAgB/7C,EAAOO,SAI9B1W,KAAK0W,SACL1W,KAAKoyD,aACLpyD,KAAKy8D,UAAYz8D,KAAKyS,KAAK6W,MAAML,MACjCjpB,KAAKswB,eAELtwB,KAAKs6C,eACLt6C,KAAK0V,WAAWrG,GAChBrP,KAAK08D,0BAA4B,GACjC18D,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WACnC8B,EAAGimD,UAAYjmD,EAAG/D,KAAK6W,MAAML,MAC7BzS,EAAG+jC,IAAI9sC,MAAM/F,KAAOmO,EAAKrL,OAAOK,QAAQ2L,EAAGpU,MAAM8P,OAEjDsE,EAAGgmD,kBAAmB,EAEtBhmD,EAAGgJ,OAAOjf,KAAKiW,KAIjBxW,KAAKqD,UACLrD,KAAKi6C,WAAcM,IAAKv6C,KAAKu6C,IAAKD,YAAat6C,KAAKs6C,YAAajrC,QAASrP,KAAKqP,QAAS8gD,OAAQnwD,KAAKmwD,QApIvG,GAAI1sD,GAAWvD,EAAoB,GAE/BwD,EAEJ,SAAgCzB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFnDwB,GAIlCoS,EAAO3V,EAAoB,GAC3Bg6C,EAAUh6C,EAAoB,IAC9B+U,EAAU/U,EAAoB,IAC9BsZ,EAAWtZ,EAAoB,IAC/Bqf,EAAYrf,EAAoB,IAChCy8D,EAAWz8D,EAAoB,KAC/B08D,EAAa18D,EAAoB,KACjC28D,EAAS38D,EAAoB,KAC7B48D,EAAO58D,EAAoB,KAC3B68D,EAAQ78D,EAAoB,KAC5B25C,EAAS35C,EAAoB,GAuHjCu7D,GAAUl6D,UAAY,GAAIge,GAK1Bk8C,EAAUl6D,UAAU8B,QAAU,WAC5B,GAAI6vC,GAAQlhC,SAASC,cAAc,MACnCihC,GAAMhrC,UAAY,iBAClBlI,KAAK+tB,IAAImlB,MAAQA,EAGjBlzC,KAAKu6C,IAAMvoC,SAASsJ,gBAAgB,6BAA8B,OAClEtb,KAAKu6C,IAAI9sC,MAAM4E,SAAW,WAC1BrS,KAAKu6C,IAAI9sC,MAAM0E,QAAU,GAAKnS,KAAKqP,QAAQwsD,aAAa3wD,QAAQ,KAAM,IAAM,KAC5ElL,KAAKu6C,IAAI9sC,MAAMqxB,QAAU,QACzBoU,EAAM1gC,YAAYxS,KAAKu6C,KAGvBv6C,KAAKqP,QAAQ8sD,SAASzrC,YAAc,OACpC1wB,KAAKg9D,UAAY,GAAIL,GAAS38D,KAAKyS,KAAMzS,KAAKqP,QAAQ8sD,SAAUn8D,KAAKu6C,IAAKv6C,KAAKqP,QAAQ8gD,QAEvFnwD,KAAKqP,QAAQ8sD,SAASzrC,YAAc,QACpC1wB,KAAKi9D,WAAa,GAAIN,GAAS38D,KAAKyS,KAAMzS,KAAKqP,QAAQ8sD,SAAUn8D,KAAKu6C,IAAKv6C,KAAKqP,QAAQ8gD,cACjFnwD,MAAKqP,QAAQ8sD,SAASzrC,YAG7B1wB,KAAKk9D,WAAa,GAAIL,GAAO78D,KAAKyS,KAAMzS,KAAKqP,QAAQ+sD,OAAQ,OAAQp8D,KAAKqP,QAAQ8gD,QAClFnwD,KAAKm9D,YAAc,GAAIN,GAAO78D,KAAKyS,KAAMzS,KAAKqP,QAAQ+sD,OAAQ,QAASp8D,KAAKqP,QAAQ8gD,QAEpFnwD,KAAK+uB,QAOP0sC,EAAUl6D,UAAUmU,WAAa,SAAUrG,GACzC,GAAIA,EAAS,CACX,GAAIX,IAAU,WAAY,eAAgB,QAAS,SAAU,cAAe,mBAAoB,QAAS,WAAY,WAAY,OAAQ,cAC7GxL,KAAxBmM,EAAQwsD,iBAAgD34D,KAAnBmM,EAAQ8C,QAC/CnS,KAAKs8D,iBAAkB,EACvBt8D,KAAKu8D,yBAA0B,OACwBr5D,KAA9ClD,KAAKyS,KAAK2W,SAASC,gBAAgBlX,YAAgDjP,KAAxBmM,EAAQwsD,aACxEvwD,UAAU+D,EAAQwsD,YAAc,IAAI3wD,QAAQ,KAAM,KAAOlL,KAAKyS,KAAK2W,SAASC,gBAAgBlX,SAC9FnS,KAAKs8D,iBAAkB,GAG3BzmD,EAAK/P,oBAAoB4I,EAAQ1O,KAAKqP,QAASA,GAC/CwG,EAAK1G,aAAanP,KAAKqP,QAASA,EAAS,iBACzCwG,EAAK1G,aAAanP,KAAKqP,QAASA,EAAS,cACzCwG,EAAK1G,aAAanP,KAAKqP,QAASA,EAAS,UACzCwG,EAAK1G,aAAanP,KAAKqP,QAASA,EAAS,UAErCA,EAAQmsC,eAC6C,WAAnD,EAAI93C,EAAkB,SAAG2L,EAAQmsC,gBAC/BnsC,EAAQmsC,cAAcygB,kBACqB,WAAzC5sD,EAAQmsC,cAAcygB,gBACxBj8D,KAAKqP,QAAQmsC,cAAc0gB,MAAQ,EACe,WAAzC7sD,EAAQmsC,cAAcygB,gBAC/Bj8D,KAAKqP,QAAQmsC,cAAc0gB,MAAQ,GAEnCl8D,KAAKqP,QAAQmsC,cAAcygB,gBAAkB,cAC7Cj8D,KAAKqP,QAAQmsC,cAAc0gB,MAAQ,KAMvCl8D,KAAKg9D,eACkB95D,KAArBmM,EAAQ8sD,WACVn8D,KAAKg9D,UAAUtnD,WAAW1V,KAAKqP,QAAQ8sD,UACvCn8D,KAAKi9D,WAAWvnD,WAAW1V,KAAKqP,QAAQ8sD,WAIxCn8D,KAAKk9D,gBACgBh6D,KAAnBmM,EAAQ+sD,SACVp8D,KAAKk9D,WAAWxnD,WAAW1V,KAAKqP,QAAQ+sD,QACxCp8D,KAAKm9D,YAAYznD,WAAW1V,KAAKqP,QAAQ+sD,SAIzCp8D,KAAKmwD,OAAO3uD,eAvMJ,kBAwMVxB,KAAKmwD,OAAgB,cAAEz6C,WAAWrG,GAKlCrP,KAAK+tB,IAAImlB,QAEXlzC,KAAKw8D,kBAAmB,EACxBx8D,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAakB,OAAO,MAO/C0lD,EAAUl6D,UAAUwe,KAAO,WAErB/f,KAAK+tB,IAAImlB,MAAM9oC,YACjBpK,KAAK+tB,IAAImlB,MAAM9oC,WAAWjG,YAAYnE,KAAK+tB,IAAImlB,QAOnDuoB,EAAUl6D,UAAUwtB,KAAO,WAEpB/uB,KAAK+tB,IAAImlB,MAAM9oC,YAClBpK,KAAKyS,KAAKsb,IAAIiU,OAAOxvB,YAAYxS,KAAK+tB,IAAImlB,QAQ9CuoB,EAAUl6D,UAAU4mC,SAAW,SAAUzxB,GACvC,GACIW,GADAb,EAAKxW,KAELq1D,EAAer1D,KAAKkxB,SAGxB,IAAKxa,EAEE,CAAA,KAAIA,YAAiBzB,IAAWyB,YAAiB8C,IAGtD,KAAM,IAAI1X,WAAU,kDAFpB9B,MAAKkxB,UAAYxa,MAFjB1W,MAAKkxB,UAAY,IAkBnB,IAXImkC,IAEFx/C,EAAKnN,QAAQ1I,KAAKuxD,cAAe,SAAU5oD,EAAUmB,GACnDurD,EAAa1gD,IAAI7K,EAAOnB,KAI1B0O,EAAMg+C,EAAat9C,SACnB/X,KAAK0xD,UAAUr6C,IAGbrX,KAAKkxB,UAAW,CAElB,GAAI5a,GAAKtW,KAAKsW,EACdT,GAAKnN,QAAQ1I,KAAKuxD,cAAe,SAAU5oD,EAAUmB,GACnD0M,EAAG0a,UAAUxc,GAAG5K,EAAOnB,EAAU2N,KAInCe,EAAMrX,KAAKkxB,UAAUnZ,SACrB/X,KAAKwxD,OAAOn6C,KAQhBokD,EAAUl6D,UAAU6mC,UAAY,SAAU+nB,GACxC,GACI94C,GADAb,EAAKxW,IAIT,IAAIA,KAAKsxD,WAAY,CACnBz7C,EAAKnN,QAAQ1I,KAAK2xD,eAAgB,SAAUhpD,EAAUmB,GACpD0M,EAAG86C,WAAW38C,IAAI7K,EAAOnB,KAI3B0O,EAAMrX,KAAKsxD,WAAWv5C,SACtB/X,KAAKsxD,WAAa,IAClB,KAAK,GAAIjxD,GAAI,EAAGA,EAAIgX,EAAIhV,OAAQhC,IAC9BL,KAAKo9D,aAAa/lD,EAAIhX,IAK1B,GAAK8vD,EAEE,CAAA,KAAIA,YAAkBl7C,IAAWk7C,YAAkB32C,IAGxD,KAAM,IAAI1X,WAAU,kDAFpB9B,MAAKsxD,WAAanB,MAFlBnwD,MAAKsxD,WAAa,IAOpB,IAAItxD,KAAKsxD,WAAY,CAEnB,GAAIh7C,GAAKtW,KAAKsW,EACdT,GAAKnN,QAAQ1I,KAAK2xD,eAAgB,SAAUhpD,EAAUmB,GACpD0M,EAAG86C,WAAW58C,GAAG5K,EAAOnB,EAAU2N,KAIpCe,EAAMrX,KAAKsxD,WAAWv5C,SACtB/X,KAAK4xD,aAAav6C,KAItBokD,EAAUl6D,UAAUkwD,UAAY,SAAUp6C,GACxCrX,KAAKq9D,oBAAoBhmD,IAE3BokD,EAAUl6D,UAAUiwD,OAAS,SAAUn6C,GACrCrX,KAAKyxD,UAAUp6C,IAEjBokD,EAAUl6D,UAAUmwD,UAAY,SAAUr6C,GACxCrX,KAAKyxD,UAAUp6C,IAEjBokD,EAAUl6D,UAAU0wD,gBAAkB,SAAUE,GAC9CnyD,KAAKq9D,oBAAoB,KAAMlL,IAEjCsJ,EAAUl6D,UAAUqwD,aAAe,SAAUO,GAC3CnyD,KAAKiyD,gBAAgBE,IAQvBsJ,EAAUl6D,UAAU2wD,gBAAkB,SAAUC,GAC9C,IAAK,GAAI9xD,GAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IACnCL,KAAKo9D,aAAajL,EAAS9xD,GAE7BL,MAAKw8D,kBAAmB,EACxBx8D,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAakB,OAAO,KAQ7C0lD,EAAUl6D,UAAU67D,aAAe,SAAUxvB,GACvC5tC,KAAKmwD,OAAO3uD,eAAeosC,KACwB,SAAjD5tC,KAAKmwD,OAAOviB,GAASv+B,QAAQqsD,kBAC/B17D,KAAKi9D,WAAWK,YAAY1vB,GAC5B5tC,KAAKm9D,YAAYG,YAAY1vB,GAC7B5tC,KAAKm9D,YAAY39C,WAEjBxf,KAAKg9D,UAAUM,YAAY1vB,GAC3B5tC,KAAKk9D,WAAWI,YAAY1vB,GAC5B5tC,KAAKk9D,WAAW19C,gBAEXxf,MAAKmwD,OAAOviB,KAWvB6tB,EAAUl6D,UAAUg8D,aAAe,SAAU/uC,EAAOof,GAC7C5tC,KAAKmwD,OAAO3uD,eAAeosC,IAU9B5tC,KAAKmwD,OAAOviB,GAASj3B,OAAO6X,GACyB,SAAjDxuB,KAAKmwD,OAAOviB,GAASv+B,QAAQqsD,kBAC/B17D,KAAKi9D,WAAWlrC,YAAY6b,EAAS5tC,KAAKmwD,OAAOviB,IACjD5tC,KAAKm9D,YAAYprC,YAAY6b,EAAS5tC,KAAKmwD,OAAOviB,IAElD5tC,KAAKg9D,UAAUM,YAAY1vB,GAC3B5tC,KAAKk9D,WAAWI,YAAY1vB,KAE5B5tC,KAAKg9D,UAAUjrC,YAAY6b,EAAS5tC,KAAKmwD,OAAOviB,IAChD5tC,KAAKk9D,WAAWnrC,YAAY6b,EAAS5tC,KAAKmwD,OAAOviB,IAEjD5tC,KAAKi9D,WAAWK,YAAY1vB,GAC5B5tC,KAAKm9D,YAAYG,YAAY1vB,MArB/B5tC,KAAKmwD,OAAOviB,GAAW,GAAIgvB,GAAWpuC,EAAOof,EAAS5tC,KAAKqP,QAASrP,KAAK08D,0BACpB,SAAjD18D,KAAKmwD,OAAOviB,GAASv+B,QAAQqsD,kBAC/B17D,KAAKi9D,WAAWO,SAAS5vB,EAAS5tC,KAAKmwD,OAAOviB,IAC9C5tC,KAAKm9D,YAAYK,SAAS5vB,EAAS5tC,KAAKmwD,OAAOviB,MAE/C5tC,KAAKg9D,UAAUQ,SAAS5vB,EAAS5tC,KAAKmwD,OAAOviB,IAC7C5tC,KAAKk9D,WAAWM,SAAS5vB,EAAS5tC,KAAKmwD,OAAOviB,MAkBlD5tC,KAAKk9D,WAAW19C,SAChBxf,KAAKm9D,YAAY39C,UAUnBi8C,EAAUl6D,UAAU87D,oBAAsB,SAAUhmD,EAAK86C,GACvD,GAAsB,MAAlBnyD,KAAKkxB,UAAmB,CAC1B,GAAIusC,MACA/mD,EAAQ1W,KAAKkxB,UAAUhwB,MACvBoU,EAAUtV,KAAKkxB,UAAU7b,SACzBqoD,IACArmD,IACFA,EAAIjL,IAAI,SAAUkK,GAChBonD,EAAMpnD,GAAMA,GAMhB,KAAK,GADDqnD,MACKt9D,EAAI,EAAGA,EAAIqW,EAAMrU,OAAQhC,IAAK,CACrC,GAAIqQ,GAAOgG,EAAMrW,GACbutC,EAAUl9B,EAAK8d,KACH,QAAZof,OAAgC1qC,KAAZ0qC,IACtBA,EA7aQ,iBA+aV+vB,EAAYn8D,eAAeosC,GAAW+vB,EAAY/vB,KAAa+vB,EAAY/vB,GAAW,EAIxF,GAAIgwB,KACJ,KAAKzL,GAAY96C,EACf,IAAKu2B,IAAW5tC,MAAKmwD,OACnB,GAAInwD,KAAKmwD,OAAO3uD,eAAeosC,GAAU,CACvCpf,EAAQxuB,KAAKmwD,OAAOviB,EACpB,IAAIiwB,GAAiBrvC,EAAM8mC,UAE3BmI,GAAc7vB,GAAWiwB,EAAev1D,OAAO,SAAUoI,GAEvD,MADAktD,GAAiBltD,EAAK4E,IAAY5E,EAAK4E,GAChC5E,EAAK4E,KAAaooD,EAAMhtD,EAAK4E,KAEtC,IAAIwoD,GAAYH,EAAY/vB,EAC5B+vB,GAAY/vB,IAAY6vB,EAAc7vB,GAASvrC,OAC3Co7D,EAAc7vB,GAASvrC,OAASy7D,IAClCL,EAAc7vB,GAASkwB,EAAY;8BAO3C,IAAKz9D,EAAI,EAAGA,EAAIqW,EAAMrU,OAAQhC,IAM5B,GALAqQ,EAAOgG,EAAMrW,GACbutC,EAAUl9B,EAAK8d,MACC,OAAZof,OAAgC1qC,KAAZ0qC,IACtBA,EA5cQ,iBA8cLukB,IAAY96C,GAAO3G,EAAK4E,KAAaooD,EAAMhtD,EAAK4E,MAAasoD,EAAiBp8D,eAAekP,EAAK4E,IAAvG,CAGKmoD,EAAcj8D,eAAeosC,KAChC6vB,EAAc7vB,GAAW,GAAIjoC,OAAMg4D,EAAY/vB,IAGjD,IAAImwB,GAAWloD,EAAKhH,aAAa6B,EACjCqtD,GAASpuD,EAAIkG,EAAKrP,QAAQkK,EAAKf,EAAG,QAClCouD,EAAS70C,IAAMrT,EAAKrP,QAAQkK,EAAKwY,IAAK,QACtC60C,EAASC,SAAWttD,EAAKiL,EACzBoiD,EAASpiD,EAAI7X,OAAO4M,EAAKiL,GACzBoiD,EAASzoD,GAAW5E,EAAK4E,EAEzB,IAAI6lB,GAAQsiC,EAAc7vB,GAASvrC,OAASs7D,EAAY/vB,IACxD6vB,GAAc7vB,GAASzS,GAAS4iC,EAIlC,IAAKnwB,IAAW5tC,MAAKmwD,OACfnwD,KAAKmwD,OAAO3uD,eAAeosC,KACxB6vB,EAAcj8D,eAAeosC,KAChC6vB,EAAc7vB,GAAW,GAAIjoC,OAAM,IAMzC,KAAKioC,IAAW6vB,GACd,GAAIA,EAAcj8D,eAAeosC,GAC/B,GAAqC,GAAjC6vB,EAAc7vB,GAASvrC,OACrBrC,KAAKmwD,OAAO3uD,eAAeosC,IAC7B5tC,KAAKo9D,aAAaxvB,OAEf,CACL,GAAIpf,OAAQtrB,OACWA,IAAnBlD,KAAKsxD,aACP9iC,EAAQxuB,KAAKsxD,WAAWpwD,IAAI0sC,QAEjB1qC,IAATsrB,IACFA,GAAUlY,GAAIs3B,EAASxxB,QAASpc,KAAKqP,QAAQssD,aAAe/tB,IAE9D5tC,KAAKu9D,aAAa/uC,EAAOof,GACzB5tC,KAAKmwD,OAAOviB,GAASzF,SAASs1B,EAAc7vB,IAIlD5tC,KAAKw8D,kBAAmB,EACxBx8D,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAakB,OAAO,MAQ/C0lD,EAAUl6D,UAAUie,OAAS,WAC3B,GAAIE,IAAU,CAGd1f,MAAKoC,MAAM8P,MAAQlS,KAAK+tB,IAAImlB,MAAMvgC,YAClC3S,KAAKoC,MAAM+P,OAASnS,KAAKyS,KAAK2W,SAASC,gBAAgBlX,OAASnS,KAAKyS,KAAK2W,SAASpc,OAAOlF,IAAM9H,KAAKyS,KAAK2W,SAASpc,OAAOqV,OAG1H3C,EAAU1f,KAAKyf,cAAgBC,CAG/B,IAAIs0C,GAAkBh0D,KAAKyS,KAAK6W,MAAMJ,IAAMlpB,KAAKyS,KAAK6W,MAAML,MACxDgrC,EAASD,GAAmBh0D,KAAKk0D,mBA2BrC,IA1BAl0D,KAAKk0D,oBAAsBF,EAIZ,GAAXt0C,IACF1f,KAAKu6C,IAAI9sC,MAAMyE,MAAQ2D,EAAKrL,OAAOK,OAAO,EAAI7K,KAAKoC,MAAM8P,OACzDlS,KAAKu6C,IAAI9sC,MAAM/F,KAAOmO,EAAKrL,OAAOK,QAAQ7K,KAAKoC,MAAM8P,QAGL,IAA3ClS,KAAKqP,QAAQ8C,OAAS,IAAIhM,QAAQ,MAA8C,GAAhCnG,KAAKu8D,0BACxDv8D,KAAKs8D,iBAAkB,IAKC,GAAxBt8D,KAAKs8D,iBACHt8D,KAAKqP,QAAQwsD,aAAe77D,KAAKoC,MAAM+P,OAAS,OAClDnS,KAAKqP,QAAQwsD,YAAc77D,KAAKoC,MAAM+P,OAAS,KAC/CnS,KAAKu6C,IAAI9sC,MAAM0E,OAASnS,KAAKoC,MAAM+P,OAAS,MAE9CnS,KAAKs8D,iBAAkB,GAEvBt8D,KAAKu6C,IAAI9sC,MAAM0E,QAAU,GAAKnS,KAAKqP,QAAQwsD,aAAa3wD,QAAQ,KAAM,IAAM,KAI/D,GAAXwU,GAA6B,GAAVu0C,GAA6C,GAA3Bj0D,KAAKq8D,oBAAuD,GAAzBr8D,KAAKw8D,iBAC/E98C,EAAU1f,KAAKi+D,gBAAkBv+C,EACjC1f,KAAKw8D,kBAAmB,MAGxB,IAAsB,GAAlBx8D,KAAKy8D,UAAgB,CACvB,GAAI7yC,GAAS5pB,KAAKyS,KAAK6W,MAAML,MAAQjpB,KAAKy8D,UACtCnzC,EAAQtpB,KAAKyS,KAAK6W,MAAMJ,IAAMlpB,KAAKyS,KAAK6W,MAAML,KAClD,IAAwB,GAApBjpB,KAAKoC,MAAM8P,MAAY,CACzB,GAAIgsD,GAAmBl+D,KAAKoC,MAAM8P,MAAQoX,EACtCpN,EAAU0N,EAASs0C,CACvBl+D,MAAKu6C,IAAI9sC,MAAM/F,MAAQ1H,KAAKoC,MAAM8P,MAAQgK,EAAU,MAM1D,MAFAlc,MAAKk9D,WAAW19C,SAChBxf,KAAKm9D,YAAY39C,SACVE,GAGT+7C,EAAUl6D,UAAU48D,mBAAqB,WAEvC,GAAIvjC,KACJ,KAAK,GAAIgT,KAAW5tC,MAAKmwD,OACvB,GAAInwD,KAAKmwD,OAAO3uD,eAAeosC,GAAU,CACvC,GAAIpf,GAAQxuB,KAAKmwD,OAAOviB,EACH,IAAjBpf,EAAMuO,aAAgE75B,KAA5ClD,KAAKqP,QAAQ8gD,OAAO79C,WAAWs7B,IAAqE,GAA3C5tC,KAAKqP,QAAQ8gD,OAAO79C,WAAWs7B,IACpHhT,EAAUx0B,MAAOkQ,GAAIs3B,EAASwwB,OAAQ5vC,EAAMnf,QAAQ+uD,SAI1DvoD,EAAK9G,WAAW6rB,EAAW,SAAU/3B,EAAGC,GACtC,GAAIu7D,GAAKx7D,EAAEu7D,OACPE,EAAKx7D,EAAEs7D,MAGX,YAFWl7D,KAAPm7D,IAAkBA,EAAK,OAChBn7D,KAAPo7D,IAAkBA,EAAK,GACpBD,GAAMC,EAAK,EAAID,EAAKC,GAAM,EAAI,GAGvC,KAAK,GADDnM,GAAW,GAAIxsD,OAAMi1B,EAAUv4B,QAC1BhC,EAAI,EAAGA,EAAIu6B,EAAUv4B,OAAQhC,IACpC8xD,EAAS9xD,GAAKu6B,EAAUv6B,GAAGiW,EAE7B,OAAO67C,IASTsJ,EAAUl6D,UAAU08D,aAAe,WAGjC,GADA/jB,EAAQt/B,gBAAgB5a,KAAKs6C,aACL,GAApBt6C,KAAKoC,MAAM8P,OAAgC,MAAlBlS,KAAKkxB,UAAmB,CACnD,GAAI1C,GAAOnuB,EACPk+D,KAGAC,EAAUx+D,KAAKyS,KAAKoD,KAAK4oD,cAAcz+D,KAAKyS,KAAK2W,SAAS3pB,KAAKyS,OAC/DwsD,EAAU1+D,KAAKyS,KAAKoD,KAAK4oD,aAAa,EAAIz+D,KAAKyS,KAAK2W,SAAS3pB,KAAKyS,OAGlEigD,EAAWnyD,KAAKm+D,oBACpB,IAAIhM,EAAS9vD,OAAS,EAAG,CACvB,GAAIivD,KASJ,KANAtxD,KAAK2+D,iBAAiBxM,EAAUb,EAAYkN,EAASE,GAGrD1+D,KAAK4+D,eAAezM,EAAUb,GAGzBjxD,EAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAC/BL,KAAK6+D,qBAAqBvN,EAAWa,EAAS9xD,IAWhD,IAPAL,KAAK8+D,YAAY3M,EAAUb,EAAYiN,GAOnB,GAJLv+D,KAAK++D,aAAa5M,EAAUoM,GAOzC,MAFArkB,GAAQj/B,gBAAgBjb,KAAKs6C,aAC7Bt6C,KAAKq8D,oBAAqB,GACnB,CAETr8D,MAAKq8D,oBAAqB,CAG1B,IAAI2C,OAAQ97D,EACZ,KAAK7C,EAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAC/BmuB,EAAQxuB,KAAKmwD,OAAOgC,EAAS9xD,KACF,IAAvBL,KAAKqP,QAAQgf,OAAyC,SAAvBruB,KAAKqP,QAAQ5B,YACLvK,IAArCsrB,EAAMnf,QAAQ4vD,qBAAqCzwC,EAAMnf,QAAQ4vD,0BACtD/7D,IAAT87D,IACFh/D,KAAKk/D,OAAO5N,EAAW9iC,EAAMlY,IAAKg7C,EAAW0N,EAAM1oD,KACf,GAAhCkY,EAAMnf,QAAQysD,OAAOhsD,SAAwD,UAArC0e,EAAMnf,QAAQysD,OAAOprC,cACvB,OAApClC,EAAMnf,QAAQysD,OAAOprC,aAA6D,UAArCsuC,EAAM3vD,QAAQysD,OAAOprC,aACpEsuC,EAAM3vD,QAAQysD,OAAOprC,YAAc,QACnCsuC,EAAM3vD,QAAQysD,OAAOluB,QAAUpf,EAAMlY,KAErCkY,EAAMnf,QAAQysD,OAAOprC,YAAc,QACnClC,EAAMnf,QAAQysD,OAAOluB,QAAUoxB,EAAM1oD,MAI3C0oD,EAAQxwC,IAGZxuB,KAAKm/D,qBAAqB7N,EAAWa,EAAS9xD,IAAKmuB,EAIrD,IAAI4wC,KACJ,KAAK/+D,EAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAE/B,GADAmuB,EAAQxuB,KAAKmwD,OAAOgC,EAAS9xD,IACD,SAAxBmuB,EAAMnf,QAAQ5B,OAAoD,GAAhC+gB,EAAMnf,QAAQysD,OAAOhsD,QAAiB,CAC1E,GAAIqqC,GAAUmX,EAAWa,EAAS9xD,GAClC,IAAe,MAAX85C,GAAqC,GAAlBA,EAAQ93C,OAC7B,QAKF,IAHK+8D,EAAM59D,eAAe2wD,EAAS9xD,MACjC++D,EAAMjN,EAAS9xD,IAAM08D,EAAMsC,SAASllB,EAAS3rB,IAEN,UAArCA,EAAMnf,QAAQysD,OAAOprC,YAAyB,CAChD,GAAI4uC,GAAa9wC,EAAMnf,QAAQysD,OAAOluB,OACtC,KAAsC,IAAlCukB,EAAShsD,QAAQm5D,GAAoB,CACvCpoD,QAAQ0G,IAAI4Q,EAAMlY,GAAK,wCAA0CgpD,EACjE,UAEGF,EAAM59D,eAAe89D,KACxBF,EAAME,GAAcvC,EAAMsC,SAAS/N,EAAWgO,GAAat/D,KAAKmwD,OAAOmP,KAEzEvC,EAAMwC,YAAYH,EAAMjN,EAAS9xD,IAAKmuB,EAAO4wC,EAAME,GAAat/D,KAAKi6C,eAErE8iB,GAAMwC,YAAYH,EAAMjN,EAAS9xD,IAAKmuB,MAAOtrB,GAAWlD,KAAKi6C,WAOnE,IADA6iB,EAAKj3C,KAAKssC,EAAUb,EAAYtxD,KAAKi6C,WAChC55C,EAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAE/B,GADAmuB,EAAQxuB,KAAKmwD,OAAOgC,EAAS9xD,IACzBixD,EAAWa,EAAS9xD,IAAIgC,OAAS,EACnC,OAAQmsB,EAAMnf,QAAQ5B,OACpB,IAAK,OACE2xD,EAAM59D,eAAe2wD,EAAS9xD,MACjC++D,EAAMjN,EAAS9xD,IAAM08D,EAAMsC,SAAS/N,EAAWa,EAAS9xD,IAAKmuB,IAE/DuuC,EAAMl3C,KAAKu5C,EAAMjN,EAAS9xD,IAAKmuB,EAAOxuB,KAAKi6C,UAE7C,KAAK,QAEL,IAAK,SACwB,SAAvBzrB,EAAMnf,QAAQ5B,OAA2C,UAAvB+gB,EAAMnf,QAAQ5B,OAAyD,GAApC+gB,EAAMnf,QAAQk4B,WAAWz3B,SAChG+pC,EAAOh0B,KAAKyrC,EAAWa,EAAS9xD,IAAKmuB,EAAOxuB,KAAKi6C,aAgB/D,MADAC,GAAQj/B,gBAAgBjb,KAAKs6C,cACtB,GAGTmhB,EAAUl6D,UAAU29D,OAAS,SAAUhqD,EAAMsqD,GAC3C,GAAIrkC,GAAOilB,EAAID,EAAIsf,EAAcC,CACjCvkC,GAAQ,CAER,KAAK,GAAIjsB,GAAI,EAAGA,EAAIgG,EAAK7S,OAAQ6M,IAAK,CACpCuwD,MAAev8D,GACfw8D,MAAex8D,EAEf,KAAK,GAAI+L,GAAIksB,EAAOlsB,EAAIuwD,EAAQn9D,OAAQ4M,IAAK,CAE3C,GAAIuwD,EAAQvwD,GAAGU,IAAMuF,EAAKhG,GAAGS,EAAG,CAC9B8vD,EAAeD,EAAQvwD,GACvBywD,EAAeF,EAAQvwD,GACvBksB,EAAQlsB,CACR,OACK,GAAIuwD,EAAQvwD,GAAGU,EAAIuF,EAAKhG,GAAGS,EAAG,CAEnC+vD,EAAeF,EAAQvwD,GAErBwwD,EADO,GAALxwD,EACaywD,EAEAF,EAAQvwD,EAAI,GAE7BksB,EAAQlsB,CACR,YAIiB/L,KAAjBw8D,IACFD,EAAeD,EAAQA,EAAQn9D,OAAS,GACxCq9D,EAAeF,EAAQA,EAAQn9D,OAAS,IAG1C+9C,EAAKsf,EAAa/vD,EAAI8vD,EAAa9vD,EACnCwwC,EAAKuf,EAAa/jD,EAAI8jD,EAAa9jD,EAEjCzG,EAAKhG,GAAGyM,EADA,GAANykC,EACUlrC,EAAKhG,GAAG8uD,SAAW0B,EAAa/jD,EAEhCzG,EAAKhG,GAAG8uD,SAAW7d,EAAKC,GAAMlrC,EAAKhG,GAAGS,EAAI8vD,EAAa9vD,GAAK8vD,EAAa9jD,IAkB3F8/C,EAAUl6D,UAAUo9D,iBAAmB,SAAUxM,EAAUb,EAAYkN,EAASE,GAC9E,GAAIlwC,GAAOnuB,EAAG6O,EAAGwB,CACjB,IAAIyhD,EAAS9vD,OAAS,EACpB,IAAKhC,EAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAAK,CACpCmuB,EAAQxuB,KAAKmwD,OAAOgC,EAAS9xD,GAC7B,IAAI6wB,GAAY1C,EAAM8mC,UAEtB,IAA0B,GAAtB9mC,EAAMnf,QAAQ+I,KAAc,CAC9B,GAAIunD,GAAiB,SAAwB98D,EAAGC,GAC9C,MAAOD,GAAEy3D,WAAax3D,EAAEw3D,UAAY,EAAIz3D,EAAIC,GAAK,EAAI,GAEnD88D,EAAQl7D,KAAKJ,IAAI,EAAGuR,EAAKjF,kBAAkBsgB,EAAWstC,EAAS,IAAK,SAAUmB,IAC9EE,EAAOn7D,KAAKL,IAAI6sB,EAAU7uB,OAAQwT,EAAKjF,kBAAkBsgB,EAAWwtC,EAAS,IAAK,QAASiB,GAAkB,EAC7GE,IAAQ,IACVA,EAAO3uC,EAAU7uB,OAEnB,IAAIy9D,GAAgB,GAAIn6D,OAAMk6D,EAAOD,EACrC,KAAK1wD,EAAI0wD,EAAO1wD,EAAI2wD,EAAM3wD,IACxBwB,EAAO8d,EAAM0C,UAAUhiB,GACvB4wD,EAAc5wD,EAAI0wD,GAASlvD,CAE7B4gD,GAAWa,EAAS9xD,IAAMy/D,MAG1BxO,GAAWa,EAAS9xD,IAAMmuB,EAAM0C,YAYxCuqC,EAAUl6D,UAAUq9D,eAAiB,SAAUzM,EAAUb,GACvD,GAAI9iC,EACJ,IAAI2jC,EAAS9vD,OAAS,EACpB,IAAK,GAAIhC,GAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAEnC,GADAmuB,EAAQxuB,KAAKmwD,OAAOgC,EAAS9xD,IACC,GAA1BmuB,EAAMnf,QAAQusD,SAAkB,CAClC,GAAIkE,GAAgBxO,EAAWa,EAAS9xD,GACxC,IAAIy/D,EAAcz9D,OAAS,EAAG,CAC5B,GAAI09D,GAAY,EACZC,EAAiBF,EAAcz9D,OAK/B49D,EAAYjgE,KAAKyS,KAAKoD,KAAKqqD,eAAeJ,EAAcA,EAAcz9D,OAAS,GAAGsN,GAAK3P,KAAKyS,KAAKoD,KAAKqqD,eAAeJ,EAAc,GAAGnwD,GACtIwwD,EAAiBH,EAAiBC,CACtCF,GAAYr7D,KAAKL,IAAIK,KAAK46B,KAAK,GAAM0gC,GAAiBt7D,KAAKJ,IAAI,EAAGI,KAAKwoC,MAAMizB,IAG7E,KAAK,GADDC,GAAc,GAAIz6D,OAAMq6D,GACnB9wD,EAAI,EAAGA,EAAI8wD,EAAgB9wD,GAAK6wD,EAAW,CAClD,GAAIM,GAAM37D,KAAKwoC,MAAMh+B,EAAI6wD,EACzBK,GAAYC,GAAOP,EAAc5wD,GAEnCoiD,EAAWa,EAAS9xD,IAAM+/D,EAAYxsC,OAAO,EAAGlvB,KAAKwoC,MAAM8yB,EAAiBD,OActFtE,EAAUl6D,UAAUu9D,YAAc,SAAU3M,EAAUb,EAAYiN,GAChE,GAAI1M,GAAWrjC,EAAOnuB,EAGlBgP,EAFAixD,KACAC,IAEJ,IAAIpO,EAAS9vD,OAAS,EAAG,CACvB,IAAKhC,EAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAC/BwxD,EAAYP,EAAWa,EAAS9xD,IAChCgP,EAAUrP,KAAKmwD,OAAOgC,EAAS9xD,IAAIgP,QAC/BwiD,EAAUxvD,OAAS,IACrBmsB,EAAQxuB,KAAKmwD,OAAOgC,EAAS9xD,KAEP,IAAlBgP,EAAQgf,OAAoC,QAAlBhf,EAAQ5B,MACH,SAA7B4B,EAAQqsD,iBACV4E,EAAmBA,EAAiBj4D,OAAOwpD,GAE3C0O,EAAoBA,EAAkBl4D,OAAOwpD,GAG/C0M,EAAYpM,EAAS9xD,IAAMmuB,EAAMgyC,UAAU3O,EAAWM,EAAS9xD,IAMrEy8D,GAAK2D,iBAAiBH,EAAkB/B,EAAapM,EAAU,iBAAkB,QACjF2K,EAAK2D,iBAAiBF,EAAmBhC,EAAapM,EAAU,kBAAmB,WAWvFsJ,EAAUl6D,UAAUw9D,aAAe,SAAU5M,EAAUoM,GACrD,GAOImC,GACAC,EARAjhD,GAAU,EACVkhD,GAAgB,EAChBC,GAAiB,EACjBC,EAAU,IACVC,EAAW,IACXC,GAAW,IACXC,GAAY,GAIhB,IAAI9O,EAAS9vD,OAAS,EAAG,CAEvB,IAAK,GAAIhC,GAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAAK,CACxC,GAAImuB,GAAQxuB,KAAKmwD,OAAOgC,EAAS9xD,GAC7BmuB,IAA2C,SAAlCA,EAAMnf,QAAQqsD,kBACzBkF,GAAgB,EAChBE,EAAU,IACVE,GAAW,KACFxyC,GAASA,EAAMnf,QAAQqsD,mBAChCmF,GAAiB,EACjBE,EAAW,IACXE,GAAY,KAKhB,IAAK5gE,EAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAC3Bk+D,EAAY/8D,eAAe2wD,EAAS9xD,MACE,IAApCk+D,EAAYpM,EAAS9xD,IAAI6gE,SAC3BR,EAASnC,EAAYpM,EAAS9xD,IAAIgE,IAClCs8D,EAASpC,EAAYpM,EAAS9xD,IAAIiE,IAEe,SAA7Ci6D,EAAYpM,EAAS9xD,IAAIq7D,kBAC3BkF,GAAgB,EAChBE,EAAUA,EAAUJ,EAASA,EAASI,EACtCE,EAAUA,EAAUL,EAASA,EAASK,IAEtCH,GAAiB,EACjBE,EAAWA,EAAWL,EAASA,EAASK,EACxCE,EAAWA,EAAWN,EAASA,EAASM,GAM3B,IAAjBL,GACF5gE,KAAKg9D,UAAUp7B,SAASk/B,EAASE,GAEb,GAAlBH,GACF7gE,KAAKi9D,WAAWr7B,SAASm/B,EAAUE,GAGvCvhD,EAAU1f,KAAKmhE,qBAAqBP,EAAe5gE,KAAKg9D,YAAct9C,EACtEA,EAAU1f,KAAKmhE,qBAAqBN,EAAgB7gE,KAAKi9D,aAAev9C,EAElD,GAAlBmhD,GAA2C,GAAjBD,GAC5B5gE,KAAKg9D,UAAUoE,WAAY,EAC3BphE,KAAKi9D,WAAWmE,WAAY,IAE5BphE,KAAKg9D,UAAUoE,WAAY,EAC3BphE,KAAKi9D,WAAWmE,WAAY,GAE9BphE,KAAKi9D,WAAWoE,QAAUT,EAC1B5gE,KAAKi9D,WAAWqE,WAAathE,KAAKg9D,UAEJ,GAA1Bh9D,KAAKi9D,WAAWoE,QAEhBrhE,KAAKg9D,UAAUuE,WADK,GAAlBV,EAC0B7gE,KAAKi9D,WAAW/qD,MAEhB,EAG9BwN,EAAU1f,KAAKg9D,UAAUx9C,UAAYE,EACrCA,EAAU1f,KAAKi9D,WAAWz9C,UAAYE,GAEtCA,EAAU1f,KAAKi9D,WAAWz9C,UAAYE,CAIxC,IAAI8hD,IAAc,iBAAkB,kBAAmB,kBAAmB,mBAC1E,KAAKnhE,EAAI,EAAGA,EAAImhE,EAAWn/D,OAAQhC,KACO,GAApC8xD,EAAShsD,QAAQq7D,EAAWnhE,KAC9B8xD,EAASv+B,OAAOu+B,EAAShsD,QAAQq7D,EAAWnhE,IAAK,EAIrD,OAAOqf,IAWT+7C,EAAUl6D,UAAU4/D,qBAAuB,SAAUM,EAAUltC,GAC7D,GAAIuO,IAAU,CAYd,OAXgB,IAAZ2+B,EACEltC,EAAKxG,IAAImlB,MAAM9oC,YAA6B,GAAfmqB,EAAK3J,SACpC2J,EAAKxU,OACL+iB,GAAU,GAGPvO,EAAKxG,IAAImlB,MAAM9oC,YAA6B,GAAfmqB,EAAK3J,SACrC2J,EAAKxF,OACL+T,GAAU,GAGPA,GAWT24B,EAAUl6D,UAAUs9D,qBAAuB,SAAU6C,GAEnD,IAAK,GADD71C,GAAW7rB,KAAKyS,KAAKoD,KAAKgW,SACrBxrB,EAAI,EAAGA,EAAIqhE,EAAWr/D,OAAQhC,IACrCqhE,EAAWrhE,GAAG+5C,SAAWvuB,EAAS61C,EAAWrhE,GAAGsP,GAAK3P,KAAKoC,MAAM8P,MAChEwvD,EAAWrhE,GAAGg6C,SAAWqnB,EAAWrhE,GAAGsb,MACdzY,IAArBw+D,EAAWrhE,GAAG6oB,IAChBw4C,EAAWrhE,GAAGshE,WAAa91C,EAAS61C,EAAWrhE,GAAG6oB,KAAOlpB,KAAKoC,MAAM8P,MAEpEwvD,EAAWrhE,GAAGshE,eAAaz+D,IAcjCu4D,EAAUl6D,UAAU49D,qBAAuB,SAAUuC,EAAYlzC,GAC/D,GAAI+F,GAAOv0B,KAAKg9D,UACZ4E,EAAY99D,OAAO9D,KAAKu6C,IAAI9sC,MAAM0E,OAAOjH,QAAQ,KAAM,IACrB,UAAlCsjB,EAAMnf,QAAQqsD,mBAChBnnC,EAAOv0B,KAAKi9D,WAEd,KAAK,GAAI58D,GAAI,EAAGA,EAAIqhE,EAAWr/D,OAAQhC,IACrCqhE,EAAWrhE,GAAGg6C,SAAW31C,KAAKwoC,MAAM3Y,EAAKstC,aAAaH,EAAWrhE,GAAGsb,GAEtE6S,GAAMszC,gBAAgBp9D,KAAKL,IAAIu9D,EAAWrtC,EAAKstC,aAAa,MAG9DjiE,EAAOD,QAAU87D,GAIX,SAAU77D,EAAQD,EAASO,GAyBjC,QAASy8D,GAASlqD,EAAMpD,EAASkrC,EAAKwnB,GACpC/hE,KAAKsW,GAAKT,EAAK1Q,aACfnF,KAAKyS,KAAOA,EAEZzS,KAAKs0B,gBACH5D,YAAa,OACb8D,iBAAiB,EACjBC,iBAAiB,EACjButC,OAAO,EACPC,iBAAkB,EAClBC,iBAAkB,EAClBC,aAAc,GACdC,aAAc,EACd3nB,UAAW,GACXvoC,MAAO,OACP6qB,SAAS,EACTslC,YAAY,EACZ36D,MACE4hB,OAASjlB,QAAKnB,GAAWoB,QAAKpB,IAC9B+D,OAAQ,SAAgBzC,GACtB,MAAO,GAAK82B,WAAW92B,EAAMkkD,YAAY,KAE3Cz4B,OAAS2H,SAAM10B,GAAWuK,UAAOvK,KAEnC0E,OACE0hB,OAASjlB,QAAKnB,GAAWoB,QAAKpB,IAC9B+D,OAAQ,SAAgBzC,GACtB,MAAO,GAAK82B,WAAW92B,EAAMkkD,YAAY,KAE3Cz4B,OAAS2H,SAAM10B,GAAWuK,UAAOvK,MAIrClD,KAAK+hE,iBAAmBA,EACxB/hE,KAAKsiE,aAAe/nB,EACpBv6C,KAAKoC,SACLpC,KAAKuiE,aACHtuC,SACAuuC,UACAvyC,UAGFjwB,KAAK+tB,OACL/tB,KAAKyE,UAAQvB,GACblD,KAAKspB,OAAUL,MAAO,EAAGC,IAAK,GAE9BlpB,KAAKqP,QAAUwG,EAAKrQ,UAAWxF,KAAKs0B,gBACpCt0B,KAAKyiE,iBAAmB,EAExBziE,KAAK0V,WAAWrG,GAChBrP,KAAKkS,MAAQpO,QAAQ,GAAK9D,KAAKqP,QAAQ6C,OAAOhH,QAAQ,KAAM,KAC5DlL,KAAK0iE,SAAW1iE,KAAKkS,MACrBlS,KAAKmS,OAASnS,KAAKsiE,aAAa76D,wBAAwB0K,OACxDnS,KAAK4qB,QAAS,EAEd5qB,KAAK2iE,WAAa,GAClB3iE,KAAK4iE,cAAgB,EACrB5iE,KAAK6iE,eAAiB,EAEtB7iE,KAAKuhE,WAAa,EAClBvhE,KAAKqhE,QAAS,EACdrhE,KAAKshE,WAAa,KAClBthE,KAAKs6C,eACLt6C,KAAK8iE,cAAe,EAEpB9iE,KAAKmwD,UACLnwD,KAAK+iE,eAAiB,EAGtB/iE,KAAKqD,UACLrD,KAAKi6C,WAAcM,IAAKv6C,KAAKu6C,IAAKD,YAAat6C,KAAKs6C,YAAajrC,QAASrP,KAAKqP,QAAS8gD,OAAQnwD,KAAKmwD,OAErG,IAAI35C,GAAKxW,IACTA,MAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WACnC8B,EAAGuX,IAAIi1C,cAAcv1D,MAAM3F,IAAM0O,EAAG/D,KAAK2W,SAASqH,UAAY,OA9FlE,GAAIltB,GAAQrD,EAAoB,GAE5BsD,EAEJ,SAAgCvB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFrDsB,GAIhCsS,EAAO3V,EAAoB,GAC3Bg6C,EAAUh6C,EAAoB,IAC9Bqf,EAAYrf,EAAoB,IAChC+iE,EAAY/iE,EAAoB,IAyFpCy8D,GAASp7D,UAAY,GAAIge,GAEzBo9C,EAASp7D,UAAUi8D,SAAW,SAAUvhD,EAAOinD,GACxCljE,KAAKmwD,OAAO3uD,eAAeya,KAC9Bjc,KAAKmwD,OAAOl0C,GAASinD,GAEvBljE,KAAK+iE,gBAAkB,GAGzBpG,EAASp7D,UAAUwwB,YAAc,SAAU9V,EAAOinD,GAC3CljE,KAAKmwD,OAAO3uD,eAAeya,KAC9Bjc,KAAK+iE,gBAAkB,GAEzB/iE,KAAKmwD,OAAOl0C,GAASinD,GAGvBvG,EAASp7D,UAAU+7D,YAAc,SAAUrhD,GACrCjc,KAAKmwD,OAAO3uD,eAAeya,WACtBjc,MAAKmwD,OAAOl0C,GACnBjc,KAAK+iE,gBAAkB,IAI3BpG,EAASp7D,UAAUmU,WAAa,SAAUrG,GACxC,GAAIA,EAAS,CACX,GAAImQ,IAAS,CACTxf,MAAKqP,QAAQqhB,aAAerhB,EAAQqhB,iBAAuCxtB,KAAxBmM,EAAQqhB,cAC7DlR,GAAS,EAEX,IAAI9Q,IAAU,cAAe,kBAAmB,kBAAmB,QAAS,mBAAoB,mBAAoB,eAAgB,eAAgB,YAAa,QAAS,UAAW,OAAQ,QAAS,aACtMmH,GAAK/P,oBAAoB4I,EAAQ1O,KAAKqP,QAASA,GAE/CrP,KAAK0iE,SAAW5+D,QAAQ,GAAK9D,KAAKqP,QAAQ6C,OAAOhH,QAAQ,KAAM,MAChD,IAAXsU,GAAmBxf,KAAK+tB,IAAImlB,QAC9BlzC,KAAK+f,OACL/f,KAAK+uB,UAQX4tC,EAASp7D,UAAU8B,QAAU,WAC3BrD,KAAK+tB,IAAImlB,MAAQlhC,SAASC,cAAc,OACxCjS,KAAK+tB,IAAImlB,MAAMzlC,MAAMyE,MAAQlS,KAAKqP,QAAQ6C,MAC1ClS,KAAK+tB,IAAImlB,MAAMzlC,MAAM0E,OAASnS,KAAKmS,OAEnCnS,KAAK+tB,IAAIi1C,cAAgBhxD,SAASC,cAAc,OAChDjS,KAAK+tB,IAAIi1C,cAAcv1D,MAAMyE,MAAQ,OACrClS,KAAK+tB,IAAIi1C,cAAcv1D,MAAM0E,OAASnS,KAAKmS,OAC3CnS,KAAK+tB,IAAIi1C,cAAcv1D,MAAM4E,SAAW,WAGxCrS,KAAKu6C,IAAMvoC,SAASsJ,gBAAgB,6BAA8B,OAClEtb,KAAKu6C,IAAI9sC,MAAM4E,SAAW,WAC1BrS,KAAKu6C,IAAI9sC,MAAM3F,IAAM,MACrB9H,KAAKu6C,IAAI9sC,MAAM0E,OAAS,OACxBnS,KAAKu6C,IAAI9sC,MAAMyE,MAAQ,OACvBlS,KAAKu6C,IAAI9sC,MAAMqxB,QAAU,QACzB9+B,KAAK+tB,IAAImlB,MAAM1gC,YAAYxS,KAAKu6C,MAGlCoiB,EAASp7D,UAAU4hE,kBAAoB,WACrCjpB,EAAQt/B,gBAAgB5a,KAAKs6C,YAE7B,IAAI3qC,GACA8qC,EAAYz6C,KAAKqP,QAAQorC,UAGzB9+B,EAAIynD,IAGNzzD,GAD+B,SAA7B3P,KAAKqP,QAAQqhB,YAHA,EAMX1wB,KAAKkS,MAAQuoC,EANF,CASjB,IAAI4oB,IAAa,EAAI7/D,EAAgB,SAAGxD,KAAKmwD,OAC7CkT,GAAWjrD,KAAK,SAAUvV,EAAGC,GAC3B,MAAOD,GAAIC,GAAK,EAAI,GAGtB,KAAK,GAAIzC,GAAI,EAAGA,EAAIgjE,EAAWhhE,OAAQhC,IAAK,CAC1C,GAAIutC,GAAUy1B,EAAWhjE,IACY,IAAjCL,KAAKmwD,OAAOviB,GAAS7Q,aAAmE75B,KAA9ClD,KAAK+hE,iBAAiBzvD,WAAWs7B,KAAwE,IAA9C5tC,KAAK+hE,iBAAiBzvD,WAAWs7B,KACxI5tC,KAAKmwD,OAAOviB,GAAS01B,UAAU7oB,EAlBlB,GAkByCz6C,KAAKi6C,UAAWtqC,EAAGgM,GACzEA,GAAK++B,IAITR,EAAQj/B,gBAAgBjb,KAAKs6C,aAC7Bt6C,KAAK8iE,cAAe,GAGtBnG,EAASp7D,UAAUgiE,cAAgB,YACP,IAAtBvjE,KAAK8iE,eACP5oB,EAAQt/B,gBAAgB5a,KAAKs6C,aAC7BJ,EAAQj/B,gBAAgBjb,KAAKs6C,aAC7Bt6C,KAAK8iE,cAAe,IAOxBnG,EAASp7D,UAAUwtB,KAAO,WACxB/uB,KAAK4qB,QAAS,EACT5qB,KAAK+tB,IAAImlB,MAAM9oC,aACe,SAA7BpK,KAAKqP,QAAQqhB,YACf1wB,KAAKyS,KAAKsb,IAAIrmB,KAAK8K,YAAYxS,KAAK+tB,IAAImlB,OAExClzC,KAAKyS,KAAKsb,IAAInmB,MAAM4K,YAAYxS,KAAK+tB,IAAImlB,QAIxClzC,KAAK+tB,IAAIi1C,cAAc54D,YAC1BpK,KAAKyS,KAAKsb,IAAIoY,qBAAqB3zB,YAAYxS,KAAK+tB,IAAIi1C,gBAO5DrG,EAASp7D,UAAUwe,KAAO,WACxB/f,KAAK4qB,QAAS,EACV5qB,KAAK+tB,IAAImlB,MAAM9oC,YACjBpK,KAAK+tB,IAAImlB,MAAM9oC,WAAWjG,YAAYnE,KAAK+tB,IAAImlB,OAG7ClzC,KAAK+tB,IAAIi1C,cAAc54D,YACzBpK,KAAK+tB,IAAIi1C,cAAc54D,WAAWjG,YAAYnE,KAAK+tB,IAAIi1C,gBAS3DrG,EAASp7D,UAAUqgC,SAAW,SAAU3Y,EAAOC,GAC7ClpB,KAAKspB,MAAML,MAAQA,EACnBjpB,KAAKspB,MAAMJ,IAAMA,GAOnByzC,EAASp7D,UAAUie,OAAS,WAC1B,GAAIE,IAAU,EACV8jD,EAAe,CAGnBxjE,MAAK+tB,IAAIi1C,cAAcv1D,MAAM3F,IAAM9H,KAAKyS,KAAK2W,SAASqH,UAAY,IAElE,KAAK,GAAImd,KAAW5tC,MAAKmwD,OACnBnwD,KAAKmwD,OAAO3uD,eAAeosC,MACQ,IAAjC5tC,KAAKmwD,OAAOviB,GAAS7Q,aAAmE75B,KAA9ClD,KAAK+hE,iBAAiBzvD,WAAWs7B,KAAwE,IAA9C5tC,KAAK+hE,iBAAiBzvD,WAAWs7B,IACxI41B,IAIN,IAA4B,IAAxBxjE,KAAK+iE,gBAAyC,IAAjBS,EAC/BxjE,KAAK+f,WACA,CACL/f,KAAK+uB,OACL/uB,KAAKmS,OAASrO,OAAO9D,KAAKsiE,aAAa70D,MAAM0E,OAAOjH,QAAQ,KAAM,KAGlElL,KAAK+tB,IAAIi1C,cAAcv1D,MAAM0E,OAASnS,KAAKmS,OAAS,KACpDnS,KAAKkS,OAAiC,IAAzBlS,KAAKqP,QAAQ0tB,QAAmBj5B,QAAQ,GAAK9D,KAAKqP,QAAQ6C,OAAOhH,QAAQ,KAAM,KAAO,CAEnG,IAAI9I,GAAQpC,KAAKoC,MACb8wC,EAAQlzC,KAAK+tB,IAAImlB,KAGrBA,GAAMhrC,UAAY,gBAGlBlI,KAAKk1B,oBAEL,IAAIxE,GAAc1wB,KAAKqP,QAAQqhB,YAC3B8D,EAAkBx0B,KAAKqP,QAAQmlB,gBAC/BC,EAAkBz0B,KAAKqP,QAAQolB,eAGnCryB,GAAM+yB,iBAAmBX,EAAkBpyB,EAAMgzB,gBAAkB,EACnEhzB,EAAMizB,iBAAmBZ,EAAkBryB,EAAMkzB,gBAAkB,EAEnElzB,EAAMozB,eAAiBx1B,KAAKyS,KAAKsb,IAAIoY,qBAAqBxzB,YAAc3S,KAAKuhE,WAAavhE,KAAKkS,MAAQ,EAAIlS,KAAKqP,QAAQ6yD,iBACxH9/D,EAAMmzB,gBAAkB,EACxBnzB,EAAMszB,eAAiB11B,KAAKyS,KAAKsb,IAAIoY,qBAAqBxzB,YAAc3S,KAAKuhE,WAAavhE,KAAKkS,MAAQ,EAAIlS,KAAKqP,QAAQ4yD,iBACxH7/D,EAAMqzB,gBAAkB,EAGJ,SAAhB/E,GACFwiB,EAAMzlC,MAAM3F,IAAM,IAClBorC,EAAMzlC,MAAM/F,KAAO,IACnBwrC,EAAMzlC,MAAM4U,OAAS,GACrB6wB,EAAMzlC,MAAMyE,MAAQlS,KAAKkS,MAAQ,KACjCghC,EAAMzlC,MAAM0E,OAASnS,KAAKmS,OAAS,KACnCnS,KAAKoC,MAAM8P,MAAQlS,KAAKyS,KAAK2W,SAAS1hB,KAAKwK,MAC3ClS,KAAKoC,MAAM+P,OAASnS,KAAKyS,KAAK2W,SAAS1hB,KAAKyK,SAG5C+gC,EAAMzlC,MAAM3F,IAAM,GAClBorC,EAAMzlC,MAAM4U,OAAS,IACrB6wB,EAAMzlC,MAAM/F,KAAO,IACnBwrC,EAAMzlC,MAAMyE,MAAQlS,KAAKkS,MAAQ,KACjCghC,EAAMzlC,MAAM0E,OAASnS,KAAKmS,OAAS,KACnCnS,KAAKoC,MAAM8P,MAAQlS,KAAKyS,KAAK2W,SAASxhB,MAAMsK,MAC5ClS,KAAKoC,MAAM+P,OAASnS,KAAKyS,KAAK2W,SAASxhB,MAAMuK,QAG/CuN,EAAU1f,KAAKyjE,gBACf/jD,EAAU1f,KAAKyf,cAAgBC,GAEJ,IAAvB1f,KAAKqP,QAAQ2yD,MACfhiE,KAAKmjE,oBAELnjE,KAAKujE,gBAGPvjE,KAAK0jE,aAAahzC,GAEpB,MAAOhR,IASTi9C,EAASp7D,UAAUkiE,cAAgB,WACjC,GAAI7tB,GAAQ51C,KAER0f,GAAU,CACdw6B,GAAQt/B,gBAAgB5a,KAAKuiE,YAAYtuC,OACzCimB,EAAQt/B,gBAAgB5a,KAAKuiE,YAAYC,OACzC,IAAI9xC,GAAc1wB,KAAKqP,QAAqB,YACxCs0D,MAAiDzgE,IAAnClD,KAAKqP,QAAQqhB,GAAapH,MAAqBtpB,KAAKqP,QAAQqhB,GAAapH,SAGvFs6C,GAAe,MACI1gE,IAAnBygE,EAAYr/D,MACdtE,KAAKspB,MAAMJ,IAAMy6C,EAAYr/D,IAC7Bs/D,GAAe,EAEjB,IAAIC,IAAiB,MACE3gE,IAAnBygE,EAAYt/D,MACdrE,KAAKspB,MAAML,MAAQ06C,EAAYt/D,IAC/Bw/D,GAAiB,GAGnB7jE,KAAKyE,MAAQ,GAAIw+D,GAAUjjE,KAAKspB,MAAML,MAAOjpB,KAAKspB,MAAMJ,IAAK26C,EAAgBD,EAAc5jE,KAAK+tB,IAAImlB,MAAM5J,aAActpC,KAAKoC,MAAMkzB,gBAAiBt1B,KAAKqP,QAAQgzD,WAAYriE,KAAKqP,QAAQqhB,GAAazpB,SAEnL,IAAhBjH,KAAKqhE,YAAuCn+D,IAAnBlD,KAAKshE,YAChCthE,KAAKyE,MAAMq/D,YAAY9jE,KAAKshE,WAAW78D,OAIzCzE,KAAK+jE,aAAe,EAER/jE,KAAKyE,MAAMu/D,WACjBt7D,QAAQ,SAAUguB,GACtB,GAAI/a,GAAI+a,EAAK/a,EACT4a,EAAUG,EAAKutC,KACfruB,GAAMvmC,QAAyB,kBAAiB,IAAZknB,GACtCqf,EAAMsuB,aAAavoD,EAAI,EAAG+a,EAAK6H,IAAK7N,EAAa,uBAAwBklB,EAAMxzC,MAAMgzB,iBAEnFmB,GACE5a,GAAK,GACPi6B,EAAMsuB,aAAavoD,EAAI,EAAG+a,EAAK6H,IAAK7N,EAAa,uBAAwBklB,EAAMxzC,MAAMkzB,kBAGpE,IAAjBsgB,EAAMyrB,SACJ9qC,EACFqf,EAAMuuB,YAAYxoD,EAAG+U,EAAa,oCAAqCklB,EAAMvmC,QAAQ4yD,iBAAkBrsB,EAAMxzC,MAAMszB,gBAEnHkgB,EAAMuuB,YAAYxoD,EAAG+U,EAAa,oCAAqCklB,EAAMvmC,QAAQ6yD,iBAAkBtsB,EAAMxzC,MAAMozB,kBAMzH,IAAI4uC,GAAa,MACuBlhE,KAApClD,KAAKqP,QAAQqhB,GAAaT,WAAgE/sB,KAAzClD,KAAKqP,QAAQqhB,GAAaT,MAAM2H,OACnFwsC,EAAapkE,KAAKoC,MAAMiiE,gBAE1B,IAAIz6C,IAAgC,IAAvB5pB,KAAKqP,QAAQ2yD,MAAiBt9D,KAAKJ,IAAItE,KAAKqP,QAAQorC,UAAW2pB,GAAcpkE,KAAKqP,QAAQ8yD,aAAe,GAAKiC,EAAapkE,KAAKqP,QAAQ8yD,aAAe,EAyBpK,OAtBIniE,MAAK+jE,aAAe/jE,KAAKkS,MAAQ0X,IAAmC,IAAzB5pB,KAAKqP,QAAQ0tB,SAC1D/8B,KAAKkS,MAAQlS,KAAK+jE,aAAen6C,EACjC5pB,KAAKqP,QAAQ6C,MAAQlS,KAAKkS,MAAQ,KAClCgoC,EAAQj/B,gBAAgBjb,KAAKuiE,YAAYtuC,OACzCimB,EAAQj/B,gBAAgBjb,KAAKuiE,YAAYC,QACzCxiE,KAAKwf,SACLE,GAAU,GAGH1f,KAAK+jE,aAAe/jE,KAAKkS,MAAQ0X,IAAmC,IAAzB5pB,KAAKqP,QAAQ0tB,SAAoB/8B,KAAKkS,MAAQlS,KAAK0iE,UACnG1iE,KAAKkS,MAAQxN,KAAKJ,IAAItE,KAAK0iE,SAAU1iE,KAAK+jE,aAAen6C,GACzD5pB,KAAKqP,QAAQ6C,MAAQlS,KAAKkS,MAAQ,KAClCgoC,EAAQj/B,gBAAgBjb,KAAKuiE,YAAYtuC,OACzCimB,EAAQj/B,gBAAgBjb,KAAKuiE,YAAYC,QACzCxiE,KAAKwf,SACLE,GAAU,IAEVw6B,EAAQj/B,gBAAgBjb,KAAKuiE,YAAYtuC,OACzCimB,EAAQj/B,gBAAgBjb,KAAKuiE,YAAYC,QACzC9iD,GAAU,GAGPA,GAGTi9C,EAASp7D,UAAUsgE,aAAe,SAAUr9D,GAC1C,MAAOxE,MAAKyE,MAAMo9D,aAAar9D,IAGjCm4D,EAASp7D,UAAU+iE,cAAgB,SAAU30D,GAC3C,MAAO3P,MAAKyE,MAAM6/D,cAAc30D,IAalCgtD,EAASp7D,UAAU2iE,aAAe,SAAUvoD,EAAGic,EAAMlH,EAAaxoB,EAAWq8D,GAE3E,GAAItoD,GAAQi+B,EAAQ3+B,cAAc,MAAOvb,KAAKuiE,YAAYC,OAAQxiE,KAAK+tB,IAAImlB,MAC3Ej3B,GAAM/T,UAAYA,EAClB+T,EAAM4U,UAAY+G,EACE,SAAhBlH,GACFzU,EAAMxO,MAAM/F,KAAO,IAAM1H,KAAKqP,QAAQ8yD,aAAe,KACrDlmD,EAAMxO,MAAM+2D,UAAY,UAExBvoD,EAAMxO,MAAM7F,MAAQ,IAAM5H,KAAKqP,QAAQ8yD,aAAe,KACtDlmD,EAAMxO,MAAM+2D,UAAY,QAG1BvoD,EAAMxO,MAAM3F,IAAM6T,EAAI,GAAM4oD,EAAkBvkE,KAAKqP,QAAQ+yD,aAAe,KAE1ExqC,GAAQ,EAER,IAAI6sC,GAAe//D,KAAKJ,IAAItE,KAAKoC,MAAMs1B,eAAgB13B,KAAKoC,MAAM6zB,eAC9Dj2B,MAAK+jE,aAAensC,EAAKv1B,OAASoiE,IACpCzkE,KAAK+jE,aAAensC,EAAKv1B,OAASoiE,IAYtC9H,EAASp7D,UAAU4iE,YAAc,SAAUxoD,EAAG+U,EAAaxoB,EAAW0hB,EAAQ1X,GAC5E,IAAoB,IAAhBlS,KAAKqhE,OAAiB,CACxB,GAAI3qC,GAAOwjB,EAAQ3+B,cAAc,MAAOvb,KAAKuiE,YAAYtuC,MAAOj0B,KAAK+tB,IAAIi1C,cACzEtsC,GAAKxuB,UAAYA,EACjBwuB,EAAK7F,UAAY,GAEG,SAAhBH,EACFgG,EAAKjpB,MAAM/F,KAAO1H,KAAKkS,MAAQ0X,EAAS,KAExC8M,EAAKjpB,MAAM7F,MAAQ5H,KAAKkS,MAAQ0X,EAAS,KAG3C8M,EAAKjpB,MAAMyE,MAAQA,EAAQ,KAC3BwkB,EAAKjpB,MAAM3F,IAAM6T,EAAI,OASzBghD,EAASp7D,UAAUmiE,aAAe,SAAUhzC,GAI1C,GAHAwpB,EAAQt/B,gBAAgB5a,KAAKuiE,YAAYtyC,WAGD/sB,KAApClD,KAAKqP,QAAQqhB,GAAaT,WAAgE/sB,KAAzClD,KAAKqP,QAAQqhB,GAAaT,MAAM2H,KAAoB,CACvG,GAAI3H,GAAQiqB,EAAQ3+B,cAAc,MAAOvb,KAAKuiE,YAAYtyC,MAAOjwB,KAAK+tB,IAAImlB,MAC1EjjB,GAAM/nB,UAAY,4BAA8BwoB,EAChDT,EAAMY,UAAY7wB,KAAKqP,QAAQqhB,GAAaT,MAAM2H,SAGJ10B,KAA1ClD,KAAKqP,QAAQqhB,GAAaT,MAAMxiB,OAClCoI,EAAKjI,WAAWqiB,EAAOjwB,KAAKqP,QAAQqhB,GAAaT,MAAMxiB,OAGrC,SAAhBijB,EACFT,EAAMxiB,MAAM/F,KAAO1H,KAAKoC,MAAMiiE,gBAAkB,KAEhDp0C,EAAMxiB,MAAM7F,MAAQ5H,KAAKoC,MAAMiiE,gBAAkB,KAGnDp0C,EAAMxiB,MAAMyE,MAAQlS,KAAKmS,OAAS,KAIpC+nC,EAAQj/B,gBAAgBjb,KAAKuiE,YAAYtyC,QAQ3C0sC,EAASp7D,UAAU2zB,mBAAqB,WAEtC,KAAM,mBAAqBl1B,MAAKoC,OAAQ,CACtC,GAAIsiE,GAAY1yD,SAAS6lB,eAAe,KACpCE,EAAmB/lB,SAASC,cAAc,MAC9C8lB,GAAiB7vB,UAAY,mCAC7B6vB,EAAiBvlB,YAAYkyD,GAC7B1kE,KAAK+tB,IAAImlB,MAAM1gC,YAAYulB,GAE3B/3B,KAAKoC,MAAMgzB,gBAAkB2C,EAAiBC,aAC9Ch4B,KAAKoC,MAAM6zB,eAAiB8B,EAAiBllB,YAE7C7S,KAAK+tB,IAAImlB,MAAM/uC,YAAY4zB,GAG7B,KAAM,mBAAqB/3B,MAAKoC,OAAQ,CACtC,GAAIuiE,GAAY3yD,SAAS6lB,eAAe,KACpCI,EAAmBjmB,SAASC,cAAc,MAC9CgmB,GAAiB/vB,UAAY,mCAC7B+vB,EAAiBzlB,YAAYmyD,GAC7B3kE,KAAK+tB,IAAImlB,MAAM1gC,YAAYylB,GAE3Bj4B,KAAKoC,MAAMkzB,gBAAkB2C,EAAiBD,aAC9Ch4B,KAAKoC,MAAMs1B,eAAiBO,EAAiBplB,YAE7C7S,KAAK+tB,IAAImlB,MAAM/uC,YAAY8zB,GAG7B,KAAM,mBAAqBj4B,MAAKoC,OAAQ,CACtC,GAAIwiE,GAAY5yD,SAAS6lB,eAAe,KACpCgtC,EAAmB7yD,SAASC,cAAc,MAC9C4yD,GAAiB38D,UAAY,mCAC7B28D,EAAiBryD,YAAYoyD,GAC7B5kE,KAAK+tB,IAAImlB,MAAM1gC,YAAYqyD,GAE3B7kE,KAAKoC,MAAMiiE,gBAAkBQ,EAAiB7sC,aAC9Ch4B,KAAKoC,MAAM0iE,eAAiBD,EAAiBhyD,YAE7C7S,KAAK+tB,IAAImlB,MAAM/uC,YAAY0gE,KAI/BjlE,EAAOD,QAAUg9D,GAIX,SAAU/8D,EAAQD,EAASO,GAiBjC,QAAS+iE,GAAUh6C,EAAOC,EAAK26C,EAAgBD,EAAcj6B,EAAiBrU,GAC5E,GAAIyvC,GAAYx/D,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAC3Ey/D,EAAqBz/D,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAsBxF,IApBAvF,KAAKilE,YAAc,EAAG,EAAG,EAAG,IAC5BjlE,KAAKklE,YAAc,IAAM,GAAK,EAAG,GACjCllE,KAAKmlE,YAAc,KAEnBnlE,KAAK2pC,gBAAkBA,EACvB3pC,KAAKs1B,gBAAkBA,EACvBt1B,KAAKyrC,OAASxiB,EACdjpB,KAAKyrB,KAAOvC,EAEZlpB,KAAKyE,MAAQ,EACbzE,KAAKolE,cAAgB,EACrBplE,KAAKqlE,gBAAkB,EACvBrlE,KAAKslE,iBAELtlE,KAAK+kE,UAAYA,EACjB/kE,KAAK6jE,eAAiBA,EACtB7jE,KAAK4jE,aAAeA,EAEpB5jE,KAAKglE,mBAAqBA,EAEtBnB,GAAkBD,EAAc,CAClC,GAAIptD,GAAKxW,KACLqsC,EAAe,SAAsB7nC,GACvC,GAAI+gE,GAAU/gE,EAAQA,GAASgS,EAAG6uD,gBAAkB7uD,EAAG0uD,WAAW1uD,EAAG4uD,cACrE,OAAI5gE,IAASgS,EAAG6uD,gBAAkB7uD,EAAG0uD,WAAW1uD,EAAG4uD,eAAwB5uD,EAAG6uD,gBAAkB7uD,EAAG0uD,WAAW1uD,EAAG4uD,cAA7C,GAC3DG,EAAU/uD,EAAG6uD,gBAAkB7uD,EAAG0uD,WAAW1uD,EAAG4uD,cAEhDG,EAGP1B,KACF7jE,KAAKyrC,QAAiC,EAAvBzrC,KAAKqlE,gBAAsBrlE,KAAKklE,WAAWllE,KAAKolE,cAC/DplE,KAAKyrC,OAASY,EAAarsC,KAAKyrC,SAG9Bm4B,IACF5jE,KAAKyrB,MAAQzrB,KAAKqlE,gBAAkBrlE,KAAKklE,WAAWllE,KAAKolE,cACzDplE,KAAKyrB,KAAO4gB,EAAarsC,KAAKyrB,OAEhCzrB,KAAKslE,kBAITrC,EAAU1hE,UAAUikE,cAAgB,SAAUlwC,GAC5Ct1B,KAAKs1B,gBAAkBA,GAGzB2tC,EAAU1hE,UAAUkkE,UAAY,SAAU97B,GACxC3pC,KAAK2pC,gBAAkBA,GAGzBs5B,EAAU1hE,UAAU+jE,eAAiB,WACnC,GAAIh8C,GAAQtpB,KAAKyrB,KAAOzrB,KAAKyrC,MAC7BzrC,MAAKyE,MAAQzE,KAAK2pC,gBAAkBrgB,CACpC,IAAIo8C,GAAmB1lE,KAAKs1B,gBAAkBt1B,KAAKyE,MAC/CkhE,EAAmBr8C,EAAQ,EAAI5kB,KAAKwoC,MAAMxoC,KAAKkZ,IAAI0L,GAAS5kB,KAAK4jD,MAAQ,CAE7EtoD,MAAKolE,cAAgB,EACrBplE,KAAKqlE,gBAAkB3gE,KAAK48C,IAAI,GAAIqkB,EAEpC,IAAI18C,GAAQ,CACR08C,GAAmB,IACrB18C,EAAQ08C,EAIV,KAAK,GADDC,IAAgB,EACXtlE,EAAI2oB,EAAOvkB,KAAKge,IAAIpiB,IAAMoE,KAAKge,IAAIijD,GAAmBrlE,IAAK,CAClEN,KAAKqlE,gBAAkB3gE,KAAK48C,IAAI,GAAIhhD,EACpC,KAAK,GAAI4O,GAAI,EAAGA,EAAIlP,KAAKklE,WAAW7iE,OAAQ6M,IAAK,CAE/C,GADelP,KAAKqlE,gBAAkBrlE,KAAKklE,WAAWh2D,IACtCw2D,EAAkB,CAChCE,GAAgB,EAChB5lE,KAAKolE,aAAel2D,CACpB,QAGJ,IAAsB,IAAlB02D,EACF,QAKN3C,EAAU1hE,UAAUskE,SAAW,SAAUrhE,GACvC,MAAOA,IAASxE,KAAKqlE,gBAAkBrlE,KAAKilE,WAAWjlE,KAAKolE,gBAAmB,GAGjFnC,EAAU1hE,UAAUonD,QAAU,WAC5B,MAAO3oD,MAAKqlE,gBAAkBrlE,KAAKklE,WAAWllE,KAAKolE,eAGrDnC,EAAU1hE,UAAUukE,cAAgB,WAClC,GAAIC,GAAY/lE,KAAKqlE,gBAAkBrlE,KAAKilE,WAAWjlE,KAAKolE,aAC5D,OAAOplE,MAAK6hE,aAAa7hE,KAAKyrC,QAAUs6B,EAAY/lE,KAAKyrC,OAASs6B,GAAaA,IAGjF9C,EAAU1hE,UAAUykE,YAAc,SAAUx6C,GAC1C,GAAIxhB,GAAcwhB,EAAQk9B,YAAY,EAKtC,OAJuC,kBAA5B1oD,MAAKglE,qBACdh7D,EAAchK,KAAKglE,mBAAmBx5C,IAGb,gBAAhBxhB,GACF,GAAKA,EACoB,gBAAhBA,GACTA,EAEAwhB,EAAQk9B,YAAY,IAI/Bua,EAAU1hE,UAAUyiE,SAAW,WAI7B,IAAK,GAHD/vC,MACAiC,EAAOl2B,KAAK2oD,UACZsd,GAAgB/vC,EAAOl2B,KAAKyrC,OAASvV,GAAQA,EACxC71B,EAAIL,KAAKyrC,OAASw6B,EAAcjmE,KAAKyrB,KAAOprB,EAAI,KAASA,GAAK61B,EACjE71B,GAAKL,KAAKyrC,QAEZxX,EAAM7tB,MAAO69D,MAAOjkE,KAAK6lE,SAASxlE,GAAIsb,EAAG3b,KAAK6hE,aAAaxhE,GAAIk+B,IAAKv+B,KAAKgmE,YAAY3lE,IAGzF,OAAO4zB,IAGTgvC,EAAU1hE,UAAUuiE,YAAc,SAAUr+D,GAC1C,GAAIygE,GAAalmE,KAAKolE,aAClBe,EAAWnmE,KAAKyrC,OAChB26B,EAASpmE,KAAKyrB,KAEdjV,EAAKxW,KACLqmE,EAAoB,WACtB7vD,EAAG6uD,iBAAmB,GAEpBiB,EAAoB,WACtB9vD,EAAG6uD,iBAAmB,EAGpB5/D,GAAM2/D,cAAgB,GAAKplE,KAAKolE,cAAgB,GAAK3/D,EAAM2/D,aAAe,GAAKplE,KAAKolE,aAAe,IAE5F3/D,EAAM2/D,aAAeplE,KAAKolE,cAEnCplE,KAAKolE,aAAe,EACF,GAAdc,EACFG,KAEAA,IACAA,OAIFrmE,KAAKolE,aAAe,EACF,GAAdc,EACFI,KAEAA,IACAA,MAWJ,KANA,GAAIC,GAAY9gE,EAAMo8D,aAAa,GAC/B2E,EAAY/gE,EAAMkjD,UAAYljD,EAAMhB,MAEpC+O,GAAO,EACP2F,EAAQ,GAEJ3F,GAAQ2F,IAAU,GAAG,CAG3BnZ,KAAKyE,MAAQ+hE,GAAaxmE,KAAKklE,WAAWllE,KAAKolE,cAAgBplE,KAAKqlE,gBACpE,IAAIoB,GAAWzmE,KAAK2pC,gBAAkB3pC,KAAKyE,KAG3CzE,MAAKyrC,OAAS06B,EACdnmE,KAAKyrB,KAAOzrB,KAAKyrC,OAASg7B,CAE1B,IAAIC,GAAiB1mE,KAAKyrB,KAAOzrB,KAAKyE,MAClCshE,EAAY/lE,KAAKqlE,gBAAkBrlE,KAAKilE,WAAWjlE,KAAKolE,cACxDuB,EAAc3mE,KAAK8lE,gBAAkBrgE,EAAMqgE,eAE/C,IAAI9lE,KAAK+kE,UAAW,CAClB,GAAI6B,GAAaL,EAAYG,CAC7B1mE,MAAKyrB,MAAQm7C,EAAa5mE,KAAKyE,MAC/BzE,KAAKyrC,OAASzrC,KAAKyrB,KAAOg7C,MAErBzmE,MAAK6jE,gBAIR7jE,KAAKyrC,QAAUk7B,EAAc3mE,KAAKyE,MAClCzE,KAAKyrB,KAAOzrB,KAAKyrC,OAASg7B,IAJ1BzmE,KAAKyrC,QAAUs6B,EAAYY,EAAc3mE,KAAKyE,MAC9CzE,KAAKyrB,KAAOzrB,KAAKyrC,OAASg7B,EAM9B,KAAKzmE,KAAK4jE,cAAgB5jE,KAAKyrB,KAAO26C,EAAS,KAE7CE,IACA9yD,GAAO,MAHT,CAMA,IAAKxT,KAAK6jE,gBAAkB7jE,KAAKyrC,OAAS06B,EAAW,KAAS,CAC5D,KAAInmE,KAAK+kE,WAAaoB,GAAY,GAE3B,CAELG,IACA9yD,GAAO,CACP,UALA0D,QAAQC,KAAK,uDAQbnX,KAAK6jE,gBAAkB7jE,KAAK4jE,cAAgB6C,EAAWL,EAASD,GAClEE,IACA7yD,GAAO,GAGTA,GAAO,KAIXyvD,EAAU1hE,UAAUsgE,aAAe,SAAUr9D,GAC3C,MAAOxE,MAAK2pC,iBAAmBnlC,EAAQxE,KAAKyrC,QAAUzrC,KAAKyE,OAG7Dw+D,EAAU1hE,UAAU+iE,cAAgB,SAAUuC,GAC5C,OAAQ7mE,KAAK2pC,gBAAkBk9B,GAAU7mE,KAAKyE,MAAQzE,KAAKyrC,QAG7D7rC,EAAOD,QAAUsjE,GAIX,SAAUrjE,EAAQD,EAASO,GA0BjC,QAAS08D,GAAWpuC,EAAOof,EAASv+B,EAASqtD,GAC3C18D,KAAKsW,GAAKs3B,CACV,IAAIl/B,IAAU,WAAY,QAAS,OAAQ,mBAAoB,WAAY,aAAc,SAAU,gBAAiB,SAAU,sBAAuB,oBACrJ1O,MAAKqP,QAAUwG,EAAKpH,sBAAsBC,EAAQW,GAClDrP,KAAK8mE,sBAAwC5jE,KAApBsrB,EAAMtmB,UAC/BlI,KAAK08D,yBAA2BA,EAChC18D,KAAK+mE,aAAe,EACpB/mE,KAAK2W,OAAO6X,GACkB,GAA1BxuB,KAAK8mE,oBACP9mE,KAAK08D,yBAAyB,IAAM,GAEtC18D,KAAKkxB,aACLlxB,KAAK+8B,YAA4B75B,KAAlBsrB,EAAMuO,SAA+BvO,EAAMuO,QAjC5D,GAAIt5B,GAAWvD,EAAoB,GAE/BwD,EAEJ,SAAgCzB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFnDwB,GAIlCoS,EAAO3V,EAAoB,GAC3B48D,EAAO58D,EAAoB,KAC3B68D,EAAQ78D,EAAoB,KAC5B25C,EAAS35C,EAAoB,GA+BjC08D,GAAWr7D,UAAU4mC,SAAW,SAAUzxB,GAC3B,MAATA,GACF1W,KAAKkxB,UAAYxa,EACQ,GAArB1W,KAAKqP,QAAQ+I,MACfvC,EAAK9G,WAAW/O,KAAKkxB,UAAW,SAAUruB,EAAGC,GAC3C,MAAOD,GAAE8M,EAAI7M,EAAE6M,EAAI,GAAK,KAI5B3P,KAAKkxB,cAIT0rC,EAAWr7D,UAAU+zD,SAAW,WAC9B,MAAOt1D,MAAKkxB,WAOd0rC,EAAWr7D,UAAUugE,gBAAkB,SAAU7gB,GAC/CjhD,KAAK+mE,aAAe9lB,GAOtB2b,EAAWr7D,UAAUmU,WAAa,SAAUrG,GAC1C,OAAgBnM,KAAZmM,EAAuB,CACzB,GAAIX,IAAU,WAAY,QAAS,OAAQ,mBAAoB,WAAY,SAAU,sBAAuB,oBAC5GmH,GAAK/P,oBAAoB4I,EAAQ1O,KAAKqP,QAASA,GAGd,kBAAtBA,GAAQk4B,aACjBl4B,EAAQk4B,YACNC,SAAUn4B,EAAQk4B,aAItB1xB,EAAK1G,aAAanP,KAAKqP,QAASA,EAAS,iBACzCwG,EAAK1G,aAAanP,KAAKqP,QAASA,EAAS,cACzCwG,EAAK1G,aAAanP,KAAKqP,QAASA,EAAS,UAErCA,EAAQmsC,eAC6C,WAAnD,EAAI93C,EAAkB,SAAG2L,EAAQmsC,gBAC/BnsC,EAAQmsC,cAAcygB,kBACqB,WAAzC5sD,EAAQmsC,cAAcygB,gBACxBj8D,KAAKqP,QAAQmsC,cAAc0gB,MAAQ,EACe,WAAzC7sD,EAAQmsC,cAAcygB,gBAC/Bj8D,KAAKqP,QAAQmsC,cAAc0gB,MAAQ,GAEnCl8D,KAAKqP,QAAQmsC,cAAcygB,gBAAkB,cAC7Cj8D,KAAKqP,QAAQmsC,cAAc0gB,MAAQ,OAY/CU,EAAWr7D,UAAUoV,OAAS,SAAU6X,GACtCxuB,KAAKwuB,MAAQA,EACbxuB,KAAKoc,QAAUoS,EAAMpS,SAAW,QAChCpc,KAAKkI,UAAYsmB,EAAMtmB,WAAalI,KAAKkI,WAAa,kBAAoBlI,KAAK08D,yBAAyB,GAAK,GAC7G18D,KAAK+8B,YAA4B75B,KAAlBsrB,EAAMuO,SAA+BvO,EAAMuO,QAC1D/8B,KAAKyN,MAAQ+gB,EAAM/gB,MACnBzN,KAAK0V,WAAW8Y,EAAMnf,UAaxButD,EAAWr7D,UAAU+hE,UAAY,SAAU7oB,EAAWC,EAAYT,EAAWtqC,EAAGgM,GAC9E,OAAiBzY,IAAb+2C,GAAuC,MAAbA,EAAmB,CAE/CA,GAAcM,IADJvoC,SAASsJ,gBAAgB,6BAA8B,OACzCg/B,eAAiBjrC,QAASrP,KAAKqP,QAAS8gD,QAASnwD,OAQ3E,WANSkD,IAALyM,GAAuB,MAALA,IACpBA,EAAI,OAEGzM,IAALyY,GAAuB,MAALA,IACpBA,EAAI,GAAM++B,GAEJ16C,KAAKqP,QAAQ5B,OACnB,IAAK,OACHsvD,EAAMviB,SAASx6C,KAAM2P,EAAGgM,EAAG8+B,EAAWC,EAAYT,EAClD,MACF,KAAK,SACL,IAAK,QACHJ,EAAOW,SAASx6C,KAAM2P,EAAGgM,EAAG8+B,EAAWC,EAAYT,EACnD,MACF,KAAK,MACH6iB,EAAKtiB,SAASx6C,KAAM2P,EAAGgM,EAAG8+B,EAAWC,EAAYT,GAGrD,OAAS+sB,KAAM/sB,EAAUM,IAAKt+B,MAAOjc,KAAKoc,QAASsU,YAAa1wB,KAAKqP,QAAQqsD,mBAG/EkB,EAAWr7D,UAAUi/D,UAAY,SAAU3O,GAGzC,IAAK,GAFDoV,GAAOpV,EAAU,GAAGl2C,EACpBurD,EAAOrV,EAAU,GAAGl2C,EACfzM,EAAI,EAAGA,EAAI2iD,EAAUxvD,OAAQ6M,IACpC+3D,EAAOA,EAAOpV,EAAU3iD,GAAGyM,EAAIk2C,EAAU3iD,GAAGyM,EAAIsrD,EAChDC,EAAOA,EAAOrV,EAAU3iD,GAAGyM,EAAIk2C,EAAU3iD,GAAGyM,EAAIurD,CAElD,QAAS7iE,IAAK4iE,EAAM3iE,IAAK4iE,EAAMxL,iBAAkB17D,KAAKqP,QAAQqsD,mBAGhE97D,EAAOD,QAAUi9D,GAIX,SAAUh9D,EAAQD,EAASO,GAcjC,QAASinE,GAASv5B,EAASv+B,IAT3B,GAAI6qC,GAAUh6C,EAAoB,IAC9B25C,EAAS35C,EAAoB,GAWjCinE,GAAS3sB,SAAW,SAAUhsB,EAAO7e,EAAGgM,EAAG8+B,EAAWC,EAAYT,GAChE,GAAIU,GAA0B,GAAbD,EACbE,EAAUV,EAAQ/+B,cAAc,OAAQ8+B,EAAUK,YAAaL,EAAUM,IAC7EK,GAAQ7+B,eAAe,KAAM,IAAKpM,GAClCirC,EAAQ7+B,eAAe,KAAM,IAAKJ,EAAIg/B,GACtCC,EAAQ7+B,eAAe,KAAM,QAAS0+B,GACtCG,EAAQ7+B,eAAe,KAAM,SAAU,EAAI4+B,GAC3CC,EAAQ7+B,eAAe,KAAM,QAAS,cAEtC,IAAIqrD,GAAW1iE,KAAKwoC,MAAM,GAAMuN,GAC5B4sB,EAAgB74C,EAAMnf,QAAQ0sD,SAAS7pD,MACvCzN,EAAQ4iE,EAAgBD,EACxBE,EAAa5iE,KAAKwoC,MAAM,GAAMwN,GAC9B6sB,EAAa7iE,KAAKwoC,MAAM,IAAOwN,GAE/B9wB,EAASllB,KAAKwoC,OAAOuN,EAAY,EAAI2sB,GAAY,EAKrD,IAHAltB,EAAQ59B,QAAQ3M,EAAI,GAAMy3D,EAAWx9C,EAAQjO,EAAIg/B,EAAa2sB,EAAa,EAAGF,EAAUE,EAAY94C,EAAMtmB,UAAY,WAAY+xC,EAAUK,YAAaL,EAAUM,IAAK/rB,EAAM/gB,OAC9KysC,EAAQ59B,QAAQ3M,EAAI,IAAMy3D,EAAWx9C,EAAS,EAAGjO,EAAIg/B,EAAa4sB,EAAa,EAAGH,EAAUG,EAAY/4C,EAAMtmB,UAAY,WAAY+xC,EAAUK,YAAaL,EAAUM,IAAK/rB,EAAM/gB,OAE1I,GAApC+gB,EAAMnf,QAAQk4B,WAAWz3B,QAAiB,CAC5C,GAAI8L,IACFnO,MAAO+gB,EAAMnf,QAAQk4B,WAAW95B,MAChCD,OAAQghB,EAAMnf,QAAQk4B,WAAW/5B,OACjCwO,KAAMwS,EAAMnf,QAAQk4B,WAAWvrB,KAAOvX,EACtCyD,UAAWsmB,EAAMtmB,UAEnBgyC,GAAQx+B,UAAU/L,EAAI,GAAMy3D,EAAWx9C,EAAQjO,EAAIg/B,EAAa2sB,EAAa,EAAG1rD,EAAeq+B,EAAUK,YAAaL,EAAUM,KAChIL,EAAQx+B,UAAU/L,EAAI,IAAMy3D,EAAWx9C,EAAS,EAAGjO,EAAIg/B,EAAa4sB,EAAa,EAAG3rD,EAAeq+B,EAAUK,YAAaL,EAAUM,OAWxI4sB,EAASthD,KAAO,SAAUssC,EAAUqV,EAAoBvtB,GACtD,GAEIwtB,GACAjlE,EAAKklE,EACLl5C,EACAnuB,EAAG6O,EALHy4D,KACAC,KAKAC,EAAY,CAGhB,KAAKxnE,EAAI,EAAGA,EAAI8xD,EAAS9vD,OAAQhC,IAE/B,GADAmuB,EAAQyrB,EAAUkW,OAAOgC,EAAS9xD,IACN,QAAxBmuB,EAAMnf,QAAQ5B,QACM,IAAlB+gB,EAAMuO,cAA0E75B,KAArD+2C,EAAU5qC,QAAQ8gD,OAAO79C,WAAW6/C,EAAS9xD,MAA0E,IAArD45C,EAAU5qC,QAAQ8gD,OAAO79C,WAAW6/C,EAAS9xD,KAC5I,IAAK6O,EAAI,EAAGA,EAAIs4D,EAAmBrV,EAAS9xD,IAAIgC,OAAQ6M,IACtDy4D,EAAavhE,MACXg0C,SAAUotB,EAAmBrV,EAAS9xD,IAAI6O,GAAGkrC,SAC7CunB,WAAY6F,EAAmBrV,EAAS9xD,IAAI6O,GAAGyyD,WAC/CtnB,SAAUmtB,EAAmBrV,EAAS9xD,IAAI6O,GAAGmrC,SAC7C1qC,EAAG63D,EAAmBrV,EAAS9xD,IAAI6O,GAAGS,EACtCuZ,IAAKs+C,EAAmBrV,EAAS9xD,IAAI6O,GAAGga,IACxCvN,EAAG6rD,EAAmBrV,EAAS9xD,IAAI6O,GAAGyM,EACtCiyB,QAASukB,EAAS9xD,GAClB4b,MAAOurD,EAAmBrV,EAAS9xD,IAAI6O,GAAG+M,QAE5C4rD,GAAa,CAMrB,IAAkB,IAAdA,EAiBJ,IAZAF,EAAavvD,KAAK,SAAUvV,EAAGC,GAC7B,MAAID,GAAEu3C,WAAat3C,EAAEs3C,SACZv3C,EAAE+qC,QAAU9qC,EAAE8qC,SAAW,EAAI,EAE7B/qC,EAAEu3C,SAAWt3C,EAAEs3C,WAK1B+sB,EAASW,sBAAsBF,EAAeD,GAGzCtnE,EAAI,EAAGA,EAAIsnE,EAAatlE,OAAQhC,IAAK,CACxCmuB,EAAQyrB,EAAUkW,OAAOwX,EAAatnE,GAAGutC,QACzC,IAAI80B,OAA8Cx/D,IAAnCsrB,EAAMnf,QAAQ0sD,SAAS2G,SAAwBl0C,EAAMnf,QAAQ0sD,SAAS2G,SAAW,GAAMl0C,EAAMnf,QAAQ0sD,SAAS7pD,KAE7H1P,GAAMmlE,EAAatnE,GAAG+5C,QACtB,IAAI2tB,GAAe,CACnB,QAA2B7kE,KAAvB0kE,EAAcplE,GACZnC,EAAI,EAAIsnE,EAAatlE,SACvBolE,EAAe/iE,KAAKge,IAAIilD,EAAatnE,EAAI,GAAG+5C,SAAW53C,IAEzDklE,EAAWP,EAASa,iBAAiBP,EAAcj5C,EAAOk0C,OACrD,CACL,GAAIuF,GAAU5nE,GAAKunE,EAAcplE,GAAK0lE,OAASN,EAAcplE,GAAK2lE,SAC9DF,GAAUN,EAAatlE,SACzBolE,EAAe/iE,KAAKge,IAAIilD,EAAaM,GAAS7tB,SAAW53C,IAE3DklE,EAAWP,EAASa,iBAAiBP,EAAcj5C,EAAOk0C,GAC1DkF,EAAcplE,GAAK2lE,UAAY,GAEH,IAAxB35C,EAAMnf,QAAQgf,QAAwD,IAAtCG,EAAMnf,QAAQ4vD,oBAC5C0I,EAAatnE,GAAGg6C,SAAW7rB,EAAMu4C,cACnCgB,EAAeH,EAAcplE,GAAK4lE,oBAClCR,EAAcplE,GAAK4lE,qBAAuB55C,EAAMu4C,aAAeY,EAAatnE,GAAGg6C,WAE/E0tB,EAAeH,EAAcplE,GAAK6lE,oBAClCT,EAAcplE,GAAK6lE,qBAAuB75C,EAAMu4C,aAAeY,EAAatnE,GAAGg6C,WAElC,IAAtC7rB,EAAMnf,QAAQ0sD,SAASC,aAChC0L,EAASx1D,MAAQw1D,EAASx1D,MAAQ01D,EAAcplE,GAAK0lE,OACrDR,EAAS99C,QAAUg+C,EAAcplE,GAAK2lE,SAAWT,EAASx1D,MAAQ,GAAMw1D,EAASx1D,OAAS01D,EAAcplE,GAAK0lE,OAAS,IAI1H,GAAII,GAAYZ,EAASx1D,MACrB+W,EAAQ0+C,EAAatnE,GAAG+5C,QAa5B,QAVkCl3C,IAA9BykE,EAAatnE,GAAGshE,YAClB2G,EAAYX,EAAatnE,GAAGshE,WAAagG,EAAatnE,GAAG+5C,SACzDnxB,GAAqB,GAAZq/C,GAETr/C,GAASy+C,EAAS99C,OAGpBswB,EAAQ59B,QAAQ2M,EAAO0+C,EAAatnE,GAAGg6C,SAAW0tB,EAAcO,EAAW95C,EAAMu4C,aAAeY,EAAatnE,GAAGg6C,SAAU7rB,EAAMtmB,UAAY,WAAY+xC,EAAUK,YAAaL,EAAUM,IAAK/rB,EAAM/gB,QAG3J,IAArC+gB,EAAMnf,QAAQk4B,WAAWz3B,QAAkB,CAC7C,GAAIy4D,IACFnuB,SAAUutB,EAAatnE,GAAG+5C,SAC1BC,SAAUstB,EAAatnE,GAAGg6C,SAAW0tB,EACrCp4D,EAAGg4D,EAAatnE,GAAGsP,EACnBgM,EAAGgsD,EAAatnE,GAAGsb,EACnBiyB,QAAS+5B,EAAatnE,GAAGutC,QACzB3xB,MAAO0rD,EAAatnE,GAAG4b,MAEzB49B,GAAOh0B,MAAM0iD,GAAY/5C,EAAOyrB,EAAWytB,EAAS99C,WAY1Du9C,EAASW,sBAAwB,SAAUF,EAAeD,GAGxD,IAAK,GADDF,GACKpnE,EAAI,EAAGA,EAAIsnE,EAAatlE,OAAQhC,IACnCA,EAAI,EAAIsnE,EAAatlE,SACvBolE,EAAe/iE,KAAKge,IAAIilD,EAAatnE,EAAI,GAAG+5C,SAAWutB,EAAatnE,GAAG+5C,WAErE/5C,EAAI,IACNonE,EAAe/iE,KAAKL,IAAIojE,EAAc/iE,KAAKge,IAAIilD,EAAatnE,EAAI,GAAG+5C,SAAWutB,EAAatnE,GAAG+5C,YAE3E,IAAjBqtB,QAC8CvkE,KAA5C0kE,EAAcD,EAAatnE,GAAG+5C,YAChCwtB,EAAcD,EAAatnE,GAAG+5C,WAC5B8tB,OAAQ,EACRC,SAAU,EACVE,oBAAqB,EACrBD,oBAAqB,IAGzBR,EAAcD,EAAatnE,GAAG+5C,UAAU8tB,QAAU,IAcxDf,EAASa,iBAAmB,SAAUP,EAAcj5C,EAAOk0C,GACzD,GAAIxwD,GAAO0X,CAqBX,OApBI69C,GAAej5C,EAAMnf,QAAQ0sD,SAAS7pD,OAASu1D,EAAe,GAChEv1D,EAAQu1D,EAAe/E,EAAWA,EAAW+E,EAE7C79C,EAAS,EAC4B,SAAjC4E,EAAMnf,QAAQ0sD,SAAS7nB,MACzBtqB,GAAU,GAAM69C,EAC0B,UAAjCj5C,EAAMnf,QAAQ0sD,SAAS7nB,QAChCtqB,GAAU,GAAM69C,KAIlBv1D,EAAQsc,EAAMnf,QAAQ0sD,SAAS7pD,MAC/B0X,EAAS,EAC4B,SAAjC4E,EAAMnf,QAAQ0sD,SAAS7nB,MACzBtqB,GAAU,GAAM4E,EAAMnf,QAAQ0sD,SAAS7pD,MACG,UAAjCsc,EAAMnf,QAAQ0sD,SAAS7nB,QAChCtqB,GAAU,GAAM4E,EAAMnf,QAAQ0sD,SAAS7pD,SAIlCA,MAAOA,EAAO0X,OAAQA,IAGjCu9C,EAAS1G,iBAAmB,SAAUkH,EAAcpJ,EAAapM,EAAUqW,EAAY93C,GACrF,GAAIi3C,EAAatlE,OAAS,EAAG,CAE3BslE,EAAavvD,KAAK,SAAUvV,EAAGC,GAC7B,MAAID,GAAEu3C,WAAat3C,EAAEs3C,SACZv3C,EAAE+qC,QAAU9qC,EAAE8qC,SAAW,EAAI,EAE7B/qC,EAAEu3C,SAAWt3C,EAAEs3C,UAG1B,IAAIwtB,KAEJT,GAASW,sBAAsBF,EAAeD,GAC9CpJ,EAAYiK,GAAcrB,EAASsB,kBAAkBb,EAAeD,GACpEpJ,EAAYiK,GAAY9M,iBAAmBhrC,EAC3CyhC,EAAS/rD,KAAKoiE,KAIlBrB,EAASsB,kBAAoB,SAAUb,EAAeD,GAIpD,IAAK,GAHDnlE,GACAykE,EAAOU,EAAa,GAAGttB,SACvB6sB,EAAOS,EAAa,GAAGttB,SAClBh6C,EAAI,EAAGA,EAAIsnE,EAAatlE,OAAQhC,IACvCmC,EAAMmlE,EAAatnE,GAAG+5C,aACKl3C,KAAvB0kE,EAAcplE,IAChBykE,EAAOA,EAAOU,EAAatnE,GAAGg6C,SAAWstB,EAAatnE,GAAGg6C,SAAW4sB,EACpEC,EAAOA,EAAOS,EAAatnE,GAAGg6C,SAAWstB,EAAatnE,GAAGg6C,SAAW6sB,GAEhES,EAAatnE,GAAGg6C,SAAW,EAC7ButB,EAAcplE,GAAK4lE,qBAAuBT,EAAatnE,GAAGg6C,SAE1DutB,EAAcplE,GAAK6lE,qBAAuBV,EAAatnE,GAAGg6C,QAIhE,KAAK,GAAIquB,KAAQd,GACXA,EAAcpmE,eAAeknE,KAC/BzB,EAAOA,EAAOW,EAAcc,GAAMN,oBAAsBR,EAAcc,GAAMN,oBAAsBnB,EAClGA,EAAOA,EAAOW,EAAcc,GAAML,oBAAsBT,EAAcc,GAAML,oBAAsBpB,EAClGC,EAAOA,EAAOU,EAAcc,GAAMN,oBAAsBR,EAAcc,GAAMN,oBAAsBlB,EAClGA,EAAOA,EAAOU,EAAcc,GAAML,oBAAsBT,EAAcc,GAAML,oBAAsBnB,EAItG,QAAS7iE,IAAK4iE,EAAM3iE,IAAK4iE,IAG3BtnE,EAAOD,QAAUwnE,GAIX,SAAUvnE,EAAQD,EAASO,GAajC,QAASyoE,GAAK/6B,EAASv+B,IARvB,GAAI6qC,GAAUh6C,EAAoB,GAWlCyoE,GAAKtJ,SAAW,SAAUllB,EAAS3rB,GAC/B,GAAe,MAAX2rB,GACIA,EAAQ93C,OAAS,EAAG,CASpB,MAL2C,IAAvCmsB,EAAMnf,QAAQmsC,cAAc1rC,QACxB64D,EAAKC,YAAYzuB,EAAS3rB,GAE1Bm6C,EAAKE,QAAQ1uB,KAOjCwuB,EAAKnuB,SAAW,SAAUhsB,EAAO7e,EAAGgM,EAAG8+B,EAAWC,EAAYT,GAC1D,GACI98B,GAAM2rD,EADNnuB,EAA0B,GAAbD,EAGbE,EAAUV,EAAQ/+B,cAAc,OAAQ8+B,EAAUK,YAAaL,EAAUM,IA2B7E,IA1BAK,EAAQ7+B,eAAe,KAAM,IAAKpM,GAClCirC,EAAQ7+B,eAAe,KAAM,IAAKJ,EAAIg/B,GACtCC,EAAQ7+B,eAAe,KAAM,QAAS0+B,GACtCG,EAAQ7+B,eAAe,KAAM,SAAU,EAAI4+B,GAC3CC,EAAQ7+B,eAAe,KAAM,QAAS,eAEtCoB,EAAO+8B,EAAQ/+B,cAAc,OAAQ8+B,EAAUK,YAAaL,EAAUM,KACtEp9B,EAAKpB,eAAe,KAAM,QAASyS,EAAMtmB,eACrBhF,KAAhBsrB,EAAM/gB,OACN0P,EAAKpB,eAAe,KAAM,QAASyS,EAAM/gB,OAG7C0P,EAAKpB,eAAe,KAAM,IAAK,IAAMpM,EAAI,IAAMgM,EAAI,MAAQhM,EAAI8qC,GAAa,IAAM9+B,GAC9C,GAAhC6S,EAAMnf,QAAQysD,OAAOhsD,UACrBg5D,EAAW5uB,EAAQ/+B,cAAc,OAAQ8+B,EAAUK,YAAaL,EAAUM,KAClC,OAApC/rB,EAAMnf,QAAQysD,OAAOprC,YACrBo4C,EAAS/sD,eAAe,KAAM,IAAK,IAAMpM,EAAI,MAAQgM,EAAIg/B,GAAc,IAAMhrC,EAAI,IAAMgM,EAAI,MAAQhM,EAAI8qC,GAAa,IAAM9+B,EAAI,MAAQhM,EAAI8qC,GAAa,KAAO9+B,EAAIg/B,IAElKmuB,EAAS/sD,eAAe,KAAM,IAAK,IAAMpM,EAAI,IAAMgM,EAAI,KAAYhM,EAAI,KAAOgM,EAAIg/B,GAAc,MAAahrC,EAAI8qC,GAAa,KAAO9+B,EAAIg/B,GAAc,KAAOhrC,EAAI8qC,GAAa,IAAM9+B,GAEzLmtD,EAAS/sD,eAAe,KAAM,QAASyS,EAAMtmB,UAAY,sBACtBhF,KAA/BsrB,EAAMnf,QAAQysD,OAAOruD,OAAsD,KAA/B+gB,EAAMnf,QAAQysD,OAAOruD,OACjEq7D,EAAS/sD,eAAe,KAAM,QAASyS,EAAMnf,QAAQysD,OAAOruD,QAI5B,GAApC+gB,EAAMnf,QAAQk4B,WAAWz3B,QAAiB,CAC1C,GAAI8L,IACAnO,MAAO+gB,EAAMnf,QAAQk4B,WAAW95B,MAChCD,OAAQghB,EAAMnf,QAAQk4B,WAAW/5B,OACjCwO,KAAMwS,EAAMnf,QAAQk4B,WAAWvrB,KAC/B9T,UAAWsmB,EAAMtmB,UAErBgyC,GAAQx+B,UAAU/L,EAAI,GAAM8qC,EAAW9+B,EAAGC,EAAeq+B,EAAUK,YAAaL,EAAUM,OAIlGouB,EAAKpJ,YAAc,SAAUwJ,EAAWv6C,EAAOw6C,EAAc/uB,GAEzD,GAAoC,GAAhCzrB,EAAMnf,QAAQysD,OAAOhsD,QAAiB,CACtC,GAAI8xD,GAAY99D,OAAOm2C,EAAUM,IAAI9sC,MAAM0E,OAAOjH,QAAQ,KAAM,KAC5D49D,EAAW5uB,EAAQ/+B,cAAc,OAAQ8+B,EAAUK,YAAaL,EAAUM,KAC1E9zC,EAAO,GACgC,IAAvC+nB,EAAMnf,QAAQmsC,cAAc1rC,UAC5BrJ,EAAO,IAEX,IAAIwiE,GACAC,EAAO,CAEPA,GADoC,OAApC16C,EAAMnf,QAAQysD,OAAOprC,YACd,EACoC,UAApClC,EAAMnf,QAAQysD,OAAOprC,YACrBkxC,EAEAl9D,KAAKL,IAAIK,KAAKJ,IAAI,EAAGkqB,EAAMu4C,cAAenF,GAGjDqH,EADoC,SAApCz6C,EAAMnf,QAAQysD,OAAOprC,aAA0C,MAAhBs4C,OAAwC9lE,IAAhB8lE,EAC/D,IAAMD,EAAU,GAAG,GAAK,IAAMA,EAAU,GAAG,GAAK,IAAM/oE,KAAKmpE,cAAcJ,EAAWtiE,GAAM,GAAS,KAAOuiE,EAAaA,EAAa3mE,OAAS,GAAG,GAAK,IAAM2mE,EAAaA,EAAa3mE,OAAS,GAAG,GAAK,IAAMrC,KAAKmpE,cAAcH,EAAcviE,GAAM,GAAQuiE,EAAa,GAAG,GAAK,IAAMA,EAAa,GAAG,GAAK,KAE3S,IAAMD,EAAU,GAAG,GAAK,IAAMA,EAAU,GAAG,GAAK,IAAM/oE,KAAKmpE,cAAcJ,EAAWtiE,GAAM,GAAS,KAAOyiE,EAAO,KAAOH,EAAU,GAAG,GAAK,KAGtJD,EAAS/sD,eAAe,KAAM,QAASyS,EAAMtmB,UAAY,iBACtBhF,KAA/BsrB,EAAMnf,QAAQysD,OAAOruD,OACrBq7D,EAAS/sD,eAAe,KAAM,QAASyS,EAAMnf,QAAQysD,OAAOruD,OAEhEq7D,EAAS/sD,eAAe,KAAM,IAAKktD,KAW3CN,EAAK9iD,KAAO,SAAUkjD,EAAWv6C,EAAOyrB,GACpC,GAAiB,MAAb8uB,OAAkC7lE,IAAb6lE,EAAwB,CAC7C,GAAI5rD,GAAO+8B,EAAQ/+B,cAAc,OAAQ8+B,EAAUK,YAAaL,EAAUM,IAC1Ep9B,GAAKpB,eAAe,KAAM,QAASyS,EAAMtmB,eACrBhF,KAAhBsrB,EAAM/gB,OACN0P,EAAKpB,eAAe,KAAM,QAASyS,EAAM/gB,MAG7C,IAAIhH,GAAO,GACgC,IAAvC+nB,EAAMnf,QAAQmsC,cAAc1rC,UAC5BrJ,EAAO,KAGX0W,EAAKpB,eAAe,KAAM,IAAK,IAAMgtD,EAAU,GAAG,GAAK,IAAMA,EAAU,GAAG,GAAK,IAAM/oE,KAAKmpE,cAAcJ,EAAWtiE,GAAM,MAIjIkiE,EAAKQ,cAAgB,SAAUJ,EAAWtiE,EAAM2iE,GAC5C,GAAIL,EAAU1mE,OAAS,EAEnB,MAAO,EAEX,IACIhC,GADAK,EAAI+F,CAER,IAAI2iE,EACA,IAAK/oE,EAAI0oE,EAAU1mE,OAAS,EAAGhC,EAAI,EAAGA,IAClCK,GAAKqoE,EAAU1oE,GAAG,GAAK,IAAM0oE,EAAU1oE,GAAG,GAAK,QAGnD,KAAKA,EAAI,EAAGA,EAAI0oE,EAAU1mE,OAAQhC,IAC9BK,GAAKqoE,EAAU1oE,GAAG,GAAK,IAAM0oE,EAAU1oE,GAAG,GAAK,GAGvD,OAAOK,IAUXioE,EAAKU,mBAAqB,SAAUn0D,GAEhC,GAAIo0D,GAAIC,EAAIC,EAAIC,EAAIC,EAAKC,EACrBjpE,IACJA,GAAE0F,MAAM1B,KAAKwoC,MAAMh4B,EAAK,GAAGklC,UAAW11C,KAAKwoC,MAAMh4B,EAAK,GAAGmlC,WAGzD,KAAK,GADDh4C,GAAS6S,EAAK7S,OACThC,EAAI,EAAGA,EAAIgC,EAAS,EAAGhC,IAE5BipE,EAAU,GAALjpE,EAAS6U,EAAK,GAAKA,EAAK7U,EAAI,GACjCkpE,EAAKr0D,EAAK7U,GACVmpE,EAAKt0D,EAAK7U,EAAI,GACdopE,EAAKppE,EAAI,EAAIgC,EAAS6S,EAAK7U,EAAI,GAAKmpE,EASpCE,GACItvB,WAAYkvB,EAAGlvB,SAAW,EAAImvB,EAAGnvB,SAAWovB,EAAGpvB,WAjBnC,EAAI,GAkBhBC,WAAYivB,EAAGjvB,SAAW,EAAIkvB,EAAGlvB,SAAWmvB,EAAGnvB,WAlBnC,EAAI,IAoBpBsvB,GACIvvB,UAAWmvB,EAAGnvB,SAAW,EAAIovB,EAAGpvB,SAAWqvB,EAAGrvB,WArBlC,EAAI,GAsBhBC,UAAWkvB,EAAGlvB,SAAW,EAAImvB,EAAGnvB,SAAWovB,EAAGpvB,WAtBlC,EAAI,IA0BpB35C,EAAE0F,MAAMsjE,EAAItvB,SAAUsvB,EAAIrvB,WAC1B35C,EAAE0F,MAAMujE,EAAIvvB,SAAUuvB,EAAItvB,WAC1B35C,EAAE0F,MAAMojE,EAAGpvB,SAAUovB,EAAGnvB,UAG5B,OAAO35C,IAcXioE,EAAKC,YAAc,SAAU1zD,EAAMsZ;4BAC/B,GAAI0tC,GAAQ1tC,EAAMnf,QAAQmsC,cAAc0gB,KACxC,IAAa,GAATA,OAAwBh5D,KAAVg5D,EACd,MAAOl8D,MAAKqpE,mBAAmBn0D,EAE/B,IAAIo0D,GAAIC,EAAIC,EAAIC,EAAIC,EAAKC,EAAKC,EAAIC,EAAIC,EAAIC,EAAGjpD,EAAGkpD,EAAGC,EAC/CC,EAAQC,EAAQC,EAASC,EAASC,EAASC,EAC3C7pE,IACJA,GAAE0F,MAAM1B,KAAKwoC,MAAMh4B,EAAK,GAAGklC,UAAW11C,KAAKwoC,MAAMh4B,EAAK,GAAGmlC,WAEzD,KAAK,GADDh4C,GAAS6S,EAAK7S,OACThC,EAAI,EAAGA,EAAIgC,EAAS,EAAGhC,IAE5BipE,EAAU,GAALjpE,EAAS6U,EAAK,GAAKA,EAAK7U,EAAI,GACjCkpE,EAAKr0D,EAAK7U,GACVmpE,EAAKt0D,EAAK7U,EAAI,GACdopE,EAAKppE,EAAI,EAAIgC,EAAS6S,EAAK7U,EAAI,GAAKmpE,EAEpCI,EAAKllE,KAAK2iB,KAAK3iB,KAAK48C,IAAIgoB,EAAGlvB,SAAWmvB,EAAGnvB,SAAU,GAAK11C,KAAK48C,IAAIgoB,EAAGjvB,SAAWkvB,EAAGlvB,SAAU,IAC5FwvB,EAAKnlE,KAAK2iB,KAAK3iB,KAAK48C,IAAIioB,EAAGnvB,SAAWovB,EAAGpvB,SAAU,GAAK11C,KAAK48C,IAAIioB,EAAGlvB,SAAWmvB,EAAGnvB,SAAU,IAC5FyvB,EAAKplE,KAAK2iB,KAAK3iB,KAAK48C,IAAIkoB,EAAGpvB,SAAWqvB,EAAGrvB,SAAU,GAAK11C,KAAK48C,IAAIkoB,EAAGnvB,SAAWovB,EAAGpvB,SAAU,IAY5F6vB,EAASxlE,KAAK48C,IAAIwoB,EAAI5N,GACtBkO,EAAU1lE,KAAK48C,IAAIwoB,EAAI,EAAI5N,GAC3BiO,EAASzlE,KAAK48C,IAAIuoB,EAAI3N,GACtBmO,EAAU3lE,KAAK48C,IAAIuoB,EAAI,EAAI3N,GAC3BqO,EAAS7lE,KAAK48C,IAAIsoB,EAAI1N,GACtBoO,EAAU5lE,KAAK48C,IAAIsoB,EAAI,EAAI1N,GAE3B6N,EAAI,EAAIO,EAAU,EAAIC,EAASJ,EAASE,EACxCvpD,EAAI,EAAIspD,EAAU,EAAIF,EAASC,EAASE,EACxCL,EAAI,EAAIO,GAAUA,EAASJ,GACvBH,EAAI,IACJA,EAAI,EAAIA,GAEZC,EAAI,EAAIC,GAAUA,EAASC,GACvBF,EAAI,IACJA,EAAI,EAAIA,GAGZP,GACItvB,WAAYiwB,EAAUf,EAAGlvB,SAAW2vB,EAAIR,EAAGnvB,SAAWkwB,EAAUd,EAAGpvB,UAAY4vB,EAC/E3vB,WAAYgwB,EAAUf,EAAGjvB,SAAW0vB,EAAIR,EAAGlvB,SAAWiwB,EAAUd,EAAGnvB,UAAY2vB,GAGnFL,GACIvvB,UAAWgwB,EAAUb,EAAGnvB,SAAWt5B,EAAI0oD,EAAGpvB,SAAWiwB,EAAUZ,EAAGrvB,UAAY6vB,EAC9E5vB,UAAW+vB,EAAUb,EAAGlvB,SAAWv5B,EAAI0oD,EAAGnvB,SAAWgwB,EAAUZ,EAAGpvB,UAAY4vB,GAG9D,GAAhBP,EAAItvB,UAAiC,GAAhBsvB,EAAIrvB,WACzBqvB,EAAMH,GAEU,GAAhBI,EAAIvvB,UAAiC,GAAhBuvB,EAAItvB,WACzBsvB,EAAMH,GAEV9oE,EAAE0F,MAAMsjE,EAAItvB,SAAUsvB,EAAIrvB,WAC1B35C,EAAE0F,MAAMujE,EAAIvvB,SAAUuvB,EAAItvB,WAC1B35C,EAAE0F,MAAMojE,EAAGpvB,SAAUovB,EAAGnvB,UAG5B,OAAO35C,IAUfioE,EAAKE,QAAU,SAAU3zD,GAGrB,IAAK,GADDxU,MACKL,EAAI,EAAGA,EAAI6U,EAAK7S,OAAQhC,IAC7BK,EAAE0F,MAAM8O,EAAK7U,GAAG+5C,SAAUllC,EAAK7U,GAAGg6C,UAEtC,OAAO35C,IAGXd,EAAOD,QAAUgpE,GAIX,SAAU/oE,EAAQD,EAASO,GAyBjC,QAAS28D,GAAOpqD,EAAMpD,EAASm7D,EAAMzI,GACnC/hE,KAAKyS,KAAOA,EACZzS,KAAKs0B,gBACHxkB,SAAS,EACTkyD,OAAO,EACPyI,SAAU,GACVC,YAAa,EACbhjE,MACEq1B,SAAS,EACT1qB,SAAU,YAEZzK,OACEm1B,SAAS,EACT1qB,SAAU,cAIdrS,KAAKwqE,KAAOA,EACZxqE,KAAKqP,QAAUwG,EAAKrQ,UAAWxF,KAAKs0B,gBACpCt0B,KAAK+hE,iBAAmBA,EAExB/hE,KAAKs6C,eACLt6C,KAAK+tB,OACL/tB,KAAKmwD,UACLnwD,KAAK+iE,eAAiB,EACtB/iE,KAAKqD,UACLrD,KAAKi6C,WAAcM,IAAKv6C,KAAKu6C,IAAKD,YAAat6C,KAAKs6C,YAAajrC,QAASrP,KAAKqP,QAAS8gD,OAAQnwD,KAAKmwD,QAErGnwD,KAAK0V,WAAWrG,GAhDlB,GAAI9L,GAAQrD,EAAoB,GAE5BsD,EAEJ,SAAgCvB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFrDsB,GAIhCsS,EAAO3V,EAAoB,GAC3Bg6C,EAAUh6C,EAAoB,IAC9Bqf,EAAYrf,EAAoB,GA2CpC28D,GAAOt7D,UAAY,GAAIge,GAEvBs9C,EAAOt7D,UAAUqX,MAAQ,WACvB5Y,KAAKmwD,UACLnwD,KAAK+iE,eAAiB,GAGxBlG,EAAOt7D,UAAUi8D,SAAW,SAAUvhD,EAAOinD,GAGG,GAA1CA,EAAa7zD,QAAQs7D,oBAClB3qE,KAAKmwD,OAAO3uD,eAAeya,KAC9Bjc,KAAKmwD,OAAOl0C,GAASinD,GAEvBljE,KAAK+iE,gBAAkB,IAI3BlG,EAAOt7D,UAAUwwB,YAAc,SAAU9V,EAAOinD,GAC9CljE,KAAKmwD,OAAOl0C,GAASinD,GAGvBrG,EAAOt7D,UAAU+7D,YAAc,SAAUrhD,GACnCjc,KAAKmwD,OAAO3uD,eAAeya,WACtBjc,MAAKmwD,OAAOl0C,GACnBjc,KAAK+iE,gBAAkB,IAI3BlG,EAAOt7D,UAAU8B,QAAU,WACzBrD,KAAK+tB,IAAImlB,MAAQlhC,SAASC,cAAc,OACxCjS,KAAK+tB,IAAImlB,MAAMhrC,UAAY,aAC3BlI,KAAK+tB,IAAImlB,MAAMzlC,MAAM4E,SAAW,WAChCrS,KAAK+tB,IAAImlB,MAAMzlC,MAAM3F,IAAM,OAC3B9H,KAAK+tB,IAAImlB,MAAMzlC,MAAMqxB,QAAU,QAE/B9+B,KAAK+tB,IAAI68C,SAAW54D,SAASC,cAAc,OAC3CjS,KAAK+tB,IAAI68C,SAAS1iE,UAAY,kBAC9BlI,KAAK+tB,IAAI68C,SAASn9D,MAAM4E,SAAW,WACnCrS,KAAK+tB,IAAI68C,SAASn9D,MAAM3F,IAAM,MAE9B9H,KAAKu6C,IAAMvoC,SAASsJ,gBAAgB,6BAA8B,OAClEtb,KAAKu6C,IAAI9sC,MAAM4E,SAAW,WAC1BrS,KAAKu6C,IAAI9sC,MAAM3F,IAAM,MACrB9H,KAAKu6C,IAAI9sC,MAAMyE,MAAQlS,KAAKqP,QAAQo7D,SAAW,EAAI,KACnDzqE,KAAKu6C,IAAI9sC,MAAM0E,OAAS,OAExBnS,KAAK+tB,IAAImlB,MAAM1gC,YAAYxS,KAAKu6C,KAChCv6C,KAAK+tB,IAAImlB,MAAM1gC,YAAYxS,KAAK+tB,IAAI68C,WAMtC/N,EAAOt7D,UAAUwe,KAAO,WAElB/f,KAAK+tB,IAAImlB,MAAM9oC,YACjBpK,KAAK+tB,IAAImlB,MAAM9oC,WAAWjG,YAAYnE,KAAK+tB,IAAImlB,QAOnD2pB,EAAOt7D,UAAUwtB,KAAO,WAEjB/uB,KAAK+tB,IAAImlB,MAAM9oC,YAClBpK,KAAKyS,KAAKsb,IAAIiU,OAAOxvB,YAAYxS,KAAK+tB,IAAImlB,QAI9C2pB,EAAOt7D,UAAUmU,WAAa,SAAUrG,GACtC,GAAIX,IAAU,UAAW,cAAe,QAAS,OAAQ,QACzDmH,GAAK/P,oBAAoB4I,EAAQ1O,KAAKqP,QAASA,IAGjDwtD,EAAOt7D,UAAUie,OAAS,WACxB,GAAIgkD,GAAe,EACfH,GAAa,EAAI7/D,EAAgB,SAAGxD,KAAKmwD,OAC7CkT,GAAWjrD,KAAK,SAAUvV,EAAGC,GAC3B,MAAOD,GAAIC,GAAK,EAAI,GAGtB,KAAK,GAAIzC,GAAI,EAAGA,EAAIgjE,EAAWhhE,OAAQhC,IAAK,CAC1C,GAAIutC,GAAUy1B,EAAWhjE,EACW,IAAhCL,KAAKmwD,OAAOviB,GAAS7Q,aAAkE75B,KAA9ClD,KAAK+hE,iBAAiBzvD,WAAWs7B,IAAuE,GAA7C5tC,KAAK+hE,iBAAiBzvD,WAAWs7B,IACvI41B,IAIJ,GAAuC,GAAnCxjE,KAAKqP,QAAQrP,KAAKwqE,MAAMztC,SAA2C,GAAvB/8B,KAAK+iE,gBAA+C,GAAxB/iE,KAAKqP,QAAQS,SAAoC,GAAhB0zD,EAC3GxjE,KAAK+f,WACA,CAoBL,GAnBA/f,KAAK+uB,OACmC,YAApC/uB,KAAKqP,QAAQrP,KAAKwqE,MAAMn4D,UAA8D,eAApCrS,KAAKqP,QAAQrP,KAAKwqE,MAAMn4D,UAC5ErS,KAAK+tB,IAAImlB,MAAMzlC,MAAM/F,KAAO,MAC5B1H,KAAK+tB,IAAImlB,MAAMzlC,MAAM+2D,UAAY,OACjCxkE,KAAK+tB,IAAI68C,SAASn9D,MAAM+2D,UAAY,OACpCxkE,KAAK+tB,IAAI68C,SAASn9D,MAAM/F,KAAO1H,KAAKqP,QAAQo7D,SAAW,GAAK,KAC5DzqE,KAAK+tB,IAAI68C,SAASn9D,MAAM7F,MAAQ,GAChC5H,KAAKu6C,IAAI9sC,MAAM/F,KAAO,MACtB1H,KAAKu6C,IAAI9sC,MAAM7F,MAAQ,KAEvB5H,KAAK+tB,IAAImlB,MAAMzlC,MAAM7F,MAAQ,MAC7B5H,KAAK+tB,IAAImlB,MAAMzlC,MAAM+2D,UAAY,QACjCxkE,KAAK+tB,IAAI68C,SAASn9D,MAAM+2D,UAAY,QACpCxkE,KAAK+tB,IAAI68C,SAASn9D,MAAM7F,MAAQ5H,KAAKqP,QAAQo7D,SAAW,GAAK,KAC7DzqE,KAAK+tB,IAAI68C,SAASn9D,MAAM/F,KAAO,GAC/B1H,KAAKu6C,IAAI9sC,MAAM7F,MAAQ,MACvB5H,KAAKu6C,IAAI9sC,MAAM/F,KAAO,IAGgB,YAApC1H,KAAKqP,QAAQrP,KAAKwqE,MAAMn4D,UAA8D,aAApCrS,KAAKqP,QAAQrP,KAAKwqE,MAAMn4D,SAC5ErS,KAAK+tB,IAAImlB,MAAMzlC,MAAM3F,IAAM,EAAIhE,OAAO9D,KAAKyS,KAAKsb,IAAIiU,OAAOv0B,MAAM3F,IAAIoD,QAAQ,KAAM,KAAO,KAC1FlL,KAAK+tB,IAAImlB,MAAMzlC,MAAM4U,OAAS,OACzB,CACL,GAAIwoD,GAAmB7qE,KAAKyS,KAAK2W,SAAS4Y,OAAO7vB,OAASnS,KAAKyS,KAAK2W,SAASC,gBAAgBlX,MAC7FnS,MAAK+tB,IAAImlB,MAAMzlC,MAAM4U,OAAS,EAAIwoD,EAAmB/mE,OAAO9D,KAAKyS,KAAKsb,IAAIiU,OAAOv0B,MAAM3F,IAAIoD,QAAQ,KAAM,KAAO,KAChHlL,KAAK+tB,IAAImlB,MAAMzlC,MAAM3F,IAAM,GAGH,GAAtB9H,KAAKqP,QAAQ2yD,OACfhiE,KAAK+tB,IAAImlB,MAAMzlC,MAAMyE,MAAQlS,KAAK+tB,IAAI68C,SAASj4D,YAAc,GAAK,KAClE3S,KAAK+tB,IAAI68C,SAASn9D,MAAM7F,MAAQ,GAChC5H,KAAK+tB,IAAI68C,SAASn9D,MAAM/F,KAAO,GAC/B1H,KAAKu6C,IAAI9sC,MAAMyE,MAAQ,QAEvBlS,KAAK+tB,IAAImlB,MAAMzlC,MAAMyE,MAAQlS,KAAKqP,QAAQo7D,SAAW,GAAKzqE,KAAK+tB,IAAI68C,SAASj4D,YAAc,GAAK,KAC/F3S,KAAK8qE,kBAGP,IAAI1uD,GAAU,EACd,KAAK/b,EAAI,EAAGA,EAAIgjE,EAAWhhE,OAAQhC,IACjCutC,EAAUy1B,EAAWhjE,GACe,GAAhCL,KAAKmwD,OAAOviB,GAAS7Q,aAAkE75B,KAA9ClD,KAAK+hE,iBAAiBzvD,WAAWs7B,IAAuE,GAA7C5tC,KAAK+hE,iBAAiBzvD,WAAWs7B,KACvIxxB,GAAWpc,KAAKmwD,OAAOviB,GAASxxB,QAAU,SAG9Cpc,MAAK+tB,IAAI68C,SAAS/5C,UAAYzU,EAC9Bpc,KAAK+tB,IAAI68C,SAASn9D,MAAMgtD,WAAa,IAAOz6D,KAAKqP,QAAQo7D,SAAWzqE,KAAKqP,QAAQq7D,YAAc,OAInG7N,EAAOt7D,UAAUupE,gBAAkB,WACjC,GAAI9qE,KAAK+tB,IAAImlB,MAAM9oC,WAAY,CAC7B,GAAIi5D,IAAa,EAAI7/D,EAAgB,SAAGxD,KAAKmwD,OAC7CkT,GAAWjrD,KAAK,SAAUvV,EAAGC,GAC3B,MAAOD,GAAIC,GAAK,EAAI,IAItBo3C,EAAQh/B,cAAclb,KAAKs6C,YAE3B,IAAIugB,GAAU9wD,OAAOypC,iBAAiBxzC,KAAK+tB,IAAImlB,OAAO63B,WAClD3H,EAAat/D,OAAO+2D,EAAQ3vD,QAAQ,KAAM,KAC1CyE,EAAIyzD,EACJ3oB,EAAYz6C,KAAKqP,QAAQo7D,SACzB/vB,EAAa,IAAO16C,KAAKqP,QAAQo7D,SACjC9uD,EAAIynD,EAAa,GAAM1oB,EAAa,CAExC16C,MAAKu6C,IAAI9sC,MAAMyE,MAAQuoC,EAAY,EAAI2oB,EAAa,IAEpD,KAAK,GAAI/iE,GAAI,EAAGA,EAAIgjE,EAAWhhE,OAAQhC,IAAK,CAC1C,GAAIutC,GAAUy1B,EAAWhjE,EACW,IAAhCL,KAAKmwD,OAAOviB,GAAS7Q,aAAkE75B,KAA9ClD,KAAK+hE,iBAAiBzvD,WAAWs7B,IAAuE,GAA7C5tC,KAAK+hE,iBAAiBzvD,WAAWs7B,KACvI5tC,KAAKmwD,OAAOviB,GAAS01B,UAAU7oB,EAAWC,EAAY16C,KAAKi6C,UAAWtqC,EAAGgM,GACzEA,GAAK++B,EAAa16C,KAAKqP,QAAQq7D,gBAMvC9qE,EAAOD,QAAUk9D,GAIX,SAAUj9D,EAAQD,EAASO,GAKjCY,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAST,IAAI+yC,GAAS,SACT0jB,EAAO,UACPnQ,EAAS,SAGTzpD,EAAS,SAKTyb,GACFirB,WACEj4B,SAAWorD,QAAWD,GACtB3yD,QAAU4yD,QAAWD,EAAME,SAAY,YACvCzzC,WAAaqG,IARP,OASNrQ,UAAYrc,OAAQA,EAAQ65D,QAAWD,EAAME,SAAY,aAI3DO,kBAAoBnkB,QAAS,OAAQ,UACrCokB,cAAgBpkB,OAAQA,GACxBn/B,MAAQ8iD,QAAWD,GACnBW,UAAYV,QAAWD,GACvB5sC,OAAS6sC,QAAWD,GACpBY,aAAetkB,OAAQA,EAAQuT,OAAQA,GACvCgR,QACEhsD,SAAWorD,QAAWD,GACtBvqC,aAAe6mB,QAAS,SAAU,MAAO,OAAQ,UACjD3J,SAAWvsC,OAAQA,GACnBqc,UAAYw9C,QAAWD,EAAM55D,OAAQA,IAEvCoM,OAAS8pC,QAAS,OAAQ,MAAO,WACjCwkB,UACE7pD,OAAS44C,OAAQA,GACjB4X,UAAY5X,OAAQA,GACpBkR,YAAcd,QAAWD,GACzB/mB,OAASqD,QAAS,OAAQ,SAAU,UACpC75B,UAAYrc,OAAQA,IAEtBm6C,eACE1rC,SAAWorD,QAAWD,GACtBgB,iBAAmB1kB,QAAS,cAAe,UAAW,YACtD2kB,OAASpR,OAAQA,GACjBptC,UAAYrc,OAAQA,EAAQ65D,QAAWD,IAEzC1zB,YACEz3B,SAAWorD,QAAWD,GACtBzzB,UAAY2zB,SAAY,YACxBn/C,MAAQ8uC,OAAQA,GAChBr9C,OAAS8pC,QAAS,SAAU,WAC5B75B,UAAYrc,OAAQA,EAAQ65D,QAAWD,EAAME,SAAY,aAE3DgB,UACE3nC,iBAAmB0mC,QAAWD,GAC9BxmC,iBAAmBymC,QAAWD,GAC9B+G,OAAS9G,QAAWD,GACpB/oD,OAASqlC,OAAQA,EAAQuT,OAAQA,GACjC/tB,SAAWm+B,QAAWD,GACtBoH,YAAcnH,QAAWD,GACzBvzD,MACE4hB,OAASjlB,KAAOymD,OAAQA,EAAQ5nD,UAAa,aAAeoB,KAAOwmD,OAAQA,EAAQ5nD,UAAa,aAAewa,UAAYrc,OAAQA,IACnI4F,QAAUk0D,SAAY,YACtBlrC,OAAS2H,MAAQ2f,OAAQA,EAAQuT,OAAQA,EAAQ5nD,UAAa,aAAeuK,OAAS8pC,OAAQA,EAAQr0C,UAAa,aAAewa,UAAYrc,OAAQA,IACtJqc,UAAYrc,OAAQA,IAEtBuG,OACE0hB,OAASjlB,KAAOymD,OAAQA,EAAQ5nD,UAAa,aAAeoB,KAAOwmD,OAAQA,EAAQ5nD,UAAa,aAAewa,UAAYrc,OAAQA,IACnI4F,QAAUk0D,SAAY,YACtBlrC,OAAS2H,MAAQ2f,OAAQA,EAAQuT,OAAQA,EAAQ5nD,UAAa,aAAeuK,OAAS8pC,OAAQA,EAAQr0C,UAAa,aAAewa,UAAYrc,OAAQA,IACtJqc,UAAYrc,OAAQA,IAEtBqc,UAAYrc,OAAQA,IAEtB+6D,QACEtsD,SAAWorD,QAAWD,GACtB+G,OAAS9G,QAAWD,GACpBvzD,MACEq1B,SAAWm+B,QAAWD,GACtB5oD,UAAYklC,QAAS,YAAa,eAAgB,WAAY,gBAC9D75B,UAAYrc,OAAQA,IAEtBuG,OACEm1B,SAAWm+B,QAAWD,GACtB5oD,UAAYklC,QAAS,YAAa,eAAgB,WAAY,gBAC9D75B,UAAYrc,OAAQA,IAEtBqc,UAAYrc,OAAQA,EAAQ65D,QAAWD,IAEzC9K,QACE79C,YAAc+oD,IAjFR,OAkFN39C,UAAYrc,OAAQA,IAGtBwpC,YAAcqwB,QAAWD,GACzBG,gBAAkBtQ,OAAQA,GAC1BrjB,YAAcyzB,QAAWD,GACzB/xC,KAAO4hC,OAAQA,EAAQ1gC,KA5Fd,OA4F0BmtB,OAAQA,EAAQ5zC,OAzFxC,UA0FXsD,QACE0kC,aACEC,aAAe2L,OAAQA,EAAQr0C,UAAa,aAC5C2oC,QAAU0L,OAAQA,EAAQr0C,UAAa,aACvC4oC,QAAUyL,OAAQA,EAAQr0C,UAAa,aACvC6oC,MAAQwL,OAAQA,EAAQr0C,UAAa,aACrC8oC,SAAWuL,OAAQA,EAAQr0C,UAAa,aACxC6mB,KAAOwtB,OAAQA,EAAQr0C,UAAa,aACpCmnB,OAASktB,OAAQA,EAAQr0C,UAAa,aACtC+mB,MAAQstB,OAAQA,EAAQr0C,UAAa,aACrCwa,UAAYrc,OAAQA,IAEtB6qC,aACEN,aAAe2L,OAAQA,EAAQr0C,UAAa,aAC5C2oC,QAAU0L,OAAQA,EAAQr0C,UAAa,aACvC4oC,QAAUyL,OAAQA,EAAQr0C,UAAa,aACvC6oC,MAAQwL,OAAQA,EAAQr0C,UAAa,aACrC8oC,SAAWuL,OAAQA,EAAQr0C,UAAa,aACxC6mB,KAAOwtB,OAAQA,EAAQr0C,UAAa,aACpCmnB,OAASktB,OAAQA,EAAQr0C,UAAa,aACtC+mB,MAAQstB,OAAQA,EAAQr0C,UAAa,aACrCwa,UAAYrc,OAAQA,IAEtBqc,UAAYrc,OAAQA,IAEtBsC,QAAUw3D,SAAY,YACtBhpD,QAAUolC,OAAQA,EAAQuT,OAAQA,GAClChiC,aACEG,OAASmB,KAzHF,OAyHc0gC,OAAQA,EAAQvT,OAAQA,EAAQ5zC,OAtH5C,UAuHTulB,KAAOkB,KA1HA,OA0HY0gC,OAAQA,EAAQvT,OAAQA,EAAQ5zC,OAvH1C,UAwHTolB,QAAUwuB,OAAQA,GAClB75B,UAAYrc,OAAQA,EAAQwH,MA7HpB,UA+HVksB,QAAUwiB,OAAQA,GAClBpf,SACE9a,SAAWg+C,IA5HL,OA6HN39C,UAAYrc,OAAQA,IAEtBiD,KAAO8lB,KAnIE,OAmIU0gC,OAAQA,EAAQvT,OAAQA,EAAQ5zC,OAhIxC,UAiIXylC,WAAa0hB,OAAQA,EAAQvT,OAAQA,GACrC7iB,eAAiBo2B,OAAQA,GACzBzmD,KAAO+lB,KAtIE,OAsIU0gC,OAAQA,EAAQvT,OAAQA,EAAQ5zC,OAnIxC,UAoIX0lC,WAAayhB,OAAQA,EAAQvT,OAAQA,GACrCxW,UAAYm6B,QAAWD,GACvB1K,aAAe2K,QAAWD,GAC1BvqC,aAAe6mB,OAAQA,GACvB9J,iBAAmBytB,QAAWD,GAC9BxmC,iBAAmBymC,QAAWD,GAC9BzmC,iBAAmB0mC,QAAWD,GAC9BhyC,OAASmB,KA9IA,OA8IY0gC,OAAQA,EAAQvT,OAAQA,EAAQ5zC,OA3I1C,UA4IXkxB,UACEpwB,OAAS8yC,OAAQA,EAAQr0C,UAAa,aACtCgzB,MAAQ40B,OAAQA,EAAQ5nD,UAAa,aACrCwa,UAAYrc,OAAQA,IAEtB6Q,OAASqlC,OAAQA,EAAQuT,OAAQA,GACjC9pB,UAAYk6B,QAAWD,GACvBj3B,SAAWuT,QAAS,UAAW,SAAU,UAAW,KACpDrW,SAAW4pB,OAAQA,GACnB7pB,SAAW6pB,OAAQA,GACnBsT,QAAUtT,OAAQA,GAClBptC,UAAYrc,OAAQA,IAGlBuzC,GACF/0B,QAEEzH,MAAM,EACNwjD,UAAU,EACVvtC,OAAO,EACPytC,QACEhsD,SAAS,EACT4gB,aAAc,OAAQ,MAAO,SAAU,UAEzCjjB,OAAQ,OAAQ,MAAO,UACvBsuD,UACE7pD,OAAQ,GAAI,EAAG,IAAK,GACpBwwD,UAAW,GAAI,EAAG,IAAK,GACvB1G,YAAY,EACZ9nB,OAAQ,OAAQ,SAAU,UAE5BsH,eACE1rC,SAAS,EACTmsD,iBAAkB,cAAe,UAAW,YAE9C10B,YACEz3B,SAAS,EACTkM,MAAO,EAAG,EAAG,GAAI,GACjBvO,OAAQ,SAAU,WAEpB0uD,UACE3nC,iBAAiB,EACjBC,iBAAiB,EACjButC,OAAO,EACP9vD,OAAQ,GAAI,EAAG,IAAK,GACpB6qB,SAAS,EACTslC,YAAY,EACZ36D,MAGEuoB,OAAS2H,KAAM,GAAInqB,MAAO,KAE5B7F,OAGEqoB,OAAS2H,KAAM,GAAInqB,MAAO,MAG9B2uD,QACEtsD,SAAS,EACTkyD,OAAO,EACPt6D,MACEq1B,SAAS,EACT1qB,UAAW,YAAa,eAAgB,WAAY,gBAEtDzK,OACEm1B,SAAS,EACT1qB,UAAW,YAAa,eAAgB,WAAY,iBAIxDw4B,YAAY,EACZpD,YAAY,EACZve,IAAK,GACLjiB,QACE0kC,aACEC,YAAa,MACbC,OAAQ,IACRC,OAAQ,QACRC,KAAM,QACNC,QAAS,QACTjiB,IAAK,IACLM,MAAO,MACPJ,KAAM,QAERiiB,aACEN,YAAa,WACbC,OAAQ,eACRC,OAAQ,aACRC,KAAM,aACNC,QAAS,YACTjiB,IAAK,YACLM,MAAO,OACPJ,KAAM,KAIV9X,OAAQ,GACR4iB,OAAQ,GACRzwB,IAAK,GACL8kC,UAAW,GACX1U,eAAgB,EAAG,EAAG,GAAI,GAC1BrwB,IAAK,GACLglC,UAAW,GACXtI,UAAU,EACVrQ,aAAc,OAAQ,SAAU,OAChC+c,iBAAiB,EACjBhZ,iBAAiB,EACjBD,iBAAiB,EACjBvL,MAAO,GACP/W,MAAO,OACP8uB,UAAU,EACVgD,SAAU,UAAW,SAAU,UAAW,IAC1C9C,SAAU,SAAiB,GAAI,SAAiB,GAChDD,SAAU,GAAI,GAAI,SAAiB,GACnCm9B,OAAQ,GAIZz+D,GAAQmd,WAAaA,EACrBnd,EAAQi1C,iBAAmBA,GAIrB,SAAUh1C,EAAQD,EAASO,GA+CjC,QAAS8qE,GAAS91D,GAEhB,MADAi3C,GAAMj3C,EACC+1D,IAmDT,QAASrL,KACPzkC,EAAQ,EACR16B,EAAI0rD,EAAI7sC,OAAO,GAQjB,QAAS/L,KACP4nB,IACA16B,EAAI0rD,EAAI7sC,OAAO6b,GAOjB,QAAS+vC,KACP,MAAO/e,GAAI7sC,OAAO6b,EAAQ,GAS5B,QAASgwC,GAAe1qE,GACtB,MAAO2qE,GAAkB98D,KAAK7N,GAShC,QAAS4qE,GAAMxoE,EAAGC,GAKhB,GAJKD,IACHA,MAGEC,EACF,IAAK,GAAInC,KAAQmC,GACXA,EAAEtB,eAAeb,KACnBkC,EAAElC,GAAQmC,EAAEnC,GAIlB,OAAOkC,GAeT,QAASyoE,GAASrpE,EAAKkb,EAAM3Y,GAG3B,IAFA,GAAIoiB,GAAOzJ,EAAKhV,MAAM,KAClBtH,EAAIoB,EACD2kB,EAAKvkB,QAAQ,CAClB,GAAIG,GAAMokB,EAAKvL,OACXuL,GAAKvkB,QAEFxB,EAAE2B,KACL3B,EAAE2B,OAEJ3B,EAAIA,EAAE2B,IAGN3B,EAAE2B,GAAOgC,GAWf,QAAS+mE,GAAQnd,EAAO/M,GAOtB,IANA,GAAIhhD,GAAGkG,EACHilB,EAAU,KAGVggD,GAAUpd,GACV3uD,EAAO2uD,EACJ3uD,EAAK6K,QACVkhE,EAAOplE,KAAK3G,EAAK6K,QACjB7K,EAAOA,EAAK6K,MAId,IAAI7K,EAAKy+C,MACP,IAAK79C,EAAI,EAAGkG,EAAM9G,EAAKy+C,MAAM77C,OAAQhC,EAAIkG,EAAKlG,IAC5C,GAAIghD,EAAK/qC,KAAO7W,EAAKy+C,MAAM79C,GAAGiW,GAAI,CAChCkV,EAAU/rB,EAAKy+C,MAAM79C,EACrB,OAiBN,IAZKmrB,IAEHA,GACElV,GAAI+qC,EAAK/qC,IAEP83C,EAAM/M,OAER71B,EAAQigD,KAAOJ,EAAM7/C,EAAQigD,KAAMrd,EAAM/M,QAKxChhD,EAAImrE,EAAOnpE,OAAS,EAAGhC,GAAK,EAAGA,IAAK,CACvC,GAAI+K,GAAIogE,EAAOnrE,EAEV+K,GAAE8yC,QACL9yC,EAAE8yC,WAE8B,IAA9B9yC,EAAE8yC,MAAM/3C,QAAQqlB,IAClBpgB,EAAE8yC,MAAM93C,KAAKolB,GAKb61B,EAAKoqB,OACPjgD,EAAQigD,KAAOJ,EAAM7/C,EAAQigD,KAAMpqB,EAAKoqB,OAS5C,QAASC,GAAQtd,EAAOlzB,GAKtB,GAJKkzB,EAAMvzB,QACTuzB,EAAMvzB,UAERuzB,EAAMvzB,MAAMz0B,KAAK80B,GACbkzB,EAAMlzB,KAAM,CACd,GAAIuwC,GAAOJ,KAAUjd,EAAMlzB,KAC3BA,GAAKuwC,KAAOJ,EAAMI,EAAMvwC,EAAKuwC,OAajC,QAASE,GAAWvd,EAAO/R,EAAMC,EAAI71C,EAAMglE,GACzC,GAAIvwC,IACFmhB,KAAMA,EACNC,GAAIA,EACJ71C,KAAMA,EAQR,OALI2nD,GAAMlzB,OACRA,EAAKuwC,KAAOJ,KAAUjd,EAAMlzB,OAE9BA,EAAKuwC,KAAOJ,EAAMnwC,EAAKuwC,SAAYA,GAE5BvwC,EAOT,QAAS0wC,KAKP,IAJAC,EAAYC,EAAUC,KACtBC,EAAQ,GAGK,MAANvrE,GAAmB,OAANA,GAAoB,OAANA,GAAoB,OAANA,GAE9C8S,GAGF,GAAG,CACD,GAAI04D,IAAY,CAGhB,IAAU,MAANxrE,EAAW,CAGb,IADA,GAAIJ,GAAI86B,EAAQ,EACS,MAAlBgxB,EAAI7sC,OAAOjf,IAAgC,OAAlB8rD,EAAI7sC,OAAOjf,IACzCA,GAEF,IAAsB,OAAlB8rD,EAAI7sC,OAAOjf,IAAiC,KAAlB8rD,EAAI7sC,OAAOjf,GAAW,CAElD,KAAY,IAALI,GAAgB,MAALA,GAChB8S,GAEF04D,IAAY,GAGhB,GAAU,MAANxrE,GAA+B,MAAlByqE,IAAuB,CAEtC,KAAY,IAALzqE,GAAgB,MAALA,GAChB8S,GAEF04D,IAAY,EAEd,GAAU,MAANxrE,GAA+B,MAAlByqE,IAAuB,CAEtC,KAAY,IAALzqE,GAAS,CACd,GAAU,MAANA,GAA+B,MAAlByqE,IAAuB,CAEtC33D,IACAA,GACA,OAEAA,IAGJ04D,GAAY,EAId,KAAa,MAANxrE,GAAmB,OAANA,GAAoB,OAANA,GAAoB,OAANA,GAE9C8S,UAEK04D,EAGT,IAAU,KAANxrE,EAGF,YADAorE,EAAYC,EAAUI,UAKxB,IAAIC,GAAK1rE,EAAIyqE,GACb,IAAIkB,EAAWD,GAKb,MAJAN,GAAYC,EAAUI,UACtBF,EAAQG,EACR54D,QACAA,IAKF,IAAI64D,EAAW3rE,GAIb,MAHAorE,GAAYC,EAAUI,UACtBF,EAAQvrE,MACR8S,IAMF,IAAI43D,EAAe1qE,IAAY,MAANA,EAAW,CAIlC,IAHAurE,GAASvrE,EACT8S,IAEO43D,EAAe1qE,IACpBurE,GAASvrE,EACT8S,GAUF,OARc,UAAVy4D,EACFA,GAAQ,EACW,SAAVA,EACTA,GAAQ,EACE/mE,MAAMnB,OAAOkoE,MACvBA,EAAQloE,OAAOkoE,SAEjBH,EAAYC,EAAUO,YAKxB,GAAU,MAAN5rE,EAAW,CAEb,IADA8S,IACY,IAAL9S,IAAiB,KAALA,GAAkB,MAANA,GAA+B,MAAlByqE,MAChC,MAANzqE,GAEFurE,GAASvrE,EACT8S,KACe,OAAN9S,GAAgC,MAAlByqE,KAEvBc,GAAS,KACTz4D,KAEAy4D,GAASvrE,EAEX8S,GAEF,IAAS,KAAL9S,EACF,KAAM6rE,GAAe,2BAIvB,OAFA/4D,UACAs4D,EAAYC,EAAUO,YAMxB,IADAR,EAAYC,EAAUS,QACV,IAAL9rE,GACLurE,GAASvrE,EACT8S,GAEF,MAAM,IAAIi5D,aAAY,yBAA2BC,EAAKT,EAAO,IAAM,KAOrE,QAASf,KACP,GAAI7c,KAwBJ,IAtBAwR,IACAgM,IAGc,WAAVI,IACF5d,EAAMse,QAAS,EACfd,KAIY,UAAVI,GAA+B,YAAVA,IACvB5d,EAAM3nD,KAAOulE,EACbJ,KAIEC,IAAcC,EAAUO,aAC1Bje,EAAM93C,GAAK01D,EACXJ,KAIW,KAATI,EACF,KAAMM,GAAe,2BAQvB,IANAV,IAGAe,EAAgBve,GAGH,KAAT4d,EACF,KAAMM,GAAe,2BAKvB,IAHAV,IAGc,KAAVI,EACF,KAAMM,GAAe,uBASvB,OAPAV,WAGOxd,GAAM/M,WACN+M,GAAMlzB,WACNkzB,GAAMA,MAENA,EAOT,QAASue,GAAgBve,GACvB,KAAiB,KAAV4d,GAAyB,KAATA,GACrBY,EAAexe,GACD,MAAV4d,GACFJ,IAWN,QAASgB,GAAexe,GAEtB,GAAIye,GAAWC,EAAc1e,EAC7B,IAAIye,EAIF,WAFAE,GAAU3e,EAAOye,EAOnB,KADWG,EAAwB5e,GACnC,CAKA,GAAIyd,GAAaC,EAAUO,WACzB,KAAMC,GAAe,sBAEvB,IAAIh2D,GAAK01D,CAGT,IAFAJ,IAEc,MAAVI,EAAe,CAGjB,GADAJ,IACIC,GAAaC,EAAUO,WACzB,KAAMC,GAAe,sBAEvBle,GAAM93C,GAAM01D,EACZJ,QAGAqB,GAAmB7e,EAAO93C,IAS9B,QAASw2D,GAAc1e,GACrB,GAAIye,GAAW,IAgBf,IAbc,aAAVb,IACFa,KACAA,EAASpmE,KAAO,WAChBmlE,IAGIC,IAAcC,EAAUO,aAC1BQ,EAASv2D,GAAK01D,EACdJ,MAKU,MAAVI,EAAe,CAejB,GAdAJ,IAEKiB,IACHA,MAEFA,EAASviE,OAAS8jD,EAClBye,EAASxrB,KAAO+M,EAAM/M,KACtBwrB,EAAS3xC,KAAOkzB,EAAMlzB,KACtB2xC,EAASze,MAAQA,EAAMA,MAGvBue,EAAgBE,GAGH,KAATb,EACF,KAAMM,GAAe,2BAEvBV,WAGOiB,GAASxrB,WACTwrB,GAAS3xC,WACT2xC,GAASze,YACTye,GAASviE,OAGX8jD,EAAM8e,YACT9e,EAAM8e,cAER9e,EAAM8e,UAAU9mE,KAAKymE,GAGvB,MAAOA,GAYT,QAASG,GAAwB5e,GAE/B,MAAc,SAAV4d,GACFJ,IAGAxd,EAAM/M,KAAO8rB,IACN,QACY,SAAVnB,GACTJ,IAGAxd,EAAMlzB,KAAOiyC,IACN,QACY,UAAVnB,GACTJ,IAGAxd,EAAMA,MAAQ+e,IACP,SAGF,KAQT,QAASF,GAAmB7e,EAAO93C,GAEjC,GAAI+qC,IACF/qC,GAAIA,GAEFm1D,EAAO0B,GACP1B,KACFpqB,EAAKoqB,KAAOA,GAEdF,EAAQnd,EAAO/M,GAGf0rB,EAAU3e,EAAO93C,GAQnB,QAASy2D,GAAU3e,EAAO/R,GACxB,KAAiB,OAAV2vB,GAA4B,OAAVA,GAAgB,CACvC,GAAI1vB,GACA71C,EAAOulE,CACXJ,IAEA,IAAIiB,GAAWC,EAAc1e,EAC7B,IAAIye,EACFvwB,EAAKuwB,MACA,CACL,GAAIhB,GAAaC,EAAUO,WACzB,KAAMC,GAAe,kCAEvBhwB,GAAK0vB,EACLT,EAAQnd,GACN93C,GAAIgmC,IAENsvB,IAQFF,EAAQtd,EADGud,EAAWvd,EAAO/R,EAAMC,EAAI71C,EAH5B0mE,MAMX9wB,EAAOC,GASX,QAAS6wB,KAUP,IATA,GAAI1B,GAAO,KAGP2B,GACFC,QAAU,EACVC,OAAS,EACTC,QAAW,EAAG,IAGC,MAAVvB,GAAe,CAGpB,IAFAJ,IACAH,KACiB,KAAVO,GAAyB,KAATA,GAAc,CACnC,GAAIH,GAAaC,EAAUO,WACzB,KAAMC,GAAe,0BAEvB,IAAI3rE,GAAOqrE,CAGX,IADAJ,IACa,KAATI,EACF,KAAMM,GAAe,wBAIvB,IAFAV,IAEIC,GAAaC,EAAUO,WACzB,KAAMC,GAAe,2BAEvB,IAAI9nE,GAAQwnE,CAGC,WAATrrE,IACF6D,EAAQ4oE,EAAW5oE,IAGrB8mE,EAASG,EAAM9qE,EAAM6D,GAErBonE,IACa,KAATI,GACFJ,IAIJ,GAAa,KAATI,EACF,KAAMM,GAAe,qBAEvBV,KAGF,MAAOH,GAQT,QAASa,GAAezuD,GACtB,MAAO,IAAI2uD,aAAY3uD,EAAU,UAAY4uD,EAAKT,EAAO,IAAM,WAAa7wC,EAAQ,KAStF,QAASsxC,GAAK70C,EAAM41C,GAClB,MAAO51C,GAAKv1B,QAAUmrE,EAAY51C,EAAOA,EAAKjsB,OAAO,EAAG,IAAM,MAShE,QAAS8hE,GAASC,EAAQC,EAAQ3kE,GAC5BrD,MAAMC,QAAQ8nE,GAChBA,EAAOhlE,QAAQ,SAAUklE,GACnBjoE,MAAMC,QAAQ+nE,GAChBA,EAAOjlE,QAAQ,SAAUmlE,GACvB7kE,EAAG4kE,EAAOC,KAGZ7kE,EAAG4kE,EAAOD,KAIVhoE,MAAMC,QAAQ+nE,GAChBA,EAAOjlE,QAAQ,SAAUmlE,GACvB7kE,EAAG0kE,EAAQG,KAGb7kE,EAAG0kE,EAAQC,GAcjB,QAASG,GAAQzsE,EAAQ8b,EAAM3Y,GAM7B,IAAK,GALDsgD,GAAQ3nC,EAAKhV,MAAM,KACnBpF,EAAO+hD,EAAMntB,MAGb11B,EAAMZ,EACDhB,EAAI,EAAGA,EAAIykD,EAAMziD,OAAQhC,IAAK,CACrC,GAAIM,GAAOmkD,EAAMzkD,EACXM,KAAQsB,KACZA,EAAItB,OAENsB,EAAMA,EAAItB,GAMZ,MAFAsB,GAAIc,GAAQyB,EAELnD,EAST,QAAS0sE,GAAYtC,EAAMuC,GACzB,GAAIz0D,KAEJ,KAAK,GAAIxW,KAAQ0oE,GACf,GAAIA,EAAKjqE,eAAeuB,GAAO,CAC7B,GAAIkrE,GAAUD,EAAQjrE,EAClB4C,OAAMC,QAAQqoE,GAChBA,EAAQvlE,QAAQ,SAAUwlE,GACxBJ,EAAQv0D,EAAW20D,EAAUzC,EAAK1oE,MAER,gBAAZkrE,GAChBH,EAAQv0D,EAAW00D,EAASxC,EAAK1oE,IAEjC+qE,EAAQv0D,EAAWxW,EAAM0oE,EAAK1oE,IAKpC,MAAOwW,GAST,QAAS40D,GAAWj5D,GAElB,GAAIk5D,GAAUpD,EAAS91D,GACnBm5D,GACFnwB,SACArjB,SACAxrB,WAmBF,IAfI++D,EAAQlwB,OACVkwB,EAAQlwB,MAAMx1C,QAAQ,SAAU4lE,GAC9B,GAAIC,IACFj4D,GAAIg4D,EAAQh4D,GACZ2F,MAAOrX,OAAO0pE,EAAQryD,OAASqyD,EAAQh4D,IAEzC+0D,GAAMkD,EAAWR,EAAYO,EAAQ7C,KAAM+C,IACvCD,EAAUzyC,QACZyyC,EAAUhpD,MAAQ,SAEpB8oD,EAAUnwB,MAAM93C,KAAKmoE,KAKrBH,EAAQvzC,MAAO,CAMjB,GAAI4zC,GAAc,SAAqBC,GACrC,GAAIC,IACFtyB,KAAMqyB,EAAQryB,KACdC,GAAIoyB,EAAQpyB,GAKd,OAHA+uB,GAAMsD,EAAWZ,EAAYW,EAAQjD,KAAMmD,IAC3CD,EAAU7xB,OAA0B,OAAjB4xB,EAAQjoE,KAAgB,SAAOvD,GAE3CyrE,EAGTP,GAAQvzC,MAAMnyB,QAAQ,SAAUgmE,GAC9B,GAAIryB,GAAMC,CAERD,GADEqyB,EAAQryB,eAAgBv7C,QACnB4tE,EAAQryB,KAAK6B,OAGlB5nC,GAAIo4D,EAAQryB,MAOdC,EADEoyB,EAAQpyB,aAAcx7C,QACnB4tE,EAAQpyB,GAAG4B,OAGd5nC,GAAIo4D,EAAQpyB,IAIZoyB,EAAQryB,eAAgBv7C,SAAU4tE,EAAQryB,KAAKxhB,OACjD6zC,EAAQryB,KAAKxhB,MAAMnyB,QAAQ,SAAUmmE,GACnC,GAAIF,GAAYF,EAAYI,EAC5BR,GAAUxzC,MAAMz0B,KAAKuoE,KAIzBlB,EAASpxB,EAAMC,EAAI,SAAUD,EAAMC,GACjC,GAAIuyB,GAAUlD,EAAW0C,EAAWhyB,EAAK/lC,GAAIgmC,EAAGhmC,GAAIo4D,EAAQjoE,KAAMioE,EAAQjD,MACtEkD,EAAYF,EAAYI,EAC5BR,GAAUxzC,MAAMz0B,KAAKuoE,KAGnBD,EAAQpyB,aAAcx7C,SAAU4tE,EAAQpyB,GAAGzhB,OAC7C6zC,EAAQpyB,GAAGzhB,MAAMnyB,QAAQ,SAAUmmE,GACjC,GAAIF,GAAYF,EAAYI,EAC5BR,GAAUxzC,MAAMz0B,KAAKuoE,OAW7B,MAJIP,GAAQ3C,OACV4C,EAAUh/D,QAAU++D,EAAQ3C,MAGvB4C,EAr6BT,GAAIhrE,GAAUnD,EAAoB,IAE9BoD,EAEJ,SAAgCrB,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFnDoB,GA8ClCmrE,GACFM,SAAY,YACZC,UAAa,aACbC,eAAkB,aAClBC,SAAY,YACZzjE,OAAU,eAAgB,oBAC1B0jE,UAAa,mBACb5kB,QAAW,QACX6kB,aAAgB,SAEdP,GAAoB,EAAItrE,EAAkB,SAAGkrE,EACjDI,GAAkBpjE,MAAQ,cAC1BojE,EAAkBnhE,MAAQ,QAG1B,IAAIq+D,IACFC,KAAM,EACNG,UAAW,EACXG,WAAY,EACZE,QAAS,GAIPH,GACFgD,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EAELC,MAAM,EACNC,MAAM,GAGJzjB,EAAM,GACNhxB,EAAQ,EACR16B,EAAI,GACJurE,EAAQ,GACRH,EAAYC,EAAUC,KA8BtBX,EAAoB,iBAmzBxBzrE,GAAQqrE,SAAWA,EACnBrrE,EAAQwuE,WAAaA,GAIf,SAAUvuE,EAAQD,EAASO,GAWjC,QAAS2vE,GAAWC,EAAWn2B,GAC7B,GAAI9e,MACAqjB,KACA7uC,GACFwrB,OACEk1C,cAAc,GAEhB7xB,OACE1hB,OAAO,EACPtwB,YAAY,QAIGhJ,KAAfy2C,QACuBz2C,KAArBy2C,EAAWnd,QACbntB,EAAQ6uC,MAAM1hB,MAAQmd,EAAWnd,WAELt5B,KAA1By2C,EAAWztC,aACbmD,EAAQ6uC,MAAMhyC,WAAaytC,EAAWztC,gBAERhJ,KAA5By2C,EAAWo2B,eACb1gE,EAAQwrB,MAAMk1C,aAAep2B,EAAWo2B,cAM5C,KAAK,GAFDC,GAASF,EAAUj1C,MACnBo1C,EAASH,EAAU5xB,MACd79C,EAAI,EAAGA,EAAI2vE,EAAO3tE,OAAQhC,IAAK,CACtC,GAAI66B,MACAg1C,EAAQF,EAAO3vE,EACnB66B,GAAS,GAAIg1C,EAAM55D,GACnB4kB,EAAW,KAAIg1C,EAAMhwD,OACrBgb,EAAS,GAAIg1C,EAAM/tE,OACnB+4B,EAAiB,WAAIg1C,EAAMx+C,WAC3BwJ,EAAY,MAAIg1C,EAAMj0D,MACtBif,EAAY,UAAyBh4B,KAArBgtE,EAAMx+C,WAA2Bw+C,EAAMx+C,WAAWzB,UAAQ/sB,GACpD,aAAlBgtE,EAAY,OACdh1C,EAAa,OAAI,MAIfg1C,EAAM1kE,QAAkC,IAAzB6D,EAAQ0gE,eACzB70C,EAAY,MAAIg1C,EAAM1kE,OAExBqvB,EAAMz0B,KAAK80B,GAGb,IAAK,GAAIhsB,GAAI,EAAGA,EAAI+gE,EAAO5tE,OAAQ6M,IAAK,CACtC,GAAImyC,MACA8uB,EAAQF,EAAO/gE,EACnBmyC,GAAS,GAAI8uB,EAAM75D,GACnB+qC,EAAiB,WAAI8uB,EAAMz+C,WAC3B2vB,EAAQ,EAAI8uB,EAAMxgE,EAClB0xC,EAAQ,EAAI8uB,EAAMx0D,EAClB0lC,EAAY,MAAI8uB,EAAMl0D,MACtBolC,EAAY,UAAyBn+C,KAArBitE,EAAMz+C,WAA2By+C,EAAMz+C,WAAWzB,MAAQkgD,EAAMlgD,OAC/C,IAA7B5gB,EAAQ6uC,MAAMhyC,WAChBm1C,EAAY,MAAI8uB,EAAM3kE,MAEtB61C,EAAY,UAAoBn+C,KAAhBitE,EAAM3kE,OAAwBuB,WAAYojE,EAAM3kE,MAAOwB,OAAQmjE,EAAM3kE,MAAOyB,WAAaF,WAAYojE,EAAM3kE,MAAOwB,OAAQmjE,EAAM3kE,OAAS0B,OAASH,WAAYojE,EAAM3kE,MAAOwB,OAAQmjE,EAAM3kE,YAAYtI,GAEvNm+C,EAAW,KAAI8uB,EAAMn0D,KACrBqlC,EAAY,MAAIhyC,EAAQ6uC,MAAM1hB,WAAqBt5B,KAAZitE,EAAMxgE,OAA+BzM,KAAZitE,EAAMx0D,EACtEuiC,EAAM93C,KAAKi7C,GAGb,OAASnD,MAAOA,EAAOrjB,MAAOA,GAGhCl7B,EAAQkwE,WAAaA,GAIf,SAAUjwE,EAAQD,EAASO,GAqBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAhBzFnB,OAAOC,eAAepB,EAAS,cAC3B6E,OAAO,GAGX,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCyzD,EAAelwE,EAAoB,KAEnCmwE,EAAgB1tE,EAAuBytE,GAevCE,EAAS,WAIT,QAASA,GAAO3nE,IACZ,EAAI+T,EAA0B,SAAG1c,KAAMswE,GAEvCtwE,KAAKuwE,UACLvwE,KAAKwwE,eACLxwE,KAAK2I,SAAWA,EA2GpB,OAjGA,EAAIiU,EAAuB,SAAG0zD,IAC1B9tE,IAAK,oBACLgC,MAAO,SAA2BisE,EAAKC,EAAWC,GAE9C,OAAYztE,KAARutE,OAAgDvtE,KAA3BytE,EAAzB,CACA,OAAkBztE,KAAdwtE,EAEA,WADAx5D,SAAQC,KAAK,8BAKjBw5D,GAAuBC,QAAU,WAC7B15D,QAAQoiC,MAAM,8BAA+Bo3B,IAKjDC,EAAuB70C,MAAM/rB,IAAM2gE,MAUvCluE,IAAK,mBACLgC,MAAO,SAA0BqsE,GACzB7wE,KAAK2I,UACL3I,KAAK2I,SAASkoE,MAWtBruE,IAAK,OACLgC,MAAO,SAAcisE,EAAKC,GACtB,GAAI96B,GAAQ51C,KAGR8wE,EAAc9wE,KAAKuwE,OAAOE,EAC9B,IAAIK,EAAa,MAAOA,EAGxB,IAAIC,GAAM,GAAIV,GAAuB,OAyBrC,OArBArwE,MAAKuwE,OAAOE,GAAOM,EAGnBA,EAAIj1C,MAAMk1C,OAAS,WAEfp7B,EAAMq7B,qBAAqBF,EAAIj1C,OAC/Bi1C,EAAIG,OACJt7B,EAAMu7B,iBAAiBJ,IAI3BA,EAAIj1C,MAAM80C,QAAU,WAChB15D,QAAQoiC,MAAM,wBAAyBm3B,GAEvC76B,EAAMw7B,kBAAkBX,EAAKC,EAAWK,IAI5CA,EAAIj1C,MAAM/rB,IAAM0gE,EAGTM,KAYXvuE,IAAK,uBACLgC,MAAO,SAA8B6sE,GACN,IAAvBA,EAAan/D,QACbF,SAASS,KAAKD,YAAY6+D,GAC1BA,EAAan/D,MAAQm/D,EAAa1+D,YAClC0+D,EAAal/D,OAASk/D,EAAa/nC,aACnCt3B,SAASS,KAAKtO,YAAYktE,QAI/Bf,IAGX3wE,GAAiB,QAAI2wE,GAIf,SAAU1wE,EAAQD,EAASO,GAyBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GApBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAI8sE,GAAkBpxE,EAAoB,IAEtCqxE,EAAkB5uE,EAAuB2uE,GAEzC7tE,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCgZ,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAC3Bu5B,EAAgBv5B,EAAoB,IAAa,QACjDsxE,EAAgBtxE,EAAoB,KAAc,QAgClDuxE,GAAkB,OAAQ,OAAQ,WAAY,QAM9Cj4C,EAAQ,WAOV,QAASA,GAAM/mB,EAAMpD,GACnB,GAAIqiE,GAAYnsE,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,IAC/E,EAAImX,EAA0B,SAAG1c,KAAMw5B,GAEvCx5B,KAAKyS,KAAOA,EACZzS,KAAKk/C,aAAc,EACnBl/C,KAAK86B,aAAW53B,GAChBlD,KAAK2xE,eACL3xE,KAAK0V,WAAWrG,GAChBrP,KAAKgc,MAASlU,IAAK,EAAGJ,KAAM,EAAGwK,MAAO,EAAGC,OAAQ,EAAG+tC,MAAO,GAC3DlgD,KAAK4xE,YAAcF,EAwzBrB,OAhzBA,EAAI90D,EAAuB,SAAG4c,IAC5Bh3B,IAAK,aACLgC,MAAO,SAAoB6K,GAYzB,GAXArP,KAAK6xE,eAAiBxiE,EAEtBrP,KAAK8xE,gBAAgBziE,EAAQ2rB,MAEzBvB,EAAc+mB,aAAanxC,EAAQ4M,OACrCjc,KAAKm8C,YAAa,EAGlB9sC,EAAQ4M,MAAQ,OAGG/Y,KAAjBmM,EAAQ2rB,MAAuC,OAAjB3rB,EAAQ2rB,KAExC,GAA4B,gBAAjB3rB,GAAQ2rB,KACjBh7B,KAAK86B,SAAW96B,KAAK2xE,YAAY31D,SAC5B,IAA+C,YAA3C,EAAItY,EAAkB,SAAG2L,EAAQ2rB,MAAoB,CAC9D,GAAIhf,GAAO3M,EAAQ2rB,KAAKhf,SAEX9Y,KAAT8Y,IACFhc,KAAK86B,SAAW9e,OAiBxBxZ,IAAK,kBACLgC,MAAO,SAAyButE,GAC9B,GAAIn8B,GAAQ51C,IASZ,IALA6V,EAAKnN,QAAQ+oE,EAAgB,SAAUhkE,GACrCmoC,EAAM+7B,YAAYlkE,QAIhB+rB,EAAMw4C,gBAAgBhyE,KAAK2xE,YAAaI,GAE1C,YADA/xE,KAAK2xE,YAAYM,QAAU,EAK7Bp8D,GAAKnN,QAAQqpE,EAAgB,SAAUhvE,EAAM5B,OAC9B+B,KAATH,GAA+B,OAATA,GAAkG,gBAAhE,KAATA,EAAuB,aAAc,EAAIW,EAAkB,SAAGX,MAC/G6yC,EAAM+7B,YAAYxwE,GAAK4B,QAmB7BP,IAAK,YAULgC,MAAO,SAAmBuO,GAIxB,GAAI4+D,IACFO,gBAAgB,EAChBC,QAAS,EACTC,QAAS,EACTC,iBAAiB,EACjBC,QAAS,EACTC,OAAQ,UAGNC,EAAkB38D,EAAK/C,QAAQC,EAAM,kBACzC,IAA+B,gBAApBy/D,GACTb,EAAYQ,OAASruE,OAAO0uE,GAC5Bb,EAAYS,OAAStuE,OAAO0uE,OACvB,IAA2G,gBAA3E,KAApBA,EAAkC,aAAc,EAAI9uE,EAAkB,SAAG8uE,IAAgC,CAC1H,GAAIC,GAAyB58D,EAAK/C,QAAQC,GAAO,kBAAmB,WAC9B,iBAA3B0/D,KACTd,EAAYQ,OAASruE,OAAO2uE,GAE9B,IAAIC,GAAyB78D,EAAK/C,QAAQC,GAAO,kBAAmB,WAC9B,iBAA3B2/D,KACTf,EAAYS,OAAStuE,OAAO4uE,IAIhC,GAAIC,GAAmB98D,EAAK/C,QAAQC,EAAM,mBAC1C,IAAgC,gBAArB4/D,GACThB,EAAYW,OAASxuE,OAAO6uE,OACvB,IAA6G,gBAA5E,KAArBA,EAAmC,aAAc,EAAIjvE,EAAkB,SAAGivE,IAAiC,CAC5H,GAAIC,GAA0B/8D,EAAK/C,QAAQC,GAAO,mBAAoB,WAC/B,iBAA5B6/D,KACTjB,EAAYW,OAASxuE,OAAO8uE,GAE9B,IAAIC,GAAyBh9D,EAAK/C,QAAQC,GAAO,mBAAoB,UAC/B,iBAA3B8/D,KACsB,QAA3BA,GAA+D,WAA3BA,IACtClB,EAAYY,OAASM,IAK3B,MAAOlB,MAWTnvE,IAAK,SACLgC,MAAO,SAAgB6K,EAAS0D,GAC9B/S,KAAK0V,WAAWrG,GAAS,GACzBrP,KAAK8yE,eAAe//D,GACpB8C,EAAK7P,WAAWhG,KAAK2xE,YAAa3xE,KAAK+yE,UAAUhgE,IACjD/S,KAAK2xE,YAAYn2C,QAAU/B,EAAcgC,SAAS,QAAS1oB,MAW7DvQ,IAAK,cACLgC,MAAO,SAAqBwuE,GAC1B,GAAIC,GAAYD,EAAUA,EAAQprE,MAAQorE,EAAQtrE,KAAO,CACrD1H,MAAK2xE,YAAYO,iBACnBlyE,KAAK2xE,YAAYQ,QAAUc,EAC3BjzE,KAAK2xE,YAAYS,QAAUa,EAE7B,IAAIC,GAAaF,EAAUA,EAAQlrE,IAAMkrE,EAAQ3wD,OAAS,CACtDriB,MAAK2xE,YAAYU,kBACnBryE,KAAK2xE,YAAYW,QAAUY,MAkB/B1wE,IAAK,uBACLgC,MAAO,SAA8B2uE,EAASC,GAC5C,IAAK,GAAI/yE,GAAI,EAAGA,EAAI+yE,EAAQ/wE,SAAUhC,EACpCL,KAAKqzE,cAAcF,EAASC,EAAQ/yE,OAcxCmC,IAAK,gBACLgC,MAAO,SAAuBuO,EAAM1D,GAClC,OAAgBnM,KAAZmM,OACiBnM,KAAjBmM,EAAQ2rB,MAAuC,OAAjB3rB,EAAQ2rB,KAA1C,CAEA,GAAItqB,GAAOrB,EAAQ2rB,IACnBjoB,GAAK3M,KAAKsK,OAYZlO,IAAK,kBACLgC,MAAO,SAAyBuO,GAI9B,IAAK,GAHD+pB,MAGK37B,EAAI,EAAGA,EAAI4R,EAAK1Q,SAAUlB,EAAG,CACpC,GAAIwwE,GAAc5+D,EAAK5R,GAGnBmyE,IACA95C,GAAMw4C,gBAAgBsB,EAAc3B,KACtCA,EAAc2B,GAGhBz9D,EAAKnN,QAAQipE,EAAa,SAAU4B,EAAK5yE,OAC3BuC,KAARqwE,IACAz2C,EAAIt7B,eAAeb,MAEe,IAAlC8wE,EAAetrE,QAAQxF,GAEzBm8B,EAAIn8B,MAEJm8B,EAAIn8B,GAAQ4yE,MAKlB,MAAOz2C,MAgCTt6B,IAAK,gBACLgC,MAAO,SAAuBuO,EAAMygE,EAAWhpE,GAI7C,IAAK,GAHDipE,OAAY,GAGPtyE,EAAI,EAAGA,EAAI4R,EAAK1Q,SAAUlB,EAAG,CACpC,GAAIwwE,GAAc5+D,EAAK5R,EAEvB,IAAIwwE,EAAYnwE,eAAegyE,GAAY,CAEzC,OAAkBtwE,MADlBuwE,EAAY9B,EAAY6B,KACqB,OAAdC,EAAoB,QAInD,IAAIH,KAKJ,IAJI95C,EAAMw4C,gBAAgBsB,EAAcG,KACtCA,EAAYH,GAGVG,EAAUjyE,eAAegJ,GAC3B,MAAOipE,GAAUjpE,IAOvB,GAAIxK,KAAK2xE,YAAYnwE,eAAegJ,GAClC,MAAOxK,MAAK2xE,YAAYnnE,EAI1B,MAAM,IAAI3E,OAAM,oDAAsD2E,EAAS,QAejFhI,IAAK,iBACLgC,MAAO,SAAwBuO,EAAMygE,GAInC,IAAK,GAHDnoE,MACAqoE,GAAe,QAAS,OAAQ,OAAQ,MAAO,WAE1CrzE,EAAI,EAAGA,EAAIqzE,EAAYrxE,SAAUhC,EAAG,CAC3C,GAAIszE,GAAMD,EAAYrzE,EACtBgL,GAAOsoE,GAAO3zE,KAAK4zE,cAAc7gE,EAAMygE,EAAWG,GAGpD,MAAOtoE,MAiBT7I,IAAK,iBACLgC,MAAO,SAAwBuO,GAC7B,GAAIykC,GAASx3C,KAET6zE,IAGJ7zE,MAAK8zE,qBAAqBD,EAAU9gE,GACpC/S,KAAK2xE,YAAc3xE,KAAK+zE,gBAAgBF,EAkBxC,KAAK,GAAIxzE,GAAI,EAAGA,EAAIoxE,EAAepvE,SAAUhC,GAdjC,SAAeA,GACzB,GAAIszE,GAAMlC,EAAepxE,GACrB2zE,EAAax8B,EAAOm6B,YAAYgC,GAChCM,EAAsBz8B,EAAO08B,eAAeL,EAAUF,EAG1D99D,GAAKnN,QAAQurE,EAAqB,SAAUzpE,EAAQrJ,GAClD6yE,EAAW7yE,GAAKqJ,IAGlBwpE,EAAWh4D,KAAOlY,OAAOkwE,EAAWh4D,MACpCg4D,EAAW/B,QAAUnuE,OAAOkwE,EAAW/B,UAIjC5xE,MAeVmC,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,GACxC,GAAIinE,GAAW5uE,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,QAGnF,QAAkCrC,KAA9BlD,KAAK6xE,eAAe51D,MAAxB,CAGA,GAAIm4D,GAAep0E,KAAK2xE,YAAY31D,KAAOhc,KAAKyS,KAAKkR,KAAKlf,KACtDzE,MAAK6xE,eAAe51D,OAASm4D,EAAep0E,KAAK6xE,eAAep1C,QAAQxgB,MAAMo4D,cAAgB,IAI9FD,GAAgBp0E,KAAK6xE,eAAep1C,QAAQxgB,MAAMq4D,aACpDF,EAAetwE,OAAO9D,KAAK6xE,eAAep1C,QAAQxgB,MAAMq4D,YAAct0E,KAAKyS,KAAKkR,KAAKlf,OAIvFzE,KAAK2lB,mBAAmB7F,EAAK2D,EAAUvW,EAAOyC,EAAGgM,EAAGw4D,GACpDn0E,KAAKu0E,gBAAgBz0D,GACrB9f,KAAKw0E,UAAU10D,EAAKnQ,EAAG3P,KAAKgc,KAAKkkC,MAAOi0B,EAAUC,QAUpD5xE,IAAK,kBACLgC,MAAO,SAAyBsb,GAC9B,OAAoC5c,KAAhClD,KAAK2xE,YAAY5kE,YAA4D,SAAhC/M,KAAK2xE,YAAY5kE,WAAuB,CACvF+S,EAAIiE,UAAY/jB,KAAK2xE,YAAY5kE,UACjC,IAAIiP,GAAOhc,KAAKi9B,SAChBnd,GAAI20D,SAASz4D,EAAKtU,KAAMsU,EAAKlU,IAAKkU,EAAK9J,MAAO8J,EAAK7J,YAevD3P,IAAK,YACLgC,MAAO,SAAmBsb,EAAKnQ,EAAGgM,GAChC,GAAIw4D,GAAW5uE,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,SAC/E6uE,EAAe7uE,UAAU,GAEzBmvE,EAAiB10E,KAAK20E,cAAc70D,EAAKnQ,EAAGgM,EAAGw4D,GAE/CS,GAAiB,EAAIrD,EAAyB,SAAGmD,EAAgB,EAErE/kE,GAAIilE,EAAe,GACnBj5D,EAAIi5D,EAAe,GAGnB90D,EAAI0kD,UAAY,OAChB70D,GAAQ3P,KAAKgc,KAAK9J,MAAQ,EACtBlS,KAAK2xE,YAAYY,QAAUvyE,KAAKgc,KAAK7J,OAASnS,KAAKgc,KAAKs0B,cAC1B,QAA5BtwC,KAAK2xE,YAAYY,SACnB52D,IAAM3b,KAAKgc,KAAK7J,OAASnS,KAAKgc,KAAKs0B,aAAe,GAEpB,WAA5BtwC,KAAK2xE,YAAYY,SACnB52D,IAAM3b,KAAKgc,KAAK7J,OAASnS,KAAKgc,KAAKs0B,aAAe,GAKtD,KAAK,GAAIjwC,GAAI,EAAGA,EAAIL,KAAK27C,UAAWt7C,IAAK,CACvC,GAAIq2B,GAAO12B,KAAKi0B,MAAM5zB,EACtB,IAAIq2B,GAAQA,EAAKm+C,OAAQ,CACvB,GAAI3iE,GAAQ,CACRlS,MAAK4xE,aAA0C,WAA3B5xE,KAAK2xE,YAAYz9B,MACvChiC,IAAUlS,KAAKgc,KAAK9J,MAAQwkB,EAAKxkB,OAAS,EACN,UAA3BlS,KAAK2xE,YAAYz9B,QAC1BhiC,GAASlS,KAAKgc,KAAK9J,MAAQwkB,EAAKxkB,MAElC,KAAK,GAAIhD,GAAI,EAAGA,EAAIwnB,EAAKm+C,OAAOxyE,OAAQ6M,IAAK,CAC3C,GAAI4lE,GAAQp+C,EAAKm+C,OAAO3lE,EACxB4Q,GAAIkb,KAAO85C,EAAM95C,IAEjB,IAAI+5C,GAAa/0E,KAAKg1E,UAAUF,EAAMtpE,MAAO4oE,EAAcU,EAAMG,aAC7DC,GAAa,EAAI3D,EAAyB,SAAGwD,EAAY,GACzDI,EAAYD,EAAW,GACvBD,EAAcC,EAAW,EAEzBJ,GAAM3pB,YAAc,IACtBrrC,EAAI8D,UAAYkxD,EAAM3pB,YACtBrrC,EAAI+D,YAAcoxD,EAClBn1D,EAAIs1D,SAAW,SAEjBt1D,EAAIiE,UAAYoxD,EAEZL,EAAM3pB,YAAc,GACtBrrC,EAAIu1D,WAAWP,EAAMl9C,KAAMjoB,EAAIuC,EAAOyJ,EAAIm5D,EAAM7C,SAElDnyD,EAAIw1D,SAASR,EAAMl9C,KAAMjoB,EAAIuC,EAAOyJ,EAAIm5D,EAAM7C,SAC9C//D,GAAS4iE,EAAM5iE,MAEjByJ,GAAK+a,EAAKvkB,YAgBhB3P,IAAK,gBACLgC,MAAO,SAAuBsb,EAAKnQ,EAAGgM,EAAGw4D,GAGvC,GAAIn0E,KAAK4xE,aAA0C,eAA3B5xE,KAAK2xE,YAAYz9B,QAA+C,IAArBl0C,KAAKk/C,YAAuB,CAC7FvvC,EAAI,EACJgM,EAAI,CAG2B,SAA3B3b,KAAK2xE,YAAYz9B,OACnBp0B,EAAIy1D,aAAe,aACnB55D,GAAK,GAC+B,WAA3B3b,KAAK2xE,YAAYz9B,OAC1Bp0B,EAAIy1D,aAAe,UACnB55D,GAAK,GAELmE,EAAIy1D,aAAe,aAGrBz1D,GAAIy1D,aAAepB,CAErB,QAAQxkE,EAAGgM,MAebnZ,IAAK,YACLgC,MAAO,SAAmBgH,EAAO4oE,EAAcoB,GAC7C,GAAIL,GAAY3pE,GAAS,UACrBypE,EAAcO,GAAsB,SACxC,IAAIpB,GAAgBp0E,KAAK6xE,eAAep1C,QAAQxgB,MAAMo4D,cAAe,CACnE,GAAI5oE,GAAU/G,KAAKJ,IAAI,EAAGI,KAAKL,IAAI,EAAG,GAAKrE,KAAK6xE,eAAep1C,QAAQxgB,MAAMo4D,cAAgBD,IAC7Fe,GAAYt/D,EAAKtK,gBAAgB4pE,EAAW1pE,GAC5CwpE,EAAcp/D,EAAKtK,gBAAgB0pE,EAAaxpE,GAElD,OAAQ0pE,EAAWF,MAYrBzyE,IAAK,cACLgC,MAAO,SAAqBsb,GAC1B,GAAI2D,GAAWle,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAC1E2H,EAAQ3H,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAG3E,OADAvF,MAAKy1E,cAAc31D,EAAK2D,EAAUvW,IAEhCgF,MAAOlS,KAAKgc,KAAK9J,MACjBC,OAAQnS,KAAKgc,KAAK7J,OAClBwpC,UAAW37C,KAAK27C,cAWpBn5C,IAAK,UACLgC,MAAO,WACL,GACImL,GAAI3P,KAAKgc,KAAKtU,KACdiU,EAAI3b,KAAKgc,KAAKlU,IAAM,CAExB,IAAI9H,KAAK4xE,YAAa,CACpB,GAAInwB,GAAwB,IAAlBzhD,KAAKgc,KAAK9J,KAEpB,QAAQlS,KAAK2xE,YAAYz9B,OACvB,IAAK,SACHvkC,EAAI8xC,EACJ9lC,EAAwB,IAAnB3b,KAAKgc,KAAK7J,MACf,MACF,KAAK,MACHxC,EAAI8xC,EACJ9lC,IAAM3b,KAAKgc,KAAK7J,OAdL,EAeX,MACF,KAAK,SACHxC,EAAI8xC,EACJ9lC,EAlBW,GA8BjB,OANEjU,KAAMiI,EACN7H,IAAK6T,EACLzJ,MAAOlS,KAAKgc,KAAK9J,MACjBC,OAAQnS,KAAKgc,KAAK7J,WAiBtB3P,IAAK,qBACLgC,MAAO,SAA4Bsb,EAAK2D,EAAUvW,GAChD,GAAIyC,GAAIpK,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,EACxEoW,EAAIpW,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,EACxE4uE,EAAW5uE,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,QAEnFvF,MAAKy1E,cAAc31D,EAAK2D,EAAUvW,GAClClN,KAAKgc,KAAKtU,KAAOiI,EAAsB,GAAlB3P,KAAKgc,KAAK9J,MAC/BlS,KAAKgc,KAAKlU,IAAM6T,EAAuB,GAAnB3b,KAAKgc,KAAK7J,OAC9BnS,KAAKgc,KAAKkkC,MAAQvkC,EAA2B,IAAtB,EAAI3b,KAAK27C,WAAmB37C,KAAK2xE,YAAY31D,KACnD,YAAbm4D,IACFn0E,KAAKgc,KAAKlU,KAAO,GAAM9H,KAAK2xE,YAAY31D,KACxChc,KAAKgc,KAAKlU,KAAO,EACjB9H,KAAKgc,KAAKkkC,OAAS,MAcvB19C,IAAK,sBACLgC,MAAO,SAA6Bsb,EAAK2D,EAAUvW,EAAOymE,GACxD,GAAIxkB,GAAW,SAAkBwiB,EAAagC,EAAKnpE,GACjD,MAAY,WAARmpE,EACa,QAAXnpE,EAAyB,GACtBmnE,EAAYnnE,OAGYtH,KAA7ByuE,EAAYgC,GAAKnpE,GAEZmnE,EAAYgC,GAAKnpE,GAGjBmnE,EAAYnnE,IAInByO,GACFzN,MAAO2jD,EAASnvD,KAAK2xE,YAAagC,EAAK,SACvC33D,KAAMmzC,EAASnvD,KAAK2xE,YAAagC,EAAK,QACtC+B,KAAMvmB,EAASnvD,KAAK2xE,YAAagC,EAAK,QACtCA,IAAKxkB,EAASnvD,KAAK2xE,YAAagC,EAAK,OACrC1B,QAAS9iB,EAASnvD,KAAK2xE,YAAagC,EAAK,WACzCxoB,YAAanrD,KAAK2xE,YAAYxmB,YAC9B8pB,YAAaj1E,KAAK2xE,YAAYsD,cAE5BxxD,GAAYvW,KACF,WAARymE,IAAiD,IAA7B3zE,KAAK2xE,YAAYn2C,SAAoBx7B,KAAK6xE,eAAe8D,mBAC/E18D,EAAO06D,IAAM,OAE2B,kBAA7B3zE,MAAK2xE,YAAYn2C,SAC1Bx7B,KAAK2xE,YAAYn2C,QAAQviB,EAAQjZ,KAAK6xE,eAAev7D,GAAImN,EAAUvW,GAKzE,IAAI0oE,GAAa,EAUjB,YATmB1yE,KAAf+V,EAAO06D,KAAoC,KAAf16D,EAAO06D,MAErCiC,GAAc38D,EAAO06D,IAAM,KAE7BiC,GAAc38D,EAAO+C,KAAO,MAAQ/C,EAAOy8D,KAE3C51D,EAAIkb,KAAO46C,EAAW1qE,QAAQ,KAAM,IACpC+N,EAAO+hB,KAAOlb,EAAIkb,KAClB/hB,EAAO9G,OAAS8G,EAAO+C,KAChB/C,KAWTzW,IAAK,iBACLgC,MAAO,SAAwBif,EAAUvW,GACvC,MAAOuW,KAAazjB,KAAK61E,eAAiB3oE,IAAUlN,KAAK81E,cAe3DtzE,IAAK,oBACLgC,MAAO,SAA2Bsb,EAAK2D,EAAUvW,EAAO6oE,GAEtD,MADe,IAAIvE,GAAc1xD,EAAK9f,KAAMyjB,EAAUvW,GACtC8oE,QAAQD,MAY1BvzE,IAAK,gBACLgC,MAAO,SAAuBsb,EAAK2D,EAAUvW,GAE3C,IAAwB,IAApBlN,KAAKm8C,YAAyBn8C,KAAK0jB,eAAeD,EAAUvW,GAAhE,CAEA,GAAI+oE,GAAQj2E,KAAKk2E,kBAAkBp2D,EAAK2D,EAAUvW,EAAOlN,KAAK6xE,eAAe51D,MAEzEjc,MAAK2xE,YAAYS,OAAS,GAAK6D,EAAM/jE,MAAQlS,KAAK2xE,YAAYS,SAChE6D,EAAM/jE,MAAQlS,KAAK2xE,YAAYS,QAGjCpyE,KAAKgc,KAAKs0B,YAAc2lC,EAAM9jE,OAC1BnS,KAAK2xE,YAAYW,OAAS,GAAK2D,EAAM9jE,OAASnS,KAAK2xE,YAAYW,SACjE2D,EAAM9jE,OAASnS,KAAK2xE,YAAYW,QAGlCtyE,KAAKi0B,MAAQgiD,EAAMhiD,MACnBj0B,KAAK27C,UAAYs6B,EAAMhiD,MAAM5xB,OAC7BrC,KAAKgc,KAAK9J,MAAQ+jE,EAAM/jE,MACxBlS,KAAKgc,KAAK7J,OAAS8jE,EAAM9jE,OACzBnS,KAAK61E,cAAgBpyD,EACrBzjB,KAAK81E,WAAa5oE,EAElBlN,KAAKm8C,YAAa,MAUpB35C,IAAK,UACLgC,MAAO,WACL,MAAwB,KAApBxE,KAAKgc,KAAK9J,OAAoC,IAArBlS,KAAKgc,KAAK7J,YAA8CjP,KAA9BlD,KAAK6xE,eAAe51D,SAIxDjc,KAAK2xE,YAAY31D,KAAOhc,KAAKyS,KAAKkR,KAAKlf,MACvCzE,KAAK6xE,eAAep1C,QAAQxgB,MAAMo4D,cAAgB,QAOvE7xE,IAAK,kBACLgC,MAAO,SAAyB2xE,EAAYC,GAC1C,IAAKA,GAAkC,gBAAdA,GAAwB,OAAO,CAExD,IAAIC,GAAkBD,EAAUjuE,MAAM,IAMtC,OAJAguE,GAAWn6D,KAAOq6D,EAAgB,GAAGnrE,QAAQ,KAAM,IACnDirE,EAAWT,KAAOW,EAAgB,GAClCF,EAAW3qE,MAAQ6qE,EAAgB,IAE5B,MAGJ78C,IAGT75B,GAAiB,QAAI65B,GAIf,SAAU55B,EAAQD,EAASO,GAqBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAhBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAI8sE,GAAkBpxE,EAAoB,IAEtCqxE,EAAkB5uE,EAAuB2uE,GAEzC70D,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAC3Bo2E,EAAYp2E,EAAoB,KAAc,QAO9Cq2E,EAAW,WAMb,QAASA,GAASlnE,EAASoD,EAAMuP,IAC/B,EAAItF,EAA0B,SAAG1c,KAAMu2E,GAEvCv2E,KAAKyS,KAAOA,EACZzS,KAAKgiB,YAAcA,EACnBhiB,KAAKqP,WACLrP,KAAK0V,WAAWrG,GAChBrP,KAAKw2E,YAAa,EAClBx2E,KAAKwL,SACLxL,KAAK49C,eAAiB,EACtB59C,KAAK69C,WAAa,IAClB79C,KAAKy+C,UAAYz+C,KAAKq8C,KACtBr8C,KAAK0+C,QAAU1+C,KAAKs8C,GAooBtB,OA5nBA,EAAI1/B,EAAuB,SAAG25D,IAC5B/zE,IAAK,UACLgC,MAAO,WACLxE,KAAKq8C,KAAOr8C,KAAKyS,KAAKyrC,MAAMl+C,KAAKqP,QAAQgtC,MACzCr8C,KAAKs8C,GAAKt8C,KAAKyS,KAAKyrC,MAAMl+C,KAAKqP,QAAQitC,OASzC95C,IAAK,UACLgC,MAAO,WACL,OAAO,KASThC,IAAK,aACLgC,MAAO,SAAoB6K,GACzBrP,KAAKqP,QAAUA,EACfrP,KAAKq8C,KAAOr8C,KAAKyS,KAAKyrC,MAAMl+C,KAAKqP,QAAQgtC,MACzCr8C,KAAKs8C,GAAKt8C,KAAKyS,KAAKyrC,MAAMl+C,KAAKqP,QAAQitC,IACvCt8C,KAAKsW,GAAKtW,KAAKqP,QAAQiH,MAiBzB9T,IAAK,WACLgC,MAAO,SAAkBsb,EAAK7G,EAAQwK,EAAUvW,EAAOoxC,GAErDx+B,EAAI+D,YAAc7jB,KAAKy2E,SAAS32D,EAAK7G,EAAQwK,EAAUvW,GACvD4S,EAAI8D,UAAY3K,EAAO/G,OAED,IAAlB+G,EAAOsK,OACTvjB,KAAK02E,gBAAgB52D,EAAK7G,EAAQqlC,GAElCt+C,KAAK22E,UAAU72D,EAAK7G,EAAQqlC,MAehC97C,IAAK,YACLgC,MAAO,SAAmBsb,EAAK7G,EAAQqlC,EAASG,EAAWC,GACzD,GAAI1+C,KAAKq8C,MAAQr8C,KAAKs8C,GAEpBt8C,KAAK42E,MAAM92D,EAAK7G,EAAQqlC,EAASG,EAAWC,OACvC,CACL,GAAIm4B,GAAkB72E,KAAK82E,eAAeh3D,GACtCi3D,GAAkB,EAAIxF,EAAyB,SAAGsF,EAAiB,GACnElnE,EAAIonE,EAAgB,GACpBp7D,EAAIo7D,EAAgB,GACpB90D,EAAS80D,EAAgB,EAE7B/2E,MAAKg3E,QAAQl3D,EAAK7G,EAAQtJ,EAAGgM,EAAGsG,OAepCzf,IAAK,kBACLgC,MAAO,SAAyBsb,EAAK7G,EAAQqlC,EAASG,EAAWC,GAE/D5+B,EAAIm3D,QAAU,OACd,IAAIC,IAAW,EAAG,EAMlB,KALqC,IAAjCvxE,MAAMC,QAAQqT,EAAOsK,UACvB2zD,EAAUj+D,EAAOsK,YAIKrgB,KAApB4c,EAAIwD,YAA2B,CAQjC,GAPAxD,EAAIkE,OAGJlE,EAAIwD,YAAY4zD,GAChBp3D,EAAIq3D,eAAiB,EAGjBn3E,KAAKq8C,MAAQr8C,KAAKs8C,GAEpBt8C,KAAK42E,MAAM92D,EAAK7G,EAAQqlC,OACnB,CACL,GAAI84B,GAAkBp3E,KAAK82E,eAAeh3D,GACtCu3D,GAAkB,EAAI9F,EAAyB,SAAG6F,EAAiB,GACnEznE,EAAI0nE,EAAgB,GACpB17D,EAAI07D,EAAgB,GACpBp1D,EAASo1D,EAAgB,EAE7Br3E,MAAKg3E,QAAQl3D,EAAK7G,EAAQtJ,EAAGgM,EAAGsG,GAIlCnC,EAAIwD,aAAa,IACjBxD,EAAIq3D,eAAiB,EACrBr3D,EAAIsE,cACC,CAEL,GAAIpkB,KAAKq8C,MAAQr8C,KAAKs8C,GAEpBx8B,EAAIw3D,WAAWt3E,KAAKq8C,KAAK1sC,EAAG3P,KAAKq8C,KAAK1gC,EAAG3b,KAAKs8C,GAAG3sC,EAAG3P,KAAKs8C,GAAG3gC,EAAGu7D,OAC1D,CACL,GAAIK,GAAkBv3E,KAAK82E,eAAeh3D,GACtC03D,GAAkB,EAAIjG,EAAyB,SAAGgG,EAAiB,GACnEE,EAAKD,EAAgB,GACrBE,EAAKF,EAAgB,GACrBG,EAAUH,EAAgB,EAE9Bx3E,MAAKg3E,QAAQl3D,EAAK7G,EAAQw+D,EAAIC,EAAIC,GAGpC33E,KAAKqkB,aAAavE,EAAK7G,GAEvB6G,EAAIoE,SAGJlkB,KAAKukB,cAAczE,EAAK7G,OAa5BzW,IAAK,qBACLgC,MAAO,SAA4Bw8C,EAAUlhC,EAAKzQ,GAChD,MAAIrP,MAAKq8C,MAAQr8C,KAAKs8C,GACbt8C,KAAK43E,oBAAoB52B,EAAUlhC,EAAKzQ,GAExCrP,KAAK63E,0BAA0B72B,EAAUlhC,EAAKzQ,MAWzD7M,IAAK,sBACLgC,MAAO,SAA6Bsb,GAClC,GAAIu8B,MACAC,IACJ,IAAIt8C,KAAKq8C,MAAQr8C,KAAKs8C,GACpBD,EAAOr8C,KAAK43E,oBAAoB53E,KAAKq8C,KAAMv8B,GAC3Cw8B,EAAKt8C,KAAK43E,oBAAoB53E,KAAKs8C,GAAIx8B,OAClC,CACL,GAAIg4D,GAAuB93E,KAAK82E,eAAeh3D,GAAK7T,MAAM,EAAG,GACzD8rE,GAAwB,EAAIxG,EAAyB,SAAGuG,EAAsB,GAC9EnoE,EAAIooE,EAAsB,GAC1Bp8D,EAAIo8D,EAAsB,EAE9B17B,GAAOr8C,KAAK63E,0BAA0B73E,KAAKq8C,KAAMv8B,GAAOnQ,EAAGA,EAAGgM,EAAGA,EAAGpL,IAAK,IAAMC,KAAM,GAAKyc,WAAY,IACtGqvB,EAAKt8C,KAAK63E,0BAA0B73E,KAAKq8C,KAAMv8B,GAAOnQ,EAAGA,EAAGgM,EAAGA,EAAGpL,IAAK,GAAKC,KAAM,GAAKyc,UAAW,IAEpG,OAASovB,KAAMA,EAAMC,GAAIA,MAW3B95C,IAAK,iBACLgC,MAAO,SAAwBsb,GAC7B,GAAInQ,OAAI,GACJgM,MAAI,GACJ0lC,EAAOrhD,KAAKq8C,KACZp6B,EAASjiB,KAAKqP,QAAQkwC,iBAgB1B,YAdYr8C,KAAR4c,OACuB5c,KAArBm+C,EAAK97B,MAAMrT,OACbmvC,EAAK97B,MAAM9C,OAAO3C,GAKlBuhC,EAAK97B,MAAMrT,MAAQmvC,EAAK97B,MAAMpT,QAChCxC,EAAI0xC,EAAK1xC,EAAuB,GAAnB0xC,EAAK97B,MAAMrT,MACxByJ,EAAI0lC,EAAK1lC,EAAIsG,IAEbtS,EAAI0xC,EAAK1xC,EAAIsS,EACbtG,EAAI0lC,EAAK1lC,EAAwB,GAApB0lC,EAAK97B,MAAMpT,SAElBxC,EAAGgM,EAAGsG,MAchBzf,IAAK,iBACLgC,MAAO,SAAwBmL,EAAGgM,EAAGsG,EAAQgnB,GAC3C,GAAI1mB,GAAqB,EAAb0mB,EAAiBvkC,KAAK47C,EAClC,QACE3wC,EAAGA,EAAIsS,EAASvd,KAAKie,IAAIJ,GACzB5G,EAAGA,EAAIsG,EAASvd,KAAKke,IAAIL,OAc7B/f,IAAK,4BACLgC,MAAO,SAAmC68C,EAAMvhC,EAAKzQ,GAkBnD,IAjBA,GAAIM,GAAIN,EAAQM,EACZgM,EAAItM,EAAQsM,EACZpL,EAAMlB,EAAQkB,IACdC,EAAOnB,EAAQmB,KACfyc,EAAY5d,EAAQ4d,UAGpB3c,EAAY,EACZ2R,EAASjiB,KAAKqP,QAAQkwC,kBACtB0B,MAAM,GACN1+B,MAAQ,GACRga,MAAmB,GACnB2kB,MAAkB,GAClBC,MAAa,GAEb1wC,EAAwB,IAAdF,EAAMC,GAEbD,GAAOC,GAAQF,EAXF,KAYlBG,EAAwB,IAAdF,EAAMC,GAEhBywC,EAAMjhD,KAAKw/C,eAAe7vC,EAAGgM,EAAGsG,EAAQxR,GACxC8R,EAAQ7d,KAAK27C,MAAMgB,EAAK1lC,EAAIslC,EAAItlC,EAAG0lC,EAAK1xC,EAAIsxC,EAAItxC,GAChD4sB,EAAmB8kB,EAAK9kB,iBAAiBzc,EAAKyC,GAC9C2+B,EAAkBx8C,KAAK2iB,KAAK3iB,KAAK48C,IAAIL,EAAItxC,EAAI0xC,EAAK1xC,EAAG,GAAKjL,KAAK48C,IAAIL,EAAItlC,EAAI0lC,EAAK1lC,EAAG,IACnFwlC,EAAa5kB,EAAmB2kB,IAC5Bx8C,KAAKge,IAAIy+B,GAXC,OAaHA,EAAa,EAElBl0B,EAAY,EACd1c,EAAME,EAEND,EAAOC,EAGLwc,EAAY,EACdzc,EAAOC,EAEPF,EAAME,EAGVH,GAIF,OAFA2wC,GAAI5yC,EAAIoC,EAEDwwC,KAaTz+C,IAAK,eACLgC,MAAO,SAAsBif,EAAUvW,GACrC,OAAiB,IAAbuW,EACK/e,KAAKJ,IAAItE,KAAK49C,eAAgB,GAAM59C,KAAKyS,KAAKkR,KAAKlf,QAE5C,IAAVyI,EACKxI,KAAKJ,IAAItE,KAAK69C,WAAY,GAAM79C,KAAKyS,KAAKkR,KAAKlf,OAE/CC,KAAKJ,IAAItE,KAAKqP,QAAQ6C,MAAO,GAAMlS,KAAKyS,KAAKkR,KAAKlf,UAe/DjC,IAAK,WACLgC,MAAO,SAAkBsb,EAAK7G,EAAQwK,EAAUvW,GAE9C,IAA6B,IAAzB+L,EAAOgkC,cAAyB,CAElC,GAA6B,SAAzBhkC,EAAOgkC,eAA4Bj9C,KAAKq8C,KAAK/lC,KAAOtW,KAAKs8C,GAAGhmC,GAAI,CAClE,GAAI0hE,GAAMl4D,EAAIm4D,qBAAqBj4E,KAAKq8C,KAAK1sC,EAAG3P,KAAKq8C,KAAK1gC,EAAG3b,KAAKs8C,GAAG3sC,EAAG3P,KAAKs8C,GAAG3gC,GAC5E8kC,MAAY,GACZC,MAAU,EAgBd,OAfAD,GAAYzgD,KAAKq8C,KAAKhtC,QAAQ7D,MAAMyB,UAAUD,OAC9C0zC,EAAU1gD,KAAKs8C,GAAGjtC,QAAQ7D,MAAMyB,UAAUD,QAEf,IAAvBhN,KAAKq8C,KAAK54B,WAA2C,IAArBzjB,KAAKs8C,GAAG74B,UAC1Cg9B,EAAY5qC,EAAKtK,gBAAgBvL,KAAKq8C,KAAKhtC,QAAQ7D,MAAMwB,OAAQiM,EAAOxN,SACxEi1C,EAAU7qC,EAAKtK,gBAAgBvL,KAAKs8C,GAAGjtC,QAAQ7D,MAAMwB,OAAQiM,EAAOxN,WACpC,IAAvBzL,KAAKq8C,KAAK54B,WAA0C,IAArBzjB,KAAKs8C,GAAG74B,SAChDi9B,EAAU1gD,KAAKs8C,GAAGjtC,QAAQ7D,MAAMwB,QACA,IAAvBhN,KAAKq8C,KAAK54B,WAA2C,IAArBzjB,KAAKs8C,GAAG74B,WACjDg9B,EAAYzgD,KAAKq8C,KAAKhtC,QAAQ7D,MAAMwB;8NAEtCgrE,EAAIE,aAAa,EAAGz3B,GACpBu3B,EAAIE,aAAa,EAAGx3B,GAGbs3B,EAGT,MAA6B,OAAzB/+D,EAAOgkC,cACFpnC,EAAKtK,gBAAgBvL,KAAKs8C,GAAGjtC,QAAQ7D,MAAMwB,OAAQiM,EAAOxN,SAG1DoK,EAAKtK,gBAAgBvL,KAAKq8C,KAAKhtC,QAAQ7D,MAAMwB,OAAQiM,EAAOxN,SAGrE,MAAOoK,GAAKtK,gBAAgB0N,EAAOzN,MAAOyN,EAAOxN,YAgBrDjJ,IAAK,UACLgC,MAAO,SAAiBsb,EAAK7G,EAAQtJ,EAAGgM,EAAGsG,GAEzCjiB,KAAKqkB,aAAavE,EAAK7G,GAGvB6G,EAAIwiC,YACJxiC,EAAIq4D,IAAIxoE,EAAGgM,EAAGsG,EAAQ,EAAG,EAAIvd,KAAK47C,IAAI,GACtCxgC,EAAIoE,SAGJlkB,KAAKukB,cAAczE,EAAK7G,MAqB1BzW,IAAK,oBACLgC,MAAO,SAA2B+8C,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAK5oC,GAE7D,GAAIjP,GAAc,CAClB,IAAIhK,KAAKq8C,MAAQr8C,KAAKs8C,GACpBtyC,EAAchK,KAAKo4E,mBAAmB72B,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,OACzD,CACL,GAAIw2B,GAAkBr4E,KAAK82E,mBAAe5zE,IACtCo1E,GAAkB,EAAI/G,EAAyB,SAAG8G,EAAiB,GACnE1oE,EAAI2oE,EAAgB,GACpB38D,EAAI28D,EAAgB,GACpBr2D,EAASq2D,EAAgB,GAEzBl4B,EAAKzwC,EAAIgyC,EACTxB,EAAKxkC,EAAIimC,CACb53C,GAActF,KAAKge,IAAIhe,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,GAAMl+B,GAGxD,MAAOjY,MAgBTxH,IAAK,qBACLgC,MAAO,SAA4B+8C,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACrD,GAAIxvB,GAAKqvB,EAAKF,EACVg3B,EAAK72B,EAAKF,EACVg3B,EAAYpmD,EAAKA,EAAKmmD,EAAKA,EAC3BE,IAAM92B,EAAKJ,GAAMnvB,GAAMwvB,EAAKJ,GAAM+2B,GAAMC,CAExCC,GAAI,EACNA,EAAI,EACKA,EAAI,IACbA,EAAI,EAGN,IAAI9oE,GAAI4xC,EAAKk3B,EAAIrmD,EACbzW,EAAI6lC,EAAKi3B,EAAIF,EACbn4B,EAAKzwC,EAAIgyC,EACTxB,EAAKxkC,EAAIimC,CAQb,OAAOl9C,MAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,MAclC39C,IAAK,eACLgC,MAAO,SAAsBsb,EAAKzN,EAAUisC,EAAS76B,EAAUvW,EAAO+L,GAEpE,GAAIsJ,OAAQ,GACRm2D,MAAa,GACb15B,MAAQ,GACRC,MAAQ,GACR05B,MAAc,GACdv7B,MAAc,GACd32C,MAAO,GACPmd,EAAY3K,EAAO/G,KAsBvB,IApBiB,SAAbG,GACF2sC,EAAQh/C,KAAKq8C,KACb4C,EAAQj/C,KAAKs8C,GACbq8B,EAAc,GACdv7B,EAAcnkC,EAAOukC,eACrB/2C,EAAOwS,EAAOwkC,eACQ,OAAbprC,GACT2sC,EAAQh/C,KAAKs8C,GACb2C,EAAQj/C,KAAKq8C,KACbs8B,GAAe,GACfv7B,EAAcnkC,EAAOkkC,aACrB12C,EAAOwS,EAAOokC,cAEd2B,EAAQh/C,KAAKs8C,GACb2C,EAAQj/C,KAAKq8C,KACbe,EAAcnkC,EAAOqkC,iBACrB72C,EAAOwS,EAAOskC,iBAIZyB,GAASC,EACX,GAAiB,WAAb5sC,EAEF,IAAoC,IAAhCrS,KAAKqP,QAAQyuC,OAAOhuC,QAAkB,CACxC4oE,EAAa14E,KAAK44E,mBAAmB55B,EAAOl/B,GAAO+hC,IAAKvD,GACxD,IAAIu6B,GAAW74E,KAAKm/C,SAASz6C,KAAKJ,IAAI,EAAKI,KAAKL,IAAI,EAAKq0E,EAAWrqE,EAAIsqE,IAAer6B,EACvF/7B,GAAQ7d,KAAK27C,MAAMq4B,EAAW/8D,EAAIk9D,EAASl9D,EAAG+8D,EAAW/oE,EAAIkpE,EAASlpE,OAEtE4S,GAAQ7d,KAAK27C,MAAMrB,EAAMrjC,EAAIsjC,EAAMtjC,EAAGqjC,EAAMrvC,EAAIsvC,EAAMtvC,GACtD+oE,EAAa14E,KAAK44E,mBAAmB55B,EAAOl/B,OAG9CyC,GAAQ7d,KAAK27C,MAAMrB,EAAMrjC,EAAIsjC,EAAMtjC,EAAGqjC,EAAMrvC,EAAIsvC,EAAMtvC,GACtD+oE,EAAa14E,KAAKm/C,SAAS,GAAKb,OAE7B,CAEL,GAAIw6B,GAAmB94E,KAAK82E,eAAeh3D,GACvCi5D,GAAmB,EAAIxH,EAAyB,SAAGuH,EAAkB,GACrEnpE,EAAIopE,EAAiB,GACrBp9D,EAAIo9D,EAAiB,GACrB92D,EAAS82D,EAAiB,EAEb,UAAb1mE,GACFqmE,EAAa14E,KAAK44E,mBAAmB54E,KAAKq8C,KAAMv8B,GAAOnQ,EAAGA,EAAGgM,EAAGA,EAAGpL,IAAK,IAAMC,KAAM,GAAKyc,WAAY,IACrG1K,GAAwB,EAAhBm2D,EAAWrqE,EAAS3J,KAAK47C,GAAK,IAAM57C,KAAK47C,GAAK,GAAM57C,KAAK47C,IAC3C,OAAbjuC,GACTqmE,EAAa14E,KAAK44E,mBAAmB54E,KAAKq8C,KAAMv8B,GAAOnQ,EAAGA,EAAGgM,EAAGA,EAAGpL,IAAK,GAAKC,KAAM,EAAKyc,UAAW,IACnG1K,GAAwB,EAAhBm2D,EAAWrqE,EAAS3J,KAAK47C,GAAK,IAAM57C,KAAK47C,GAAK,IAAM57C,KAAK47C,KAEjEo4B,EAAa14E,KAAKw/C,eAAe7vC,EAAGgM,EAAGsG,EAAQ,MAC/CM,EAAQ,oBAIK,WAAblQ,GAAyB+qC,EAAc,IAAGx5B,IAAc,EAC5D,IAAIvhB,GAAS,GAAK+6C,EAAc,EAAIx5B,CAMpC,QAAS9H,MAAO48D,EAAYrkE,MAFV1E,EAFT+oE,EAAW/oE,EAAa,GAATtN,EAAeqC,KAAKie,IAAIJ,GAEvB5G,EADhB+8D,EAAW/8D,EAAa,GAATtZ,EAAeqC,KAAKke,IAAIL,IAGHA,MAAOA,EAAOlgB,OAAQA,EAAQoE,KAAMA,MAanFjE,IAAK,gBACLgC,MAAO,SAAuBsb,EAAK7G,EAAQwK,EAAUvW,EAAOsxC,GAE1D1+B,EAAI+D,YAAc7jB,KAAKy2E,SAAS32D,EAAK7G,EAAQwK,EAAUvW,GACvD4S,EAAIiE,UAAYjE,EAAI+D,YACpB/D,EAAI8D,UAAY3K,EAAO/G,MAEvBokE,EAAUzwD,KAAK/F,EAAK0+B,GAGpBx+C,KAAKqkB,aAAavE,EAAK7G,GACvB6G,EAAIwE,OAEJtkB,KAAKukB,cAAczE,EAAK7G,MAU1BzW,IAAK,eACLgC,MAAO,SAAsBsb,EAAK7G,IACV,IAAlBA,EAAO4J,SACT/C,EAAIgD,YAAc7J,EAAO6J,YACzBhD,EAAIiD,WAAa9J,EAAO+J,WACxBlD,EAAImD,cAAgBhK,EAAOiK,QAC3BpD,EAAIqD,cAAgBlK,EAAOmK,YAW/B5gB,IAAK,gBACLgC,MAAO,SAAuBsb,EAAK7G,IACX,IAAlBA,EAAO4J,SACT/C,EAAIgD,YAAc,gBAClBhD,EAAIiD,WAAa,EACjBjD,EAAImD,cAAgB,EACpBnD,EAAIqD,cAAgB,OAInBozD,IAGT52E,GAAiB,QAAI42E,GAIf,SAAU32E,EAAQD,EAASO,GA6BjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAxBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CE,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCvI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GA0DvCq8D,EAAW,WACb,QAASA,MACP,EAAIt8D,EAA0B,SAAG1c,KAAMg5E,GA0DzC,OAvDA,EAAIp8D,EAAuB,SAAGo8D,EAAU,OACtCx2E,IAAK,YAeLgC,MAAO,SAAmBy0E,EAAQz6B,GAC1By6B,YAAkBtzE,SACtBszE,GAAUA,GAQZ,KAAK,GALDtpE,GAAI6uC,EAAU1iC,MAAMnM,EACpBgM,EAAI6iC,EAAU1iC,MAAMH,EACpB4G,EAAQi8B,EAAUj8B,MAClBlgB,EAASm8C,EAAUn8C,OAEdhC,EAAI,EAAGA,EAAI44E,EAAO52E,SAAUhC,EAAG,CACtC,GAAIoB,GAAIw3E,EAAO54E,GACX64E,EAAKz3E,EAAEkO,EAAIjL,KAAKie,IAAIJ,GAAS9gB,EAAEka,EAAIjX,KAAKke,IAAIL,GAC5C42D,EAAK13E,EAAEkO,EAAIjL,KAAKke,IAAIL,GAAS9gB,EAAEka,EAAIjX,KAAKie,IAAIJ,EAEhD9gB,GAAEkO,EAAIA,EAAItN,EAAS62E,EACnBz3E,EAAEka,EAAIA,EAAItZ,EAAS82E,MAavB32E,IAAK,WACLgC,MAAO,SAAkBsb,EAAKm5D,GAC5Bn5D,EAAIwiC,YACJxiC,EAAI8kB,OAAOq0C,EAAO,GAAGtpE,EAAGspE,EAAO,GAAGt9D,EAClC,KAAK,GAAItb,GAAI,EAAGA,EAAI44E,EAAO52E,SAAUhC,EACnCyf,EAAI2iC,OAAOw2B,EAAO54E,GAAGsP,EAAGspE,EAAO54E,GAAGsb,EAEpCmE,GAAIs5D,gBAGDJ,KASLK,EAAQ,SAAUC,GAGpB,QAASD,KAEP,OADA,EAAI38D,EAA0B,SAAG1c,KAAMq5E,IAChC,EAAIt0D,EAAqC,SAAG/kB,MAAOq5E,EAAMrlE,YAAa,EAAI6Q,EAA0B,SAAGw0D,IAAQ1/D,MAAM3Z,KAAMuF,YAuBpI,OA3BA,EAAI0f,EAAoB,SAAGo0D,EAAOC,IAOlC,EAAI18D,EAAuB,SAAGy8D,EAAO,OACnC72E,IAAK,OAULgC,MAAO,SAAcsb,EAAK0+B,GAGxB,GAAIy6B,KAAYtpE,EAAG,EAAGgM,EAAG,IAAOhM,GAAI,EAAGgM,EAAG,KAAShM,GAAI,GAAKgM,EAAG,IAAOhM,GAAI,EAAGgM,GAAI,IAEjFq9D,GAASO,UAAUN,EAAQz6B,GAC3Bw6B,EAASQ,SAAS15D,EAAKm5D,OAGpBI,GACPL,GAOEr/C,EAAS,WACX,QAASA,MACP,EAAIjd,EAA0B,SAAG1c,KAAM25B,GAqBzC,OAlBA,EAAI/c,EAAuB,SAAG+c,EAAQ,OACpCn3B,IAAK,OAULgC,MAAO,SAAcsb,EAAK0+B,GACxB,GAAI1iC,IAAUnM,GAAI,GAAKgM,EAAG,EAE1Bq9D,GAASO,UAAUz9D,EAAO0iC,GAC1B1+B,EAAIu7B,OAAOv/B,EAAMnM,EAAGmM,EAAMH,EAAsB,GAAnB6iC,EAAUn8C,YAGpCs3B,KAQL8/C,EAAM,WACR,QAASA,MACP,EAAI/8D,EAA0B,SAAG1c,KAAMy5E,GAkCzC,OA/BA,EAAI78D,EAAuB,SAAG68D,EAAK,OACjCj3E,IAAK,OAULgC,MAAO,SAAcsb,EAAK0+B,GAcxB,GAAIy6B,KAAYtpE,EAAG,EAAGgM,EAAG,KAAShM,EAAG,EAAGgM,GAAI,KAAShM,GAAI,IAAMgM,GAAI,KAAShM,GAAI,IAAMgM,EAAG,IAEzFq9D,GAASO,UAAUN,EAAQz6B,GAC3Bw6B,EAASQ,SAAS15D,EAAKm5D,OAGpBQ,KAQLnD,EAAY,WACd,QAASA,MACP,EAAI55D,EAA0B,SAAG1c,KAAMs2E,GAiCzC,OA9BA,EAAI15D,EAAuB,SAAG05D,EAAW,OACvC9zE,IAAK,OAULgC,MAAO,SAAcsb,EAAK0+B,GACxB,GAAI/3C,EAKJ,QAJI+3C,EAAU/3C,OACZA,EAAO+3C,EAAU/3C,KAAKoY,eAGhBpY,GACN,IAAK,SACHkzB,EAAO9T,KAAK/F,EAAK0+B,EACjB,MACF,KAAK,MACHi7B,EAAI5zD,KAAK/F,EAAK0+B,EACd,MACF,KAAK,QACL,QACE66B,EAAMxzD,KAAK/F,EAAK0+B,QAIjB83B,IAGT32E,GAAiB,QAAI22E,GAIf,SAAU12E,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAOvC+8D,EAAkB,WAMpB,QAASA,GAAgBjnE,EAAMknE,EAAatqE,IAC1C,EAAIqN,EAA0B,SAAG1c,KAAM05E,GAEvC15E,KAAKyS,KAAOA,EACZzS,KAAK25E,YAAcA,EACnB35E,KAAK45E,cACL55E,KAAK0V,WAAWrG,GAChBrP,KAAK65E,WAAa,EAigBpB,OArfA,EAAIj9D,EAAuB,SAAG88D,IAC5Bl3E,IAAK,aACLgC,MAAO,SAAoB6K,GACzBrP,KAAKqP,QAAUA,EACfrP,KAAK85E,cAAgB,EAAI95E,KAAKqP,QAAQ0qE,MAGtC/5E,KAAKg6E,uBAAyB,EAAIt1E,KAAKJ,IAAI,EAAGI,KAAKL,IAAI,EAAGrE,KAAKqP,QAAQ4qE,kBASzEz3E,IAAK,eACLgC,MAAO,WACL,GAAImL,GAAkC,IAA9BjL,KAAKke,IAAI5iB,KAAK65E,aACtB,OAAOlqE,GAAIjL,KAAKwJ,MAAMyB,MAWxBnN,IAAK,QACLgC,MAAO,WACL,GAA2C,IAAvCxE,KAAKqP,QAAQ6qE,uBAA+Bl6E,KAAK25E,YAAYQ,mBAAmB93E,OAAS,EAAG,CAC9F,GAAIg/C,OAAO,GACPnD,EAAQl+C,KAAKyS,KAAKyrC,MAClBk8B,EAAcp6E,KAAK25E,YAAYQ,mBAC/BE,EAAYD,EAAY/3E,OAGxBu3E,EAAgB55E,KAAKs6E,mBAAmBp8B,EAAOk8B,EAGnDp6E,MAAK45E,cAAgBA,CAGrB,KAAK,GAAIv5E,GAAI,EAAGA,EAAIg6E,EAAWh6E,IAC7BghD,EAAOnD,EAAMk8B,EAAY/5E,IACrBghD,EAAKhyC,QAAQouB,KAAO,GAEtBz9B,KAAKu6E,uBAAuBX,EAAcn6E,KAAM4hD,OAaxD7+C,IAAK,yBACLgC,MAAO,SAAgCg2E,EAAcn5B,GACnDrhD,KAAKy6E,sBAAsBD,EAAaE,SAASC,GAAIt5B,GACrDrhD,KAAKy6E,sBAAsBD,EAAaE,SAASE,GAAIv5B,GACrDrhD,KAAKy6E,sBAAsBD,EAAaE,SAASG,GAAIx5B,GACrDrhD,KAAKy6E,sBAAsBD,EAAaE,SAASI,GAAIz5B,MAavD7+C,IAAK,wBACLgC,MAAO,SAA+Bg2E,EAAcn5B,GAElD,GAAIm5B,EAAaO,cAAgB,EAAG,CAClC,GAAI36B,OAAK,GACLD,MAAK,GACL3hC,MAAW,EAGf4hC,GAAKo6B,EAAaQ,aAAarrE,EAAI0xC,EAAK1xC,EACxCwwC,EAAKq6B,EAAaQ,aAAar/D,EAAI0lC,EAAK1lC,EACxC6C,EAAW9Z,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,GAKhC3hC,EAAWg8D,EAAaS,SAAWj7E,KAAK85E,cAC1C95E,KAAKk7E,iBAAiB18D,EAAU4hC,EAAID,EAAIkB,EAAMm5B,GAGX,IAA/BA,EAAaO,cACf/6E,KAAKu6E,uBAAuBC,EAAcn5B,GAGtCm5B,EAAaE,SAASxlE,KAAKoB,IAAM+qC,EAAK/qC,IAExCtW,KAAKk7E,iBAAiB18D,EAAU4hC,EAAID,EAAIkB,EAAMm5B,OAmBxDh4E,IAAK,mBACLgC,MAAO,SAA0Bga,EAAU4hC,EAAID,EAAIkB,EAAMm5B,GACtC,IAAbh8D,IACFA,EAAW,GACX4hC,EAAK5hC,GAGHxe,KAAKg6E,uBAAyB,GAAK34B,EAAK97B,MAAMtD,SAChDzD,EAAW9Z,KAAKJ,IAAI,GAAMtE,KAAKg6E,uBAAyB34B,EAAK97B,MAAMtD,OAAQzD,EAAW6iC,EAAK97B,MAAMtD,QAKnG,IAAIk5D,GAAen7E,KAAKqP,QAAQ6qE,sBAAwBM,EAAa/8C,KAAO4jB,EAAKhyC,QAAQouB,KAAO/4B,KAAK48C,IAAI9iC,EAAU,GAC/G48D,EAAKh7B,EAAK+6B,EACVE,EAAKl7B,EAAKg7B,CAEdn7E,MAAK25E,YAAY2B,OAAOj6B,EAAK/qC,IAAI3G,GAAKyrE,EACtCp7E,KAAK25E,YAAY2B,OAAOj6B,EAAK/qC,IAAIqF,GAAK0/D,KAaxC74E,IAAK,qBACLgC,MAAO,SAA4B05C,EAAOk8B,GAUxC,IAAK,GATD/4B,OAAO,GACPg5B,EAAYD,EAAY/3E,OAExB0gD,EAAO7E,EAAMk8B,EAAY,IAAIzqE,EAC7BkzC,EAAO3E,EAAMk8B,EAAY,IAAIz+D,EAC7BqnC,EAAO9E,EAAMk8B,EAAY,IAAIzqE,EAC7BmzC,EAAO5E,EAAMk8B,EAAY,IAAIz+D,EAGxBtb,EAAI,EAAGA,EAAIg6E,EAAWh6E,IAAK,CAClC,GAAIk7E,GAAQr9B,EAAMk8B,EAAY/5E,IAC1BsP,EAAI4rE,EAAM5rE,EACVgM,EAAI4/D,EAAM5/D,CACV4/D,GAAMlsE,QAAQouB,KAAO,IACnB9tB,EAAIozC,IACNA,EAAOpzC,GAELA,EAAIqzC,IACNA,EAAOrzC,GAELgM,EAAIknC,IACNA,EAAOlnC,GAELA,EAAImnC,IACNA,EAAOnnC,IAKb,GAAIghB,GAAWj4B,KAAKge,IAAIsgC,EAAOD,GAAQr+C,KAAKge,IAAIogC,EAAOD,EACnDlmB,GAAW,GACbkmB,GAAQ,GAAMlmB,EACdmmB,GAAQ,GAAMnmB,IAGZomB,GAAQ,GAAMpmB,EACdqmB,GAAQ,GAAMrmB,EAIlB,IACI6+C,GAAW92E,KAAKJ,IADE,KACmBI,KAAKge,IAAIsgC,EAAOD,IACrD04B,EAAe,GAAMD,EACrBE,EAAU,IAAO34B,EAAOC,GACxB24B,EAAU,IAAO94B,EAAOC,GAGxB82B,GACFn6E,MACEu7E,cAAgBrrE,EAAG,EAAGgM,EAAG,GACzB8hB,KAAM,EACNnU,OACEy5B,KAAM24B,EAAUD,EAAcz4B,KAAM04B,EAAUD,EAC9C54B,KAAM84B,EAAUF,EAAc34B,KAAM64B,EAAUF,GAEhDz/D,KAAMw/D,EACNP,SAAU,EAAIO,EACdd,UAAYxlE,KAAM,MAClBo+B,SAAU,EACVsoC,MAAO,EACPb,cAAe,GAGnB/6E,MAAK67E,aAAajC,EAAcn6E,KAGhC,KAAK,GAAI0f,GAAK,EAAGA,EAAKk7D,EAAWl7D,IAC/BkiC,EAAOnD,EAAMk8B,EAAYj7D,IACrBkiC,EAAKhyC,QAAQouB,KAAO,GACtBz9B,KAAK87E,aAAalC,EAAcn6E,KAAM4hD,EAK1C,OAAOu4B,MAYTp3E,IAAK,oBACLgC,MAAO,SAA2Bg2E,EAAcn5B,GAC9C,GAAI25B,GAAeR,EAAaQ,aAC5Be,EAAYvB,EAAa/8C,KAAO4jB,EAAKhyC,QAAQouB,KAC7Cu+C,EAAe,EAAID,CAEvBf,GAAarrE,EAAIqrE,EAAarrE,EAAI6qE,EAAa/8C,KAAO4jB,EAAK1xC,EAAI0xC,EAAKhyC,QAAQouB,KAC5Eu9C,EAAarrE,GAAKqsE,EAElBhB,EAAar/D,EAAIq/D,EAAar/D,EAAI6+D,EAAa/8C,KAAO4jB,EAAK1lC,EAAI0lC,EAAKhyC,QAAQouB,KAC5Eu9C,EAAar/D,GAAKqgE,EAElBxB,EAAa/8C,KAAOs+C,CACpB,IAAIE,GAAcv3E,KAAKJ,IAAII,KAAKJ,IAAI+8C,EAAKlvC,OAAQkvC,EAAKp/B,QAASo/B,EAAKnvC,MACpEsoE,GAAalnC,SAAWknC,EAAalnC,SAAW2oC,EAAcA,EAAczB,EAAalnC,YAa3F9wC,IAAK,eACLgC,MAAO,SAAsBg2E,EAAcn5B,EAAM66B,GACzB,GAAlBA,OAA6Ch5E,KAAnBg5E,GAE5Bl8E,KAAKm8E,kBAAkB3B,EAAcn5B,EAGvC,IAAI/3B,GAAQkxD,EAAaE,SAASC,GAAGrxD,MACjC8yD,MAAS,EAITA,GAHA9yD,EAAM05B,KAAO3B,EAAK1xC,EAEhB2Z,EAAMw5B,KAAOzB,EAAK1lC,EACX,KAEA,KAIP2N,EAAMw5B,KAAOzB,EAAK1lC,EACX,KAEA,KAIb3b,KAAKq8E,eAAe7B,EAAcn5B,EAAM+6B,MAa1C55E,IAAK,iBACLgC,MAAO,SAAwBg2E,EAAcn5B,EAAM+6B,GACjD,GAAI1B,GAAWF,EAAaE,SAAS0B,EAErC,QAAQ1B,EAASK,eACf,IAAK,GAEHL,EAASA,SAASxlE,KAAOmsC,EACzBq5B,EAASK,cAAgB,EACzB/6E,KAAKm8E,kBAAkBzB,EAAUr5B,EACjC,MACF,KAAK,GAICq5B,EAASA,SAASxlE,KAAKvF,IAAM0xC,EAAK1xC,GAAK+qE,EAASA,SAASxlE,KAAKyG,IAAM0lC,EAAK1lC,GAC3E0lC,EAAK1xC,GAAK3P,KAAKs8E,eACfj7B,EAAK1lC,GAAK3b,KAAKs8E,iBAEft8E,KAAK67E,aAAanB,GAClB16E,KAAK87E,aAAapB,EAAUr5B,GAE9B,MACF,KAAK,GAEHrhD,KAAK87E,aAAapB,EAAUr5B,OAclC7+C,IAAK,eACLgC,MAAO,SAAsBg2E,GAE3B,GAAI+B,GAAgB,IACe,KAA/B/B,EAAaO,gBACfwB,EAAgB/B,EAAaE,SAASxlE,KACtCslE,EAAa/8C,KAAO,EACpB+8C,EAAaQ,aAAarrE,EAAI,EAC9B6qE,EAAaQ,aAAar/D,EAAI,GAEhC6+D,EAAaO,cAAgB,EAC7BP,EAAaE,SAASxlE,KAAO,KAC7BlV,KAAKw8E,cAAchC,EAAc,MACjCx6E,KAAKw8E,cAAchC,EAAc,MACjCx6E,KAAKw8E,cAAchC,EAAc,MACjCx6E,KAAKw8E,cAAchC,EAAc,MAEZ,MAAjB+B,GACFv8E,KAAK87E,aAAatB,EAAc+B,MAepC/5E,IAAK,gBACLgC,MAAO,SAAuBg2E,EAAc4B,GAC1C,GAAIr5B,OAAO,GACPC,MAAO,GACPH,MAAO,GACPC,MAAO,GACP25B,EAAY,GAAMjC,EAAax+D,IACnC,QAAQogE,GACN,IAAK,KACHr5B,EAAOy3B,EAAalxD,MAAMy5B,KAC1BC,EAAOw3B,EAAalxD,MAAMy5B,KAAO05B,EACjC55B,EAAO23B,EAAalxD,MAAMu5B,KAC1BC,EAAO03B,EAAalxD,MAAMu5B,KAAO45B,CACjC,MACF,KAAK,KACH15B,EAAOy3B,EAAalxD,MAAMy5B,KAAO05B,EACjCz5B,EAAOw3B,EAAalxD,MAAM05B,KAC1BH,EAAO23B,EAAalxD,MAAMu5B,KAC1BC,EAAO03B,EAAalxD,MAAMu5B,KAAO45B,CACjC,MACF,KAAK,KACH15B,EAAOy3B,EAAalxD,MAAMy5B,KAC1BC,EAAOw3B,EAAalxD,MAAMy5B,KAAO05B,EACjC55B,EAAO23B,EAAalxD,MAAMu5B,KAAO45B,EACjC35B,EAAO03B,EAAalxD,MAAMw5B,IAC1B,MACF,KAAK,KACHC,EAAOy3B,EAAalxD,MAAMy5B,KAAO05B,EACjCz5B,EAAOw3B,EAAalxD,MAAM05B,KAC1BH,EAAO23B,EAAalxD,MAAMu5B,KAAO45B,EACjC35B,EAAO03B,EAAalxD,MAAMw5B,KAI9B03B,EAAaE,SAAS0B,IACpBpB,cAAgBrrE,EAAG,EAAGgM,EAAG,GACzB8hB,KAAM,EACNnU,OAASy5B,KAAMA,EAAMC,KAAMA,EAAMH,KAAMA,EAAMC,KAAMA,GACnD9mC,KAAM,GAAMw+D,EAAax+D,KACzBi/D,SAAU,EAAIT,EAAaS,SAC3BP,UAAYxlE,KAAM,MAClBo+B,SAAU,EACVsoC,MAAOpB,EAAaoB,MAAQ,EAC5Bb,cAAe,MAgBnBv4E,IAAK,SACLgC,MAAO,SAAgBsb,EAAKtU,OACCtI,KAAvBlD,KAAK45E,gBAEP95D,EAAI8D,UAAY,EAEhB5jB,KAAK08E,YAAY18E,KAAK45E,cAAcn6E,KAAMqgB,EAAKtU,OAcnDhJ,IAAK,cACLgC,MAAO,SAAqBm4E,EAAQ78D,EAAKtU,OACzBtI,KAAVsI,IACFA,EAAQ,WAGmB,IAAzBmxE,EAAO5B,gBACT/6E,KAAK08E,YAAYC,EAAOjC,SAASC,GAAI76D,GACrC9f,KAAK08E,YAAYC,EAAOjC,SAASE,GAAI96D,GACrC9f,KAAK08E,YAAYC,EAAOjC,SAASI,GAAIh7D,GACrC9f,KAAK08E,YAAYC,EAAOjC,SAASG,GAAI/6D,IAEvCA,EAAI+D,YAAcrY,EAClBsU,EAAIwiC,YACJxiC,EAAI8kB,OAAO+3C,EAAOrzD,MAAMy5B,KAAM45B,EAAOrzD,MAAMu5B,MAC3C/iC,EAAI2iC,OAAOk6B,EAAOrzD,MAAM05B,KAAM25B,EAAOrzD,MAAMu5B,MAC3C/iC,EAAIoE,SAEJpE,EAAIwiC,YACJxiC,EAAI8kB,OAAO+3C,EAAOrzD,MAAM05B,KAAM25B,EAAOrzD,MAAMu5B,MAC3C/iC,EAAI2iC,OAAOk6B,EAAOrzD,MAAM05B,KAAM25B,EAAOrzD,MAAMw5B,MAC3ChjC,EAAIoE,SAEJpE,EAAIwiC,YACJxiC,EAAI8kB,OAAO+3C,EAAOrzD,MAAM05B,KAAM25B,EAAOrzD,MAAMw5B,MAC3ChjC,EAAI2iC,OAAOk6B,EAAOrzD,MAAMy5B,KAAM45B,EAAOrzD,MAAMw5B,MAC3ChjC,EAAIoE,SAEJpE,EAAIwiC,YACJxiC,EAAI8kB,OAAO+3C,EAAOrzD,MAAMy5B,KAAM45B,EAAOrzD,MAAMw5B,MAC3ChjC,EAAI2iC,OAAOk6B,EAAOrzD,MAAMy5B,KAAM45B,EAAOrzD,MAAMu5B,MAC3C/iC,EAAIoE,aAUDw1D,IAGT/5E,GAAiB,QAAI+5E,GAIf,SAAU95E,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAOvCigE,EAAuB,WAMzB,QAASA,GAAqBnqE,EAAMknE,EAAatqE,IAC/C,EAAIqN,EAA0B,SAAG1c,KAAM48E,GAEvC58E,KAAKyS,KAAOA,EACZzS,KAAK25E,YAAcA,EACnB35E,KAAK0V,WAAWrG,GA2DlB,OAlDA,EAAIuN,EAAuB,SAAGggE,IAC5Bp6E,IAAK,aACLgC,MAAO,SAAoB6K,GACzBrP,KAAKqP,QAAUA,KAQjB7M,IAAK,QACLgC,MAAO,WASL,IAAK,GARD47C,OAAK,GACLD,MAAK,GACL3hC,MAAW,GACX6iC,MAAO,GACPnD,EAAQl+C,KAAKyS,KAAKyrC,MAClBk8B,EAAcp6E,KAAK25E,YAAYQ,mBAC/BmB,EAASt7E,KAAK25E,YAAY2B,OAErBj7E,EAAI,EAAGA,EAAI+5E,EAAY/3E,OAAQhC,IAAK,CAE3CghD,EAAOnD,EADMk8B,EAAY/5E,IAEzB+/C,GAAMiB,EAAK1xC,EACXwwC,GAAMkB,EAAK1lC,EACX6C,EAAW9Z,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,GAEpCngD,KAAKk7E,iBAAiB18D,EAAU4hC,EAAID,EAAIm7B,EAAQj6B,OAepD7+C,IAAK,mBACLgC,MAAO,SAA0Bga,EAAU4hC,EAAID,EAAIm7B,EAAQj6B,GACzD,GAAI85B,GAA4B,IAAb38D,EAAiB,EAAIxe,KAAKqP,QAAQwtE,eAAiBr+D,CACtE88D,GAAOj6B,EAAK/qC,IAAI3G,EAAIywC,EAAK+6B,EACzBG,EAAOj6B,EAAK/qC,IAAIqF,EAAIwkC,EAAKg7B,MAGtByB,IAGTj9E,GAAiB,QAAIi9E,GAIf,SAAUh9E,EAAQD,EAASO,GAKjCY,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAST,IAAI+yC,GAAS,SACT0jB,EAAO,UACPnQ,EAAS,SAETzpD,EAAS,SAKTy7E,GAAa,QAAS,SAAU,OAEhChgE,GACFirB,WACEj4B,SAAWorD,QAASD,GACpB3yD,QAAU4yD,QAASD,EAAM1jB,OAAQA,EAAQ1uC,MAXjC,QAW+CsyD,SAAY,YACnEzzC,WAAaqG,IAVP,OAWNmnB,YAAcgmB,QAASD,GACvBv9C,UAAYrc,OAAQA,EAAQ65D,QAASD,EAAM1jB,OAAQA,EAAQ1uC,MAdnD,QAciEsyD,SAAY,aAEvFtgC,OACEiiB,QACER,IAAMxsC,SAAWorD,QAASD,GAAQ7d,aAAe0N,OAAQA,GAAUrkD,MAAQ8wC,OAAQulC,GAAap/D,UAAYrc,OAAQA,EAAQ65D,QAASD,IACrIxqD,QAAUX,SAAWorD,QAASD,GAAQ7d,aAAe0N,OAAQA,GAAUrkD,MAAQ8wC,OAAQulC,GAAap/D,UAAYrc,OAAQA,EAAQ65D,QAASD,IACzI5e,MAAQvsC,SAAWorD,QAASD,GAAQ7d,aAAe0N,OAAQA,GAAUrkD,MAAQ8wC,OAAQulC,GAAap/D,UAAYrc,OAAQA,EAAQ65D,QAASD,IACvIv9C,UAAY65B,QAAS,OAAQ,KAAM,UAAWl2C,OAAQA,IAExDq8C,oBAAsBwd,QAASD,GAC/Bp9B,QACE5hB,OAASi/C,QAASD,EAAME,SAAY,YACpCjgC,MAAQggC,QAASD,EAAME,SAAY,YACnCz9C,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvCzvD,OACEA,OAAS+rC,OAAQA,GACjBtqC,WAAasqC,OAAQA,GACrBrqC,OAASqqC,OAAQA,GACjB2F,SAAW3F,QAAS,OAAQ,KAAM,QAAS2jB,QAASD,GACpDxvD,SAAWq/C,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtCh0B,QAAU23C,QAASD,EAAMpyD,MArCjB,SAsCRmyB,MACExvB,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChB4qB,MAAQn+B,OAAQA,GAChBxqC,YAAcwqC,OAAQA,GACtB4T,aAAeL,OAAQA,GACvBmqB,aAAe19B,OAAQA,GACvBrD,OAASqD,QAAS,aAAc,MAAO,SAAU,WACjD06B,SAAWnnB,OAAQA,GACnBiyB,OAAS7hB,QAASD,EAAM1jB,OAAQA,GAChCylC,MACExxE,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChB4qB,MAAQn+B,OAAQA,GAChBo8B,KAAOp8B,OAAQA,GACf06B,SAAWnnB,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC0lC,UACEzxE,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChB4qB,MAAQn+B,OAAQA,GAChBo8B,KAAOp8B,OAAQA,GACf06B,SAAWnnB,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC2lC,MACE1xE,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChB4qB,MAAQn+B,OAAQA,GAChBo8B,KAAOp8B,OAAQA,GACf06B,SAAWnnB,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC4lC,MACE3xE,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChB4qB,MAAQn+B,OAAQA,GAChBo8B,KAAOp8B,OAAQA,GACf06B,SAAWnnB,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC75B,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC3sB,QAAUswC,QAASD,GACnBpd,YAAcsd,SAAY,WAAYrQ,OAAQA,GAC9C7uC,OAASs7B,OAAQA,EAAQr0C,UAAa,aACtCyyE,oBAAsBza,QAASD,GAC/B54D,QAAUyoD,OAAQA,EAAQ5nD,UAAa,aACvC24B,SAAWq/B,QAASD,GACpBx+B,SACEp4B,KAAOymD,OAAQA,GACfxmD,KAAOwmD,OAAQA,GACf7uC,OACEnM,SAAWorD,QAASD,GACpB52D,KAAOymD,OAAQA,GACfxmD,KAAOwmD,OAAQA,GACfwpB,YAAcxpB,OAAQA,GACtBupB,eAAiBvpB,OAAQA,GACzBptC,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvCv+B,uBAAyBy+B,SAAY,YACrCz9C,UAAYrc,OAAQA,IAEtBu8C,gBAAkBud,SAAY,WAAYrQ,OAAQA,GAClDvL,mBAAqBuL,OAAQA,GAC7BjoC,QACE/S,SAAWorD,QAASD,GACpBzvD,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChBn7C,GAAKm7C,OAAQA,GACbnvC,GAAKmvC,OAAQA,GACbptC,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvCnd,QACEhuC,SAAWorD,QAASD,GACpBx0D,MAAQ8wC,QAAS,UAAW,aAAc,WAAY,gBAAiB,gBAAiB,aAAc,WAAY,WAAY,YAAa,gBAC3I6lC,WAAatyB,OAAQA,GACrBuyB,gBAAkB9lC,QAAS,aAAc,WAAY,QAAS2jB,QAASD,GACvEv9C,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvChrC,OAASsnB,OAAQA,EAAQr0C,UAAa,aACtCgP,OAAS44C,OAAQA,GACjB0nB,iBACE8K,SAAWxyB,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQ65D,QAASD,EAAMnQ,OAAQA,IAErDtmD,OAASsmD,OAAQA,EAAQ5nD,UAAa,aACtCwa,UAAYrc,OAAQA,IAEtB8uD,QACEotB,kBAAoBriB,QAASD,GAC7B59C,QAAS,4CACTK,UAAYrc,OAAQA,IAEtBm8E,aACEC,WAAaviB,QAASD,GACtByiB,UAAYxiB,QAASD,GACrB0iB,iBAAmBziB,QAASD,GAC5B2iB,iBAAmB1iB,QAASD,GAC5B/tD,OAASguD,QAASD,GAClB4iB,UACE/tE,SAAWorD,QAASD,GACpB6iB,OAASnuE,GAAKm7C,OAAQA,GAAUnvC,GAAKmvC,OAAQA,GAAUvmB,MAAQumB,OAAQA,GAAUptC,UAAYrc,OAAQA,IACrG08E,cAAgB7iB,QAASD,GACzBv9C,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvC1K,aAAe2K,QAASD,GACxB+iB,mBAAqB9iB,QAASD,GAC9B3K,YAAc4K,QAASD,GACvBgjB,sBAAwB/iB,QAASD,GACjCijB,qBAAuBhjB,QAASD,GAChCkjB,cAAgBrzB,OAAQA,GACxBszB,UAAYljB,QAASD,GACrBv9C,UAAYrc,OAAQA,IAEtBg9E,QACExE,YAAc32E,UAAa,YAAa4nD,OAAQA,GAChDwzB,gBAAkBpjB,QAASD,GAC3BsjB,cACEzuE,SAAWorD,QAASD,GACpBujB,iBAAmB1zB,OAAQA,GAC3B2zB,aAAe3zB,OAAQA,GACvB4zB,aAAe5zB,OAAQA,GACvB6zB,eAAiBzjB,QAASD,GAC1B2jB,kBAAoB1jB,QAASD,GAC7B4jB,sBAAwB3jB,QAASD,GACjChuC,WAAasqB,QAAS,KAAM,KAAM,KAAM,OACxCunC,YAAcvnC,QAAS,UAAW,aAClC75B,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvCv9C,UAAYrc,OAAQA,IAEtB09E,cACEjvE,SAAWorD,QAASD,GACpB+jB,iBAAmB9jB,QAASD,GAC5BsQ,SAAWrQ,QAASD,EAAME,SAAY,YACtCuQ,SAAWxQ,QAASD,EAAME,SAAY,YACtC8jB,UAAY9jB,SAAY,YACxB+jB,UACEC,iBAAmBhkB,SAAY,YAC/Bz9C,UAAYrc,OAAQA,EAAQ65D,QAASD,EAAME,SAAY,aAEzDikB,YAAclkB,QAASD,EAAME,SAAY,YACzCkkB,YAAcnkB,QAASD,EAAME,SAAY,YACzCmkB,iBAAkB,4CAClB5hE,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvC/c,OACE17B,aAAesoC,OAAQA,GACvBy0B,qBAAuBz0B,OAAQA,EAAQ5nD,UAAa,aACpD+4B,aAAesb,OAAQA,EAAQr0C,UAAa,aAC5C26B,QACE5hB,OAASi/C,QAASD,EAAME,SAAY,YACpC9Z,MAAQ6Z,QAASD,EAAME,SAAY,YACnCz9C,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvCzvD,OACEwB,QAAUuqC,OAAQA,GAClBxqC,YAAcwqC,OAAQA,GACtBtqC,WACED,QAAUuqC,OAAQA,GAClBxqC,YAAcwqC,OAAQA,GACtB75B,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtCrqC,OACEF,QAAUuqC,OAAQA,GAClBxqC,YAAcwqC,OAAQA,GACtB75B,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC75B,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC/a,OACE7sB,GAAKurD,QAASD,GACdt/C,GAAKu/C,QAASD,GACdv9C,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvCjgC,MACEkZ,OAASqD,OAAQA,GACjB/rC,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChB4qB,MAAQn+B,OAAQA,GAChBxqC,YAAcwqC,OAAQA,GACtB4T,aAAeL,OAAQA,GACvBmqB,aAAe19B,OAAQA,GACvB06B,SAAWnnB,OAAQA,GACnBiyB,OAAS7hB,QAASD,EAAM1jB,OAAQA,GAChCylC,MACExxE,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChB4qB,MAAQn+B,OAAQA,GAChBo8B,KAAOp8B,OAAQA,GACf06B,SAAWnnB,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC0lC,UACEzxE,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChB4qB,MAAQn+B,OAAQA,GAChBo8B,KAAOp8B,OAAQA,GACf06B,SAAWnnB,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC2lC,MACE1xE,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChB4qB,MAAQn+B,OAAQA,GAChBo8B,KAAOp8B,OAAQA,GACf06B,SAAWnnB,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC4lC,MACE3xE,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChB4qB,MAAQn+B,OAAQA,GAChBo8B,KAAOp8B,OAAQA,GACf06B,SAAWnnB,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC75B,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtC/oB,OAAS+oB,OAAQA,EAAQuT,OAAQA,EAAQ5nD,UAAa,aACtDyvE,kBACE6M,SAAW10B,OAAQA,GACnBynB,QAAUh7B,OAAQA,GAClB75B,UAAYrc,OAAQA,EAAQ65D,QAASD,EAAMnQ,OAAQA,IAErDlgC,QAAUswC,QAASD,GACnB+L,MACE0O,MAAQn+B,OAAQA,GAChBvvB,MAAQuvB,OAAQA,GAChBv7B,MAAQ8uC,OAAQA,GAChBt/C,OAAS+rC,OAAQA,GACjB75B,UAAYrc,OAAQA,IAEtBiV,IAAMihC,OAAQA,EAAQuT,OAAQA,GAC9BhvB,OACErY,UAAY8zB,OAAQA,EAAQr0C,UAAa,aACzCg5B,YAAcqb,OAAQA,EAAQr0C,UAAa,aAC3Cwa,UAAYrc,OAAQA,EAAQk2C,OAAQA,IAEtCt7B,OAASs7B,OAAQA,EAAQr0C,UAAa,aACtCyyE,oBAAsBza,QAASD,GAC/B2gB,OAAS9wB,OAAQA,EAAQ5nD,UAAa,aACtCgf,QACEpa,KAAOgjD,OAAQA,GACfljD,OAASkjD,OAAQA,GACjBzoC,QAAUyoC,OAAQA,GAClBpjD,MAAQojD,OAAQA,GAChBptC,UAAYrc,OAAQA,EAAQypD,OAAQA,IAEtCrtB,MAAQqtB,OAAQA,GAChBjvB,SAAWq/B,QAASD,GACpBx+B,SACEp4B,KAAOymD,OAAQA,GACfxmD,KAAOwmD,OAAQA,GACf7uC,OACEnM,SAAWorD,QAASD,GACpB52D,KAAOymD,OAAQA,GACfxmD,KAAOwmD,OAAQA,GACfwpB,YAAcxpB,OAAQA,GACtBupB,eAAiBvpB,OAAQA,GACzBptC,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvCv+B,uBAAyBy+B,SAAY,YACrCz9C,UAAYrc,OAAQA,IAEtBwhB,QACE/S,SAAWorD,QAASD,GACpBzvD,OAAS+rC,OAAQA,GACjBv7B,MAAQ8uC,OAAQA,GAChBn7C,GAAKm7C,OAAQA,GACbnvC,GAAKmvC,OAAQA,GACbptC,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvC11C,OAASgyB,QAAS,UAAW,SAAU,WAAY,MAAO,OAAQ,QAAS,gBAAiB,UAAW,MAAO,OAAQ,WAAY,eAAgB,SAAU,OAAQ,YACpK/zB,iBACEH,cAAgB63C,QAASD,EAAMpyD,MA3TzB,SA4TNuzB,cAAgB0uB,OAAQA,GACxBtP,eAAiB0f,QAASD,GAC1B/f,cAAgBggB,QAASD,GACzBwkB,oBAAsBvkB,QAASD,GAC/Bv9C,UAAYrc,OAAQA,IAEtB2a,MAAQ8uC,OAAQA,GAChB76B,OAASsnB,OAAQA,EAAQxpB,IAjUnB,MAiU6B7qB,UAAa,aAChDsB,OAASsmD,OAAQA,EAAQ5nD,UAAa,aACtCsvE,iBACEgN,SAAW10B,OAAQA,GACnBwyB,SAAWxyB,OAAQA,GACnBptC,UAAYrc,OAAQA,EAAQ65D,QAASD,EAAMnQ,OAAQA,IAErDn7C,GAAKm7C,OAAQA,GACbnvC,GAAKmvC,OAAQA,GACbptC,UAAYrc,OAAQA,IAEtBw6B,SACE/rB,SAAWorD,QAASD,GACpBykB,WACExF,uBAAyBpvB,OAAQA,GACjC+xB,gBAAkB/xB,OAAQA,GAC1B60B,cAAgB70B,OAAQA,GACxB80B,gBAAkB90B,OAAQA,GAC1B+0B,SAAW/0B,OAAQA,GACnBmvB,cAAgBnvB,OAAQA,GACxBptC,UAAYrc,OAAQA,IAEtBy+E,kBACE5F,uBAAyBpvB,OAAQA,GACjC+xB,gBAAkB/xB,OAAQA,GAC1B60B,cAAgB70B,OAAQA,GACxB80B,gBAAkB90B,OAAQA,GAC1B+0B,SAAW/0B,OAAQA,GACnBmvB,cAAgBnvB,OAAQA,GACxBptC,UAAYrc,OAAQA,IAEtB0+E,WACElD,gBAAkB/xB,OAAQA,GAC1B60B,cAAgB70B,OAAQA,GACxB80B,gBAAkB90B,OAAQA,GAC1Bk1B,cAAgBl1B,OAAQA,GACxB+0B,SAAW/0B,OAAQA,GACnBptC,UAAYrc,OAAQA,IAEtB4+E,uBACEpD,gBAAkB/xB,OAAQA,GAC1B60B,cAAgB70B,OAAQA,GACxB80B,gBAAkB90B,OAAQA,GAC1Bk1B,cAAgBl1B,OAAQA,GACxB+0B,SAAW/0B,OAAQA,GACnBptC,UAAYrc,OAAQA,IAEtB6+E,aAAep1B,OAAQA,GACvBq1B,aAAer1B,OAAQA,GACvB5R,QAAU3B,QAAS,YAAa,YAAa,wBAAyB,qBACtE6oC,eACEtwE,SAAWorD,QAASD,GACpBolB,YAAcv1B,OAAQA,GACtBw1B,gBAAkBx1B,OAAQA,GAC1By1B,kBAAoBrlB,QAASD,GAC7BryB,KAAOsyB,QAASD,GAChBv9C,UAAYrc,OAAQA,EAAQ65D,QAASD,IAEvCulB,UAAY11B,OAAQA,GACpB21B,kBAAoBvlB,QAASD,GAC7Bv9C,UAAYrc,OAAQA,EAAQ65D,QAASD,IAIvCpwB,YAAcqwB,QAASD,GACvBxzB,YAAcyzB,QAASD,GACvBlmC,QAAUwiB,OAAQA,GAClBpf,SACE9a,SAAWg+C,IApYL,OAqYN39C,UAAYrc,OAAQA,IAEtB8Q,QAAUolC,OAAQA,GAClBrlC,OAASqlC,OAAQA,GACjB75B,UAAYrc,OAAQA,GAGtByb,GAAWqzC,OAAO9yC,QAAUP,EAAWohC,MACvCphC,EAAWiiE,aAAaO,iBAAmBxiE,EAAWohC,KAEtD,IAAItJ,IACFsJ,OACE17B,aAAc,EAAG,EAAG,GAAI,GACxB+8D,qBAAsB,EAAG,EAAG,GAAI,GAChC/zE,OACEwB,QAAS,QAAS,WAClBD,YAAa,QAAS,WACtBE,WACED,QAAS,QAAS,WAClBD,YAAa,QAAS,YAExBG,OACEF,QAAS,QAAS,WAClBD,YAAa,QAAS,aAG1ByvB,OACE7sB,GAAG,EACHgM,GAAG,GAELqf,MACExvB,OAAQ,QAAS,WACjBwQ,MAAO,GAAI,EAAG,IAAK,GACnB05D,MAAO,QAAS,UAAW,UAC3B3oE,YAAa,QAAS,QACtBo+C,aAAc,EAAG,EAAG,GAAI,GACxB8pB,aAAc,QAAS,YAGzBrqD,QAAQ,EACR+qD,oBAAoB,EAQpB95C,SAAS,EACTY,SACEp4B,KAAM,GAAI,EAAG,IAAK,GAClBC,KAAM,GAAI,EAAG,IAAK,GAClB2X,OACEnM,SAAS,EACTzL,KAAM,GAAI,EAAG,IAAK,GAClBC,KAAM,GAAI,EAAG,IAAK,GAClBgwE,YAAa,GAAI,EAAG,IAAK,GACzBD,eAAgB,EAAG,EAAG,GAAI,KAG9BxxD,QACE/S,SAAS,EACTtE,MAAO,kBACPwQ,MAAO,GAAI,EAAG,GAAI,GAClBrM,GAAI,GAAI,GAAI,GAAI,GAChBgM,GAAI,GAAI,GAAI,GAAI,IAElB4J,OAAQ,UAAW,MAAO,SAAU,WAAY,UAAW,MAAO,SAAU,OAAQ,OAAQ,WAAY,eAAgB,WACxH/B,iBACEH,cAAc,EACd+Y,cAAe,EAAG,EAAG,GAAI,GACzBof,eAAe,EACfN,cAAc,GAEhBl/B,MAAO,GAAI,EAAG,IAAK,IAErB6e,OACEiiB,QACER,IAAMxsC,SAAS,EAAOstC,aAAc,EAAG,EAAG,EAAG,KAAO32C,KAAM,SAC1DgK,QAAUX,SAAS,EAAOstC,aAAc,EAAG,EAAG,EAAG,KAAO32C,KAAM,SAC9D41C,MAAQvsC,SAAS,EAAOstC,aAAc,EAAG,EAAG,EAAG,KAAO32C,KAAM,UAE9Di3C,oBAAoB,EACpBlyC,OACEA,OAAQ,QAAS,WACjByB,WAAY,QAAS,WACrBC,OAAQ,QAAS,WACjBgwC,SAAU,OAAQ,KAAM,QAAQ,GAAM,GACtCzxC,SAAU,EAAG,EAAG,EAAG,MAErB8X,QAAQ,EACRyX,MACExvB,OAAQ,QAAS,WACjBwQ,MAAO,GAAI,EAAG,IAAK,GACnB05D,MAAO,QAAS,UAAW,UAC3B3oE,YAAa,QAAS,QACtBo+C,aAAc,EAAG,EAAG,GAAI,GACxB8pB,aAAc,QAAS,WACvB/gC,OAAQ,aAAc,MAAO,SAAU,WAEzCtpB,QAAQ,EACRizB,YAAa,IAAK,EAAG,EAAG,IACxB83B,oBAAoB,EACpB95C,SAAS,EACTY,SACEp4B,KAAM,EAAG,EAAG,IAAK,GACjBC,KAAM,GAAI,EAAG,IAAK,GAClB2X,OACEnM,SAAS,EACTzL,KAAM,GAAI,EAAG,IAAK,GAClBC,KAAM,GAAI,EAAG,IAAK,GAClBgwE,YAAa,GAAI,EAAG,IAAK,GACzBD,eAAgB,EAAG,EAAG,GAAI,KAG9Bz2B,gBAAiB,IAAK,EAAG,EAAG,IAC5B2B,mBAAoB,GAAI,EAAG,IAAK,GAChC18B,QACE/S,SAAS,EACTtE,MAAO,kBACPwQ,MAAO,GAAI,EAAG,GAAI,GAClBrM,GAAI,GAAI,GAAI,GAAI,GAChBgM,GAAI,GAAI,GAAI,GAAI,IAElBmiC,QACEhuC,SAAS,EACTrJ,MAAO,UAAW,aAAc,WAAY,gBAAiB,gBAAiB,aAAc,WAAY,WAAY,YAAa,eACjI42E,gBAAiB,aAAc,WAAY,QAC3CD,WAAY,GAAK,EAAG,EAAG,MAEzBlrE,OAAQ,EAAG,EAAG,GAAI,IAEpBmsE,QAGEE,cACEzuE,SAAS,EACT0uE,iBAAkB,IAAK,GAAI,IAAK,GAChCC,aAAc,IAAK,GAAI,IAAK,GAC5BC,aAAc,IAAK,GAAI,IAAK,GAC5BC,eAAe,EACfC,kBAAkB,EAClBC,sBAAsB,EACtB5xD,WAAY,KAAM,KAAM,KAAM,MAC9B6xD,YAAa,UAAW,cAG5BtB,aACEC,WAAW,EACXC,UAAU,EACVC,iBAAiB,EACjBC,iBAAiB,EACjB1wE,OAAO,EACP2wE,UACE/tE,SAAS,EACTguE,OAASnuE,GAAI,GAAI,EAAG,GAAI,GAAIgM,GAAI,GAAI,EAAG,GAAI,GAAI4oB,MAAO,IAAM,EAAG,GAAK,OACpEw5C,cAAc,GAEhBxtB,aAAa,EACbytB,mBAAmB,EACnB1tB,YAAY,EACZ2tB,sBAAsB,EACtBC,qBAAqB,EACrBC,cAAe,IAAK,EAAG,IAAM,IAC7BC,UAAU,GAEZW,cACEjvE,SAAS,EACTkvE,iBAAiB,GAEnBnjD,SACE/rB,SAAS,EACT4vE,WAEExF,wBAAyB,KAAO,IAAO,EAAG,IAC1C2C,gBAAiB,GAAK,EAAG,GAAI,KAC7B8C,cAAe,GAAI,EAAG,IAAK,GAC3BC,gBAAiB,IAAM,EAAG,IAAK,MAC/BC,SAAU,IAAM,EAAG,EAAG,KACtB5F,cAAe,EAAG,EAAG,EAAG,MAE1B6F,kBAEE5F,wBAAyB,IAAK,IAAK,EAAG,GACtC2C,gBAAiB,IAAM,EAAG,EAAG,MAC7B8C,cAAe,GAAI,EAAG,IAAK,GAC3BC,gBAAiB,IAAM,EAAG,IAAK,MAC/BC,SAAU,GAAK,EAAG,EAAG,KACrB5F,cAAe,EAAG,EAAG,EAAG,MAE1B8F,WACElD,gBAAiB,GAAK,EAAG,GAAI,KAC7B8C,cAAe,IAAK,EAAG,IAAK,GAC5BC,gBAAiB,IAAM,EAAG,IAAK,MAC/BI,cAAe,IAAK,EAAG,IAAK,GAC5BH,SAAU,IAAM,EAAG,EAAG,MAExBI,uBACEpD,gBAAiB,GAAK,EAAG,GAAI,KAC7B8C,cAAe,IAAK,EAAG,IAAK,GAC5BC,gBAAiB,IAAM,EAAG,IAAK,MAC/BI,cAAe,IAAK,EAAG,IAAK,GAC5BH,SAAU,IAAM,EAAG,EAAG,MAExBK,aAAc,GAAI,EAAG,IAAK,GAC1BC,aAAc,GAAK,IAAM,GAAK,KAC9BjnC,QAAS,YAAa,mBAAoB,YAAa,yBACvDsnC,UAAW,GAAK,IAAM,EAAG,MAK7B7gF,GAAQmd,WAAaA,EACrBnd,EAAQi1C,iBAAmBA,GAIrB,SAAUh1C,EAAQD,EAASO,GAKjC,GAAI2V,GAAO3V,EAAoB,EAG/B2V,GAAKrQ,OAAO7F,EAASO,EAAoB,MAGzC2V,EAAKrQ,OAAO7F,EAASO,EAAoB,MAGzC2V,EAAKrQ,OAAO7F,EAASO,EAAoB,OAInC,SAAUN,EAAQD,EAASO,GAEjCA,EAAoB,IACpBA,EAAoB,IACpBN,EAAOD,QAAUO,EAAoB,MAK/B,SAAUN,EAAQD,EAASO,GAIjC,GAAIwgF,GAAmBxgF,EAAoB,KACvCg2B,EAAOh2B,EAAoB,KAC3B+9B,EAAY/9B,EAAoB,IAChC0kD,EAAY1kD,EAAoB,GAMpCN,GAAOD,QAAUO,EAAoB,IAAIyF,MAAO,QAAS,SAAUo6B,EAAUkkB,GAC3EjkD,KAAKggC,GAAK4kB,EAAU7kB,GACpB//B,KAAKmf,GAAK,EACVnf,KAAK2gF,GAAK18B,GAET,WACD,GAAIriC,GAAI5hB,KAAKggC,GACTikB,EAAOjkD,KAAK2gF,GACZxlD,EAAQn7B,KAAKmf,IACjB,QAAKyC,GAAKuZ,GAASvZ,EAAEvf,QACnBrC,KAAKggC,OAAK98B,GACHgzB,EAAK,IAEF,QAAR+tB,EAAuB/tB,EAAK,EAAGiF,GACvB,UAAR8oB,EAAyB/tB,EAAK,EAAGtU,EAAEuZ,IAChCjF,EAAK,GAAIiF,EAAOvZ,EAAEuZ,MACxB,UAGH8C,EAAU2iD,UAAY3iD,EAAUt4B,MAEhC+6E,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,YAKX,SAAU9gF,EAAQD,GAExBC,EAAOD,QAAU,cAKX,SAAUC,EAAQD,GAExBC,EAAOD,QAAU,SAAU6T,EAAMhP,GAC/B,OAASA,MAAOA,EAAOgP,OAAQA,KAM3B,SAAU5T,EAAQD,GAExBC,EAAOD,QAAU,SAAUmiB,GACzB,GAAiB,kBAANA,GAAkB,KAAMhgB,WAAUggB,EAAK,sBAClD,OAAOA,KAMH,SAAUliB,EAAQD,EAASO,GAIjC,GAAIk/B,GAASl/B,EAAoB,IAC7BoC,EAAapC,EAAoB,IACjCojD,EAAiBpjD,EAAoB,IACrC6jD,IAGJ7jD,GAAoB,IAAI6jD,EAAmB7jD,EAAoB,IAAI,YAAa,WAAc,MAAOF,QAErGJ,EAAOD,QAAU,SAAUkC,EAAau8B,EAAM7qB,GAC5C1R,EAAYN,UAAY69B,EAAO2kB,GAAqBxwC,KAAMjR,EAAW,EAAGiR,KACxE+vC,EAAezhD,EAAau8B,EAAO,eAM/B,SAAUx+B,EAAQD,EAASO,GAEjC,GAAIyhB,GAAKzhB,EAAoB,IACzBshB,EAAWthB,EAAoB,IAC/B2gF,EAAU3gF,EAAoB,GAElCN,GAAOD,QAAUO,EAAoB,IAAMY,OAAOoB,iBAAmB,SAA0B0f,EAAGyd,GAChG7d,EAASI,EAKT,KAJA,GAGIhB,GAHAgG,EAAOi6D,EAAQxhD,GACfh9B,EAASukB,EAAKvkB,OACdhC,EAAI,EAEDgC,EAAShC,GAAGshB,EAAGxT,EAAEyT,EAAGhB,EAAIgG,EAAKvmB,KAAMg/B,EAAWze,GACrD,OAAOgB,KAMH,SAAUhiB,EAAQD,EAASO,GAIjC,GAAI0kD,GAAY1kD,EAAoB,IAChC4gF,EAAW5gF,EAAoB,KAC/B6gF,EAAkB7gF,EAAoB,IAC1CN,GAAOD,QAAU,SAAUqhF,GACzB,MAAO,UAAUC,EAAOC,EAAIC,GAC1B,GAGI38E,GAHAod,EAAIgjC,EAAUq8B,GACd5+E,EAASy+E,EAASl/D,EAAEvf,QACpB84B,EAAQ4lD,EAAgBI,EAAW9+E,EAIvC,IAAI2+E,GAAeE,GAAMA,GAAI,KAAO7+E,EAAS84B,GAG3C,IAFA32B,EAAQod,EAAEuZ,OAEG32B,EAAO,OAAO,MAEtB,MAAMnC,EAAS84B,EAAOA,IAAS,IAAI6lD,GAAe7lD,IAASvZ,KAC5DA,EAAEuZ,KAAW+lD,EAAI,MAAOF,IAAe7lD,GAAS,CACpD,QAAQ6lD,IAAgB,KAOxB,SAAUphF,EAAQD,EAASO,GAGjC,GAAIkhF,GAAYlhF,EAAoB,IAChCmE,EAAMK,KAAKL,GACfzE,GAAOD,QAAU,SAAUmiB,GACzB,MAAOA,GAAK,EAAIzd,EAAI+8E,EAAUt/D,GAAK,kBAAoB,IAMnD,SAAUliB,EAAQD,EAASO,GAEjC,GAAIkhF,GAAYlhF,EAAoB,IAChCoE,EAAMI,KAAKJ,IACXD,EAAMK,KAAKL,GACfzE,GAAOD,QAAU,SAAUw7B,EAAO94B,GAEhC,MADA84B,GAAQimD,EAAUjmD,GACXA,EAAQ,EAAI72B,EAAI62B,EAAQ94B,EAAQ,GAAKgC,EAAI82B,EAAO94B,KAMnD,SAAUzC,EAAQD,EAASO,GAEjC,GAAI8R,GAAW9R,EAAoB,IAAI8R,QACvCpS,GAAOD,QAAUqS,GAAYA,EAASqvE,iBAKhC,SAAUzhF,EAAQD,EAASO,GAEjC,GAAIkhF,GAAYlhF,EAAoB,IAChC8lB,EAAU9lB,EAAoB,GAGlCN,GAAOD,QAAU,SAAU2hF,GACzB,MAAO,UAAU58B,EAAMzD,GACrB,GAGIp+C,GAAGC,EAHHpB,EAAIkD,OAAOohB,EAAQ0+B,IACnBrkD,EAAI+gF,EAAUngC,GACd3gD,EAAIoB,EAAEW,MAEV,OAAIhC,GAAI,GAAKA,GAAKC,EAAUghF,EAAY,OAAKp+E,IAC7CL,EAAInB,EAAE6/E,WAAWlhF,GACVwC,EAAI,OAAUA,EAAI,OAAUxC,EAAI,IAAMC,IAAMwC,EAAIpB,EAAE6/E,WAAWlhF,EAAI,IAAM,OAAUyC,EAAI,MACxFw+E,EAAY5/E,EAAE4d,OAAOjf,GAAKwC,EAC1By+E,EAAY5/E,EAAEuK,MAAM5L,EAAGA,EAAI,GAA2ByC,EAAI,OAAzBD,EAAI,OAAU,IAAqB,UAOtE,SAAUjD,EAAQD,EAASO,GAEjC,GAAIshB,GAAWthB,EAAoB,IAC/BgB,EAAMhB,EAAoB,IAC9BN,GAAOD,QAAUO,EAAoB,GAAGshF,YAAc,SAAU1/D,GAC9D,GAAI2/D,GAASvgF,EAAI4gB,EACjB,IAAqB,kBAAV2/D,GAAsB,KAAM3/E,WAAUggB,EAAK,oBACtD,OAAON,GAASigE,EAAOlhF,KAAKuhB,MAMxB,SAAUliB,EAAQD,EAASO,GAEjC,GAAIwhF,GAAUxhF,EAAoB,IAC9BsjD,EAAWtjD,EAAoB,IAAI,YACnC+9B,EAAY/9B,EAAoB,GACpCN,GAAOD,QAAUO,EAAoB,GAAGyhF,kBAAoB,SAAU7/D,GACpE,OAAU5e,IAAN4e,EAAiB,MAAOA,GAAG0hC,IAC1B1hC,EAAG,eACHmc,EAAUyjD,EAAQ5/D,MAMnB,SAAUliB,EAAQD,EAASO,GAEjCA,EAAoB,IACpB,IAAI0hF,GAAU1hF,EAAoB,GAAGY,MACrClB,GAAOD,QAAU,SAAgBihB,EAAGihE,GAClC,MAAOD,GAAQxiD,OAAOxe,EAAGihE,KAMrB,SAAUjiF,EAAQD,EAASO,GAEjC,GAAI+f,GAAU/f,EAAoB,GAElC+f,GAAQA,EAAQS,EAAG,UAAY0e,OAAQl/B,EAAoB,OAKrD,SAAUN,EAAQD,EAASO,GAEjCA,EAAoB,KACpBN,EAAOD,QAAUO,EAAoB,GAAGY,OAAO8lB,MAKzC,SAAUhnB,EAAQD,EAASO,GAGjC,GAAI6kD,GAAW7kD,EAAoB,IAC/BwmB,EAAQxmB,EAAoB,GAEhCA,GAAoB,IAAI,OAAQ,WAC9B,MAAO,UAAc4hB,GACnB,MAAO4E,GAAMq+B,EAASjjC,QAOpB,SAAUliB,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAEjCA,EAAoB,IACpBA,EAAoB,IACpBN,EAAOD,QAAUO,EAAoB,IAAIiO,EAAE,aAKrC,SAAUvO,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAEjCA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBN,EAAOD,QAAUO,EAAoB,GAAGwa,QAKlC,SAAU9a,EAAQD,EAASO,GAKjC,GAAI2f,GAAS3f,EAAoB,IAC7B8f,EAAM9f,EAAoB,IAC1B4hF,EAAc5hF,EAAoB,IAClC+f,EAAU/f,EAAoB,IAC9BkjD,EAAWljD,EAAoB,IAC/B6hF,EAAO7hF,EAAoB,KAAKolD,IAChC08B,EAAS9hF,EAAoB,IAC7Bq/B,EAASr/B,EAAoB,IAC7BojD,EAAiBpjD,EAAoB,IACrCua,EAAMva,EAAoB,IAC1B+hF,EAAM/hF,EAAoB,IAC1BggC,EAAShgC,EAAoB,IAC7BgiF,EAAYhiF,EAAoB,IAChCiiF,EAAWjiF,EAAoB,KAC/B0F,EAAU1F,EAAoB,KAC9BshB,EAAWthB,EAAoB,IAC/BsP,EAAWtP,EAAoB,IAC/B6kD,EAAW7kD,EAAoB,IAC/B0kD,EAAY1kD,EAAoB,IAChCwhB,EAAcxhB,EAAoB,IAClC+lB,EAAa/lB,EAAoB,IACjCmD,EAAUnD,EAAoB,IAC9BkiF,EAAUliF,EAAoB,KAC9BmiF,EAAQniF,EAAoB,IAC5BoiF,EAAQpiF,EAAoB,IAC5BqiF,EAAMriF,EAAoB,IAC1BwmB,EAAQxmB,EAAoB,IAC5BylD,EAAO08B,EAAMl0E,EACbwT,EAAK4gE,EAAIp0E,EACTq0E,EAAOJ,EAAQj0E,EACfgyB,EAAUtgB,EAAOnF,OACjB+nE,EAAQ5iE,EAAOimB,KACfnwB,EAAa8sE,GAASA,EAAMC,UAE5BC,EAASV,EAAI,WACbW,EAAeX,EAAI,eACnBY,KAAYvwD,qBACZwwD,EAAiBvjD,EAAO,mBACxBwjD,EAAaxjD,EAAO,WACpByjD,EAAYzjD,EAAO,cACnBylB,EAAclkD,OAAgB,UAC9BmiF,EAA+B,kBAAX9iD,MAA2BmiD,EAAMn0E,EACrD+0E,EAAUrjE,EAAOqjE,QAEjBC,GAAUD,IAAYA,EAAiB,YAAMA,EAAiB,UAAEE,UAGhEC,EAAgBvB,GAAeE,EAAO,WACxC,MAES,IAFF3+E,EAAQse,KAAO,KACpBzgB,IAAK,WAAc,MAAOygB,GAAG3hB,KAAM,KAAOwE,MAAO,IAAK3B,MACpDA,IACD,SAAUif,EAAItf,EAAKq/E,GACtB,GAAIyB,GAAY39B,EAAKX,EAAaxiD,EAC9B8gF,UAAkBt+B,GAAYxiD,GAClCmf,EAAGG,EAAItf,EAAKq/E,GACRyB,GAAaxhE,IAAOkjC,GAAarjC,EAAGqjC,EAAaxiD,EAAK8gF,IACxD3hE,EAEA4hE,EAAO,SAAU3jD,GACnB,GAAI4jD,GAAMT,EAAWnjD,GAAOv8B,EAAQ88B,EAAiB,UAErD,OADAqjD,GAAI7C,GAAK/gD,EACF4jD,GAGLC,EAAWR,GAAyC,gBAApB9iD,GAAQujD,SAAuB,SAAU5hE,GAC3E,MAAoB,gBAANA,IACZ,SAAUA,GACZ,MAAOA,aAAcqe,IAGnBwjD,EAAkB,SAAwB7hE,EAAItf,EAAKq/E,GAKrD,MAJI//D,KAAOkjC,GAAa2+B,EAAgBX,EAAWxgF,EAAKq/E,GACxDrgE,EAASM,GACTtf,EAAMkf,EAAYlf,GAAK,GACvBgf,EAASqgE,GACL7hE,EAAI+iE,EAAYvgF,IACbq/E,EAAE5gF,YAID+e,EAAI8B,EAAI6gE,IAAW7gE,EAAG6gE,GAAQngF,KAAMsf,EAAG6gE,GAAQngF,IAAO,GAC1Dq/E,EAAIx+E,EAAQw+E,GAAK5gF,WAAYglB,EAAW,GAAG,OAJtCjG,EAAI8B,EAAI6gE,IAAShhE,EAAGG,EAAI6gE,EAAQ18D,EAAW,OAChDnE,EAAG6gE,GAAQngF,IAAO,GAIX6gF,EAAcvhE,EAAItf,EAAKq/E,IACzBlgE,EAAGG,EAAItf,EAAKq/E,IAEnB+B,EAAoB,SAA0B9hE,EAAIlB,GACpDY,EAASM,EAKT,KAJA,GAGItf,GAHAokB,EAAOu7D,EAASvhE,EAAIgkC,EAAUhkC,IAC9BvgB,EAAI,EACJC,EAAIsmB,EAAKvkB,OAEN/B,EAAID,GAAGsjF,EAAgB7hE,EAAItf,EAAMokB,EAAKvmB,KAAMugB,EAAEpe,GACrD,OAAOsf,IAEL+hE,EAAU,SAAgB/hE,EAAIlB,GAChC,WAAa1d,KAAN0d,EAAkBvd,EAAQye,GAAM8hE,EAAkBvgF,EAAQye,GAAKlB,IAEpEkjE,EAAwB,SAA8BthF,GACxD,GAAIuhF,GAAIlB,EAAOtiF,KAAKP,KAAMwC,EAAMkf,EAAYlf,GAAK,GACjD,SAAIxC,OAASglD,GAAehlC,EAAI+iE,EAAYvgF,KAASwd,EAAIgjE,EAAWxgF,QAC7DuhF,IAAM/jE,EAAIhgB,KAAMwC,KAASwd,EAAI+iE,EAAYvgF,IAAQwd,EAAIhgB,KAAM2iF,IAAW3iF,KAAK2iF,GAAQngF,KAAOuhF,IAE/FC,EAA4B,SAAkCliE,EAAItf,GAGpE,GAFAsf,EAAK8iC,EAAU9iC,GACftf,EAAMkf,EAAYlf,GAAK,GACnBsf,IAAOkjC,IAAehlC,EAAI+iE,EAAYvgF,IAASwd,EAAIgjE,EAAWxgF,GAAlE,CACA,GAAIq/E,GAAIl8B,EAAK7jC,EAAItf,EAEjB,QADIq/E,IAAK7hE,EAAI+iE,EAAYvgF,IAAUwd,EAAI8B,EAAI6gE,IAAW7gE,EAAG6gE,GAAQngF,KAAOq/E,EAAE5gF,YAAa,GAChF4gF,IAELoC,GAAuB,SAA6BniE,GAKtD,IAJA,GAGItf,GAHAsiD,EAAQ09B,EAAK59B,EAAU9iC,IACvBzW,KACAhL,EAAI,EAEDykD,EAAMziD,OAAShC,GACf2f,EAAI+iE,EAAYvgF,EAAMsiD,EAAMzkD,OAASmC,GAAOmgF,GAAUngF,GAAOu/E,GAAM12E,EAAOjF,KAAK5D,EACpF,OAAO6I,IAEP64E,GAAyB,SAA+BpiE,GAM1D,IALA,GAIItf,GAJA2hF,EAAQriE,IAAOkjC,EACfF,EAAQ09B,EAAK2B,EAAQnB,EAAYp+B,EAAU9iC,IAC3CzW,KACAhL,EAAI,EAEDykD,EAAMziD,OAAShC,IAChB2f,EAAI+iE,EAAYvgF,EAAMsiD,EAAMzkD,OAAU8jF,IAAQnkE,EAAIglC,EAAaxiD,IAAc6I,EAAOjF,KAAK28E,EAAWvgF,GACxG,OAAO6I,GAIN43E,KACH9iD,EAAU,WACR,GAAIngC,eAAgBmgC,GAAS,KAAMr+B,WAAU,+BAC7C,IAAI89B,GAAMnlB,EAAIlV,UAAUlD,OAAS,EAAIkD,UAAU,OAAKrC,IAChDkhF,EAAO,SAAU5/E,GACfxE,OAASglD,GAAao/B,EAAK7jF,KAAKyiF,EAAWx+E,GAC3Cwb,EAAIhgB,KAAM2iF,IAAW3iE,EAAIhgB,KAAK2iF,GAAS/iD,KAAM5/B,KAAK2iF,GAAQ/iD,IAAO,GACrEyjD,EAAcrjF,KAAM4/B,EAAK3Z,EAAW,EAAGzhB,IAGzC,OADIs9E,IAAeqB,GAAQE,EAAcr+B,EAAaplB,GAAO5+B,cAAc,EAAM8T,IAAKsvE,IAC/Eb,EAAK3jD,IAEdwjB,EAASjjB,EAAiB,UAAG,WAAY,WACvC,MAAOngC,MAAK2gF,KAGd0B,EAAMl0E,EAAI61E,EACVzB,EAAIp0E,EAAIw1E,EACRzjF,EAAoB,IAAIiO,EAAIi0E,EAAQj0E,EAAI81E,GACxC/jF,EAAoB,IAAIiO,EAAI21E,EAC5BxB,EAAMn0E,EAAI+1E,GAENpC,IAAgB5hF,EAAoB,KACtCkjD,EAAS4B,EAAa,uBAAwB8+B,GAAuB,GAGvE5jD,EAAO/xB,EAAI,SAAUxN,GACnB,MAAO4iF,GAAKtB,EAAIthF,MAIpBsf,EAAQA,EAAQO,EAAIP,EAAQe,EAAIf,EAAQK,GAAK2iE,GAAcvoE,OAAQylB,GAEnE,KAAK,GAAIkkD,IAAa,iHAGpBl8E,MAAM,KAAM+G,GAAI,EAAGm1E,GAAWhiF,OAAS6M,IAAG+yE,EAAIoC,GAAWn1E,MAE3D,KAAK,GAAIo1E,IAAmB59D,EAAMu7D,EAAIznE,OAAQvL,GAAI,EAAGq1E,GAAiBjiF,OAAS4M,IAAIizE,EAAUoC,GAAiBr1E,MAE9GgR,GAAQA,EAAQS,EAAIT,EAAQK,GAAK2iE,EAAY,UAE3CsB,IAAO,SAAU/hF,GACf,MAAOwd,GAAI8iE,EAAgBtgF,GAAO,IAC9BsgF,EAAetgF,GACfsgF,EAAetgF,GAAO29B,EAAQ39B,IAGpCgiF,OAAQ,SAAgBhB,GACtB,IAAKC,EAASD,GAAM,KAAM1hF,WAAU0hF,EAAM,oBAC1C,KAAK,GAAIhhF,KAAOsgF,GAAgB,GAAIA,EAAetgF,KAASghF,EAAK,MAAOhhF,IAE1EiiF,UAAW,WAActB,GAAS,GAClCuB,UAAW,WAAcvB,GAAS,KAGpCljE,EAAQA,EAAQS,EAAIT,EAAQK,GAAK2iE,EAAY,UAE3C7jD,OAAQykD,EAER9iF,eAAgB4iF,EAEhBzhF,iBAAkB0hF,EAElBh+B,yBAA0Bo+B,EAE1Bv+B,oBAAqBw+B,GAErB7jD,sBAAuB8jD,IAKzB,IAAIS,IAAsB3C,EAAO,WAAcM,EAAMn0E,EAAE,IAEvD8R,GAAQA,EAAQS,EAAIT,EAAQK,EAAIqkE,GAAqB,UACnDvkD,sBAAuB,SAA+Bte,GACpD,MAAOwgE,GAAMn0E,EAAE42C,EAASjjC,OAK5B2gE,GAASxiE,EAAQA,EAAQS,EAAIT,EAAQK,IAAM2iE,GAAcjB,EAAO,WAC9D,GAAIthE,GAAIyf,GAIR,OAA0B,UAAnBxqB,GAAY+K,KAA2C,MAAxB/K,GAAa9S,EAAG6d,KAAyC,MAAzB/K,EAAW7U,OAAO4f,OACrF,QACHgiE,UAAW,SAAmB5gE,GAI5B,IAHA,GAEI8iE,GAAUC,EAFVztE,GAAQ0K,GACRzhB,EAAI,EAEDkF,UAAUlD,OAAShC,GAAG+W,EAAKhR,KAAKb,UAAUlF,KAEjD,IADAwkF,EAAYD,EAAWxtE,EAAK,IACvB5H,EAASo1E,QAAoB1hF,KAAP4e,KAAoB2hE,EAAS3hE,GAMxD,MALKlc,GAAQg/E,KAAWA,EAAW,SAAUpiF,EAAKgC,GAEhD,GADwB,kBAAbqgF,KAAyBrgF,EAAQqgF,EAAUtkF,KAAKP,KAAMwC,EAAKgC,KACjEi/E,EAASj/E,GAAQ,MAAOA,KAE/B4S,EAAK,GAAKwtE,EACHjvE,EAAWgE,MAAM8oE,EAAOrrE,MAKnC+oB,EAAiB,UAAEyiD,IAAiB1iF,EAAoB,IAAIigC,EAAiB,UAAGyiD,EAAcziD,EAAiB,UAAEv5B,SAEjH08C,EAAenjB,EAAS,UAExBmjB,EAAe5+C,KAAM,QAAQ,GAE7B4+C,EAAezjC,EAAOimB,KAAM,QAAQ,IAK9B,SAAUlmC,EAAQD,EAASO,GAEjC,GAAI6hF,GAAO7hF,EAAoB,IAAI,QAC/BsP,EAAWtP,EAAoB,IAC/B8f,EAAM9f,EAAoB,IAC1B4kF,EAAU5kF,EAAoB,IAAIiO,EAClCmI,EAAK,EACLyuE,EAAejkF,OAAOikF,cAAgB,WACxC,OAAO,GAELC,GAAU9kF,EAAoB,IAAI,WACpC,MAAO6kF,GAAajkF,OAAOmkF,yBAEzBC,EAAU,SAAUpjE,GACtBgjE,EAAQhjE,EAAIigE,GAAQv9E,OAClBnE,EAAG,OAAQiW,EACX6uE,SAGAC,EAAU,SAAUtjE,EAAIsd,GAE1B,IAAK5vB,EAASsS,GAAK,MAAoB,gBAANA,GAAiBA,GAAmB,gBAANA,GAAiB,IAAM,KAAOA,CAC7F,KAAK9B,EAAI8B,EAAIigE,GAAO,CAElB,IAAKgD,EAAajjE,GAAK,MAAO,GAE9B,KAAKsd,EAAQ,MAAO,GAEpB8lD,GAAQpjE,GAER,MAAOA,GAAGigE,GAAM1hF,GAEhBglF,EAAU,SAAUvjE,EAAIsd,GAC1B,IAAKpf,EAAI8B,EAAIigE,GAAO,CAElB,IAAKgD,EAAajjE,GAAK,OAAO,CAE9B,KAAKsd,EAAQ,OAAO,CAEpB8lD,GAAQpjE,GAER,MAAOA,GAAGigE,GAAMoD,GAGhBG,EAAW,SAAUxjE,GAEvB,MADIkjE,IAAUO,EAAKC,MAAQT,EAAajjE,KAAQ9B,EAAI8B,EAAIigE,IAAOmD,EAAQpjE,GAChEA,GAELyjE,EAAO3lF,EAAOD,SAChB2lD,IAAKy8B,EACLyD,MAAM,EACNJ,QAASA,EACTC,QAASA,EACTC,SAAUA,IAMN,SAAU1lF,EAAQD,EAASO,GAGjC,GAAI2gF,GAAU3gF,EAAoB,IAC9BulF,EAAOvlF,EAAoB,IAC3BwlD,EAAMxlD,EAAoB,GAC9BN,GAAOD,QAAU,SAAUmiB,GACzB,GAAIzW,GAASw1E,EAAQ/+D,GACjB4jE,EAAaD,EAAKt3E,CACtB,IAAIu3E,EAKF,IAJA,GAGIljF,GAHAmjF,EAAUD,EAAW5jE,GACrB+gE,EAASn9B,EAAIv3C,EACb9N,EAAI,EAEDslF,EAAQtjF,OAAShC,GAAOwiF,EAAOtiF,KAAKuhB,EAAItf,EAAMmjF,EAAQtlF,OAAOgL,EAAOjF,KAAK5D,EAChF,OAAO6I,KAML,SAAUzL,EAAQD,EAASO,GAGjC,GAAIijD,GAAMjjD,EAAoB,GAC9BN,GAAOD,QAAUgG,MAAMC,SAAW,SAAiBggF,GACjD,MAAmB,SAAZziC,EAAIyiC,KAMP,SAAUhmF,EAAQD,EAASO,GAGjC,GAAI0kD,GAAY1kD,EAAoB,IAChCsiF,EAAOtiF,EAAoB,IAAIiO,EAC/BnC,KAAcA,SAEd65E,EAA+B,gBAAV97E,SAAsBA,QAAUjJ,OAAO2kD,oBAC5D3kD,OAAO2kD,oBAAoB17C,WAE3B+7E,EAAiB,SAAUhkE,GAC7B,IACE,MAAO0gE,GAAK1gE,GACZ,MAAOvX,GACP,MAAOs7E,GAAY55E,SAIvBrM,GAAOD,QAAQwO,EAAI,SAA6B2T,GAC9C,MAAO+jE,IAAoC,mBAArB75E,EAASzL,KAAKuhB,GAA2BgkE,EAAehkE,GAAM0gE,EAAK59B,EAAU9iC,MAM/F,SAAUliB,EAAQD,KAMlB,SAAUC,EAAQD,EAASO,GAEjCA,EAAoB,IAAI,kBAKlB,SAAUN,EAAQD,EAASO,GAEjCA,EAAoB,IAAI,eAKlB,SAAUN,EAAQD,EAASO,IAEL,SAASN,IAEnC,SAAUigB,EAAQngB,GACRE,EAAOD,QAAUD,KAG3BM,EAAM,WAIJ,QAAS+lF,KACL,MAAOC,IAAarsE,MAAM,KAAMpU,WASpC,QAASK,GAAQwxC,GACb,MAAOA,aAAiBzxC,QAAmD,mBAA1C7E,OAAOS,UAAUyK,SAASzL,KAAK62C,GAGpE,QAAS5nC,GAAS4nC,GAGd,MAAgB,OAATA,GAA2D,oBAA1Ct2C,OAAOS,UAAUyK,SAASzL,KAAK62C,GAG3D,QAAS6uC,GAAchkF,GACnB,GAAInB,OAAO2kD,oBACP,MAAmD,KAA3C3kD,OAAO2kD,oBAAoBxjD,GAAKI,MAExC,IAAI4M,EACJ,KAAKA,IAAKhN,GACN,GAAIA,EAAIT,eAAeyN,GACnB,OAAO,CAGf,QAAO,EAIf,QAASi3E,GAAY9uC,GACjB,WAAiB,KAAVA,EAGX,QAASvzC,GAASuzC,GACd,MAAwB,gBAAVA,IAAgE,oBAA1Ct2C,OAAOS,UAAUyK,SAASzL,KAAK62C,GAGvE,QAASvyC,GAAOuyC,GACZ,MAAOA,aAAiBtyC,OAAkD,kBAA1ChE,OAAOS,UAAUyK,SAASzL,KAAK62C,GAGnE,QAAShrC,GAAIjF,EAAK6B,GACd,GAAc3I,GAAV8lF,IACJ,KAAK9lF,EAAI,EAAGA,EAAI8G,EAAI9E,SAAUhC,EAC1B8lF,EAAI//E,KAAK4C,EAAG7B,EAAI9G,GAAIA,GAExB,OAAO8lF,GAGX,QAASC,GAAWvjF,EAAGC,GACnB,MAAOhC,QAAOS,UAAUC,eAAejB,KAAKsC,EAAGC,GAGnD,QAAS0C,GAAO3C,EAAGC,GACf,IAAK,GAAIzC,KAAKyC,GACNsjF,EAAWtjF,EAAGzC,KACdwC,EAAExC,GAAKyC,EAAEzC,GAYjB,OARI+lF,GAAWtjF,EAAG,cACdD,EAAEmJ,SAAWlJ,EAAEkJ,UAGfo6E,EAAWtjF,EAAG,aACdD,EAAE+D,QAAU9D,EAAE8D,SAGX/D,EAGX,QAASwjF,GAAWjvC,EAAOnwC,EAAQ8tB,EAAQ23C,GACvC,MAAO4Z,IAAiBlvC,EAAOnwC,EAAQ8tB,EAAQ23C,GAAQ,GAAM6Z,MAGjE,QAASC,KAEL,OACIC,OAAkB,EAClBC,gBACAC,eACAp0E,UAAmB,EACnBq0E,cAAkB,EAClBC,WAAkB,EAClBC,aAAkB,KAClBC,eAAkB,EAClBC,iBAAkB,EAClBC,KAAkB,EAClBC,mBACAC,SAAkB,KAClBC,SAAkB,EAClBC,iBAAkB,GAI1B,QAASC,GAAgB9mF,GAIrB,MAHa,OAATA,EAAE+mF,MACF/mF,EAAE+mF,IAAMf,KAELhmF,EAAE+mF,IAqBb,QAASC,GAAQhnF,GACb,GAAkB,MAAdA,EAAEinF,SAAkB,CACpB,GAAIC,GAAQJ,EAAgB9mF,GACxBmnF,EAAcl/C,GAAKloC,KAAKmnF,EAAMR,gBAAiB,SAAU7mF,GACzD,MAAY,OAALA,IAEPunF,GAAc3iF,MAAMzE,EAAE+lB,GAAG+zC,YACzBotB,EAAMn1E,SAAW,IAChBm1E,EAAMjB,QACNiB,EAAMZ,eACNY,EAAMG,iBACNH,EAAML,kBACNK,EAAMb,YACNa,EAAMX,gBACNW,EAAMV,mBACLU,EAAMP,UAAaO,EAAMP,UAAYQ,EAS3C,IAPInnF,EAAEsnF,UACFF,EAAaA,GACe,IAAxBF,EAAMd,eACwB,IAA9Bc,EAAMhB,aAAarkF,YACDa,KAAlBwkF,EAAMK,SAGS,MAAnBjnF,OAAOknF,UAAqBlnF,OAAOknF,SAASxnF,GAI5C,MAAOonF,EAHPpnF,GAAEinF,SAAWG,EAMrB,MAAOpnF,GAAEinF,SAGb,QAASQ,GAAeP,GACpB,GAAIlnF,GAAI6lF,EAAU6B,IAQlB,OAPa,OAATR,EACAliF,EAAO8hF,EAAgB9mF,GAAIknF,GAG3BJ,EAAgB9mF,GAAGwmF,iBAAkB,EAGlCxmF,EAOX,QAAS2nF,GAAW7rC,EAAID,GACpB,GAAIh8C,GAAG0C,EAAMw7B,CAiCb,IA/BK2nD,EAAY7pC,EAAKn+B,oBAClBo+B,EAAGp+B,iBAAmBm+B,EAAKn+B,kBAE1BgoE,EAAY7pC,EAAKl9B,MAClBm9B,EAAGn9B,GAAKk9B,EAAKl9B,IAEZ+mE,EAAY7pC,EAAK+rC,MAClB9rC,EAAG8rC,GAAK/rC,EAAK+rC,IAEZlC,EAAY7pC,EAAKgsC,MAClB/rC,EAAG+rC,GAAKhsC,EAAKgsC,IAEZnC,EAAY7pC,EAAKyrC,WAClBxrC,EAAGwrC,QAAUzrC,EAAKyrC,SAEjB5B,EAAY7pC,EAAKisC,QAClBhsC,EAAGgsC,KAAOjsC,EAAKisC,MAEdpC,EAAY7pC,EAAKksC,UAClBjsC,EAAGisC,OAASlsC,EAAKksC,QAEhBrC,EAAY7pC,EAAKmsC,WAClBlsC,EAAGksC,QAAUnsC,EAAKmsC,SAEjBtC,EAAY7pC,EAAKkrC,OAClBjrC,EAAGirC,IAAMD,EAAgBjrC,IAExB6pC,EAAY7pC,EAAKosC,WAClBnsC,EAAGmsC,QAAUpsC,EAAKosC,SAGlBC,GAAiBrmF,OAAS,EAC1B,IAAKhC,EAAI,EAAGA,EAAIqoF,GAAiBrmF,OAAQhC,IACrC0C,EAAO2lF,GAAiBroF,GACxBk+B,EAAM8d,EAAKt5C,GACNmjF,EAAY3nD,KACb+d,EAAGv5C,GAAQw7B,EAKvB,OAAO+d,GAMX,QAASqsC,GAAOC,GACZT,EAAWnoF,KAAM4oF,GACjB5oF,KAAKumB,GAAK,GAAIzhB,MAAkB,MAAb8jF,EAAOriE,GAAaqiE,EAAOriE,GAAG+zC,UAAY4tB,KACxDloF,KAAKwnF,YACNxnF,KAAKumB,GAAK,GAAIzhB,MAAKojF,OAIE,IAArBW,KACAA,IAAmB,EACnB9C,EAAM+C,aAAa9oF,MACnB6oF,IAAmB,GAI3B,QAAShiF,GAAU5E,GACf,MAAOA,aAAe0mF,IAAkB,MAAP1mF,GAAuC,MAAxBA,EAAIic,iBAGxD,QAAS6qE,GAAUj+B;cACf,MAAIA,GAAS,EAEFpmD,KAAK46B,KAAKwrB,IAAW,EAErBpmD,KAAKwJ,MAAM48C,GAI1B,QAASk+B,GAAMC,GACX,GAAIC,IAAiBD,EACjBzkF,EAAQ,CAMZ,OAJsB,KAAlB0kF,GAAuBhhC,SAASghC,KAChC1kF,EAAQukF,EAASG,IAGd1kF,EAIX,QAAS2kF,GAAczb,EAAQC,EAAQyb,GACnC,GAGI/oF,GAHAkG,EAAM7B,KAAKL,IAAIqpE,EAAOrrE,OAAQsrE,EAAOtrE,QACrCgnF,EAAa3kF,KAAKge,IAAIgrD,EAAOrrE,OAASsrE,EAAOtrE,QAC7CinF,EAAQ,CAEZ,KAAKjpF,EAAI,EAAGA,EAAIkG,EAAKlG,KACZ+oF,GAAe1b,EAAOrtE,KAAOstE,EAAOttE,KACnC+oF,GAAeJ,EAAMtb,EAAOrtE,MAAQ2oF,EAAMrb,EAAOttE,MACnDipF,GAGR,OAAOA,GAAQD,EAGnB,QAASlyE,GAAKmH,IACgC,IAAtCynE,EAAMwD,6BACmB,mBAAbryE,UAA6BA,QAAQC,MACjDD,QAAQC,KAAK,wBAA0BmH,GAI/C,QAASkrE,GAAUlrE,EAAKtV,GACpB,GAAIygF,IAAY,CAEhB,OAAOjkF,GAAO,WAIV,GAHgC,MAA5BugF,EAAM2D,oBACN3D,EAAM2D,mBAAmB,KAAMprE,GAE/BmrE,EAAW,CAGX,IAAK,GADD7D,GADAxuE,KAEK/W,EAAI,EAAGA,EAAIkF,UAAUlD,OAAQhC,IAAK,CAEvC,GADAulF,EAAM,GACsB,gBAAjBrgF,WAAUlF,GAAiB,CAClCulF,GAAO,MAAQvlF,EAAI,IACnB,KAAK,GAAImC,KAAO+C,WAAU,GACtBqgF,GAAOpjF,EAAM,KAAO+C,UAAU,GAAG/C,GAAO,IAE5CojF,GAAMA,EAAI35E,MAAM,GAAI,OAEpB25E,GAAMrgF,UAAUlF,EAEpB+W,GAAKhR,KAAKw/E,GAEdzuE,EAAKmH,EAAM,gBAAkB3Y,MAAMpE,UAAU0K,MAAM1L,KAAK6W,GAAM7O,KAAK,IAAM,MAAO,GAAK1C,QAASwoB,OAC9Fo7D,GAAY,EAEhB,MAAOzgF,GAAG2Q,MAAM3Z,KAAMuF,YACvByD,GAKP,QAAS2gF,GAAgBhpF,EAAM2d,GACK,MAA5BynE,EAAM2D,oBACN3D,EAAM2D,mBAAmB/oF,EAAM2d,GAE9BsrE,GAAajpF,KACdwW,EAAKmH,GACLsrE,GAAajpF,IAAQ,GAO7B,QAASkpF,GAAWzyC,GAChB,MAAOA,aAAiBj2B,WAAsD,sBAA1CrgB,OAAOS,UAAUyK,SAASzL,KAAK62C,GAGvE,QAAStiC,GAAK8zE,GACV,GAAI7lF,GAAM1C,CACV,KAAKA,IAAKuoF,GACN7lF,EAAO6lF,EAAOvoF,GACVwpF,EAAW9mF,GACX/C,KAAKK,GAAK0C,EAEV/C,KAAK,IAAMK,GAAK0C,CAGxB/C,MAAK8pF,QAAUlB,EAIf5oF,KAAK+pF,+BAAiC,GAAI9/C,SACrCjqC,KAAKgqF,wBAAwB9pE,QAAUlgB,KAAKiqF,cAAc/pE,QACvD,IAAM,UAAYA,QAG9B,QAASgqE,GAAaC,EAAcC,GAChC,GAAoCrnF,GAAhCojF,EAAM3gF,KAAW2kF,EACrB,KAAKpnF,IAAQqnF,GACLhE,EAAWgE,EAAarnF,KACpByM,EAAS26E,EAAapnF,KAAUyM,EAAS46E,EAAYrnF,KACrDojF,EAAIpjF,MACJyC,EAAO2gF,EAAIpjF,GAAOonF,EAAapnF,IAC/ByC,EAAO2gF,EAAIpjF,GAAOqnF,EAAYrnF,KACF,MAArBqnF,EAAYrnF,GACnBojF,EAAIpjF,GAAQqnF,EAAYrnF,SAEjBojF,GAAIpjF,GAIvB,KAAKA,IAAQonF,GACL/D,EAAW+D,EAAcpnF,KACpBqjF,EAAWgE,EAAarnF,IACzByM,EAAS26E,EAAapnF,MAE1BojF,EAAIpjF,GAAQyC,KAAW2gF,EAAIpjF,IAGnC,OAAOojF,GAGX,QAASkE,GAAOzB,GACE,MAAVA,GACA5oF,KAAK8U,IAAI8zE,GA6BjB,QAAS0B,GAAU9nF,EAAK+nF,EAAKjqD,GACzB,GAAIkqD,GAASxqF,KAAKyqF,UAAUjoF,IAAQxC,KAAKyqF,UAAoB,QAC7D,OAAOZ,GAAWW,GAAUA,EAAOjqF,KAAKgqF,EAAKjqD,GAAOkqD,EAYxD,QAASE,GAAgBloF,GACrB,GAAIyE,GAASjH,KAAK2qF,gBAAgBnoF,GAC9BooF,EAAc5qF,KAAK2qF,gBAAgBnoF,EAAIw2B,cAE3C,OAAI/xB,KAAW2jF,EACJ3jF,GAGXjH,KAAK2qF,gBAAgBnoF,GAAOooF,EAAY1/E,QAAQ,mBAAoB,SAAUqzB,GAC1E,MAAOA,GAAItyB,MAAM,KAGdjM,KAAK2qF,gBAAgBnoF,IAKhC,QAASqoF,KACL,MAAO7qF,MAAK8qF,aAMhB,QAASC,GAASjgC,GACd,MAAO9qD,MAAKgrF,SAAS9/E,QAAQ,KAAM4/C,GAoBvC,QAASmgC,GAAcngC,EAAQogC,EAAe3zC,EAAQ4zC,GAClD,GAAIX,GAASxqF,KAAKorF,cAAc7zC,EAChC,OAAQsyC,GAAWW,GACfA,EAAO1/B,EAAQogC,EAAe3zC,EAAQ4zC,GACtCX,EAAOt/E,QAAQ,MAAO4/C,GAG9B,QAASugC,GAAYlhE,EAAMqgE,GACvB,GAAIvjF,GAASjH,KAAKorF,cAAcjhE,EAAO,EAAI,SAAW,OACtD,OAAO0/D,GAAW5iF,GAAUA,EAAOujF,GAAUvjF,EAAOiE,QAAQ,MAAOs/E,GAKvE,QAASc,GAAcC,EAAMC,GACzB,GAAIC,GAAYF,EAAK1sE,aACrB6sE,IAAQD,GAAaC,GAAQD,EAAY,KAAOC,GAAQF,GAAaD,EAGzE,QAASI,GAAeC,GACpB,MAAwB,gBAAVA,GAAqBF,GAAQE,IAAUF,GAAQE,EAAM/sE,mBAAiB3b,GAGxF,QAAS2oF,GAAqBC,GAC1B,GACIC,GACAhpF,EAFAipF,IAIJ,KAAKjpF,IAAQ+oF,GACL1F,EAAW0F,EAAa/oF,KACxBgpF,EAAiBJ,EAAe5oF,MAE5BipF,EAAgBD,GAAkBD,EAAY/oF,GAK1D,OAAOipF,GAKX,QAASC,GAAgBV,EAAMW,GAC3BC,GAAWZ,GAAQW,EAGvB,QAASE,GAAoBC,GACzB,GAAIT,KACJ,KAAK,GAAInT,KAAK4T,GACVT,EAAMxlF,MAAMmlF,KAAM9S,EAAGyT,SAAUC,GAAW1T,IAK9C,OAHAmT,GAAMxzE,KAAK,SAAUvV,EAAGC,GACpB,MAAOD,GAAEqpF,SAAWppF,EAAEopF,WAEnBN,EAGX,QAASU,GAASxhC,EAAQyhC,EAAcC,GACpC,GAAIC,GAAY,GAAK/nF,KAAKge,IAAIooC,GAC1B4hC,EAAcH,EAAeE,EAAUpqF,MAE3C,QADWyoD,GAAU,EACL0hC,EAAY,IAAM,GAAM,KACpC9nF,KAAK48C,IAAI,GAAI58C,KAAKJ,IAAI,EAAGooF,IAAc1gF,WAAWL,OAAO,GAAK8gF,EAetE,QAASE,GAAgB3gB,EAAO4gB,EAAQ7B,EAASpiF,GAC7C,GAAIkkF,GAAOlkF,CACa,iBAAbA,KACPkkF,EAAO,WACH,MAAO7sF,MAAK2I,OAGhBqjE,IACA8gB,GAAqB9gB,GAAS6gB,GAE9BD,IACAE,GAAqBF,EAAO,IAAM,WAC9B,MAAON,GAASO,EAAKlzE,MAAM3Z,KAAMuF,WAAYqnF,EAAO,GAAIA,EAAO,MAGnE7B,IACA+B,GAAqB/B,GAAW,WAC5B,MAAO/qF,MAAK+sF,aAAahC,QAAQ8B,EAAKlzE,MAAM3Z,KAAMuF,WAAYymE,KAK1E,QAASghB,GAAuB51C,GAC5B,MAAIA,GAAM1wC,MAAM,YACL0wC,EAAMlsC,QAAQ,WAAY,IAE9BksC,EAAMlsC,QAAQ,MAAO,IAGhC,QAAS+hF,GAAmBhmF,GACxB,GAA4C5G,GAAGgC,EAA3CwG,EAAQ5B,EAAOP,MAAMwmF,GAEzB,KAAK7sF,EAAI,EAAGgC,EAASwG,EAAMxG,OAAQhC,EAAIgC,EAAQhC,IACvCysF,GAAqBjkF,EAAMxI,IAC3BwI,EAAMxI,GAAKysF,GAAqBjkF,EAAMxI,IAEtCwI,EAAMxI,GAAK2sF,EAAuBnkF,EAAMxI,GAIhD,OAAO,UAAUkqF,GACb,GAAiBlqF,GAAbmqF,EAAS,EACb,KAAKnqF,EAAI,EAAGA,EAAIgC,EAAQhC,IACpBmqF,GAAUX,EAAWhhF,EAAMxI,IAAMwI,EAAMxI,GAAGE,KAAKgqF,EAAKtjF,GAAU4B,EAAMxI,EAExE,OAAOmqF,IAKf,QAAS2C,GAAa3sF,EAAGyG,GACrB,MAAKzG,GAAEgnF,WAIPvgF,EAASmmF,EAAanmF,EAAQzG,EAAEusF,cAChCM,GAAgBpmF,GAAUomF,GAAgBpmF,IAAWgmF,EAAmBhmF,GAEjEomF,GAAgBpmF,GAAQzG,IANpBA,EAAEusF,aAAalC,cAS9B,QAASuC,GAAanmF,EAAQ8tB,GAG1B,QAASu4D,GAA4Bl2C,GACjC,MAAOriB,GAAO21D,eAAetzC,IAAUA,EAH3C,GAAI/2C,GAAI,CAOR,KADAktF,GAAsBC,UAAY,EAC3BntF,GAAK,GAAKktF,GAAsBj/E,KAAKrH,IACxCA,EAASA,EAAOiE,QAAQqiF,GAAuBD,GAC/CC,GAAsBC,UAAY,EAClCntF,GAAK,CAGT,OAAO4G,GA6BX,QAASwmF,GAAezhB,EAAO0hB,EAAOC,GAClCC,GAAQ5hB,GAAS6d,EAAW6D,GAASA,EAAQ,SAAUG,EAAUd,GAC7D,MAAQc,IAAYF,EAAeA,EAAcD,GAIzD,QAASI,GAAuB9hB,EAAO4c,GACnC,MAAKxC,GAAWwH,GAAS5hB,GAIlB4hB,GAAQ5hB,GAAO4c,EAAOd,QAASc,EAAOH,SAHlC,GAAIx+C,QAAO8jD,EAAe/hB,IAOzC,QAAS+hB,GAAersF,GACpB,MAAOssF,GAAYtsF,EAAEwJ,QAAQ,KAAM,IAAIA,QAAQ,sCAAuC,SAAU+iF,EAAS1kB,EAAIC,EAAIC,EAAIykB,GACjH,MAAO3kB,IAAMC,GAAMC,GAAMykB,KAIjC,QAASF,GAAYtsF,GACjB,MAAOA,GAAEwJ,QAAQ,yBAA0B,QAK/C,QAASijF,GAAeniB,EAAOrjE,GAC3B,GAAItI,GAAGwsF,EAAOlkF,CASd,KARqB,gBAAVqjE,KACPA,GAASA,IAETnoE,EAAS8E,KACTkkF,EAAO,SAAUz1C,EAAOvuC,GACpBA,EAAMF,GAAYqgF,EAAM5xC,KAG3B/2C,EAAI,EAAGA,EAAI2rE,EAAM3pE,OAAQhC,IAC1B+tF,GAAOpiB,EAAM3rE,IAAMwsF,EAI3B,QAASwB,GAAmBriB,EAAOrjE,GAC/BwlF,EAAcniB,EAAO,SAAU50B,EAAOvuC,EAAO+/E,EAAQ5c,GACjD4c,EAAO0F,GAAK1F,EAAO0F,OACnB3lF,EAASyuC,EAAOwxC,EAAO0F,GAAI1F,EAAQ5c,KAI3C,QAASuiB,GAAwBviB,EAAO50B,EAAOwxC,GAC9B,MAATxxC,GAAiBgvC,EAAWgI,GAAQpiB,IACpCoiB,GAAOpiB,GAAO50B,EAAOwxC,EAAO4F,GAAI5F,EAAQ5c,GA0DhD,QAASyiB,GAAWxkE,GAChB,MAAOykE,IAAWzkE,GAAQ,IAAM,IAGpC,QAASykE,IAAWzkE,GAChB,MAAQA,GAAO,GAAM,GAAKA,EAAO,KAAQ,GAAMA,EAAO,KAAQ,EAalE,QAAS0kE,MACL,MAAOD,IAAW1uF,KAAKiqB,QAG3B,QAAS2kE,IAAYrD,EAAMsD,GACvB,MAAO,UAAUrqF,GACb,MAAa,OAATA,GACAsqF,GAAM9uF,KAAMurF,EAAM/mF,GAClBuhF,EAAM+C,aAAa9oF,KAAM6uF,GAClB7uF,MAEAkB,GAAIlB,KAAMurF,IAK7B,QAASrqF,IAAKqpF,EAAKgB,GACf,MAAOhB,GAAI/C,UACP+C,EAAIhkE,GAAG,OAASgkE,EAAIhC,OAAS,MAAQ,IAAMgD,KAAUrD,IAG7D,QAAS4G,IAAOvE,EAAKgB,EAAM/mF,GACnB+lF,EAAI/C,YAAcviF,MAAMT,KACX,aAAT+mF,GAAuBmD,GAAWnE,EAAItgE,SAA2B,IAAhBsgE,EAAIlgE,SAAgC,KAAfkgE,EAAIngE,OAC1EmgE,EAAIhkE,GAAG,OAASgkE,EAAIhC,OAAS,MAAQ,IAAMgD,GAAM/mF,EAAO+lF,EAAIlgE,QAAS0kE,GAAYvqF,EAAO+lF,EAAIlgE,UAG5FkgE,EAAIhkE,GAAG,OAASgkE,EAAIhC,OAAS,MAAQ,IAAMgD,GAAM/mF,IAO7D,QAASwqF,IAAWpD,GAEhB,MADAA,GAAQD,EAAeC,GACnB/B,EAAW7pF,KAAK4rF,IACT5rF,KAAK4rF,KAET5rF,KAIX,QAASivF,IAAWrD,EAAOpnF,GACvB,GAAqB,gBAAVonF,GAAoB,CAC3BA,EAAQC,EAAqBD,EAE7B,KAAK,GADDsD,GAAc9C,EAAoBR,GAC7BvrF,EAAI,EAAGA,EAAI6uF,EAAY7sF,OAAQhC,IACpCL,KAAKkvF,EAAY7uF,GAAGkrF,MAAMK,EAAMsD,EAAY7uF,GAAGkrF,WAInD,IADAK,EAAQD,EAAeC,GACnB/B,EAAW7pF,KAAK4rF,IAChB,MAAO5rF,MAAK4rF,GAAOpnF,EAG3B,OAAOxE,MAGX,QAAS2zE,IAAIxyE,EAAGwO,GACZ,OAASxO,EAAIwO,EAAKA,GAAKA,EAoB3B,QAASo/E,IAAY9kE,EAAMI,GACvB,GAAIplB,MAAMglB,IAAShlB,MAAMolB,GACrB,MAAO69D,IAEX,IAAIiH,GAAWxb,GAAItpD,EAAO,GAE1B,OADAJ,KAASI,EAAQ8kE,GAAY,GACT,IAAbA,EAAkBT,GAAWzkE,GAAQ,GAAK,GAAO,GAAKklE,EAAW,EAAI,EAsDhF,QAASC,IAAc5uF,EAAGyG,GACtB,MAAKzG,GAIEoF,EAAQ5F,KAAKqvF,SAAWrvF,KAAKqvF,QAAQ7uF,EAAE6pB,SAC1CrqB,KAAKqvF,SAASrvF,KAAKqvF,QAAQC,UAAYC,IAAkBjhF,KAAKrH,GAAU,SAAW,cAAczG,EAAE6pB,SAJ5FzkB,EAAQ5F,KAAKqvF,SAAWrvF,KAAKqvF,QAChCrvF,KAAKqvF,QAAoB,WAOrC,QAASG,IAAmBhvF,EAAGyG,GAC3B,MAAKzG,GAIEoF,EAAQ5F,KAAKyvF,cAAgBzvF,KAAKyvF,aAAajvF,EAAE6pB,SACpDrqB,KAAKyvF,aAAaF,GAAiBjhF,KAAKrH,GAAU,SAAW,cAAczG,EAAE6pB,SAJtEzkB,EAAQ5F,KAAKyvF,cAAgBzvF,KAAKyvF,aACrCzvF,KAAKyvF,aAAyB,WAM1C,QAASC,IAAkBC,EAAW1oF,EAAQylE,GAC1C,GAAIrsE,GAAGowC,EAAI85C,EAAKqF,EAAMD,EAAUE,mBAChC,KAAK7vF,KAAK8vF,aAKN,IAHA9vF,KAAK8vF,gBACL9vF,KAAK+vF,oBACL/vF,KAAKgwF,qBACA3vF,EAAI,EAAGA,EAAI,KAAMA,EAClBkqF,EAAMlE,GAAW,IAAMhmF,IACvBL,KAAKgwF,kBAAkB3vF,GAAKL,KAAKiwF,YAAY1F,EAAK,IAAIsF,oBACtD7vF,KAAK+vF,iBAAiB1vF,GAAKL,KAAKkwF,OAAO3F,EAAK,IAAIsF,mBAIxD,OAAInjB,GACe,QAAXzlE,GACAwpC,EAAKtqC,GAAQ5F,KAAKP,KAAKgwF,kBAAmBJ,IAC3B,IAARn/C,EAAYA,EAAK,OAExBA,EAAKtqC,GAAQ5F,KAAKP,KAAK+vF,iBAAkBH,IAC1B,IAARn/C,EAAYA,EAAK,MAGb,QAAXxpC,GAEY,KADZwpC,EAAKtqC,GAAQ5F,KAAKP,KAAKgwF,kBAAmBJ,IAE/Bn/C,GAEXA,EAAKtqC,GAAQ5F,KAAKP,KAAK+vF,iBAAkBH,IAC1B,IAARn/C,EAAYA,EAAK,OAGZ,KADZA,EAAKtqC,GAAQ5F,KAAKP,KAAK+vF,iBAAkBH,IAE9Bn/C,GAEXA,EAAKtqC,GAAQ5F,KAAKP,KAAKgwF,kBAAmBJ,IAC3B,IAARn/C,EAAYA,EAAK,MAKpC,QAAS0/C,IAAmBR,EAAW1oF,EAAQylE,GAC3C,GAAIrsE,GAAGkqF,EAAKmD,CAEZ,IAAI1tF,KAAKowF,kBACL,MAAOV,IAAkBnvF,KAAKP,KAAM2vF,EAAW1oF,EAAQylE,EAY3D,KATK1sE,KAAK8vF,eACN9vF,KAAK8vF,gBACL9vF,KAAK+vF,oBACL/vF,KAAKgwF,sBAMJ3vF,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAYrB,GAVAkqF,EAAMlE,GAAW,IAAMhmF,IACnBqsE,IAAW1sE,KAAK+vF,iBAAiB1vF,KACjCL,KAAK+vF,iBAAiB1vF,GAAK,GAAI4pC,QAAO,IAAMjqC,KAAKkwF,OAAO3F,EAAK,IAAIr/E,QAAQ,IAAK,IAAM,IAAK,KACzFlL,KAAKgwF,kBAAkB3vF,GAAK,GAAI4pC,QAAO,IAAMjqC,KAAKiwF,YAAY1F,EAAK,IAAIr/E,QAAQ,IAAK,IAAM,IAAK,MAE9FwhE,GAAW1sE,KAAK8vF,aAAazvF,KAC9BqtF,EAAQ,IAAM1tF,KAAKkwF,OAAO3F,EAAK,IAAM,KAAOvqF,KAAKiwF,YAAY1F,EAAK,IAClEvqF,KAAK8vF,aAAazvF,GAAK,GAAI4pC,QAAOyjD,EAAMxiF,QAAQ,IAAK,IAAK,MAG1DwhE,GAAqB,SAAXzlE,GAAqBjH,KAAK+vF,iBAAiB1vF,GAAGiO,KAAKqhF,GAC7D,MAAOtvF,EACJ,IAAIqsE,GAAqB,QAAXzlE,GAAoBjH,KAAKgwF,kBAAkB3vF,GAAGiO,KAAKqhF,GACpE,MAAOtvF,EACJ,KAAKqsE,GAAU1sE,KAAK8vF,aAAazvF,GAAGiO,KAAKqhF,GAC5C,MAAOtvF,IAOnB,QAASgwF,IAAU9F,EAAK/lF,GACpB,GAAI8rF,EAEJ,KAAK/F,EAAI/C,UAEL,MAAO+C,EAGX,IAAqB,gBAAV/lF,GACP,GAAI,QAAQ8J,KAAK9J,GACbA,EAAQwkF,EAAMxkF,OAId,IAFAA,EAAQ+lF,EAAIwC,aAAawD,YAAY/rF,IAEhCX,EAASW,GACV,MAAO+lF,EAOnB,OAFA+F,GAAa5rF,KAAKL,IAAIkmF,EAAIngE,OAAQ2kE,GAAYxE,EAAItgE,OAAQzlB,IAC1D+lF,EAAIhkE,GAAG,OAASgkE,EAAIhC,OAAS,MAAQ,IAAM,SAAS/jF,EAAO8rF,GACpD/F,EAGX,QAASiG,IAAahsF,GAClB,MAAa,OAATA,GACA6rF,GAASrwF,KAAMwE,GACfuhF,EAAM+C,aAAa9oF,MAAM,GAClBA,MAEAkB,GAAIlB,KAAM,SAIzB,QAASywF,MACL,MAAO1B,IAAY/uF,KAAKiqB,OAAQjqB,KAAKqqB,SAIzC,QAASqmE,IAAkB7C,GACvB,MAAI7tF,MAAKowF,mBACAhK,EAAWpmF,KAAM,iBAClB2wF,GAAmBpwF,KAAKP,MAExB6tF,EACO7tF,KAAK4wF,wBAEL5wF,KAAK6wF,oBAGXzK,EAAWpmF,KAAM,uBAClBA,KAAK6wF,kBAAoBC,IAEtB9wF,KAAK4wF,yBAA2B/C,EACnC7tF,KAAK4wF,wBAA0B5wF,KAAK6wF,mBAKhD,QAASE,IAAalD,GAClB,MAAI7tF,MAAKowF,mBACAhK,EAAWpmF,KAAM,iBAClB2wF,GAAmBpwF,KAAKP,MAExB6tF,EACO7tF,KAAKgxF,mBAELhxF,KAAKixF,eAGX7K,EAAWpmF,KAAM,kBAClBA,KAAKixF,aAAeC,IAEjBlxF,KAAKgxF,oBAAsBnD,EAC9B7tF,KAAKgxF,mBAAqBhxF,KAAKixF,cAI3C,QAASN,MACL,QAASQ,GAAUtuF,EAAGC,GAClB,MAAOA,GAAET,OAASQ,EAAER,OAGxB,GACIhC,GAAGkqF,EADH6G,KAAkBC,KAAiBC,IAEvC,KAAKjxF,EAAI,EAAGA,EAAI,GAAIA,IAEhBkqF,EAAMlE,GAAW,IAAMhmF,IACvB+wF,EAAYhrF,KAAKpG,KAAKiwF,YAAY1F,EAAK,KACvC8G,EAAWjrF,KAAKpG,KAAKkwF,OAAO3F,EAAK,KACjC+G,EAAYlrF,KAAKpG,KAAKkwF,OAAO3F,EAAK,KAClC+G,EAAYlrF,KAAKpG,KAAKiwF,YAAY1F,EAAK,IAO3C,KAHA6G,EAAYh5E,KAAK+4E,GACjBE,EAAWj5E,KAAK+4E,GAChBG,EAAYl5E,KAAK+4E,GACZ9wF,EAAI,EAAGA,EAAI,GAAIA,IAChB+wF,EAAY/wF,GAAK2tF,EAAYoD,EAAY/wF,IACzCgxF,EAAWhxF,GAAK2tF,EAAYqD,EAAWhxF,GAE3C,KAAKA,EAAI,EAAGA,EAAI,GAAIA,IAChBixF,EAAYjxF,GAAK2tF,EAAYsD,EAAYjxF,GAG7CL,MAAKixF,aAAe,GAAIhnD,QAAO,KAAOqnD,EAAY/oF,KAAK,KAAO,IAAK,KACnEvI,KAAK6wF,kBAAoB7wF,KAAKixF,aAC9BjxF,KAAKgxF,mBAAqB,GAAI/mD,QAAO,KAAOonD,EAAW9oF,KAAK,KAAO,IAAK,KACxEvI,KAAK4wF,wBAA0B,GAAI3mD,QAAO,KAAOmnD,EAAY7oF,KAAK,KAAO,IAAK,KAGlF,QAASgpF,IAAY51E,EAAGnb,EAAGE,EAAG+L,EAAGw9D,EAAGvoE,EAAG8vF,GAGnC,GAAIpnE,EAYJ,OAVIzO,GAAI,KAAOA,GAAK,GAEhByO,EAAO,GAAItlB,MAAK6W,EAAI,IAAKnb,EAAGE,EAAG+L,EAAGw9D,EAAGvoE,EAAG8vF,GACpCtpC,SAAS99B,EAAKqnE,gBACdrnE,EAAKsnE,YAAY/1E,IAGrByO,EAAO,GAAItlB,MAAK6W,EAAGnb,EAAGE,EAAG+L,EAAGw9D,EAAGvoE,EAAG8vF,GAG/BpnE,EAGX,QAASunE,IAAeh2E,GACpB,GAAIyO,EAEJ,IAAIzO,EAAI,KAAOA,GAAK,EAAG,CACnB,GAAIvE,GAAOzR,MAAMpE,UAAU0K,MAAM1L,KAAKgF,UAEtC6R,GAAK,GAAKuE,EAAI,IACdyO,EAAO,GAAItlB,MAAKA,KAAK8sF,IAAIj4E,MAAM,KAAMvC,IACjC8wC,SAAS99B,EAAKynE,mBACdznE,EAAK0nE,eAAen2E,OAGxByO,GAAO,GAAItlB,MAAKA,KAAK8sF,IAAIj4E,MAAM,KAAMpU,WAGzC,OAAO6kB,GAIX,QAAS2nE,IAAgB9nE,EAAM+nE,EAAKC,GAChC,GACIC,GAAM,EAAIF,EAAMC,CAIpB,SAFa,EAAIN,GAAc1nE,EAAM,EAAGioE,GAAKC,YAAcH,GAAO,EAElDE,EAAM,EAI1B,QAASE,IAAmBnoE,EAAMgiB,EAAMD,EAASgmD,EAAKC,GAClD,GAGII,GAASC,EAHTC,GAAgB,EAAIvmD,EAAUgmD,GAAO,EACrCQ,EAAaT,GAAgB9nE,EAAM+nE,EAAKC,GACxCjoE,EAAY,EAAI,GAAKiiB,EAAO,GAAKsmD,EAAeC,CAcpD,OAXIxoE,IAAa,GACbqoE,EAAUpoE,EAAO,EACjBqoE,EAAe7D,EAAW4D,GAAWroE,GAC9BA,EAAYykE,EAAWxkE,IAC9BooE,EAAUpoE,EAAO,EACjBqoE,EAAetoE,EAAYykE,EAAWxkE,KAEtCooE,EAAUpoE,EACVqoE,EAAetoE,IAIfC,KAAMooE,EACNroE,UAAWsoE,GAInB,QAASG,IAAWlI,EAAKyH,EAAKC,GAC1B,GAEIS,GAASL,EAFTG,EAAaT,GAAgBxH,EAAItgE,OAAQ+nE,EAAKC,GAC9ChmD,EAAOvnC,KAAKwJ,OAAOq8E,EAAIvgE,YAAcwoE,EAAa,GAAK,GAAK,CAchE,OAXIvmD,GAAO,GACPomD,EAAU9H,EAAItgE,OAAS,EACvByoE,EAAUzmD,EAAO0mD,GAAYN,EAASL,EAAKC,IACpChmD,EAAO0mD,GAAYpI,EAAItgE,OAAQ+nE,EAAKC,IAC3CS,EAAUzmD,EAAO0mD,GAAYpI,EAAItgE,OAAQ+nE,EAAKC,GAC9CI,EAAU9H,EAAItgE,OAAS,IAEvBooE,EAAU9H,EAAItgE,OACdyoE,EAAUzmD,IAIVA,KAAMymD,EACNzoE,KAAMooE,GAId,QAASM,IAAY1oE,EAAM+nE,EAAKC,GAC5B,GAAIO,GAAaT,GAAgB9nE,EAAM+nE,EAAKC,GACxCW,EAAiBb,GAAgB9nE,EAAO,EAAG+nE,EAAKC,EACpD,QAAQxD,EAAWxkE,GAAQuoE,EAAaI,GAAkB,EAiC9D,QAASC,IAAYtI,GACjB,MAAOkI,IAAWlI,EAAKvqF,KAAK8yF,MAAMd,IAAKhyF,KAAK8yF,MAAMb,KAAKhmD,KAQ3D,QAAS8mD,MACL,MAAO/yF,MAAK8yF,MAAMd,IAGtB,QAASgB,MACL,MAAOhzF,MAAK8yF,MAAMb,IAKtB,QAASgB,IAAY77C,GACjB,GAAInL,GAAOjsC,KAAK+sF,aAAa9gD,KAAKjsC,KAClC,OAAgB,OAATo3C,EAAgBnL,EAAOjsC,KAAKyV,IAAqB,GAAhB2hC,EAAQnL,GAAW,KAG/D,QAASinD,IAAe97C,GACpB,GAAInL,GAAOwmD,GAAWzyF,KAAM,EAAG,GAAGisC,IAClC,OAAgB,OAATmL,EAAgBnL,EAAOjsC,KAAKyV,IAAqB,GAAhB2hC,EAAQnL,GAAW,KAgE/D,QAASknD,IAAa/7C,EAAOriB,GACzB,MAAqB,gBAAVqiB,GACAA,EAGNnyC,MAAMmyC,IAIXA,EAAQriB,EAAOq+D,cAAch8C,GACR,gBAAVA,GACAA,EAGJ,MARI9rC,SAAS8rC,EAAO,IAW/B,QAASi8C,IAAgBj8C,EAAOriB,GAC5B,MAAqB,gBAAVqiB,GACAriB,EAAOq+D,cAAch8C,GAAS,GAAK,EAEvCnyC,MAAMmyC,GAAS,KAAOA,EAIjC,QAASk8C,IAAeC,EAAIpyF,GACxB,MAAOoyF,GAAGtnF,MAAM9K,EAAG,GAAGkH,OAAOkrF,EAAGtnF,MAAM,EAAG9K,IAI7C,QAASqyF,IAAgBhzF,EAAGyG,GACxB,GAAIwsF,GAAW7tF,EAAQ5F,KAAK0zF,WAAa1zF,KAAK0zF,UAC1C1zF,KAAK0zF,UAAWlzF,IAAW,IAANA,GAAcR,KAAK0zF,UAAUpE,SAAShhF,KAAKrH,GAAW,SAAW,aAC1F,QAAc,IAANzG,EAAc8yF,GAAcG,EAAUzzF,KAAK8yF,MAAMd,KACnD,EAAMyB,EAASjzF,EAAEupB,OAAS0pE,EAIpC,QAASE,IAAqBnzF,GAC1B,OAAc,IAANA,EAAc8yF,GAActzF,KAAK4zF,eAAgB5zF,KAAK8yF,MAAMd,KAC9D,EAAMhyF,KAAK4zF,eAAepzF,EAAEupB,OAAS/pB,KAAK4zF,eAIpD,QAASC,IAAmBrzF,GACxB,OAAc,IAANA,EAAc8yF,GAActzF,KAAK8zF,aAAc9zF,KAAK8yF,MAAMd,KAC5D,EAAMhyF,KAAK8zF,aAAatzF,EAAEupB,OAAS/pB,KAAK8zF,aAGlD,QAASC,IAAoBC,EAAa/sF,EAAQylE,GAC9C,GAAIrsE,GAAGowC,EAAI85C,EAAKqF,EAAMoE,EAAYnE,mBAClC,KAAK7vF,KAAKi0F,eAKN,IAJAj0F,KAAKi0F,kBACLj0F,KAAKk0F,uBACLl0F,KAAKm0F,qBAEA9zF,EAAI,EAAGA,EAAI,IAAKA,EACjBkqF,EAAMlE,GAAW,IAAM,IAAIt8D,IAAI1pB,GAC/BL,KAAKm0F,kBAAkB9zF,GAAKL,KAAKo0F,YAAY7J,EAAK,IAAIsF,oBACtD7vF,KAAKk0F,oBAAoB7zF,GAAKL,KAAKq0F,cAAc9J,EAAK,IAAIsF,oBAC1D7vF,KAAKi0F,eAAe5zF,GAAKL,KAAKyzF,SAASlJ,EAAK,IAAIsF,mBAIxD,OAAInjB,GACe,SAAXzlE,GACAwpC,EAAKtqC,GAAQ5F,KAAKP,KAAKi0F,eAAgBrE,IACxB,IAARn/C,EAAYA,EAAK,MACN,QAAXxpC,GACPwpC,EAAKtqC,GAAQ5F,KAAKP,KAAKk0F,oBAAqBtE,IAC7B,IAARn/C,EAAYA,EAAK,OAExBA,EAAKtqC,GAAQ5F,KAAKP,KAAKm0F,kBAAmBvE,IAC3B,IAARn/C,EAAYA,EAAK,MAGb,SAAXxpC,GAEY,KADZwpC,EAAKtqC,GAAQ5F,KAAKP,KAAKi0F,eAAgBrE,IAE5Bn/C,GAGC,KADZA,EAAKtqC,GAAQ5F,KAAKP,KAAKk0F,oBAAqBtE,IAEjCn/C,GAEXA,EAAKtqC,GAAQ5F,KAAKP,KAAKm0F,kBAAmBvE,IAC3B,IAARn/C,EAAYA,EAAK,MACN,QAAXxpC,GAEK,KADZwpC,EAAKtqC,GAAQ5F,KAAKP,KAAKk0F,oBAAqBtE,IAEjCn/C,GAGC,KADZA,EAAKtqC,GAAQ5F,KAAKP,KAAKi0F,eAAgBrE,IAE5Bn/C,GAEXA,EAAKtqC,GAAQ5F,KAAKP,KAAKm0F,kBAAmBvE,IAC3B,IAARn/C,EAAYA,EAAK,OAGZ,KADZA,EAAKtqC,GAAQ5F,KAAKP,KAAKm0F,kBAAmBvE,IAE/Bn/C,GAGC,KADZA,EAAKtqC,GAAQ5F,KAAKP,KAAKi0F,eAAgBrE,IAE5Bn/C,GAEXA,EAAKtqC,GAAQ5F,KAAKP,KAAKk0F,oBAAqBtE,IAC7B,IAARn/C,EAAYA,EAAK,MAKpC,QAAS6jD,IAAqBN,EAAa/sF,EAAQylE,GAC/C,GAAIrsE,GAAGkqF,EAAKmD,CAEZ,IAAI1tF,KAAKu0F,oBACL,MAAOR,IAAoBxzF,KAAKP,KAAMg0F,EAAa/sF,EAAQylE,EAU/D,KAPK1sE,KAAKi0F,iBACNj0F,KAAKi0F,kBACLj0F,KAAKm0F,qBACLn0F,KAAKk0F,uBACLl0F,KAAKw0F,uBAGJn0F,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAcpB,GAXAkqF,EAAMlE,GAAW,IAAM,IAAIt8D,IAAI1pB,GAC3BqsE,IAAW1sE,KAAKw0F,mBAAmBn0F,KACnCL,KAAKw0F,mBAAmBn0F,GAAK,GAAI4pC,QAAO,IAAMjqC,KAAKyzF,SAASlJ,EAAK,IAAIr/E,QAAQ,IAAK,QAAU,IAAK,KACjGlL,KAAKk0F,oBAAoB7zF,GAAK,GAAI4pC,QAAO,IAAMjqC,KAAKq0F,cAAc9J,EAAK,IAAIr/E,QAAQ,IAAK,QAAU,IAAK,KACvGlL,KAAKm0F,kBAAkB9zF,GAAK,GAAI4pC,QAAO,IAAMjqC,KAAKo0F,YAAY7J,EAAK,IAAIr/E,QAAQ,IAAK,QAAU,IAAK,MAElGlL,KAAKi0F,eAAe5zF,KACrBqtF,EAAQ,IAAM1tF,KAAKyzF,SAASlJ,EAAK,IAAM,KAAOvqF,KAAKq0F,cAAc9J,EAAK,IAAM,KAAOvqF,KAAKo0F,YAAY7J,EAAK,IACzGvqF,KAAKi0F,eAAe5zF,GAAK,GAAI4pC,QAAOyjD,EAAMxiF,QAAQ,IAAK,IAAK,MAG5DwhE,GAAqB,SAAXzlE,GAAqBjH,KAAKw0F,mBAAmBn0F,GAAGiO,KAAK0lF,GAC/D,MAAO3zF,EACJ,IAAIqsE,GAAqB,QAAXzlE,GAAoBjH,KAAKk0F,oBAAoB7zF,GAAGiO,KAAK0lF,GACtE,MAAO3zF,EACJ,IAAIqsE,GAAqB,OAAXzlE,GAAmBjH,KAAKm0F,kBAAkB9zF,GAAGiO,KAAK0lF,GACnE,MAAO3zF,EACJ,KAAKqsE,GAAU1sE,KAAKi0F,eAAe5zF,GAAGiO,KAAK0lF,GAC9C,MAAO3zF,IAOnB,QAASo0F,IAAiBr9C,GACtB,IAAKp3C,KAAKwnF,UACN,MAAgB,OAATpwC,EAAgBp3C,KAAOkoF,GAElC,IAAIn+D,GAAM/pB,KAAKuoF,OAASvoF,KAAKumB,GAAG4rE,YAAcnyF,KAAKumB,GAAGmuE,QACtD,OAAa,OAATt9C,GACAA,EAAQ+7C,GAAa/7C,EAAOp3C,KAAK+sF,cAC1B/sF,KAAKyV,IAAI2hC,EAAQrtB,EAAK,MAEtBA,EAIf,QAAS4qE,IAAuBv9C,GAC5B,IAAKp3C,KAAKwnF,UACN,MAAgB,OAATpwC,EAAgBp3C,KAAOkoF,GAElC,IAAIl8C,IAAWhsC,KAAK+pB,MAAQ,EAAI/pB,KAAK+sF,aAAa+F,MAAMd,KAAO,CAC/D,OAAgB,OAAT56C,EAAgBpL,EAAUhsC,KAAKyV,IAAI2hC,EAAQpL,EAAS,KAG/D,QAAS4oD,IAAoBx9C,GACzB,IAAKp3C,KAAKwnF,UACN,MAAgB,OAATpwC,EAAgBp3C,KAAOkoF,GAOlC,IAAa,MAAT9wC,EAAe,CACf,GAAIpL,GAAUqnD,GAAgBj8C,EAAOp3C,KAAK+sF,aAC1C,OAAO/sF,MAAK+pB,IAAI/pB,KAAK+pB,MAAQ,EAAIiiB,EAAUA,EAAU,GAErD,MAAOhsC,MAAK+pB,OAAS,EAK7B,QAAS8qE,IAAehH,GACpB,MAAI7tF,MAAKu0F,qBACAnO,EAAWpmF,KAAM,mBAClB80F,GAAqBv0F,KAAKP,MAE1B6tF,EACO7tF,KAAK+0F,qBAEL/0F,KAAKg1F,iBAGX5O,EAAWpmF,KAAM,oBAClBA,KAAKg1F,eAAiBC,IAEnBj1F,KAAK+0F,sBAAwBlH,EAChC7tF,KAAK+0F,qBAAuB/0F,KAAKg1F,gBAK7C,QAASE,IAAoBrH,GACzB,MAAI7tF,MAAKu0F,qBACAnO,EAAWpmF,KAAM,mBAClB80F,GAAqBv0F,KAAKP,MAE1B6tF,EACO7tF,KAAKm1F,0BAELn1F,KAAKo1F,sBAGXhP,EAAWpmF,KAAM,yBAClBA,KAAKo1F,oBAAsBC,IAExBr1F,KAAKm1F,2BAA6BtH,EACrC7tF,KAAKm1F,0BAA4Bn1F,KAAKo1F,qBAKlD,QAASE,IAAkBzH,GACvB,MAAI7tF,MAAKu0F,qBACAnO,EAAWpmF,KAAM,mBAClB80F,GAAqBv0F,KAAKP,MAE1B6tF,EACO7tF,KAAKu1F,wBAELv1F,KAAKw1F,oBAGXpP,EAAWpmF,KAAM,uBAClBA,KAAKw1F,kBAAoBC,IAEtBz1F,KAAKu1F,yBAA2B1H,EACnC7tF,KAAKu1F,wBAA0Bv1F,KAAKw1F,mBAKhD,QAASV,MACL,QAAS3D,GAAUtuF,EAAGC,GAClB,MAAOA,GAAET,OAASQ,EAAER,OAGxB,GACIhC,GAAGkqF,EAAKmL,EAAMC,EAAQC,EADtBC,KAAgBzE,KAAkBC,KAAiBC,IAEvD,KAAKjxF,EAAI,EAAGA,EAAI,EAAGA,IAEfkqF,EAAMlE,GAAW,IAAM,IAAIt8D,IAAI1pB,GAC/Bq1F,EAAO11F,KAAKo0F,YAAY7J,EAAK,IAC7BoL,EAAS31F,KAAKq0F,cAAc9J,EAAK,IACjCqL,EAAQ51F,KAAKyzF,SAASlJ,EAAK,IAC3BsL,EAAUzvF,KAAKsvF,GACftE,EAAYhrF,KAAKuvF,GACjBtE,EAAWjrF,KAAKwvF,GAChBtE,EAAYlrF,KAAKsvF,GACjBpE,EAAYlrF,KAAKuvF,GACjBrE,EAAYlrF,KAAKwvF,EAQrB,KAJAC,EAAUz9E,KAAK+4E,GACfC,EAAYh5E,KAAK+4E,GACjBE,EAAWj5E,KAAK+4E,GAChBG,EAAYl5E,KAAK+4E,GACZ9wF,EAAI,EAAGA,EAAI,EAAGA,IACf+wF,EAAY/wF,GAAK2tF,EAAYoD,EAAY/wF,IACzCgxF,EAAWhxF,GAAK2tF,EAAYqD,EAAWhxF,IACvCixF,EAAYjxF,GAAK2tF,EAAYsD,EAAYjxF,GAG7CL,MAAKg1F,eAAiB,GAAI/qD,QAAO,KAAOqnD,EAAY/oF,KAAK,KAAO,IAAK,KACrEvI,KAAKo1F,oBAAsBp1F,KAAKg1F,eAChCh1F,KAAKw1F,kBAAoBx1F,KAAKg1F,eAE9Bh1F,KAAK+0F,qBAAuB,GAAI9qD,QAAO,KAAOonD,EAAW9oF,KAAK,KAAO,IAAK,KAC1EvI,KAAKm1F,0BAA4B,GAAIlrD,QAAO,KAAOmnD,EAAY7oF,KAAK,KAAO,IAAK,KAChFvI,KAAKu1F,wBAA0B,GAAItrD,QAAO,KAAO4rD,EAAUttF,KAAK,KAAO,IAAK,KAKhF,QAASutF,MACL,MAAO91F,MAAKugC,QAAU,IAAM,GAGhC,QAASw1D,MACL,MAAO/1F,MAAKugC,SAAW,GAyB3B,QAAS4mD,IAAUnb,EAAOgqB,GACtBrJ,EAAe3gB,EAAO,EAAG,EAAG,WACxB,MAAOhsE,MAAK+sF,aAAa5F,SAASnnF,KAAKugC,QAASvgC,KAAKwgC,UAAWw1D,KAgBxE,QAASC,IAAepI,EAAU94D,GAC9B,MAAOA,GAAOmhE,eA2DlB,QAASC,IAAY/+C,GAGjB,MAAiD,OAAxCA,EAAQ,IAAIv4B,cAAcS,OAAO,GAI9C,QAAS82E,IAAgB71D,EAAOC,EAAS61D,GACrC,MAAI91D,GAAQ,GACD81D,EAAU,KAAO,KAEjBA,EAAU,KAAO,KAsChC,QAASC,IAAgB9zF,GACrB,MAAOA,GAAMA,EAAIqc,cAAc3T,QAAQ,IAAK,KAAO1I,EAMvD,QAAS+zF,IAAazxC,GAGlB,IAFA,GAAW51C,GAAGqE,EAAMwhB,EAAQ5sB,EAAxB9H,EAAI,EAEDA,EAAIykD,EAAMziD,QAAQ,CAKrB,IAJA8F,EAAQmuF,GAAgBxxC,EAAMzkD,IAAI8H,MAAM,KACxC+G,EAAI/G,EAAM9F,OACVkR,EAAO+iF,GAAgBxxC,EAAMzkD,EAAI,IACjCkT,EAAOA,EAAOA,EAAKpL,MAAM,KAAO,KACzB+G,EAAI,GAAG,CAEV,GADA6lB,EAASyhE,GAAWruF,EAAM8D,MAAM,EAAGiD,GAAG3G,KAAK,MAEvC,MAAOwsB,EAEX,IAAIxhB,GAAQA,EAAKlR,QAAU6M,GAAKi6E,EAAchhF,EAAOoL,GAAM,IAASrE,EAAI,EAEpE,KAEJA,KAEJ7O,IAEJ,MAAOo2F,IAGX,QAASD,IAAW71F,GAChB,GAAI+1F,GAAY,IAEhB,KAAKv+D,GAAQx3B,QAA4B,KAAXf,GACtBA,GAAUA,EAAOD,QACrB,IACI+2F,EAAYD,GAAaE,OAEvB,WAAkC,GAAIpsF,GAAI,GAAI1E,OAAM,gCAAiE,MAA7B0E,GAAEyd,KAAO,mBAA0Bzd,KAC7HqsF,GAAmBF,GACrB,MAAOnsF,IAEb,MAAO4tB,IAAQx3B,GAMnB,QAASi2F,IAAoBp0F,EAAKyW,GAC9B,GAAI/D,EAqBJ,OApBI1S,KAEI0S,EADAgxE,EAAYjtE,GACL49E,GAAUr0F,GAGVs0F,GAAat0F,EAAKyW,GAGzB/D,EAEAuhF,GAAevhF,EAGU,mBAAbgC,UAA6BA,QAAQC,MAE7CD,QAAQC,KAAK,UAAY3U,EAAO,2CAKrCi0F,GAAaE,MAGxB,QAASG,IAAcn2F,EAAMioF,GACzB,GAAe,OAAXA,EAAiB,CACjB,GAAI7zD,GAAQo1D,EAAe4M,EAE3B,IADAnO,EAAOoO,KAAOr2F,EACO,MAAjBw3B,GAAQx3B,GACRgpF,EAAgB,uBACR,2OAIRQ,EAAehyD,GAAQx3B,GAAMmpF,YAC1B,IAA2B,MAAvBlB,EAAOqO,aACd,GAAoC,MAAhC9+D,GAAQywD,EAAOqO,cACf9M,EAAehyD,GAAQywD,EAAOqO,cAAcnN,YACzC,CAEH,GAAc,OADd/0D,EAASyhE,GAAW5N,EAAOqO,eAWvB,MAPKC,IAAetO,EAAOqO,gBACvBC,GAAetO,EAAOqO,kBAE1BC,GAAetO,EAAOqO,cAAc7wF,MAChCzF,KAAMA,EACNioF,OAAQA,IAEL,IATPuB,GAAep1D,EAAO+0D,QA2BlC,MAdA3xD,IAAQx3B,GAAQ,GAAI0pF,GAAOH,EAAaC,EAAcvB,IAElDsO,GAAev2F,IACfu2F,GAAev2F,GAAM+H,QAAQ,SAAUiH,GACnCmnF,GAAannF,EAAEhP,KAAMgP,EAAEi5E,UAO/BgO,GAAmBj2F,GAGZw3B,GAAQx3B,GAIf,aADOw3B,IAAQx3B,GACR,KAIf,QAASw2F,IAAax2F,EAAMioF,GACxB,GAAc,MAAVA,EAAgB,CAChB,GAAI7zD,GAAQqiE,EAAWjN,EAAe4M,EAEtCK,GAAYZ,GAAW71F,GACN,MAAby2F,IACAjN,EAAeiN,EAAUtN,SAE7BlB,EAASsB,EAAaC,EAAcvB,GACpC7zD,EAAS,GAAIs1D,GAAOzB,GACpB7zD,EAAOkiE,aAAe9+D,GAAQx3B,GAC9Bw3B,GAAQx3B,GAAQo0B,EAGhB6hE,GAAmBj2F,OAGE,OAAjBw3B,GAAQx3B,KAC0B,MAA9Bw3B,GAAQx3B,GAAMs2F,aACd9+D,GAAQx3B,GAAQw3B,GAAQx3B,GAAMs2F,aACN,MAAjB9+D,GAAQx3B,UACRw3B,IAAQx3B,GAI3B,OAAOw3B,IAAQx3B,GAInB,QAASk2F,IAAWr0F,GAChB,GAAIuyB,EAMJ,IAJIvyB,GAAOA,EAAIimF,SAAWjmF,EAAIimF,QAAQkO,QAClCn0F,EAAMA,EAAIimF,QAAQkO,QAGjBn0F,EACD,MAAOi0F,GAGX,KAAK7wF,EAAQpD,GAAM,CAGf,GADAuyB,EAASyhE,GAAWh0F,GAEhB,MAAOuyB,EAEXvyB,IAAOA,GAGX,MAAO+zF,IAAa/zF,GAGxB,QAAS60F,MACL,MAAOzwE,IAAKuR,IAGhB,QAASm/D,IAAe92F,GACpB,GAAI+R,GACA1P,EAAIrC,EAAEguF,EAyBV,OAvBI3rF,KAAsC,IAAjCykF,EAAgB9mF,GAAG+R,WACxBA,EACI1P,EAAE00F,IAAe,GAAK10F,EAAE00F,IAAe,GAAMA,GAC7C10F,EAAE20F,IAAe,GAAK30F,EAAE20F,IAAezI,GAAYlsF,EAAE40F,IAAO50F,EAAE00F,KAAUC,GACxE30F,EAAE60F,IAAe,GAAK70F,EAAE60F,IAAe,IAAmB,KAAZ70F,EAAE60F,MAA+B,IAAd70F,EAAE80F,KAA+B,IAAd90F,EAAE+0F,KAAoC,IAAnB/0F,EAAEg1F,KAAuBH,GAChI70F,EAAE80F,IAAe,GAAK90F,EAAE80F,IAAe,GAAMA,GAC7C90F,EAAE+0F,IAAe,GAAK/0F,EAAE+0F,IAAe,GAAMA,GAC7C/0F,EAAEg1F,IAAe,GAAKh1F,EAAEg1F,IAAe,IAAMA,IAC5C,EAEDvQ,EAAgB9mF,GAAGs3F,qBAAuBvlF,EAAWklF,IAAQllF,EAAWilF,MACxEjlF,EAAWilF,IAEXlQ,EAAgB9mF,GAAGu3F,iBAAgC,IAAdxlF,IACrCA,EAAWylF,IAEX1Q,EAAgB9mF,GAAGy3F,mBAAkC,IAAd1lF,IACvCA,EAAW2lF,IAGf5Q,EAAgB9mF,GAAG+R,SAAWA,GAG3B/R,EAIX,QAAS23F,IAASt1F,EAAGC,EAAGrC,GACpB,MAAS,OAALoC,EACOA,EAEF,MAALC,EACOA,EAEJrC,EAGX,QAAS23F,IAAiBxP,GAEtB,GAAIyP,GAAW,GAAIvzF,MAAKihF,EAAMzlD,MAC9B,OAAIsoD,GAAO0P,SACCD,EAASxG,iBAAkBwG,EAASE,cAAeF,EAASG,eAEhEH,EAAS5G,cAAe4G,EAASI,WAAYJ,EAASK,WAOlE,QAASC,IAAiB/P,GACtB,GAAIvoF,GAAG+pB,EAAkBwuE,EAAaC,EAAiBC,EAA1C1hD,IAEb,KAAIwxC,EAAOriE,GAAX,CA6BA,IAzBAqyE,EAAcR,GAAiBxP,GAG3BA,EAAO0F,IAAyB,MAAnB1F,EAAO4F,GAAGgJ,KAAqC,MAApB5O,EAAO4F,GAAG+I,KAClDwB,GAAsBnQ,GAID,MAArBA,EAAOoQ,aACPF,EAAYX,GAASvP,EAAO4F,GAAGiJ,IAAOmB,EAAYnB,MAE9C7O,EAAOoQ,WAAavK,EAAWqK,IAAoC,IAAtBlQ,EAAOoQ,cACpD1R,EAAgBsB,GAAQkP,oBAAqB,GAGjD1tE,EAAOunE,GAAcmH,EAAW,EAAGlQ,EAAOoQ,YAC1CpQ,EAAO4F,GAAG+I,IAASntE,EAAKmuE,cACxB3P,EAAO4F,GAAGgJ,IAAQptE,EAAKouE,cAQtBn4F,EAAI,EAAGA,EAAI,GAAqB,MAAhBuoF,EAAO4F,GAAGnuF,KAAcA,EACzCuoF,EAAO4F,GAAGnuF,GAAK+2C,EAAM/2C,GAAKu4F,EAAYv4F,EAI1C,MAAOA,EAAI,EAAGA,IACVuoF,EAAO4F,GAAGnuF,GAAK+2C,EAAM/2C,GAAsB,MAAhBuoF,EAAO4F,GAAGnuF,GAAqB,IAANA,EAAU,EAAI,EAAKuoF,EAAO4F,GAAGnuF,EAI7D,MAApBuoF,EAAO4F,GAAGkJ,KACgB,IAAtB9O,EAAO4F,GAAGmJ,KACY,IAAtB/O,EAAO4F,GAAGoJ,KACiB,IAA3BhP,EAAO4F,GAAGqJ,MACdjP,EAAOqQ,UAAW,EAClBrQ,EAAO4F,GAAGkJ,IAAQ,GAGtB9O,EAAOriE,IAAMqiE,EAAO0P,QAAU3G,GAAgBJ,IAAY53E,MAAM,KAAMy9B,GACtEyhD,EAAkBjQ,EAAO0P,QAAU1P,EAAOriE,GAAG4rE,YAAcvJ,EAAOriE,GAAGmuE,SAIlD,MAAf9L,EAAON,MACPM,EAAOriE,GAAG2yE,cAActQ,EAAOriE,GAAG4yE,gBAAkBvQ,EAAON,MAG3DM,EAAOqQ,WACPrQ,EAAO4F,GAAGkJ,IAAQ,IAIlB9O,EAAO0F,QAA6B,KAAhB1F,EAAO0F,GAAG5tF,GAAqBkoF,EAAO0F,GAAG5tF,IAAMm4F,IACnEvR,EAAgBsB,GAAQvB,iBAAkB,IAIlD,QAAS0R,IAAsBnQ,GAC3B,GAAIzD,GAAGiU,EAAUntD,EAAMD,EAASgmD,EAAKC,EAAKoH,EAAMC,CAGhD,IADAnU,EAAIyD,EAAO0F,GACC,MAARnJ,EAAEoU,IAAqB,MAAPpU,EAAEnkE,GAAoB,MAAPmkE,EAAEpB,EACjCiO,EAAM,EACNC,EAAM,EAMNmH,EAAWjB,GAAShT,EAAEoU,GAAI3Q,EAAO4F,GAAGiJ,IAAOhF,GAAW+G,KAAe,EAAG,GAAGvvE,MAC3EgiB,EAAOksD,GAAShT,EAAEnkE,EAAG,KACrBgrB,EAAUmsD,GAAShT,EAAEpB,EAAG,IACV,GAAK/3C,EAAU,KACzBstD,GAAkB,OAEnB,CACHtH,EAAMpJ,EAAOH,QAAQqK,MAAMd,IAC3BC,EAAMrJ,EAAOH,QAAQqK,MAAMb,GAE3B,IAAIwH,GAAUhH,GAAW+G,KAAexH,EAAKC,EAE7CmH,GAAWjB,GAAShT,EAAEuU,GAAI9Q,EAAO4F,GAAGiJ,IAAOgC,EAAQxvE,MAGnDgiB,EAAOksD,GAAShT,EAAEA,EAAGsU,EAAQxtD,MAElB,MAAPk5C,EAAEzkF,IAEFsrC,EAAUm5C,EAAEzkF,GACE,GAAKsrC,EAAU,KACzBstD,GAAkB,GAER,MAAPnU,EAAE56E,GAETyhC,EAAUm5C,EAAE56E,EAAIynF,GACZ7M,EAAE56E,EAAI,GAAK46E,EAAE56E,EAAI,KACjB+uF,GAAkB,IAItBttD,EAAUgmD,EAGd/lD,EAAO,GAAKA,EAAO0mD,GAAYyG,EAAUpH,EAAKC,GAC9C3K,EAAgBsB,GAAQmP,gBAAiB,EACf,MAAnBuB,EACPhS,EAAgBsB,GAAQqP,kBAAmB,GAE3CoB,EAAOjH,GAAmBgH,EAAUntD,EAAMD,EAASgmD,EAAKC,GACxDrJ,EAAO4F,GAAGiJ,IAAQ4B,EAAKpvE,KACvB2+D,EAAOoQ,WAAaK,EAAKrvE,WA0CjC,QAAS2vE,IAAc/Q,GACnB,GAAIvoF,GAAGC,EAGHs5F,EAAWC,EAAYC,EAAYC,EAFnCxiD,EAASqxC,EAAOzpE,GAChBzY,EAAQszF,GAAiBh1F,KAAKuyC,IAAW0iD,GAAcj1F,KAAKuyC,EAGhE,IAAI7wC,EAAO,CAGP,IAFA4gF,EAAgBsB,GAAQ3B,KAAM,EAEzB5mF,EAAI,EAAGC,EAAI45F,GAAS73F,OAAQhC,EAAIC,EAAGD,IACpC,GAAI65F,GAAS75F,GAAG,GAAG2E,KAAK0B,EAAM,IAAK,CAC/BmzF,EAAaK,GAAS75F,GAAG,GACzBu5F,GAA+B,IAAnBM,GAAS75F,GAAG,EACxB,OAGR,GAAkB,MAAdw5F,EAEA,YADAjR,EAAOnB,UAAW,EAGtB,IAAI/gF,EAAM,GAAI,CACV,IAAKrG,EAAI,EAAGC,EAAI65F,GAAS93F,OAAQhC,EAAIC,EAAGD,IACpC,GAAI85F,GAAS95F,GAAG,GAAG2E,KAAK0B,EAAM,IAAK,CAE/BozF,GAAcpzF,EAAM,IAAM,KAAOyzF,GAAS95F,GAAG,EAC7C,OAGR,GAAkB,MAAdy5F,EAEA,YADAlR,EAAOnB,UAAW,GAI1B,IAAKmS,GAA2B,MAAdE,EAEd,YADAlR,EAAOnB,UAAW,EAGtB,IAAI/gF,EAAM,GAAI,CACV,IAAI0zF,GAAQp1F,KAAK0B,EAAM,IAInB,YADAkiF,EAAOnB,UAAW,EAFlBsS,GAAW,IAMnBnR,EAAOR,GAAKyR,GAAcC,GAAc,KAAOC,GAAY,IAC3DM,GAA0BzR,OAE1BA,GAAOnB,UAAW,EAO1B,QAAS6S,IAA0BC,EAASC,EAAUC,EAAQC,EAASC,EAAWC,GAC9E,GAAIvvF,IACAwvF,GAAeN,GACfO,GAAyB30F,QAAQq0F,GACjClvF,SAASmvF,EAAQ,IACjBnvF,SAASovF,EAAS,IAClBpvF,SAASqvF,EAAW,IAOxB,OAJIC,IACAvvF,EAAOjF,KAAKkF,SAASsvF,EAAW,KAG7BvvF,EAGX,QAASwvF,IAAeN,GACpB,GAAItwE,GAAO3e,SAASivF,EAAS,GAC7B,OAAItwE,IAAQ,GACD,IAAOA,EACPA,GAAQ,IACR,KAAOA,EAEXA,EAGX,QAAS8wE,IAAkBr5F,GAEvB,MAAOA,GAAEwJ,QAAQ,oBAAqB,KAAKA,QAAQ,WAAY,KAAKA,QAAQ,SAAU,IAAIA,QAAQ,SAAU,IAGhH,QAAS8vF,IAAaC,EAAYC,EAAatS,GAC3C,GAAIqS,EAAY,CAIZ,GAFsBE,GAA2Bh1F,QAAQ80F,KACrC,GAAIn2F,MAAKo2F,EAAY,GAAIA,EAAY,GAAIA,EAAY,IAAIxG,SAIzE,MAFApN,GAAgBsB,GAAQvB,iBAAkB,EAC1CuB,EAAOnB,UAAW,GACX,EAGf,OAAO,EAgBX,QAAS2T,IAAgBC,EAAWC,EAAgBC,GAChD,GAAIF,EACA,MAAOG,IAAWH,EACf,IAAIC,EAEP,MAAO,EAEP,IAAIG,GAAKnwF,SAASiwF,EAAW,IACzB/6F,EAAIi7F,EAAK,GACb,QADuBA,EAAKj7F,GAAK,IACtB,GAAKA,EAKxB,QAASk7F,IAAkB9S,GACvB,GAAIliF,GAAQ0gF,GAAQpiF,KAAK+1F,GAAkBnS,EAAOzpE,IAClD,IAAIzY,EAAO,CACP,GAAIi1F,GAAcrB,GAA0B5zF,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GACpG,KAAKs0F,GAAat0F,EAAM,GAAIi1F,EAAa/S,GACrC,MAGJA,GAAO4F,GAAKmN,EACZ/S,EAAON,KAAO8S,GAAgB10F,EAAM,GAAIA,EAAM,GAAIA,EAAM,KAExDkiF,EAAOriE,GAAKorE,GAAch4E,MAAM,KAAMivE,EAAO4F,IAC7C5F,EAAOriE,GAAG2yE,cAActQ,EAAOriE,GAAG4yE,gBAAkBvQ,EAAON,MAE3DhB,EAAgBsB,GAAQxB,SAAU,MAElCwB,GAAOnB,UAAW,EAK1B,QAASmU,IAAiBhT,GACtB,GAAIqF,GAAU4N,GAAgB72F,KAAK4jF,EAAOzpE,GAE1C,IAAgB,OAAZ8uE,EAEA,YADArF,EAAOriE,GAAK,GAAIzhB,OAAMmpF,EAAQ,IAIlC0L,IAAc/Q,IACU,IAApBA,EAAOnB,iBACAmB,GAAOnB,SAKlBiU,GAAkB9S,IACM,IAApBA,EAAOnB,iBACAmB,GAAOnB,SAMlB1B,EAAM+V,wBAAwBlT,KAoBlC,QAASyR,IAA0BzR,GAE/B,GAAIA,EAAOR,KAAOrC,EAAMgW,SAEpB,WADApC,IAAc/Q,EAGlB,IAAIA,EAAOR,KAAOrC,EAAMiW,SAEpB,WADAN,IAAkB9S,EAGtBA,GAAO4F,MACPlH,EAAgBsB,GAAQnC,OAAQ,CAGhC,IACIpmF,GAAG66F,EAAa9M,EAAQpiB,EAAOiwB,EAD/B1kD,EAAS,GAAKqxC,EAAOzpE,GAErB+8E,EAAe3kD,EAAOl1C,OACtB85F,EAAyB,CAI7B,KAFA/N,EAAShB,EAAaxE,EAAOR,GAAIQ,EAAOH,SAAS/hF,MAAMwmF,QAElD7sF,EAAI,EAAGA,EAAI+tF,EAAO/rF,OAAQhC,IAC3B2rE,EAAQoiB,EAAO/tF,GACf66F,GAAe3jD,EAAO7wC,MAAMonF,EAAsB9hB,EAAO4c,SAAgB,GAGrEsS,IACAe,EAAU1kD,EAAO5rC,OAAO,EAAG4rC,EAAOpxC,QAAQ+0F,IACtCe,EAAQ55F,OAAS,GACjBilF,EAAgBsB,GAAQjC,YAAYvgF,KAAK61F,GAE7C1kD,EAASA,EAAOtrC,MAAMsrC,EAAOpxC,QAAQ+0F,GAAeA,EAAY74F,QAChE85F,GAA0BjB,EAAY74F,QAGtCyqF,GAAqB9gB,IACjBkvB,EACA5T,EAAgBsB,GAAQnC,OAAQ,EAGhCa,EAAgBsB,GAAQlC,aAAatgF,KAAK4lE,GAE9CuiB,EAAwBviB,EAAOkvB,EAAatS,IAEvCA,EAAOd,UAAYoT,GACxB5T,EAAgBsB,GAAQlC,aAAatgF,KAAK4lE,EAKlDsb,GAAgBsB,GAAQhC,cAAgBsV,EAAeC,EACnD5kD,EAAOl1C,OAAS,GAChBilF,EAAgBsB,GAAQjC,YAAYvgF,KAAKmxC,GAIzCqxC,EAAO4F,GAAGkJ,KAAS,KACiB,IAApCpQ,EAAgBsB,GAAQb,SACxBa,EAAO4F,GAAGkJ,IAAQ,IAClBpQ,EAAgBsB,GAAQb,YAAU7kF,IAGtCokF,EAAgBsB,GAAQ1B,gBAAkB0B,EAAO4F,GAAGviF,MAAM,GAC1Dq7E,EAAgBsB,GAAQzB,SAAWyB,EAAOwT,UAE1CxT,EAAO4F,GAAGkJ,IAAQ2E,GAAgBzT,EAAOH,QAASG,EAAO4F,GAAGkJ,IAAO9O,EAAOwT,WAE1EzD,GAAgB/P,GAChB0O,GAAc1O,GAIlB,QAASyT,IAAiBtnE,EAAQgX,EAAMo7C,GACpC,GAAImV,EAEJ,OAAgB,OAAZnV,EAEOp7C,EAEgB,MAAvBhX,EAAOwnE,aACAxnE,EAAOwnE,aAAaxwD,EAAMo7C,GACX,MAAfpyD,EAAOynE,MAEdF,EAAOvnE,EAAOynE,KAAKrV,GACfmV,GAAQvwD,EAAO,KACfA,GAAQ,IAEPuwD,GAAiB,KAATvwD,IACTA,EAAO,GAEJA,GAGAA,EAKf,QAAS0wD,IAAyB7T,GAC9B,GAAI8T,GACAC,EAEAC,EACAv8F,EACAw8F,CAEJ,IAAyB,IAArBjU,EAAOR,GAAG/lF,OAGV,MAFAilF,GAAgBsB,GAAQ7B,eAAgB,OACxC6B,EAAOriE,GAAK,GAAIzhB,MAAKojF,KAIzB,KAAK7nF,EAAI,EAAGA,EAAIuoF,EAAOR,GAAG/lF,OAAQhC,IAC9Bw8F,EAAe,EACfH,EAAavU,KAAeS,GACN,MAAlBA,EAAO0P,UACPoE,EAAWpE,QAAU1P,EAAO0P,SAEhCoE,EAAWtU,GAAKQ,EAAOR,GAAG/nF,GAC1Bg6F,GAA0BqC,GAErBlV,EAAQkV,KAKbG,GAAgBvV,EAAgBoV,GAAY9V,cAG5CiW,GAAkE,GAAlDvV,EAAgBoV,GAAYhW,aAAarkF,OAEzDilF,EAAgBoV,GAAYI,MAAQD,GAEjB,MAAfD,GAAuBC,EAAeD,KACtCA,EAAcC,EACdF,EAAaD,GAIrBl3F,GAAOojF,EAAQ+T,GAAcD,GAGjC,QAASK,IAAiBnU,GACtB,IAAIA,EAAOriE,GAAX,CAIA,GAAIlmB,GAAIwrF,EAAqBjD,EAAOzpE,GACpCypE,GAAO4F,GAAKpiF,GAAK/L,EAAE4pB,KAAM5pB,EAAEgqB,MAAOhqB,EAAE0pB,KAAO1pB,EAAE+pB,KAAM/pB,EAAE0rC,KAAM1rC,EAAEyrC,OAAQzrC,EAAEwrC,OAAQxrC,EAAEurC,aAAc,SAAU3pC,GACrG,MAAOA,IAAOqJ,SAASrJ,EAAK,MAGhC02F,GAAgB/P,IAGpB,QAASoU,IAAkBpU,GACvB,GAAIzC,GAAM,GAAIwC,GAAO2O,GAAc2F,GAAcrU,IAOjD,OANIzC,GAAI8S,WAEJ9S,EAAI1wE,IAAI,EAAG,KACX0wE,EAAI8S,aAAW/1F,IAGZijF,EAGX,QAAS8W,IAAerU,GACpB,GAAIxxC,GAAQwxC,EAAOzpE,GACflY,EAAS2hF,EAAOR,EAIpB,OAFAQ,GAAOH,QAAUG,EAAOH,SAAWoO,GAAUjO,EAAOP,IAEtC,OAAVjxC,OAA8Bl0C,KAAX+D,GAAkC,KAAVmwC,EACpC6wC,GAAepB,WAAW,KAGhB,gBAAVzvC,KACPwxC,EAAOzpE,GAAKi4B,EAAQwxC,EAAOH,QAAQyU,SAAS9lD,IAG5CvwC,EAASuwC,GACF,GAAIuxC,GAAO2O,GAAclgD,KACzBvyC,EAAOuyC,GACdwxC,EAAOriE,GAAK6wB,EACLxxC,EAAQqB,GACfw1F,GAAyB7T,GAClB3hF,EACPozF,GAA0BzR,GAE1BuU,GAAgBvU,GAGfpB,EAAQoB,KACTA,EAAOriE,GAAK,MAGTqiE,IAGX,QAASuU,IAAgBvU,GACrB,GAAIxxC,GAAQwxC,EAAOzpE,EACf+mE,GAAY9uC,GACZwxC,EAAOriE,GAAK,GAAIzhB,MAAKihF,EAAMzlD,OACpBz7B,EAAOuyC,GACdwxC,EAAOriE,GAAK,GAAIzhB,MAAKsyC,EAAMxwC,WACH,gBAAVwwC,GACdwkD,GAAiBhT,GACVhjF,EAAQwxC,IACfwxC,EAAO4F,GAAKpiF,EAAIgrC,EAAMnrC,MAAM,GAAI,SAAUhK,GACtC,MAAOqJ,UAASrJ,EAAK,MAEzB02F,GAAgB/P,IACTp5E,EAAS4nC,GAChB2lD,GAAiBnU,GACV/kF,EAASuzC,GAEhBwxC,EAAOriE,GAAK,GAAIzhB,MAAKsyC,GAErB2uC,EAAM+V,wBAAwBlT,GAItC,QAAStC,IAAkBlvC,EAAOnwC,EAAQ8tB,EAAQ23C,EAAQ0wB,GACtD,GAAI38F,KAoBJ,QAlBe,IAAXs0B,IAA8B,IAAXA,IACnB23C,EAAS33C,EACTA,MAAS7xB,KAGRsM,EAAS4nC,IAAU6uC,EAAc7uC,IAC7BxxC,EAAQwxC,IAA2B,IAAjBA,EAAM/0C,UAC7B+0C,MAAQl0C,IAIZzC,EAAEyd,kBAAmB,EACrBzd,EAAE63F,QAAU73F,EAAE8nF,OAAS6U,EACvB38F,EAAE4nF,GAAKtzD,EACPt0B,EAAE0e,GAAKi4B,EACP32C,EAAE2nF,GAAKnhF,EACPxG,EAAEqnF,QAAUpb,EAELswB,GAAiBv8F,GAG5B,QAAS+4F,IAAapiD,EAAOnwC,EAAQ8tB,EAAQ23C,GACzC,MAAO4Z,IAAiBlvC,EAAOnwC,EAAQ8tB,EAAQ23C,GAAQ,GAgC3D,QAAS2wB,IAAOr0F,EAAIs0F,GAChB,GAAInX,GAAK9lF,CAIT,IAHuB,IAAnBi9F,EAAQj7F,QAAgBuD,EAAQ03F,EAAQ,MACxCA,EAAUA,EAAQ,KAEjBA,EAAQj7F,OACT,MAAOm3F,KAGX,KADArT,EAAMmX,EAAQ,GACTj9F,EAAI,EAAGA,EAAIi9F,EAAQj7F,SAAUhC,EACzBi9F,EAAQj9F,GAAGmnF,YAAa8V,EAAQj9F,GAAG2I,GAAIm9E,KACxCA,EAAMmX,EAAQj9F,GAGtB,OAAO8lF,GAIX,QAAS9hF,MAGL,MAAOg5F,IAAO,cAFApxF,MAAM1L,KAAKgF,UAAW,IAKxC,QAASjB,MAGL,MAAO+4F,IAAO,aAFApxF,MAAM1L,KAAKgF,UAAW,IAWxC,QAASg4F,IAAgB/8F,GACrB,IAAK,GAAIgC,KAAOhC,GACZ,IAAuC,IAAjC2F,GAAQ5F,KAAKi9F,GAAUh7F,IAA0B,MAAVhC,EAAEgC,IAAiByC,MAAMzE,EAAEgC,IACpE,OAAO,CAKf,KAAK,GADDi7F,IAAiB,EACZp9F,EAAI,EAAGA,EAAIm9F,GAASn7F,SAAUhC,EACnC,GAAIG,EAAEg9F,GAASn9F,IAAK,CAChB,GAAIo9F,EACA,OAAO,CAEPniE,YAAW96B,EAAEg9F,GAASn9F,OAAS2oF,EAAMxoF,EAAEg9F,GAASn9F,OAChDo9F,GAAiB,GAK7B,OAAO,EAGX,QAASC,MACL,MAAO19F,MAAKynF,SAGhB,QAASkW,MACL,MAAOC,IAAe1V,KAG1B,QAAS2V,IAAUl0E,GACf,GAAIqiE,GAAkBH,EAAqBliE,GACvCm0E,EAAQ9R,EAAgB/hE,MAAQ,EAChC8zE,EAAW/R,EAAgBgS,SAAW,EACtC9N,EAASlE,EAAgB3hE,OAAS,EAClC4zE,EAAQjS,EAAgB//C,MAAQ+/C,EAAgBkS,SAAW,EAC3DC,EAAOnS,EAAgBjiE,KAAO,EAC9BwW,EAAQyrD,EAAgBjgD,MAAQ,EAChCvL,EAAUwrD,EAAgBlgD,QAAU,EACpCrL,EAAUurD,EAAgBngD,QAAU,EACpCnL,EAAesrD,EAAgBpgD,aAAe,CAElD5rC,MAAKynF,SAAW8V,GAAgBvR,GAGhChsF,KAAKo+F,eAAiB19D,EACR,IAAVD,EACU,IAAVD,EACQ,IAARD,EAAe,GAAK,GAGxBvgC,KAAKq+F,OAASF,EACF,EAARF,EAIJj+F,KAAKqvF,SAAWa,EACD,EAAX6N,EACQ,GAARD,EAEJ99F,KAAKoV,SAELpV,KAAKyoF,QAAUoO,KAEf72F,KAAKs+F,UAGT,QAASC,IAAYt8F,GACjB,MAAOA,aAAe47F,IAG1B,QAASW,IAAU1zC,GACf,MAAIA,GAAS,GACyB,EAA3BpmD,KAAKwoC,OAAO,EAAI4d,GAEhBpmD,KAAKwoC,MAAM4d,GAM1B,QAASlhC,IAAQoiD,EAAOyyB,GACpB9R,EAAe3gB,EAAO,EAAG,EAAG,WACxB,GAAIpiD,GAAS5pB,KAAK0+F,YACdpxC,EAAO,GAKX,OAJI1jC,GAAS,IACTA,GAAUA,EACV0jC,EAAO,KAEJA,EAAOg/B,KAAY1iE,EAAS,IAAK,GAAK60E,EAAYnS,IAAW,EAAW,GAAI,KAuB3F,QAASqS,IAAiBC,EAASrnD,GAC/B,GAAIsnD,IAAWtnD,GAAU,IAAI7wC,MAAMk4F,EAEnC,IAAgB,OAAZC,EACA,MAAO,KAGX,IAAIC,GAAUD,EAAQA,EAAQx8F,OAAS,OACnCsL,GAAWmxF,EAAQ,IAAIp4F,MAAMq4F,MAAiB,IAAK,EAAG,GACtDv+D,EAAuB,GAAX7yB,EAAM,GAAWq7E,EAAMr7E,EAAM,GAE7C,OAAmB,KAAZ6yB,EACL,EACa,MAAb7yB,EAAM,GAAa6yB,GAAWA,EAIpC,QAASw+D,IAAgB5nD,EAAO6nD,GAC5B,GAAI9Y,GAAKh8D,CACT,OAAI80E,GAAM1W,QACNpC,EAAM8Y,EAAMn1E,QACZK,GAAQtjB,EAASuwC,IAAUvyC,EAAOuyC,GAASA,EAAMxwC,UAAY4yF,GAAYpiD,GAAOxwC,WAAau/E,EAAIv/E,UAEjGu/E,EAAI5/D,GAAG24E,QAAQ/Y,EAAI5/D,GAAG3f,UAAYujB,GAClC47D,EAAM+C,aAAa3C,GAAK,GACjBA,GAEAqT,GAAYpiD,GAAO+nD,QAIlC,QAASC,IAAe5+F,GAGpB,MAAoD,KAA5CkE,KAAKwoC,MAAM1sC,EAAE+lB,GAAG84E,oBAAsB,IAqBlD,QAASC,IAAcloD,EAAOmoD,EAAeC,GACzC,GACIC,GADA71E,EAAS5pB,KAAKwoF,SAAW,CAE7B,KAAKxoF,KAAKwnF,UACN,MAAgB,OAATpwC,EAAgBp3C,KAAOkoF,GAElC,IAAa,MAAT9wC,EAAe,CACf,GAAqB,gBAAVA,IAEP,GAAc,QADdA,EAAQunD,GAAiBe,GAAkBtoD,IAEvC,MAAOp3C,UAEJ0E,MAAKge,IAAI00B,GAAS,KAAOooD,IAChCpoD,GAAgB,GAmBpB,QAjBKp3C,KAAKuoF,QAAUgX,IAChBE,EAAcL,GAAcp/F,OAEhCA,KAAKwoF,QAAUpxC,EACfp3C,KAAKuoF,QAAS,EACK,MAAfkX,GACAz/F,KAAKyV,IAAIgqF,EAAa,KAEtB71E,IAAWwtB,KACNmoD,GAAiBv/F,KAAK2/F,kBACvBC,GAAY5/F,KAAM49F,GAAexmD,EAAQxtB,EAAQ,KAAM,GAAG,GAClD5pB,KAAK2/F,oBACb3/F,KAAK2/F,mBAAoB,EACzB5Z,EAAM+C,aAAa9oF,MAAM,GACzBA,KAAK2/F,kBAAoB,OAG1B3/F,KAEP,MAAOA,MAAKuoF,OAAS3+D,EAASw1E,GAAcp/F,MAIpD,QAAS6/F,IAAYzoD,EAAOmoD,GACxB,MAAa,OAATnoD,GACqB,gBAAVA,KACPA,GAASA,GAGbp3C,KAAK0+F,UAAUtnD,EAAOmoD,GAEfv/F,OAECA,KAAK0+F,YAIrB,QAASoB,IAAgBP,GACrB,MAAOv/F,MAAK0+F,UAAU,EAAGa,GAG7B,QAASQ,IAAkBR,GASvB,MARIv/F,MAAKuoF,SACLvoF,KAAK0+F,UAAU,EAAGa,GAClBv/F,KAAKuoF,QAAS,EAEVgX,GACAv/F,KAAK+mB,SAASq4E,GAAcp/F,MAAO,MAGpCA,KAGX,QAASggG,MACL,GAAiB,MAAbhgG,KAAKsoF,KACLtoF,KAAK0+F,UAAU1+F,KAAKsoF,MAAM,GAAO,OAC9B,IAAuB,gBAAZtoF,MAAKmf,GAAiB,CACpC,GAAI8gF,GAAQtB,GAAiBuB,GAAalgG,KAAKmf,GAClC,OAAT8gF,EACAjgG,KAAK0+F,UAAUuB,GAGfjgG,KAAK0+F,UAAU,GAAG,GAG1B,MAAO1+F,MAGX,QAASmgG,IAAsB/oD,GAC3B,QAAKp3C,KAAKwnF,YAGVpwC,EAAQA,EAAQoiD,GAAYpiD,GAAOsnD,YAAc,GAEzC1+F,KAAK0+F,YAActnD,GAAS,IAAO,GAG/C,QAASgpD,MACL,MACIpgG,MAAK0+F,YAAc1+F,KAAK8pB,QAAQO,MAAM,GAAGq0E,aACzC1+F,KAAK0+F,YAAc1+F,KAAK8pB,QAAQO,MAAM,GAAGq0E,YAIjD,QAAS2B,MACL,IAAKna,EAAYlmF,KAAKsgG,eAClB,MAAOtgG,MAAKsgG,aAGhB,IAAI7/F,KAKJ,IAHA0nF,EAAW1nF,EAAGT,MACdS,EAAIw8F,GAAcx8F,GAEdA,EAAE+tF,GAAI,CACN,GAAI/oF,GAAQhF,EAAE8nF,OAASlC,EAAU5lF,EAAE+tF,IAAMgL,GAAY/4F,EAAE+tF,GACvDxuF,MAAKsgG,cAAgBtgG,KAAKwnF,WACtB2B,EAAc1oF,EAAE+tF,GAAI/oF,EAAMmD,WAAa,MAE3C5I,MAAKsgG,eAAgB,CAGzB,OAAOtgG,MAAKsgG,cAGhB,QAASC,MACL,QAAOvgG,KAAKwnF,YAAaxnF,KAAKuoF,OAGlC,QAASiY,MACL,QAAOxgG,KAAKwnF,WAAYxnF,KAAKuoF,OAGjC,QAASkY,MACL,QAAOzgG,KAAKwnF,YAAYxnF,KAAKuoF,QAA2B,IAAjBvoF,KAAKwoF,SAWhD,QAASoV,IAAgBxmD,EAAO50C,GAC5B,GAGI8qD,GACAxwB,EACA4jE,EALA/2E,EAAWytB,EAEX1wC,EAAQ,IAuDZ,OAlDI63F,IAAWnnD,GACXztB,GACI6nE,GAAKp6C,EAAMgnD,cACX19F,EAAK02C,EAAMinD,MACXp0B,EAAK7yB,EAAMi4C,SAERxrF,EAASuzC,IAChBztB,KACInnB,EACAmnB,EAASnnB,GAAO40C,EAEhBztB,EAAS+W,aAAe0W,IAElB1wC,EAAQi6F,GAAY37F,KAAKoyC,KACnCkW,EAAqB,MAAb5mD,EAAM,IAAe,EAAI,EACjCijB,GACIhO,EAAK,EACLjb,EAAKsoF,EAAMtiF,EAAM8wF,KAAiClqC,EAClD7gD,EAAKu8E,EAAMtiF,EAAMgxF,KAAiCpqC,EAClD9sD,EAAKwoF,EAAMtiF,EAAMixF,KAAiCrqC,EAClD5rD,EAAKsnF,EAAMtiF,EAAMkxF,KAAiCtqC,EAClDkkC,GAAKxI,EAAMwV,GAA8B,IAArB93F,EAAMmxF,MAAwBvqC,KAE5C5mD,EAAQk6F,GAAS57F,KAAKoyC,KAChCkW,EAAqB,MAAb5mD,EAAM,IAAe,EAAI,EACjCijB,GACIhO,EAAIklF,GAASn6F,EAAM,GAAI4mD,GACvB2c,EAAI42B,GAASn6F,EAAM,GAAI4mD,GACvB63B,EAAI0b,GAASn6F,EAAM,GAAI4mD,GACvB5sD,EAAImgG,GAASn6F,EAAM,GAAI4mD,GACvB7gD,EAAIo0F,GAASn6F,EAAM,GAAI4mD,GACvB9sD,EAAIqgG,GAASn6F,EAAM,GAAI4mD,GACvB5rD,EAAIm/F,GAASn6F,EAAM,GAAI4mD,KAER,MAAZ3jC,EACPA,KAC2B,gBAAbA,KAA0B,QAAUA,IAAY,MAAQA,MACtE+2E,EAAUI,GAAkBtH,GAAY7vE,EAAS0yB,MAAOm9C,GAAY7vE,EAAS2yB,KAE7E3yB,KACAA,EAAS6nE,GAAKkP,EAAQhgE,aACtB/W,EAASsgD,EAAIy2B,EAAQxQ,QAGzBpzD,EAAM,GAAI+gE,IAASl0E,GAEf40E,GAAWnnD,IAAUgvC,EAAWhvC,EAAO,aACvCta,EAAI2rD,QAAUrxC,EAAMqxC,SAGjB3rD,EAMX,QAAS+jE,IAAUE,EAAKzzC,GAIpB,GAAI64B,GAAM4a,GAAOzlE,WAAWylE,EAAI71F,QAAQ,IAAK,KAE7C,QAAQjG,MAAMkhF,GAAO,EAAIA,GAAO74B,EAGpC,QAAS0zC,IAA0BvqD,EAAMhxC,GACrC,GAAI0gF,KAUJ,OARAA,GAAI+J,OAASzqF,EAAM4kB,QAAUosB,EAAKpsB,QACC,IAA9B5kB,EAAMwkB,OAASwsB,EAAKxsB,QACrBwsB,EAAK3sB,QAAQrU,IAAI0wE,EAAI+J,OAAQ,KAAK+Q,QAAQx7F,MACxC0gF,EAAI+J,OAGV/J,EAAIzlD,cAAgBj7B,GAAUgxC,EAAK3sB,QAAQrU,IAAI0wE,EAAI+J,OAAQ,KAEpD/J,EAGX,QAAS2a,IAAkBrqD,EAAMhxC,GAC7B,GAAI0gF,EACJ,OAAM1vC,GAAK+wC,WAAa/hF,EAAM+hF,WAI9B/hF,EAAQu5F,GAAgBv5F,EAAOgxC,GAC3BA,EAAKyqD,SAASz7F,GACd0gF,EAAM6a,GAA0BvqD,EAAMhxC,IAEtC0gF,EAAM6a,GAA0Bv7F,EAAOgxC,GACvC0vC,EAAIzlD,cAAgBylD,EAAIzlD,aACxBylD,EAAI+J,QAAU/J,EAAI+J,QAGf/J,IAZKzlD,aAAc,EAAGwvD,OAAQ,GAgBzC,QAASiR,IAAYl0E,EAAWtsB,GAC5B,MAAO,UAAU49B,EAAK6iE,GAClB,GAAIC,GAAKrjE,CAWT,OATe,QAAXojE,GAAoBn8F,OAAOm8F,KAC3BzX,EAAgBhpF,EAAM,YAAcA,EAAQ,uDAAyDA,EAAO,kGAE5Gq9B,EAAMO,EAAKA,EAAM6iE,EAAQA,EAASpjE,GAGtCO,EAAqB,gBAARA,IAAoBA,EAAMA,EACvC8iE,EAAMzD,GAAer/D,EAAK6iE,GAC1BxB,GAAY5/F,KAAMqhG,EAAKp0E,GAChBjtB,MAIf,QAAS4/F,IAAarV,EAAK5gE,EAAU23E,EAAUxY,GAC3C,GAAIpoD,GAAe/W,EAASy0E,cACxBD,EAAOK,GAAS70E,EAAS00E,OACzBnO,EAASsO,GAAS70E,EAAS0lE,QAE1B9E,GAAI/C,YAKTsB,EAA+B,MAAhBA,GAA8BA,EAEzCoH,GACAG,GAAS9F,EAAKrpF,GAAIqpF,EAAK,SAAW2F,EAASoR,GAE3CnD,GACArP,GAAMvE,EAAK,OAAQrpF,GAAIqpF,EAAK,QAAU4T,EAAOmD,GAE7C5gE,GACA6pD,EAAIhkE,GAAG24E,QAAQ3U,EAAIhkE,GAAG3f,UAAY85B,EAAe4gE,GAEjDxY,GACA/C,EAAM+C,aAAayB,EAAK4T,GAAQjO,IAOxC,QAASqR,IAAkBC,EAAUlhE,GACjC,GAAInW,GAAOq3E,EAASr3E,KAAKmW,EAAK,QAAQ,EACtC,OAAOnW,IAAQ,EAAI,WACXA,GAAQ,EAAI,WACZA,EAAO,EAAI,UACXA,EAAO,EAAI,UACXA,EAAO,EAAI,UACXA,EAAO,EAAI,WAAa,WAGpC,QAASs3E,IAAY11E,EAAM21E,GAGvB,GAAIphE,GAAMvU,GAAQytE,KACdmI,EAAM3C,GAAgB1+D,EAAKtgC,MAAM4hG,QAAQ,OACzC36F,EAAS8+E,EAAM8b,eAAe7hG,KAAM2hG,IAAQ,WAE5CnX,EAASkX,IAAY7X,EAAW6X,EAAQz6F,IAAWy6F,EAAQz6F,GAAQ1G,KAAKP,KAAMsgC,GAAOohE,EAAQz6F,GAEjG,OAAOjH,MAAKiH,OAAOujF,GAAUxqF,KAAK+sF,aAAazC,SAASrjF,EAAQjH,KAAMw5F,GAAYl5D,KAGtF,QAASxW,MACL,MAAO,IAAI6+D,GAAO3oF,MAGtB,QAASihG,IAAS7pD,EAAOw0C,GACrB,GAAIkW,GAAaj7F,EAASuwC,GAASA,EAAQoiD,GAAYpiD,EACvD,UAAMp3C,KAAKwnF,YAAasa,EAAWta,aAGnCoE,EAAQD,EAAeC,IAAU,cACnB,gBAAVA,EACO5rF,KAAK4G,UAAYk7F,EAAWl7F,UAE5Bk7F,EAAWl7F,UAAY5G,KAAK8pB,QAAQ83E,QAAQhW,GAAOhlF,WAIlE,QAASs6F,IAAU9pD,EAAOw0C,GACtB,GAAIkW,GAAaj7F,EAASuwC,GAASA,EAAQoiD,GAAYpiD,EACvD,UAAMp3C,KAAKwnF,YAAasa,EAAWta,aAGnCoE,EAAQD,EAAeC,IAAU,cACnB,gBAAVA,EACO5rF,KAAK4G,UAAYk7F,EAAWl7F,UAE5B5G,KAAK8pB,QAAQi4E,MAAMnW,GAAOhlF,UAAYk7F,EAAWl7F,WAIhE,QAASo7F,IAAW3lD,EAAMC,EAAIsvC,EAAOqW,GACjC,GAAIC,GAAYr7F,EAASw1C,GAAQA,EAAOm9C,GAAYn9C,GAChD8lD,EAAUt7F,EAASy1C,GAAMA,EAAKk9C,GAAYl9C,EAC9C,UAAMt8C,KAAKwnF,WAAa0a,EAAU1a,WAAa2a,EAAQ3a,aAGvDya,EAAcA,GAAe,MACF,MAAnBA,EAAY,GAAajiG,KAAKihG,QAAQiB,EAAWtW,IAAU5rF,KAAKkhG,SAASgB,EAAWtW,MACpE,MAAnBqW,EAAY,GAAajiG,KAAKkhG,SAASiB,EAASvW,IAAU5rF,KAAKihG,QAAQkB,EAASvW,KAGzF,QAASp/C,IAAQ4K,EAAOw0C,GACpB,GACIwW,GADAN,EAAaj7F,EAASuwC,GAASA,EAAQoiD,GAAYpiD,EAEvD,UAAMp3C,KAAKwnF,YAAasa,EAAWta,aAGnCoE,EAAQD,EAAeC,IAAU,cACnB,gBAAVA,EACO5rF,KAAK4G,YAAck7F,EAAWl7F,WAErCw7F,EAAUN,EAAWl7F,UACd5G,KAAK8pB,QAAQ83E,QAAQhW,GAAOhlF,WAAaw7F,GAAWA,GAAWpiG,KAAK8pB,QAAQi4E,MAAMnW,GAAOhlF,YAIxG,QAASy7F,IAAejrD,EAAOw0C,GAC3B,MAAO5rF,MAAKwsC,OAAO4K,EAAOw0C,IAAU5rF,KAAKihG,QAAQ7pD,EAAOw0C,GAG5D,QAAS0W,IAAgBlrD,EAAOw0C,GAC5B,MAAO5rF,MAAKwsC,OAAO4K,EAAOw0C,IAAU5rF,KAAKkhG,SAAS9pD,EAAOw0C,GAG7D,QAASzhE,IAAMitB,EAAOw0C,EAAO2W,GACzB,GAAI79C,GACA89C,EACAhY,CAEJ,KAAKxqF,KAAKwnF,UACN,MAAOU,IAKX,IAFAxjC,EAAOs6C,GAAgB5nD,EAAOp3C,OAEzB0kD,EAAK8iC,UACN,MAAOU,IAOX,QAJAsa,EAAoD,KAAvC99C,EAAKg6C,YAAc1+F,KAAK0+F,aAErC9S,EAAQD,EAAeC,IAGnB,IAAK,OAAQpB,EAASiY,GAAUziG,KAAM0kD,GAAQ,EAAI,MAClD,KAAK,QAAS8lC,EAASiY,GAAUziG,KAAM0kD,EAAO,MAC9C,KAAK,UAAW8lC,EAASiY,GAAUziG,KAAM0kD,GAAQ,CAAG,MACpD,KAAK,SAAU8lC,GAAUxqF,KAAO0kD,GAAQ,GAAK,MAC7C,KAAK,SAAU8lC,GAAUxqF,KAAO0kD,GAAQ,GAAK,MAC7C,KAAK,OAAQ8lC,GAAUxqF,KAAO0kD,GAAQ,IAAM,MAC5C,KAAK,MAAO8lC,GAAUxqF,KAAO0kD,EAAO89C,GAAa,KAAO,MACxD,KAAK,OAAQhY,GAAUxqF,KAAO0kD,EAAO89C,GAAa,MAAQ,MAC1D,SAAShY,EAASxqF,KAAO0kD,EAG7B,MAAO69C,GAAU/X,EAASzB,EAASyB,GAGvC,QAASiY,IAAW5/F,EAAGC,GAEnB,GAGI4/F,GAASC,EAHTC,EAA0C,IAAvB9/F,EAAEmnB,OAASpnB,EAAEonB,SAAiBnnB,EAAEunB,QAAUxnB,EAAEwnB,SAE/DwF,EAAShtB,EAAEinB,QAAQrU,IAAImtF,EAAgB,SAc3C,OAXI9/F,GAAI+sB,EAAS,GACb6yE,EAAU7/F,EAAEinB,QAAQrU,IAAImtF,EAAiB,EAAG,UAE5CD,GAAU7/F,EAAI+sB,IAAWA,EAAS6yE,KAElCA,EAAU7/F,EAAEinB,QAAQrU,IAAImtF,EAAiB,EAAG,UAE5CD,GAAU7/F,EAAI+sB,IAAW6yE,EAAU7yE,MAI9B+yE,EAAiBD,IAAW,EAMzC,QAAS32F,MACL,MAAOhM,MAAK8pB,QAAQiL,OAAO,MAAM9tB,OAAO,oCAG5C,QAASD,IAAY67F,GACjB,IAAK7iG,KAAKwnF,UACN,MAAO,KAEX,IAAIjB,IAAqB,IAAfsc,EACNriG,EAAI+lF,EAAMvmF,KAAK8pB,QAAQy8D,MAAQvmF,IACnC,OAAIQ,GAAEypB,OAAS,GAAKzpB,EAAEypB,OAAS,KACpBkjE,EAAa3sF,EAAG+lF,EAAM,iCAAmC,gCAEhEsD,EAAW/kF,KAAKvD,UAAUyF,aAEtBu/E,EACOvmF,KAAK8G,SAASE,cAEd,GAAIlC,MAAK9E,KAAK4G,UAA+B,GAAnB5G,KAAK0+F,YAAmB,KAAM13F,cAAckE,QAAQ,IAAKiiF,EAAa3sF,EAAG,MAG3G2sF,EAAa3sF,EAAG+lF,EAAM,+BAAiC,8BASlE,QAASuc,MACL,IAAK9iG,KAAKwnF,UACN,MAAO,qBAAuBxnF,KAAKmf,GAAK,MAE5C,IAAI0tE,GAAO,SACPkW,EAAO,EACN/iG,MAAKugG,YACN1T,EAA4B,IAArB7sF,KAAK0+F,YAAoB,aAAe,mBAC/CqE,EAAO,IAEX,IAAI/jF,GAAS,IAAM6tE,EAAO,MACtB5iE,EAAQ,GAAKjqB,KAAKiqB,QAAUjqB,KAAKiqB,QAAU,KAAQ,OAAS,SAE5D+4E,EAASD,EAAO,MAEpB,OAAO/iG,MAAKiH,OAAO+X,EAASiL,EAHb,wBAG+B+4E,GAGlD,QAAS/7F,IAAQg8F,GACRA,IACDA,EAAcjjG,KAAKygG,QAAU1a,EAAMmd,iBAAmBnd,EAAM55C,cAEhE,IAAIq+C,GAAS2C,EAAantF,KAAMijG,EAChC,OAAOjjG,MAAK+sF,aAAaoW,WAAW3Y,GAGxC,QAASnuC,IAAMtwB,EAAMm/D,GACjB,MAAIlrF,MAAKwnF,YACC3gF,EAASklB,IAASA,EAAKy7D,WACxBgS,GAAYztE,GAAMy7D,WAChBoW,IAAgBthD,GAAIt8C,KAAMq8C,KAAMtwB,IAAOgJ,OAAO/0B,KAAK+0B,UAAUquE,UAAUlY,GAEvElrF,KAAK+sF,aAAalC,cAIjC,QAASwY,IAASnY,GACd,MAAOlrF,MAAKq8C,KAAKm9C,KAAetO,GAGpC,QAAS5uC,IAAIvwB,EAAMm/D,GACf,MAAIlrF,MAAKwnF,YACC3gF,EAASklB,IAASA,EAAKy7D,WACxBgS,GAAYztE,GAAMy7D,WAChBoW,IAAgBvhD,KAAMr8C,KAAMs8C,GAAIvwB,IAAOgJ,OAAO/0B,KAAK+0B,UAAUquE,UAAUlY,GAEvElrF,KAAK+sF,aAAalC,cAIjC,QAASyY,IAAOpY,GACZ,MAAOlrF,MAAKs8C,GAAGk9C,KAAetO,GAMlC,QAASn2D,IAAQvyB,GACb,GAAI+gG,EAEJ,YAAYrgG,KAARV,EACOxC,KAAKyoF,QAAQkO,OAEpB4M,EAAgB1M,GAAUr0F,GACL,MAAjB+gG,IACAvjG,KAAKyoF,QAAU8a,GAEZvjG,MAef,QAAS+sF,MACL,MAAO/sF,MAAKyoF,QAShB,QAAS+a,IAAMC,EAAUC,GACrB,OAAQD,EAAWC,EAAUA,GAAWA,EAG5C,QAASC,IAAiBhoF,EAAGnb,EAAGE,GAE5B,MAAIib,GAAI,KAAOA,GAAK,EAET,GAAI7W,MAAK6W,EAAI,IAAKnb,EAAGE,GAAKkjG,GAE1B,GAAI9+F,MAAK6W,EAAGnb,EAAGE,GAAGkG,UAIjC,QAASi9F,IAAeloF,EAAGnb,EAAGE,GAE1B,MAAIib,GAAI,KAAOA,GAAK,EAET7W,KAAK8sF,IAAIj2E,EAAI,IAAKnb,EAAGE,GAAKkjG,GAE1B9+F,KAAK8sF,IAAIj2E,EAAGnb,EAAGE,GAI9B,QAASkhG,IAAShW,GACd,GAAI7/D,EAEJ,QAAc7oB,MADd0oF,EAAQD,EAAeC,KACc,gBAAVA,IAA4B5rF,KAAKwnF,UACxD,MAAOxnF,KAGX,IAAI8jG,GAAc9jG,KAAKuoF,OAASsb,GAAiBF,EAEjD,QAAQ/X,GACJ,IAAK,OACD7/D,EAAO+3E,EAAY9jG,KAAKiqB,OAAQ,EAAG,EACnC,MACJ,KAAK,UACD8B,EAAO+3E,EAAY9jG,KAAKiqB,OAAQjqB,KAAKqqB,QAAUrqB,KAAKqqB,QAAU,EAAG,EACjE,MACJ,KAAK,QACD0B,EAAO+3E,EAAY9jG,KAAKiqB,OAAQjqB,KAAKqqB,QAAS,EAC9C,MACJ,KAAK,OACD0B,EAAO+3E,EAAY9jG,KAAKiqB,OAAQjqB,KAAKqqB,QAASrqB,KAAKoqB,OAASpqB,KAAKgsC,UACjE,MACJ,KAAK,UACDjgB,EAAO+3E,EAAY9jG,KAAKiqB,OAAQjqB,KAAKqqB,QAASrqB,KAAKoqB,QAAUpqB,KAAK+jG,aAAe,GACjF,MACJ,KAAK,MACL,IAAK,OACDh4E,EAAO+3E,EAAY9jG,KAAKiqB,OAAQjqB,KAAKqqB,QAASrqB,KAAKoqB,OACnD,MACJ,KAAK,OACD2B,EAAO/rB,KAAKumB,GAAG3f,UACfmlB,GAAQy3E,GAAMz3E,GAAQ/rB,KAAKuoF,OAAS,EAAIvoF,KAAK0+F,YAAcsF,IAAgBC,GAC3E,MACJ,KAAK,SACDl4E,EAAO/rB,KAAKumB,GAAG3f,UACfmlB,GAAQy3E,GAAMz3E,EAAMi4E,GACpB,MACJ,KAAK,SACDj4E,EAAO/rB,KAAKumB,GAAG3f,UACfmlB,GAAQy3E,GAAMz3E,EAAMm4E,IAM5B,MAFAlkG,MAAKumB,GAAG24E,QAAQnzE,GAChBg6D,EAAM+C,aAAa9oF,MAAM,GAClBA,KAGX,QAAS+hG,IAAOnW,GACZ,GAAI7/D,EAEJ,QAAc7oB,MADd0oF,EAAQD,EAAeC,KACc,gBAAVA,IAA4B5rF,KAAKwnF,UACxD,MAAOxnF,KAGX,IAAI8jG,GAAc9jG,KAAKuoF,OAASsb,GAAiBF,EAEjD,QAAQ/X,GACJ,IAAK,OACD7/D,EAAO+3E,EAAY9jG,KAAKiqB,OAAS,EAAG,EAAG,GAAK,CAC5C,MACJ,KAAK,UACD8B,EAAO+3E,EAAY9jG,KAAKiqB,OAAQjqB,KAAKqqB,QAAUrqB,KAAKqqB,QAAU,EAAI,EAAG,GAAK,CAC1E,MACJ,KAAK,QACD0B,EAAO+3E,EAAY9jG,KAAKiqB,OAAQjqB,KAAKqqB,QAAU,EAAG,GAAK,CACvD,MACJ,KAAK,OACD0B,EAAO+3E,EAAY9jG,KAAKiqB,OAAQjqB,KAAKqqB,QAASrqB,KAAKoqB,OAASpqB,KAAKgsC,UAAY,GAAK,CAClF,MACJ,KAAK,UACDjgB,EAAO+3E,EAAY9jG,KAAKiqB,OAAQjqB,KAAKqqB,QAASrqB,KAAKoqB,QAAUpqB,KAAK+jG,aAAe,GAAK,GAAK,CAC3F,MACJ,KAAK,MACL,IAAK,OACDh4E,EAAO+3E,EAAY9jG,KAAKiqB,OAAQjqB,KAAKqqB,QAASrqB,KAAKoqB,OAAS,GAAK,CACjE,MACJ,KAAK,OACD2B,EAAO/rB,KAAKumB,GAAG3f,UACfmlB,GAAQk4E,GAAcT,GAAMz3E,GAAQ/rB,KAAKuoF,OAAS,EAAIvoF,KAAK0+F,YAAcsF,IAAgBC,IAAe,CACxG,MACJ,KAAK,SACDl4E,EAAO/rB,KAAKumB,GAAG3f,UACfmlB,GAAQi4E,GAAgBR,GAAMz3E,EAAMi4E,IAAiB,CACrD,MACJ,KAAK,SACDj4E,EAAO/rB,KAAKumB,GAAG3f,UACfmlB,GAAQm4E,GAAgBV,GAAMz3E,EAAMm4E,IAAiB,EAM7D,MAFAlkG,MAAKumB,GAAG24E,QAAQnzE,GAChBg6D,EAAM+C,aAAa9oF,MAAM,GAClBA,KAGX,QAAS4G,MACL,MAAO5G,MAAKumB,GAAG3f,UAAmC,KAArB5G,KAAKwoF,SAAW,GAGjD,QAAS2b,MACL,MAAOz/F,MAAKwJ,MAAMlO,KAAK4G,UAAY,KAGvC,QAASE,MACL,MAAO,IAAIhC,MAAK9E,KAAK4G,WAGzB,QAASgC,MACL,GAAIpI,GAAIR,IACR,QAAQQ,EAAEypB,OAAQzpB,EAAE6pB,QAAS7pB,EAAE4pB,OAAQ5pB,EAAEurC,OAAQvrC,EAAEsrC,SAAUtrC,EAAEqrC,SAAUrrC,EAAEorC,eAG/E,QAASmZ,MACL,GAAIvkD,GAAIR,IACR,QACI89F,MAAOt9F,EAAEypB,OACTimE,OAAQ1vF,EAAE6pB,QACVD,KAAM5pB,EAAE4pB,OACRmW,MAAO//B,EAAE+/B,QACTC,QAAShgC,EAAEggC,UACXC,QAASjgC,EAAEigC,UACXC,aAAclgC,EAAEkgC,gBAIxB,QAAS0jE,MAEL,MAAOpkG,MAAKwnF,UAAYxnF,KAAKgH,cAAgB,KAGjD,QAASq9F,MACL,MAAO7c,GAAQxnF,MAGnB,QAASskG,MACL,MAAO9+F,MAAW8hF,EAAgBtnF,OAGtC,QAASukG,MACL,MAAOjd,GAAgBtnF,MAAMuS,SAGjC,QAASiyF,MACL,OACIptD,MAAOp3C,KAAKmf,GACZlY,OAAQjH,KAAKooF,GACbrzD,OAAQ/0B,KAAKyoF,QACb2U,MAAOp9F,KAAKuoF,OACZ7b,OAAQ1sE,KAAK8nF,SAcrB,QAAS2c,IAAwBz4B,EAAOprE,GACpC+rF,EAAe,GAAI3gB,EAAOA,EAAM3pE,QAAS,EAAGzB,GAwChD,QAAS8jG,IAAgBttD,GACrB,MAAOutD,IAAqBpkG,KAAKP,KACzBo3C,EACAp3C,KAAKisC,OACLjsC,KAAKgsC,UACLhsC,KAAK+sF,aAAa+F,MAAMd,IACxBhyF,KAAK+sF,aAAa+F,MAAMb;0GAGpC,QAAS2S,IAAmBxtD,GACxB,MAAOutD,IAAqBpkG,KAAKP,KACzBo3C,EAAOp3C,KAAKk+F,UAAWl+F,KAAK+jG,aAAc,EAAG,GAGzD,QAASc,MACL,MAAOlS,IAAY3yF,KAAKiqB,OAAQ,EAAG,GAGvC,QAAS66E,MACL,GAAIC,GAAW/kG,KAAK+sF,aAAa+F,KACjC,OAAOH,IAAY3yF,KAAKiqB,OAAQ86E,EAAS/S,IAAK+S,EAAS9S,KAG3D,QAAS0S,IAAqBvtD,EAAOnL,EAAMD,EAASgmD,EAAKC,GACrD,GAAI+S,EACJ,OAAa,OAAT5tD,EACOq7C,GAAWzyF,KAAMgyF,EAAKC,GAAKhoE,MAElC+6E,EAAcrS,GAAYv7C,EAAO46C,EAAKC,GAClChmD,EAAO+4D,IACP/4D,EAAO+4D,GAEJC,GAAW1kG,KAAKP,KAAMo3C,EAAOnL,EAAMD,EAASgmD,EAAKC,IAIhE,QAASgT,IAAW7L,EAAUntD,EAAMD,EAASgmD,EAAKC,GAC9C,GAAIiT,GAAgB9S,GAAmBgH,EAAUntD,EAAMD,EAASgmD,EAAKC,GACjE7nE,EAAOunE,GAAcuT,EAAcj7E,KAAM,EAAGi7E,EAAcl7E,UAK9D,OAHAhqB,MAAKiqB,KAAKG,EAAKynE,kBACf7xF,KAAKqqB,MAAMD,EAAKmuE,eAChBv4F,KAAKoqB,KAAKA,EAAKouE,cACRx4F,KAwBX,QAASmlG,IAAe/tD,GACpB,MAAgB,OAATA,EAAgB1yC,KAAK46B,MAAMt/B,KAAKqqB,QAAU,GAAK,GAAKrqB,KAAKqqB,MAAoB,GAAb+sB,EAAQ,GAASp3C,KAAKqqB,QAAU,GAyD3G,QAAS+6E,IAAiBhuD,GACtB,GAAIptB,GAAYtlB,KAAKwoC,OAAOltC,KAAK8pB,QAAQ83E,QAAQ,OAAS5hG,KAAK8pB,QAAQ83E,QAAQ,SAAW,OAAS,CACnG,OAAgB,OAATxqD,EAAgBptB,EAAYhqB,KAAKyV,IAAK2hC,EAAQptB,EAAY,KAiGrE,QAASq7E,IAAQjuD,EAAOvuC,GACpBA,EAAMgvF,IAAe7O,EAAuB,KAAhB,KAAO5xC,IAiBvC,QAASkuD,MACL,MAAOtlG,MAAKuoF,OAAS,MAAQ,GAGjC,QAASgd,MACL,MAAOvlG,MAAKuoF,OAAS,6BAA+B,GAiFxD,QAASid,IAAYpuD,GACjB,MAAOoiD,IAAoB,IAARpiD,GAGvB,QAASquD,MACL,MAAOjM,IAAY7/E,MAAM,KAAMpU,WAAWmgG,YAG9C,QAASC,IAAoBpuD,GACzB,MAAOA,GAoCX,QAASquD,IAAO3+F,EAAQk0B,EAAO/qB,EAAO+yE,GAClC,GAAIpuD,GAAS8hE,KACTtQ,EAAMF,IAAYvxE,IAAIquE,EAAQhoD,EAClC,OAAOpG,GAAO3kB,GAAOm2E,EAAKt/E,GAG9B,QAAS4+F,IAAgB5+F,EAAQk0B,EAAO/qB,GAQpC,GAPIvM,EAASoD,KACTk0B,EAAQl0B,EACRA,MAAS/D,IAGb+D,EAASA,GAAU,GAEN,MAATk0B,EACA,MAAOyqE,IAAM3+F,EAAQk0B,EAAO/qB,EAAO,QAGvC,IAAI/P,GACA+f,IACJ,KAAK/f,EAAI,EAAGA,EAAI,GAAIA,IAChB+f,EAAI/f,GAAKulG,GAAM3+F,EAAQ5G,EAAG+P,EAAO,QAErC,OAAOgQ,GAWX,QAAS0lF,IAAkBC,EAAc9+F,EAAQk0B,EAAO/qB,GACxB,iBAAjB21F,IACHliG,EAASoD,KACTk0B,EAAQl0B,EACRA,MAAS/D,IAGb+D,EAASA,GAAU,KAEnBA,EAAS8+F,EACT5qE,EAAQl0B,EACR8+F,GAAe,EAEXliG,EAASoD,KACTk0B,EAAQl0B,EACRA,MAAS/D,IAGb+D,EAASA,GAAU,GAGvB,IAAI8tB,GAAS8hE,KACTx7E,EAAQ0qF,EAAehxE,EAAO+9D,MAAMd,IAAM,CAE9C,IAAa,MAAT72D,EACA,MAAOyqE,IAAM3+F,GAASk0B,EAAQ9f,GAAS,EAAGjL,EAAO,MAGrD,IAAI/P,GACA+f,IACJ,KAAK/f,EAAI,EAAGA,EAAI,EAAGA,IACf+f,EAAI/f,GAAKulG,GAAM3+F,GAAS5G,EAAIgb,GAAS,EAAGjL,EAAO,MAEnD,OAAOgQ,GAGX,QAAS4lF,IAAY/+F,EAAQk0B,GACzB,MAAO0qE,IAAe5+F,EAAQk0B,EAAO,UAGzC,QAAS8qE,IAAiBh/F,EAAQk0B,GAC9B,MAAO0qE,IAAe5+F,EAAQk0B,EAAO,eAGzC,QAAS+qE,IAAcH,EAAc9+F,EAAQk0B,GACzC,MAAO2qE,IAAiBC,EAAc9+F,EAAQk0B,EAAO,YAGzD,QAASgrE,IAAmBJ,EAAc9+F,EAAQk0B,GAC9C,MAAO2qE,IAAiBC,EAAc9+F,EAAQk0B,EAAO,iBAGzD,QAASirE,IAAiBL,EAAc9+F,EAAQk0B,GAC5C,MAAO2qE,IAAiBC,EAAc9+F,EAAQk0B,EAAO,eAsBzD,QAASzY,MACL,GAAIxN,GAAiBlV,KAAKoV,KAa1B,OAXApV,MAAKo+F,cAAgBiI,GAAQrmG,KAAKo+F,eAClCp+F,KAAKq+F,MAAgBgI,GAAQrmG,KAAKq+F,OAClCr+F,KAAKqvF,QAAgBgX,GAAQrmG,KAAKqvF,SAElCn6E,EAAKwrB,aAAgB2lE,GAAQnxF,EAAKwrB,cAClCxrB,EAAKurB,QAAgB4lE,GAAQnxF,EAAKurB,SAClCvrB,EAAKsrB,QAAgB6lE,GAAQnxF,EAAKsrB,SAClCtrB,EAAKqrB,MAAgB8lE,GAAQnxF,EAAKqrB,OAClCrrB,EAAKg7E,OAAgBmW,GAAQnxF,EAAKg7E,QAClCh7E,EAAK4oF,MAAgBuI,GAAQnxF,EAAK4oF,OAE3B99F,KAGX,QAASsmG,IAAe38E,EAAUytB,EAAO5yC,EAAOyoB,GAC5C,GAAIxnB,GAAQm4F,GAAexmD,EAAO5yC,EAMlC,OAJAmlB,GAASy0E,eAAiBnxE,EAAYxnB,EAAM24F,cAC5Cz0E,EAAS00E,OAAiBpxE,EAAYxnB,EAAM44F,MAC5C10E,EAAS0lE,SAAiBpiE,EAAYxnB,EAAM4pF,QAErC1lE,EAAS20E,UAIpB,QAASiI,IAAOnvD,EAAO5yC,GACnB,MAAO8hG,IAActmG,KAAMo3C,EAAO5yC,EAAO,GAI7C,QAASgiG,IAAYpvD,EAAO5yC,GACxB,MAAO8hG,IAActmG,KAAMo3C,EAAO5yC,GAAQ,GAG9C,QAASiiG,IAAS37C,GACd,MAAIA,GAAS,EACFpmD,KAAKwJ,MAAM48C,GAEXpmD,KAAK46B,KAAKwrB,GAIzB,QAAS47C,MACL,GAIIjmE,GAASD,EAASD,EAAOu9D,EAAO6I,EAJhCjmE,EAAe1gC,KAAKo+F,cACpBD,EAAen+F,KAAKq+F,MACpBnO,EAAelwF,KAAKqvF,QACpBn6E,EAAelV,KAAKoV,KAwCxB,OAnCOsrB,IAAgB,GAAKy9D,GAAQ,GAAKjO,GAAU,GAC1CxvD,GAAgB,GAAKy9D,GAAQ,GAAKjO,GAAU,IACjDxvD,GAAuD,MAAvC+lE,GAAQG,GAAa1W,GAAUiO,GAC/CA,EAAO,EACPjO,EAAS,GAKbh7E,EAAKwrB,aAAeA,EAAe,IAEnCD,EAAoBsoD,EAASroD,EAAe,KAC5CxrB,EAAKurB,QAAeA,EAAU,GAE9BD,EAAoBuoD,EAAStoD,EAAU,IACvCvrB,EAAKsrB,QAAeA,EAAU,GAE9BD,EAAoBwoD,EAASvoD,EAAU,IACvCtrB,EAAKqrB,MAAeA,EAAQ,GAE5B49D,GAAQpV,EAASxoD,EAAQ,IAGzBomE,EAAiB5d,EAAS8d,GAAa1I,IACvCjO,GAAUyW,EACVxI,GAAQsI,GAAQG,GAAaD,IAG7B7I,EAAQ/U,EAASmH,EAAS,IAC1BA,GAAU,GAEVh7E,EAAKipF,KAASA,EACdjpF,EAAKg7E,OAASA,EACdh7E,EAAK4oF,MAASA,EAEP99F,KAGX,QAAS6mG,IAAc1I,GAGnB,MAAc,MAAPA,EAAc,OAGzB,QAASyI,IAAc1W,GAEnB,MAAgB,QAATA,EAAkB,KAG7B,QAAS4W,IAAIlb,GACT,IAAK5rF,KAAKwnF,UACN,MAAOU,IAEX,IAAIiW,GACAjO,EACAxvD,EAAe1gC,KAAKo+F,aAIxB,IAAc,WAFdxS,EAAQD,EAAeC,KAEY,YAAVA,GAAiC,SAAVA,EAG5C,OAFAuS,EAAOn+F,KAAKq+F,MAAQ39D,EAAe,MACnCwvD,EAASlwF,KAAKqvF,QAAUwX,GAAa1I,GAC7BvS,GACJ,IAAK,QAAW,MAAOsE,EACvB,KAAK,UAAW,MAAOA,GAAS,CAChC,KAAK,OAAW,MAAOA,GAAS,OAKpC,QADAiO,EAAOn+F,KAAKq+F,MAAQ35F,KAAKwoC,MAAM05D,GAAa5mG,KAAKqvF,UACzCzD,GACJ,IAAK,OAAW,MAAOuS,GAAO,EAAQz9D,EAAe,MACrD,KAAK,MAAW,MAAOy9D,GAAez9D,EAAe,KACrD,KAAK,OAAW,MAAc,IAAPy9D,EAAez9D,EAAe,IACrD,KAAK,SAAW,MAAc,MAAPy9D,EAAez9D,EAAe,GACrD,KAAK,SAAW,MAAc,OAAPy9D,EAAez9D,EAAe,GAErD,KAAK,cAAe,MAAOh8B,MAAKwJ,MAAa,MAAPiwF,GAAgBz9D,CACtD,SAAS,KAAM,IAAI76B,OAAM,gBAAkB+lF,IAMvD,QAASmb,MACL,MAAK/mG,MAAKwnF,UAINxnF,KAAKo+F,cACQ,MAAbp+F,KAAKq+F,MACJr+F,KAAKqvF,QAAU,GAAM,OACK,QAA3BrG,EAAMhpF,KAAKqvF,QAAU,IANdnH,IAUf,QAAS8e,IAAQC,GACb,MAAO,YACH,MAAOjnG,MAAK8mG,GAAGG,IAcvB,QAASC,MACL,MAAOtJ,IAAe59F,MAG1B,QAASmnG,IAAOvb,GAEZ,MADAA,GAAQD,EAAeC,GAChB5rF,KAAKwnF,UAAYxnF,KAAK4rF,EAAQ,OAAS1D,IAGlD,QAASkf,IAAWzmG,GAChB,MAAO,YACH,MAAOX,MAAKwnF,UAAYxnF,KAAKoV,MAAMzU,GAAQunF,KAYnD,QAAS+V,MACL,MAAOlV,GAAS/oF,KAAKm+F,OAAS,GAclC,QAASkJ,IAAkB9vD,EAAQuT,EAAQogC,EAAeC,EAAUp2D,GAChE,MAAOA,GAAOk2D,aAAangC,GAAU,IAAKogC,EAAe3zC,EAAQ4zC,GAGrE,QAASmc,IAAgBC,EAAgBrc,EAAen2D,GACpD,GAAIpL,GAAWi0E,GAAe2J,GAAgB7kF,MAC1C+d,EAAWyM,GAAMvjB,EAASm9E,GAAG,MAC7BtmE,EAAW0M,GAAMvjB,EAASm9E,GAAG,MAC7BvmE,EAAW2M,GAAMvjB,EAASm9E,GAAG,MAC7B3I,EAAWjxD,GAAMvjB,EAASm9E,GAAG,MAC7B5W,EAAWhjD,GAAMvjB,EAASm9E,GAAG,MAC7BhJ,EAAW5wD,GAAMvjB,EAASm9E,GAAG,MAE7BjkG,EAAI49B,GAAW+mE,GAAWC,KAAO,IAAKhnE,IAClCA,EAAU+mE,GAAW9lG,IAAQ,KAAM++B,IACnCD,GAAW,IAAkB,MAC7BA,EAAUgnE,GAAWhnG,IAAQ,KAAMggC,IACnCD,GAAW,IAAkB,MAC7BA,EAAUinE,GAAW/6F,IAAQ,KAAM8zB,IACnC49D,GAAW,IAAkB,MAC7BA,EAAUqJ,GAAW9mG,IAAQ,KAAMy9F,IACnCjO,GAAW,IAAkB,MAC7BA,EAAUsX,GAAWv9B,IAAQ,KAAMimB,IACnC4N,GAAW,IAAkB,OAAmB,KAAMA,EAK9D,OAHAj7F,GAAE,GAAKqoF,EACProF,EAAE,IAAM0kG,EAAiB,EACzB1kG,EAAE,GAAKkyB,EACAsyE,GAAkB1tF,MAAM,KAAM9W,GAIzC,QAAS6kG,IAA4BC,GACjC,WAAyBzkG,KAArBykG,EACOz6D,GAEsB,kBAAvB,KACNA,GAAQy6D,GACD,GAMf,QAASC,IAA6B/uE,EAAWgvE,GAC7C,WAA8B3kG,KAA1BskG,GAAW3uE,SAGD31B,KAAV2kG,EACOL,GAAW3uE,IAEtB2uE,GAAW3uE,GAAagvE,EACN,MAAdhvE,IACA2uE,GAAWC,GAAKI,EAAQ,IAErB,IAGX,QAASzE,IAAU0E,GACf,IAAK9nG,KAAKwnF,UACN,MAAOxnF,MAAK+sF,aAAalC,aAG7B,IAAI91D,GAAS/0B,KAAK+sF,aACdvC,EAAS8c,GAAetnG,MAAO8nG,EAAY/yE,EAM/C,OAJI+yE,KACAtd,EAASz1D,EAAOs2D,YAAYrrF,KAAMwqF,IAG/Bz1D,EAAOouE,WAAW3Y,GAK7B,QAASl9B,IAAK39C,GACV,OAASA,EAAI,IAAMA,EAAI,KAAQA,EAGnC,QAASo4F,MAQL,IAAK/nG,KAAKwnF,UACN,MAAOxnF,MAAK+sF,aAAalC,aAG7B,IAGIrqD,GAASD,EAAOu9D,EAHhBr9D,EAAUunE,GAAMhoG,KAAKo+F,eAAiB,IACtCD,EAAe6J,GAAMhoG,KAAKq+F,OAC1BnO,EAAe8X,GAAMhoG,KAAKqvF,QAI9B7uD,GAAoBuoD,EAAStoD,EAAU,IACvCF,EAAoBwoD,EAASvoD,EAAU,IACvCC,GAAW,GACXD,GAAW,GAGXs9D,EAAS/U,EAASmH,EAAS,IAC3BA,GAAU,EAIV,IAAI+X,GAAInK,EACJ7zB,EAAIimB,EACJrO,EAAIsc,EACJ1xF,EAAI8zB,EACJ//B,EAAIggC,EACJ9+B,EAAI++B,EAAUA,EAAQynE,QAAQ,GAAGh9F,QAAQ,SAAU,IAAM,GACzD3G,EAAQvE,KAAKmoG,WAEjB,KAAK5jG,EAGD,MAAO,KAGX,IAAI6jG,GAAY7jG,EAAQ,EAAI,IAAM,GAC9B8jG,EAAS/6C,GAAKttD,KAAKqvF,WAAa/hC,GAAK/oD,GAAS,IAAM,GACpD+jG,EAAWh7C,GAAKttD,KAAKq+F,SAAW/wC,GAAK/oD,GAAS,IAAM,GACpDgkG,EAAUj7C,GAAKttD,KAAKo+F,iBAAmB9wC,GAAK/oD,GAAS,IAAM,EAE/D,OAAO6jG,GAAY,KACdH,EAAII,EAASJ,EAAI,IAAM,KACvBh+B,EAAIo+B,EAASp+B,EAAI,IAAM,KACvB4X,EAAIymB,EAAWzmB,EAAI,IAAM,KACxBp1E,GAAKjM,GAAKkB,EAAK,IAAM,KACtB+K,EAAI87F,EAAU97F,EAAI,IAAM,KACxBjM,EAAI+nG,EAAU/nG,EAAI,IAAM,KACxBkB,EAAI6mG,EAAU7mG,EAAI,IAAM,IAp4IjC,GAAIskF,IA6GAv9C,EAEAA,IADA9iC,MAAMpE,UAAUknC,KACT9iC,MAAMpE,UAAUknC,KAEhB,SAAU+/D,GAIb,IAAK,GAHDn6F,GAAIvN,OAAOd,MACXuG,EAAM8H,EAAEhM,SAAW,EAEdhC,EAAI,EAAGA,EAAIkG,EAAKlG,IACrB,GAAIA,IAAKgO,IAAKm6F,EAAIjoG,KAAKP,KAAMqO,EAAEhO,GAAIA,EAAGgO,GAClC,OAAO,CAIf,QAAO,EAoDf,IAAIq6E,IAAmB3C,EAAM2C,oBAiDzBG,IAAmB,EA8FnBe,KAYJ7D,GAAMwD,6BAA8B,EACpCxD,EAAM2D,mBAAqB,IAyD3B,IAAI9iE,GAGAA,IADA9lB,OAAO8lB,KACA9lB,OAAO8lB,KAEP,SAAU3kB,GACb,GAAI5B,GAAG8lF,IACP,KAAK9lF,IAAK4B,GACFmkF,EAAWnkF,EAAK5B,IAChB8lF,EAAI//E,KAAK/F,EAGjB,OAAO8lF,GAIf,IAAIsiB,KACAC,QAAU,gBACVC,QAAU,mBACVp8D,SAAW,eACXq8D,QAAU,oBACVC,SAAW,sBACXC,SAAW,KAQXC,IACAC,IAAO,YACPC,GAAO,SACPC,EAAO,aACPC,GAAO,eACPC,IAAO,sBACPC,KAAO,6BAyBPC,GAAgC,UAMhCC,IACAC,OAAS,QACTC,KAAS,SACT/nG,EAAK,gBACL+lG,GAAK,aACLjnG,EAAK,WACLkpG,GAAK,aACLj9F,EAAK,UACLk9F,GAAK,WACLjpG,EAAK,QACLkpG,GAAK,UACL3/B,EAAK,UACL4/B,GAAK,YACLluF,EAAK,SACLmuF,GAAK,YAeLpe,MA4BAS,MAyBAe,GAAmB,uLAEnBK,GAAwB,6CAExBF,MAEAP,MAoFAid,GAAiB,KACjBC,GAAiB,OACjBC,GAAiB,QACjBC,GAAiB,QACjBC,GAAiB,aACjBC,GAAiB,QACjBC,GAAiB,YACjBC,GAAiB,gBACjBC,GAAiB,UACjBC,GAAiB,UACjBC,GAAiB,eAEjBC,GAAiB,MACjBC,GAAiB,WAEjBzK,GAAiB,qBACjBR,GAAmB,0BAEnBkL,GAAiB,uBAIjBC,GAAY,wJAEZjd,MA2BAQ,MA8BAqJ,GAAO,EACPF,GAAQ,EACRC,GAAO,EACPE,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdG,GAAO,EACPE,GAAU,CAIdvL,GAAe,IAAK,EAAG,EAAG,WACtB,GAAIhxE,GAAI3b,KAAKiqB,MACb,OAAOtO,IAAK,KAAO,GAAKA,EAAI,IAAMA,IAGtCgxE,EAAe,GAAI,KAAM,GAAI,EAAG,WAC5B,MAAO3sF,MAAKiqB,OAAS,MAGzB0iE,EAAe,GAAI,OAAU,GAAU,EAAG,QAC1CA,EAAe,GAAI,QAAU,GAAU,EAAG,QAC1CA,EAAe,GAAI,SAAU,GAAG,GAAO,EAAG,QAI1CrB,EAAa,OAAQ,KAIrBW,EAAgB,OAAQ,GAIxBwB,EAAc,IAAUkd,IACxBld,EAAc,KAAU2c,GAAWJ,IACnCvc,EAAc,OAAU+c,GAAWN,IACnCzc,EAAc,QAAUgd,GAAWN,IACnC1c,EAAc,SAAUgd,GAAWN,IAEnChc,GAAe,QAAS,UAAWsJ,IACnCtJ,EAAc,OAAQ,SAAU/2C,EAAOvuC,GACnCA,EAAM4uF,IAAyB,IAAjBrgD,EAAM/0C,OAAe0jF,EAAM+kB,kBAAkB1zD,GAAS4xC,EAAM5xC,KAE9E+2C,EAAc,KAAM,SAAU/2C,EAAOvuC,GACjCA,EAAM4uF,IAAQ1R,EAAM+kB,kBAAkB1zD,KAE1C+2C,EAAc,IAAK,SAAU/2C,EAAOvuC,GAChCA,EAAM4uF,IAAQnsF,SAAS8rC,EAAO,MAelC2uC,EAAM+kB,kBAAoB,SAAU1zD,GAChC,MAAO4xC,GAAM5xC,IAAU4xC,EAAM5xC,GAAS,GAAK,KAAO,KAKtD,IAiEIjxC,IAjEA4kG,GAAanc,GAAW,YAAY,EAoEpCzoF,IADAR,MAAMpE,UAAU4E,QACNR,MAAMpE,UAAU4E,QAEhB,SAAUtF,GAEhB,GAAIR,EACJ,KAAKA,EAAI,EAAGA,EAAIL,KAAKqC,SAAUhC,EAC3B,GAAIL,KAAKK,KAAOQ,EACZ,MAAOR,EAGf,QAAQ,GAehBssF,EAAe,KAAM,KAAM,GAAI,KAAM,WACjC,MAAO3sF,MAAKqqB,QAAU,IAG1BsiE,EAAe,MAAO,EAAG,EAAG,SAAU1lF,GAClC,MAAOjH,MAAK+sF,aAAakD,YAAYjwF,KAAMiH,KAG/C0lF,EAAe,OAAQ,EAAG,EAAG,SAAU1lF,GACnC,MAAOjH,MAAK+sF,aAAamD,OAAOlwF,KAAMiH,KAK1CqkF,EAAa,QAAS,KAItBW,EAAgB,QAAS,GAIzBwB,EAAc,IAAQ2c,IACtB3c,EAAc,KAAQ2c,GAAWJ,IACjCvc,EAAc,MAAQ,SAAUI,EAAU94D,GACtC,MAAOA,GAAO27D,iBAAiB7C,KAEnCJ,EAAc,OAAQ,SAAUI,EAAU94D,GACtC,MAAOA,GAAOg8D,YAAYlD,KAG9BM,GAAe,IAAK,MAAO,SAAU/2C,EAAOvuC,GACxCA,EAAM0uF,IAASvO,EAAM5xC,GAAS,IAGlC+2C,GAAe,MAAO,QAAS,SAAU/2C,EAAOvuC,EAAO+/E,EAAQ5c,GAC3D,GAAI3hD,GAAQu+D,EAAOH,QAAQ8H,YAAYn5C,EAAO40B,EAAO4c,EAAOd,QAE/C,OAATz9D,EACAxhB,EAAM0uF,IAASltE,EAEfi9D,EAAgBsB,GAAQ9B,aAAe1vC,GAM/C,IAAIm4C,IAAmB,gCACnByb,GAAsB,wFAAwF7iG,MAAM,KAUpH2yF,GAA2B,kDAAkD3yF,MAAM,KAkInF2oF,GAA0B+Z,GAoB1B3Z,GAAqB2Z,EA0JzBle,GAAe,KAAM,KAAM,GAAI,KAAM,QACrCA,EAAe,KAAM,KAAM,GAAI,KAAM,WAIrCrB,EAAa,OAAQ,KACrBA,EAAa,UAAW,KAIxBW,EAAgB,OAAQ,GACxBA,EAAgB,UAAW,GAI3BwB,EAAc,IAAM2c,IACpB3c,EAAc,KAAM2c,GAAWJ,IAC/Bvc,EAAc,IAAM2c,IACpB3c,EAAc,KAAM2c,GAAWJ,IAE/B3b,GAAmB,IAAK,KAAM,IAAK,MAAO,SAAUj3C,EAAOnL,EAAM28C,EAAQ5c,GACrE//B,EAAK+/B,EAAMrgE,OAAO,EAAG,IAAMq9E,EAAM5xC,IAWrC,IAAI6zD,KACAjZ,IAAM,EACNC,IAAM,EAyBVtF,GAAe,IAAK,EAAG,KAAM,OAE7BA,EAAe,KAAM,EAAG,EAAG,SAAU1lF,GACjC,MAAOjH,MAAK+sF,aAAaqH,YAAYp0F,KAAMiH,KAG/C0lF,EAAe,MAAO,EAAG,EAAG,SAAU1lF,GAClC,MAAOjH,MAAK+sF,aAAasH,cAAcr0F,KAAMiH,KAGjD0lF,EAAe,OAAQ,EAAG,EAAG,SAAU1lF,GACnC,MAAOjH,MAAK+sF,aAAa0G,SAASzzF,KAAMiH,KAG5C0lF,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,IAAK,EAAG,EAAG,cAI1BrB,EAAa,MAAO,KACpBA,EAAa,UAAW,KACxBA,EAAa,aAAc,KAG3BW,EAAgB,MAAO,IACvBA,EAAgB,UAAW,IAC3BA,EAAgB,aAAc,IAI9BwB,EAAc,IAAQ2c,IACtB3c,EAAc,IAAQ2c,IACtB3c,EAAc,IAAQ2c,IACtB3c,EAAc,KAAQ,SAAUI,EAAU94D,GACtC,MAAOA,GAAOugE,iBAAiBzH,KAEnCJ,EAAc,MAAS,SAAUI,EAAU94D,GACvC,MAAOA,GAAOmgE,mBAAmBrH,KAErCJ,EAAc,OAAU,SAAUI,EAAU94D,GACxC,MAAOA,GAAO8/D,cAAchH,KAGhCQ,GAAmB,KAAM,MAAO,QAAS,SAAUj3C,EAAOnL,EAAM28C,EAAQ5c,GACpE,GAAIhgC,GAAU48C,EAAOH,QAAQ2K,cAAch8C,EAAO40B,EAAO4c,EAAOd,QAEjD,OAAX97C,EACAC,EAAKvrC,EAAIsrC,EAETs7C,EAAgBsB,GAAQf,eAAiBzwC,IAIjDi3C,GAAmB,IAAK,IAAK,KAAM,SAAUj3C,EAAOnL,EAAM28C,EAAQ5c,GAC9D//B,EAAK+/B,GAASgd,EAAM5xC,IAkCxB,IAAI8zD,IAAwB,2DAA2D/iG,MAAM,KAQzFgzF,GAA6B,8BAA8BhzF,MAAM,KAMjEgjG,GAA2B,uBAAuBhjG,MAAM,KAsJxD8sF,GAAuB4V,GAoBvBxV,GAA4BwV,GAoB5BpV,GAA0BoV,EAwE9Ble,GAAe,KAAM,KAAM,GAAI,EAAG,QAClCA,EAAe,KAAM,KAAM,GAAI,EAAGmJ,IAClCnJ,EAAe,KAAM,KAAM,GAAI,EAAGoJ,IAElCpJ,EAAe,MAAO,EAAG,EAAG,WACxB,MAAO,GAAKmJ,GAAQn8E,MAAM3Z,MAAQssF,EAAStsF,KAAKwgC,UAAW,KAG/DmsD,EAAe,QAAS,EAAG,EAAG,WAC1B,MAAO,GAAKmJ,GAAQn8E,MAAM3Z,MAAQssF,EAAStsF,KAAKwgC,UAAW,GACvD8rD,EAAStsF,KAAKygC,UAAW,KAGjCksD,EAAe,MAAO,EAAG,EAAG,WACxB,MAAO,GAAK3sF,KAAKugC,QAAU+rD,EAAStsF,KAAKwgC,UAAW,KAGxDmsD,EAAe,QAAS,EAAG,EAAG,WAC1B,MAAO,GAAK3sF,KAAKugC,QAAU+rD,EAAStsF,KAAKwgC,UAAW,GAChD8rD,EAAStsF,KAAKygC,UAAW,KASjC0mD,GAAS,KAAK,GACdA,GAAS,KAAK,GAIdmE,EAAa,OAAQ,KAGrBW,EAAgB,OAAQ,IAQxBwB,EAAc,IAAMwI,IACpBxI,EAAc,IAAMwI,IACpBxI,EAAc,IAAM2c,IACpB3c,EAAc,IAAM2c,IACpB3c,EAAc,IAAM2c,IACpB3c,EAAc,KAAM2c,GAAWJ,IAC/Bvc,EAAc,KAAM2c,GAAWJ,IAC/Bvc,EAAc,KAAM2c,GAAWJ,IAE/Bvc,EAAc,MAAO4c,IACrB5c,EAAc,QAAS6c,IACvB7c,EAAc,MAAO4c,IACrB5c,EAAc,QAAS6c,IAEvBnc,GAAe,IAAK,MAAOuJ,IAC3BvJ,GAAe,IAAK,MAAO,SAAU/2C,EAAOvuC,EAAO+/E,GAC/C,GAAIwiB,GAASpiB,EAAM5xC,EACnBvuC,GAAM6uF,IAAmB,KAAX0T,EAAgB,EAAIA,IAEtCjd,GAAe,IAAK,KAAM,SAAU/2C,EAAOvuC,EAAO+/E,GAC9CA,EAAOyiB,MAAQziB,EAAOH,QAAQ+T,KAAKplD,GACnCwxC,EAAOwT,UAAYhlD,IAEvB+2C,GAAe,IAAK,MAAO,SAAU/2C,EAAOvuC,EAAO+/E,GAC/C//E,EAAM6uF,IAAQ1O,EAAM5xC,GACpBkwC,EAAgBsB,GAAQb,SAAU,IAEtCoG,EAAc,MAAO,SAAU/2C,EAAOvuC,EAAO+/E,GACzC,GAAI3nC,GAAM7J,EAAM/0C,OAAS,CACzBwG,GAAM6uF,IAAQ1O,EAAM5xC,EAAMzrC,OAAO,EAAGs1C,IACpCp4C,EAAM8uF,IAAU3O,EAAM5xC,EAAMzrC,OAAOs1C,IACnCqmC,EAAgBsB,GAAQb,SAAU,IAEtCoG,EAAc,QAAS,SAAU/2C,EAAOvuC,EAAO+/E,GAC3C,GAAI0iB,GAAOl0D,EAAM/0C,OAAS,EACtBkpG,EAAOn0D,EAAM/0C,OAAS,CAC1BwG,GAAM6uF,IAAQ1O,EAAM5xC,EAAMzrC,OAAO,EAAG2/F,IACpCziG,EAAM8uF,IAAU3O,EAAM5xC,EAAMzrC,OAAO2/F,EAAM,IACzCziG,EAAM+uF,IAAU5O,EAAM5xC,EAAMzrC,OAAO4/F,IACnCjkB,EAAgBsB,GAAQb,SAAU,IAEtCoG,EAAc,MAAO,SAAU/2C,EAAOvuC,EAAO+/E,GACzC,GAAI3nC,GAAM7J,EAAM/0C,OAAS,CACzBwG,GAAM6uF,IAAQ1O,EAAM5xC,EAAMzrC,OAAO,EAAGs1C,IACpCp4C,EAAM8uF,IAAU3O,EAAM5xC,EAAMzrC,OAAOs1C,MAEvCktC,EAAc,QAAS,SAAU/2C,EAAOvuC,EAAO+/E,GAC3C,GAAI0iB,GAAOl0D,EAAM/0C,OAAS,EACtBkpG,EAAOn0D,EAAM/0C,OAAS,CAC1BwG,GAAM6uF,IAAQ1O,EAAM5xC,EAAMzrC,OAAO,EAAG2/F,IACpCziG,EAAM8uF,IAAU3O,EAAM5xC,EAAMzrC,OAAO2/F,EAAM,IACzCziG,EAAM+uF,IAAU5O,EAAM5xC,EAAMzrC,OAAO4/F,KAWvC,IAyCI9U,IAzCA+U,GAA6B,gBAgB7BC,GAAa7c,GAAW,SAAS,GAEjCmI,IACAzM,SAAUme,GACV/d,eAAgBqe,GAChBle,YA7zCqB,eA8zCrBE,QAxzCiB,KAyzCjB2gB,uBAAwBpC,GACxBre,aAAcse,GAEdrZ,OAAQ8a,GACR/a,YAAa6K,GAEb7uD,KAAMg/D,GAENxX,SAAUyX,GACV9W,YAAa+W,GACb9W,cAAe8G,GAEfwQ,cAAeH,IAIfrzE,MACA++D,MA+WA8C,GAAmB,mJACnBC,GAAgB,8IAEhBG,GAAU,wBAEVF,KACC,eAAgB,wBAChB,aAAc,oBACd,eAAgB,mBAChB,aAAc,eAAe,IAC7B,WAAY,gBACZ,UAAW,cAAc,IACzB,aAAc,eACd,WAAY,UAEZ,aAAc,gBACd,YAAa,eAAe,IAC5B,UAAW,UAIZC,KACC,gBAAiB,wBACjB,gBAAiB,uBACjB,WAAY,mBACZ,QAAS,cACT,cAAe,sBACf,cAAe,qBACf,SAAU,iBACV,OAAQ,aACR,KAAM,SAGP0B,GAAkB,sBAwDlBzU,GAAU,0LA+CVoU,IACAoQ,GAAI,EACJC,IAAK,EACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IAgETtmB,GAAM+V,wBAA0BtS,EAC5B,iVAIA,SAAUZ,GACNA,EAAOriE,GAAK,GAAIzhB,MAAK8jF,EAAOzpE,IAAMypE,EAAO0P,QAAU,OAAS,OAKpEvS,EAAMgW,SAAW,aAGjBhW,EAAMiW,SAAW,YA6PjB,IAAIsQ,IAAe9iB,EACf,qGACA,WACI,GAAI/jF,GAAQ+zF,GAAY7/E,MAAM,KAAMpU,UACpC,OAAIvF,MAAKwnF,WAAa/hF,EAAM+hF,UACjB/hF,EAAQzF,KAAOA,KAAOyF,EAEtBwiF,MAKfskB,GAAe/iB,EACf,qGACA,WACI,GAAI/jF,GAAQ+zF,GAAY7/E,MAAM,KAAMpU,UACpC,OAAIvF,MAAKwnF,WAAa/hF,EAAM+hF,UACjB/hF,EAAQzF,KAAOA,KAAOyF,EAEtBwiF,MAwCf3nD,GAAM,WACN,MAAOx7B,MAAKw7B,IAAMx7B,KAAKw7B,OAAS,GAAKx7B,OAGrC04F,IAAY,OAAQ,UAAW,QAAS,OAAQ,MAAO,OAAQ,SAAU,SAAU,cA+FvF5zE,IAAO,IAAK,KACZA,GAAO,KAAM,IAIb6jE,EAAc,IAAMiS,IACpBjS,EAAc,KAAMiS,IACpBvR,GAAe,IAAK,MAAO,SAAU/2C,EAAOvuC,EAAO+/E,GAC/CA,EAAO0P,SAAU,EACjB1P,EAAON,KAAOqW,GAAiBe,GAAkBtoD,IAQrD,IAAI2nD,IAAc,iBA2ClBhZ,GAAM+C,aAAe,YAmJrB,IAAI6X,IAAc,2DAKdC,GAAW,qKA+DfhD,IAAe50F,GAAK60F,GAASt8F,UAC7Bq8F,GAAe4O,QAAU7O,EAuFzB,IAAIloF,IAAW0rF,GAAY,EAAG,OAC1Bp6E,GAAWo6E,IAAa,EAAG,WA+I/Bpb,GAAM55C,cAAgB,uBACtB45C,EAAMmd,iBAAmB,wBAuGzB,IAAIluE,IAAOw0D,EACP,kJACA,SAAUhnF,GACN,WAAYU,KAARV,EACOxC,KAAK+sF,aAEL/sF,KAAK+0B,OAAOvyB,KAS3B0hG,GAAgB,IAChBF,GAAgB,GAAKE,GACrBD,GAAc,GAAKD,GACnBJ,GAAmB,QAAwBK,EAsL/CtX,GAAe,GAAI,KAAM,GAAI,EAAG,WAC5B,MAAO3sF,MAAKo5F,WAAa,MAG7BzM,EAAe,GAAI,KAAM,GAAI,EAAG,WAC5B,MAAO3sF,MAAKysG,cAAgB,MAOhChI,GAAuB,OAAY,YACnCA,GAAuB,QAAY,YACnCA,GAAuB,OAAS,eAChCA,GAAuB,QAAS,eAIhCnZ,EAAa,WAAY,MACzBA,EAAa,cAAe,MAI5BW,EAAgB,WAAY,GAC5BA,EAAgB,cAAe,GAK/BwB,EAAc,IAAUkd,IACxBld,EAAc,IAAUkd,IACxBld,EAAc,KAAU2c,GAAWJ,IACnCvc,EAAc,KAAU2c,GAAWJ,IACnCvc,EAAc,OAAU+c,GAAWN,IACnCzc,EAAc,OAAU+c,GAAWN,IACnCzc,EAAc,QAAUgd,GAAWN,IACnC1c,EAAc,QAAUgd,GAAWN,IAEnC9b,GAAmB,OAAQ,QAAS,OAAQ,SAAU,SAAUj3C,EAAOnL,EAAM28C,EAAQ5c,GACjF//B,EAAK+/B,EAAMrgE,OAAO,EAAG,IAAMq9E,EAAM5xC,KAGrCi3C,GAAmB,KAAM,MAAO,SAAUj3C,EAAOnL,EAAM28C,EAAQ5c,GAC3D//B,EAAK+/B,GAAS+Z,EAAM+kB,kBAAkB1zD,KAqD1Cu1C,EAAe,IAAK,EAAG,KAAM,WAI7BrB,EAAa,UAAW,KAIxBW,EAAgB,UAAW,GAI3BwB,EAAc,IAAKsc,IACnB5b,EAAc,IAAK,SAAU/2C,EAAOvuC,GAChCA,EAAM0uF,IAA8B,GAApBvO,EAAM5xC,GAAS,KAWnCu1C,EAAe,KAAM,KAAM,GAAI,KAAM,QAIrCrB,EAAa,OAAQ,KAGrBW,EAAgB,OAAQ,GAIxBwB,EAAc,IAAM2c,IACpB3c,EAAc,KAAM2c,GAAWJ,IAC/Bvc,EAAc,KAAM,SAAUI,EAAU94D,GAEpC,MAAO84D,GACJ94D,EAAOi1D,yBAA2Bj1D,EAAOk1D,cAC1Cl1D,EAAOg1D,iCAGboE,GAAe,IAAK,MAAOqJ,IAC3BrJ,EAAc,KAAM,SAAU/2C,EAAOvuC,GACjCA,EAAM2uF,IAAQxO,EAAM5xC,EAAM1wC,MAAM0jG,IAAW,KAK/C,IAAIsC,IAAmB9d,GAAW,QAAQ,EAI1CjC,GAAe,OAAQ,OAAQ,GAAI,OAAQ,aAI3CrB,EAAa,YAAa,OAG1BW,EAAgB,YAAa,GAI7BwB,EAAc,MAAQ8c,IACtB9c,EAAc,OAAQwc,IACtB9b,GAAe,MAAO,QAAS,SAAU/2C,EAAOvuC,EAAO+/E,GACnDA,EAAOoQ,WAAahQ,EAAM5xC,KAc9Bu1C,EAAe,KAAM,KAAM,GAAI,EAAG,UAIlCrB,EAAa,SAAU,KAIvBW,EAAgB,SAAU,IAI1BwB,EAAc,IAAM2c,IACpB3c,EAAc,KAAM2c,GAAWJ,IAC/B7b,GAAe,IAAK,MAAOwJ,GAI3B,IAAIgV,IAAe/d,GAAW,WAAW,EAIzCjC,GAAe,KAAM,KAAM,GAAI,EAAG,UAIlCrB,EAAa,SAAU,KAIvBW,EAAgB,SAAU,IAI1BwB,EAAc,IAAM2c,IACpB3c,EAAc,KAAM2c,GAAWJ,IAC/B7b,GAAe,IAAK,MAAOyJ,GAI3B,IAAIgV,IAAehe,GAAW,WAAW,EAIzCjC,GAAe,IAAK,EAAG,EAAG,WACtB,SAAU3sF,KAAK4rC,cAAgB,OAGnC+gD,EAAe,GAAI,KAAM,GAAI,EAAG,WAC5B,SAAU3sF,KAAK4rC,cAAgB,MAGnC+gD,EAAe,GAAI,MAAO,GAAI,EAAG,eACjCA,EAAe,GAAI,OAAQ,GAAI,EAAG,WAC9B,MAA4B,IAArB3sF,KAAK4rC,gBAEhB+gD,EAAe,GAAI,QAAS,GAAI,EAAG,WAC/B,MAA4B,KAArB3sF,KAAK4rC,gBAEhB+gD,EAAe,GAAI,SAAU,GAAI,EAAG,WAChC,MAA4B,KAArB3sF,KAAK4rC,gBAEhB+gD,EAAe,GAAI,UAAW,GAAI,EAAG,WACjC,MAA4B,KAArB3sF,KAAK4rC,gBAEhB+gD,EAAe,GAAI,WAAY,GAAI,EAAG,WAClC,MAA4B,KAArB3sF,KAAK4rC,gBAEhB+gD,EAAe,GAAI,YAAa,GAAI,EAAG,WACnC,MAA4B,KAArB3sF,KAAK4rC,gBAMhB0/C,EAAa,cAAe,MAI5BW,EAAgB,cAAe,IAI/BwB,EAAc,IAAQ8c,GAAWR,IACjCtc,EAAc,KAAQ8c,GAAWP,IACjCvc,EAAc,MAAQ8c,GAAWN,GAEjC,IAAIj+B,GACJ,KAAKA,GAAQ,OAAQA,GAAM3pE,QAAU,EAAG2pE,IAAS,IAC7CyhB,EAAczhB,GAAO0+B,GAOzB,KAAK1+B,GAAQ,IAAKA,GAAM3pE,QAAU,EAAG2pE,IAAS,IAC1CmiB,EAAcniB,GAAOq5B,GAIzB,IAAIwH,IAAoBje,GAAW,gBAAgB,EAInDjC,GAAe,IAAM,EAAG,EAAG,YAC3BA,EAAe,KAAM,EAAG,EAAG,WAY3B,IAAIruD,IAAQqqD,EAAOpnF,SAEnB+8B,IAAM7oB,IAAoBA,GAC1B6oB,GAAMgsD,SAAoBmX,GAC1BnjE,GAAMxU,MAAoBA,GAC1BwU,GAAMnU,KAAoBA,GAC1BmU,GAAMyjE,MAAoBA,GAC1BzjE,GAAMr3B,OAAoBA,GAC1Bq3B,GAAM+d,KAAoBA,GAC1B/d,GAAM+kE,QAAoBA,GAC1B/kE,GAAMge,GAAoBA,GAC1Bhe,GAAMglE,MAAoBA,GAC1BhlE,GAAMp9B,IAAoB8tF,GAC1B1wD,GAAMimE,UAAoBA,GAC1BjmE,GAAM2iE,QAAoBA,GAC1B3iE,GAAM4iE,SAAoBA,GAC1B5iE,GAAM0jE,UAAoBA,GAC1B1jE,GAAMkO,OAAoBA,GAC1BlO,GAAM+jE,cAAoBA,GAC1B/jE,GAAMgkE,eAAoBA,GAC1BhkE,GAAMkpD,QAAoB6c,GAC1B/lE,GAAMtJ,KAAoBA,GAC1BsJ,GAAMvJ,OAAoBA,GAC1BuJ,GAAMyuD,WAAoBA,GAC1BzuD,GAAMh6B,IAAoBioG,GAC1BjuE,GAAMj6B,IAAoBioG,GAC1BhuE,GAAMgmE,aAAoBA,GAC1BhmE,GAAMxpB,IAAoBm6E,GAC1B3wD,GAAMsjE,QAAoBA,GAC1BtjE,GAAMvX,SAAoBA,GAC1BuX,GAAM11B,QAAoBA,GAC1B01B,GAAMymB,SAAoBA,GAC1BzmB,GAAMx3B,OAAoBA,GAC1Bw3B,GAAMt3B,YAAoBA,GAC1Bs3B,GAAMwkE,QAAoBA,GAC1BxkE,GAAM8lE,OAAoBA,GAC1B9lE,GAAMtyB,SAAoBA,GAC1BsyB,GAAM6lE,KAAoBA,GAC1B7lE,GAAM13B,QAAoBA,GAC1B03B,GAAMkmE,aAAoBA,GAC1BlmE,GAAMrU,KAAa8gF,GACnBzsE,GAAMowD,WAAaC,GACnBrwD,GAAM86D,SAAcsL,GACpBpmE,GAAMmuE,YAAc7H,GACpBtmE,GAAM0/D,QAAU1/D,GAAMy/D,SAAWoH,GACjC7mE,GAAMjU,MAAcmmE,GACpBlyD,GAAMywD,YAAc0B,GACpBnyD,GAAM2N,KAAiB3N,GAAM2/D,MAAehL,GAC5C30D,GAAM4/D,QAAiB5/D,GAAMwuE,SAAe5Z,GAC5C50D,GAAMq0D,YAAiBmS,GACvBxmE,GAAMyuE,eAAiBlI,GACvBvmE,GAAMlU,KAAasiF,GACnBpuE,GAAMvU,IAAauU,GAAM6/D,KAAmB1J,GAC5Cn2D,GAAM0N,QAAa2oD,GACnBr2D,GAAMylE,WAAanP,GACnBt2D,GAAMtU,UAAao7E,GACnB9mE,GAAMyN,KAAOzN,GAAMiC,MAAQkrE,GAC3BntE,GAAMwN,OAASxN,GAAMkC,QAAUmsE,GAC/BruE,GAAMuN,OAASvN,GAAMmC,QAAUmsE,GAC/BtuE,GAAMsN,YAActN,GAAMoC,aAAemsE,GACzCvuE,GAAMogE,UAAuBY,GAC7BhhE,GAAMioD,IAAuBuZ,GAC7BxhE,GAAM6gE,MAAuBY,GAC7BzhE,GAAMonE,UAAuB1F,GAC7B1hE,GAAM6hE,qBAAuBA,GAC7B7hE,GAAM0uE,MAAuB5M,GAC7B9hE,GAAMiiE,QAAuBA,GAC7BjiE,GAAMkiE,YAAuBA,GAC7BliE,GAAMmiE,MAAuBA,GAC7BniE,GAAM8+D,MAAuBqD,GAC7BniE,GAAM2uE,SAAW3H,GACjBhnE,GAAM4uE,SAAW3H,GACjBjnE,GAAMpT,MAASs+D,EAAU,kDAAmDkjB,IAC5EpuE,GAAM4xD,OAAS1G,EAAU,mDAAoDgH,IAC7ElyD,GAAMw/D,MAAStU,EAAU,iDAAkDuhB,IAC3EzsE,GAAMykE,KAASvZ,EAAU,2GAA4GqW,IACrIvhE,GAAM6uE,aAAe3jB,EAAU,0GAA2G6W,GAc1I,IAAI+M,IAAU/iB,EAAO9oF,SAErB6rG,IAAQ9iB,SAAkBA,EAC1B8iB,GAAQ1iB,eAAkBA,EAC1B0iB,GAAQviB,YAAkBA,EAC1BuiB,GAAQriB,QAAkBA,EAC1BqiB,GAAQlQ,SAAkByI,GAC1ByH,GAAQjK,WAAkBwC,GAC1ByH,GAAQniB,aAAkBA,EAC1BmiB,GAAQ/hB,WAAkBA,EAC1B+hB,GAAQt4F,IAAkBA,EAE1Bs4F,GAAQld,OAA2Bd,GACnCge,GAAQnd,YAA2BT,GACnC4d,GAAQ7c,YAA2BJ,GACnCid,GAAQrc,YAAoBA,GAC5Bqc,GAAQ1c,iBAAoBA,GAC5B0c,GAAQnhE,KAAO4mD,GACfua,GAAQC,eAAiBra,GACzBoa,GAAQE,eAAiBva,GAEzBqa,GAAQ3Z,SAAwBD,GAChC4Z,GAAQhZ,YAAwBP,GAChCuZ,GAAQ/Y,cAAwBV,GAChCyZ,GAAQha,cAAwBkB,GAEhC8Y,GAAQvY,cAA6BA,GACrCuY,GAAQlY,mBAA6BA,GACrCkY,GAAQ9X,iBAA6BA,GAErC8X,GAAQ5Q,KAAOrG,GACfiX,GAAQjmB,SAAWiP,GA4FnBQ,GAAmB,MACf8U,uBAAwB,uBACxB3gB,QAAU,SAAUjgC,GAChB,GAAIhoD,GAAIgoD,EAAS,EAKjB,OAAOA,IAJoC,IAA7Bk+B,EAAMl+B,EAAS,IAAM,IAAa,KACrC,IAANhoD,EAAW,KACL,IAANA,EAAW,KACL,IAANA,EAAW,KAAO,SAO/BijF,EAAM/wD,KAAOw0D,EAAU,wDAAyDoN,IAChF7Q,EAAMwnB,SAAW/jB,EAAU,gEAAiEqN,GAE5F,IAAIwP,IAAU3hG,KAAKge,IA8Jf8qF,GAAiBxG,GAAO,MACxBmB,GAAiBnB,GAAO,KACxByG,GAAiBzG,GAAO,KACxB0G,GAAiB1G,GAAO,KACxB2G,GAAiB3G,GAAO,KACxB4G,GAAiB5G,GAAO,KACxB6G,GAAiB7G,GAAO,KACxB8G,GAAiB9G,GAAO,KACxB+G,GAAiB/G,GAAO,KAiBxBtmE,GAAe0mE,GAAW,gBAC1B3mE,GAAe2mE,GAAW,WAC1B5mE,GAAe4mE,GAAW,WAC1B7mE,GAAe6mE,GAAW,SAC1BjJ,GAAeiJ,GAAW,QAC1BlX,GAAekX,GAAW,UAC1BtJ,GAAesJ,GAAW,SAM1Bl6D,GAAQxoC,KAAKwoC,MACbs6D,IACAC,GAAI,GACJ/lG,EAAI,GACJlB,EAAI,GACJiM,EAAI,GACJ/L,EAAI,GACJupE,EAAI,IA6EJ+9B,GAAQtjG,KAAKge,IAgEbsrF,GAAUnQ,GAASt8F,SAwGvB,OAtGAysG,IAAQxmB,QAAiBkW,GACzBsQ,GAAQtrF,IAAiBA,GACzBsrF,GAAQv4F,IAAiB8wF,GACzByH,GAAQjnF,SAAiBy/E,GACzBwH,GAAQlH,GAAiBA,GACzBkH,GAAQR,eAAiBA,GACzBQ,GAAQ7F,UAAiBA,GACzB6F,GAAQP,UAAiBA,GACzBO,GAAQN,QAAiBA,GACzBM,GAAQL,OAAiBA,GACzBK,GAAQJ,QAAiBA,GACzBI,GAAQH,SAAiBA,GACzBG,GAAQF,WAAiBA,GACzBE,GAAQD,QAAiBA,GACzBC,GAAQpnG,QAAiBmgG,GACzBiH,GAAQ1P,QAAiBoI,GACzBsH,GAAQlkF,MAAiBo9E,GACzB8G,GAAQ9sG,IAAiBimG,GACzB6G,GAAQttE,aAAiBA,GACzBstE,GAAQvtE,QAAiBA,GACzButE,GAAQxtE,QAAiBA,GACzBwtE,GAAQztE,MAAiBA,GACzBytE,GAAQ7P,KAAiBA,GACzB6P,GAAQ/P,MAAiBA,GACzB+P,GAAQ9d,OAAiBA,GACzB8d,GAAQlQ,MAAiBA,GACzBkQ,GAAQ5K,SAAiBA,GACzB4K,GAAQhnG,YAAiB+gG,GACzBiG,GAAQhiG,SAAiB+7F,GACzBiG,GAAQ5J,OAAiB2D,GACzBiG,GAAQj5E,OAAiBA,GACzBi5E,GAAQjhB,WAAiBA,GAEzBihB,GAAQC,YAAczkB,EAAU,sFAAuFue,IACvHiG,GAAQh5E,KAAOA,GAMf23D,EAAe,IAAK,EAAG,EAAG,QAC1BA,EAAe,IAAK,EAAG,EAAG,WAI1Bc,EAAc,IAAKkd,IACnBld,EAAc,IAAKmd,IACnBzc,EAAc,IAAK,SAAU/2C,EAAOvuC,EAAO+/E,GACvCA,EAAOriE,GAAK,GAAIzhB,MAA6B,IAAxBw2B,WAAW8b,EAAO,OAE3C+2C,EAAc,IAAK,SAAU/2C,EAAOvuC,EAAO+/E,GACvCA,EAAOriE,GAAK,GAAIzhB,MAAKkkF,EAAM5xC,MAM/B2uC,EAAMzxE,QAAU,SA17IhB,SAA0B3L,GACtBq9E,GAAer9E,GA27IH6wF,IAEhBzT,EAAM/8E,GAAwBs1B,GAC9BynD,EAAM1hF,IAAwBA,GAC9B0hF,EAAMzhF,IAAwBA,GAC9ByhF,EAAMzlD,IAAwBA,GAC9BylD,EAAMQ,IAAwBF,EAC9BN,EAAMoe,KAAwBqB,GAC9Bzf,EAAMmK,OAAwB8V,GAC9BjgB,EAAMlhF,OAAwBA,EAC9BkhF,EAAMhxD,OAAwB6hE,GAC9B7Q,EAAMymB,QAAwBvkB,EAC9BlC,EAAMp8D,SAAwBi0E,GAC9B7X,EAAMl/E,SAAwBA,EAC9Bk/E,EAAM0N,SAAwByS,GAC9BngB,EAAM2f,UAAwBD,GAC9B1f,EAAMgH,WAAwB8J,GAC9B9Q,EAAMwY,WAAwBA,GAC9BxY,EAAMkK,YAAwBgW,GAC9BlgB,EAAMqO,YAAwBgS,GAC9BrgB,EAAM+Q,aAAwBA,GAC9B/Q,EAAMoR,aAAwBA,GAC9BpR,EAAM5tD,QAAwBk/D,GAC9BtR,EAAMsO,cAAwB8R,GAC9BpgB,EAAM4F,eAAwBA,EAC9B5F,EAAMmoB,qBAAwBxG,GAC9B3hB,EAAMooB,sBAAwBvG,GAC9B7hB,EAAM8b,eAAwBN,GAC9Bxb,EAAMxkF,UAAwB+8B,GAG9BynD,EAAMqoB,WACFC,eAAgB,mBAChBC,uBAAwB,sBACxBC,kBAAmB,0BACnB/W,KAAM,aACNgX,KAAM,QACNC,aAAc,WACdC,QAAS,eACT1W,KAAM,aACNT,MAAO,WAGJxR,MAIkBxlF,KAAKZ,EAASO,EAAoB,KAAKN,KAI9D,SAAUA,EAAQD,GAExBC,EAAOD,QAAU,SAASC,GAoBzB,MAnBIA,GAAO+uG,kBACV/uG,EAAO4pF,UAAY,aACnB5pF,EAAOw/D,SAEHx/D,EAAO86E,WAAU96E,EAAO86E,aAC5B55E,OAAOC,eAAenB,EAAQ,UAC7BqB,YAAY,EACZC,IAAK,WACJ,MAAOtB,GAAOU,KAGhBQ,OAAOC,eAAenB,EAAQ,MAC7BqB,YAAY,EACZC,IAAK,WACJ,MAAOtB,GAAOS,KAGhBT,EAAO+uG,gBAAkB,GAEnB/uG,IAMF,SAAUA,EAAQD,GAExB,QAASivG,GAAoBC,GAC5B,KAAM,IAAIhpG,OAAM,uBAAyBgpG,EAAM,MAEhDD,EAAoBhoF,KAAO,WAAa,UACxCgoF,EAAoBE,QAAUF,EAC9BhvG,EAAOD,QAAUivG,EACjBA,EAAoBt4F,GAAK,KAInB,SAAU1W,EAAQD,EAASO,IAGL,SAAS2f,GAsDrC,QAAS3a,GAAMxD,EAAGqtG,EAAKnlF,GACrB,GAAIvpB,GAAI0uG,GAAOnlF,GAAU,EACrB6mB,EAAK,CAWT,KATAs+D,EAAMA,MACNrtG,EAAEmd,cAAc3T,QAAQ,eAAgB,SAAU8jG,GAC5Cv+D,EAAK,KAEPs+D,EAAI1uG,EAAIowC,KAAQw+D,EAAWD,MAKxBv+D,EAAK,IACVs+D,EAAI1uG,EAAIowC,KAAQ,CAGlB,OAAOs+D,GAIT,QAASG,GAAQH,EAAKnlF,GACpB,GAAIvpB,GAAIupB,GAAU,EACdulF,EAAMC,CACV,OAAOD,GAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAAQ,IAAM8uG,EAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAAQ,IAAM8uG,EAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAAQ,IAAM8uG,EAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAAQ,IAAM8uG,EAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAAQ8uG,EAAIJ,EAAI1uG,MAsBzR,QAASgvG,GAAGhgG,EAAS0/F,EAAKnlF,GACxB,GAAIvpB,GAAI0uG,GAAOnlF,GAAU,EACrB9mB,EAAIisG,KAER1/F,GAAUA,KAEV,IAAIigG,OAAgCpsG,KAArBmM,EAAQigG,SAAyBjgG,EAAQigG,SAAWC,EAM/DC,MAA0BtsG,KAAlBmM,EAAQmgG,MAAsBngG,EAAQmgG,OAAQ,GAAI1qG,OAAOw1D,UAIjEm1C,MAA0BvsG,KAAlBmM,EAAQogG,MAAsBpgG,EAAQogG,MAAQC,EAAa,EAGnEC,EAAKH,EAAQI,GAAcH,EAAQC,GAAc,GAcrD,IAXIC,EAAK,OAA0BzsG,KAArBmM,EAAQigG,WACpBA,EAAWA,EAAW,EAAI,QAKvBK,EAAK,GAAKH,EAAQI,QAAiC1sG,KAAlBmM,EAAQogG,QAC5CA,EAAQ,GAINA,GAAS,IACX,KAAM,IAAI5pG,OAAM,kDAGlB+pG,GAAaJ,EACbE,EAAaD,EACbF,EAAYD,EAGZE,GAAS,WAGT,IAAIK,IAA4B,KAAb,UAARL,GAA6BC,GAAS,UACjD3sG,GAAEzC,KAAOwvG,IAAO,GAAK,IACrB/sG,EAAEzC,KAAOwvG,IAAO,GAAK,IACrB/sG,EAAEzC,KAAOwvG,IAAO,EAAI,IACpB/sG,EAAEzC,KAAY,IAALwvG,CAGT,IAAIC,GAAMN,EAAQ,WAAc,IAAQ,SACxC1sG,GAAEzC,KAAOyvG,IAAQ,EAAI,IACrBhtG,EAAEzC,KAAa,IAANyvG,EAGThtG,EAAEzC,KAAOyvG,IAAQ,GAAK,GAAM,GAC5BhtG,EAAEzC,KAAOyvG,IAAQ,GAAK,IAGtBhtG,EAAEzC,KAAOivG,IAAa,EAAI,IAG1BxsG,EAAEzC,KAAkB,IAAXivG,CAIT,KAAK,GADDjuD,GAAOhyC,EAAQgyC,MAAQ0uD,EAClB5uG,EAAI,EAAGA,EAAI,EAAGA,IACrB2B,EAAEzC,EAAIc,GAAKkgD,EAAKlgD,EAGlB,OAAO4tG,IAAYG,EAAQpsG,GAM7B,QAASsC,GAAGiK,EAAS0/F,EAAKnlF,GAExB,GAAIvpB,GAAI0uG,GAAOnlF,GAAU,CAEH,iBAAXva,KACT0/F,EAAiB,UAAX1/F,EAAsB,GAAI1J,OAAM,IAAM,KAC5C0J,EAAU,MAEZA,EAAUA,KAEV,IAAI2gG,GAAO3gG,EAAQgjB,SAAWhjB,EAAQ4gG,KAAOC,IAO7C,IAJAF,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAGvBjB,EACF,IAAK,GAAIt+D,GAAK,EAAGA,EAAK,GAAIA,IACxBs+D,EAAI1uG,EAAIowC,GAAMu/D,EAAKv/D,EAIvB,OAAOs+D,IAAOG,EAAQc,GArMxB,GAAIE,GAEAC,EAA8B,mBAAXpmG,QAAyBA,WAA2B,KAAX8V,EAAyBA,EAAS,IAElG,IAAIswF,GAAaA,EAAUC,QAAUA,OAAOC,gBAAiB,CAG3D,GAAIC,GAAS,GAAIC,YAAW,GAC5BL,GAAO,WAEL,MADAE,QAAOC,gBAAgBC,GAChBA,GAIX,IAAKJ,EAAM,CAKT,GAAIM,GAAQ,GAAI7qG,OAAM,GACtBuqG,GAAO,WACL,IAAK,GAAW/kG,GAAP9K,EAAI,EAAMA,EAAI,GAAIA,IACN,IAAV,EAAJA,KAAiB8K,EAAoB,WAAhBzG,KAAK2tB,UAC/Bm+E,EAAMnwG,GAAK8K,MAAY,EAAJ9K,IAAa,GAAK,GAGvC,OAAOmwG,IAkBX,IAAK,GAFDpB,MACAH,KACK5uG,EAAI,EAAGA,EAAI,IAAKA,IACvB+uG,EAAW/uG,IAAMA,EAAI,KAAO2L,SAAS,IAAIL,OAAO,GAChDsjG,EAAWG,EAAW/uG,IAAMA,CAqC9B,IAAIowG,GAAaP,IAGbH,GAA2B,EAAhBU,EAAW,GAAWA,EAAW,GAAIA,EAAW,GAAIA,EAAW,GAAIA,EAAW,GAAIA,EAAW,IAGxGlB,EAAmD,OAAtCkB,EAAW,IAAM,EAAIA,EAAW,IAG7Cb,EAAa,EACbF,EAAa,EA4Gb9rG,EAAOwB,CACXxB,GAAKyrG,GAAKA,EACVzrG,EAAKwB,GAAKA,EACVxB,EAAKsB,MAAQA,EACbtB,EAAKsrG,QAAUA,EAEftvG,EAAOD,QAAUiE,IACYrD,KAAKZ,EAASO,EAAoB,OAIzD,SAAUN,EAAQD,GAExB,GAAIyL,EAGJA,GAAI,WACH,MAAOpL,QAGR,KAECoL,EAAIA,GAAK+V,SAAS,mBAAoB,EAAGuvF,MAAM,QAC9C,MAAMnmG,GAEc,gBAAXR,UACTqB,EAAIrB,QAONnK,EAAOD,QAAUyL,GAKX,SAAUxL,EAAQD,EAASO,GAMjCP,EAAQkW,KAAO3V,EAAoB,GACnCP,EAAQu6C,QAAUh6C,EAAoB,IAGtCP,EAAQsV,QAAU/U,EAAoB,IACtCP,EAAQ6Z,SAAWtZ,EAAoB,IACvCP,EAAQmW,MAAQ5V,EAAoB,IAGpCP,EAAQgxG,QAAUzwG,EAAoB,KACtCP,EAAQixG,SACNrlD,OAAQrrD,EAAoB,IAC5B+tD,OAAQ/tD,EAAoB,IAC5B2lD,QAAS3lD,EAAoB,IAC7B2mB,QAAS3mB,EAAoB,IAC7B4lD,OAAQ5lD,EAAoB,IAC5B2nD,WAAY3nD,EAAoB,KAIlCP,EAAQgE,OAASzD,EAAoB,GACrCP,EAAQqV,OAAS9U,EAAoB,IACrCP,EAAQ8nB,SAAWvnB,EAAoB,KAIjC,SAAUN,EAAQD,EAASO,GAEjC,GAAImU,GAAOnU,EAAoB,GAC3BuiF,EAAQpuE,EAAKyxB,OAASzxB,EAAKyxB,MAAS48C,UAAW58C,KAAK48C,WACxD9iF,GAAOD,QAAU,SAAmBmiB,GAClC,MAAO2gE,GAAMC,UAAU/oE,MAAM8oE,EAAOl9E,aAMhC,SAAU3F,EAAQD,EAASO,GAmKjC,QAASywG,GAAQjpF,EAAWxS,EAAM7F,GAChC,KAAMrP,eAAgB2wG,IACpB,KAAM,IAAInkC,aAAY,mDAIxBxsE,MAAK6wG,iBAAmBnpF,EAExB1nB,KAAKkuD,UAAY,GAAI4iD,GACrB9wG,KAAKuuD,WAAa,KAGlBvuD,KAAKo/B,SAEL2xE,EAAS1nD,YAAYsnD,EAAQrnD,SAAUtpD,MAGvCA,KAAKgxG,SAAO9tG,GACZlD,KAAKixG,SAAO/tG,GACZlD,KAAKkxG,SAAOhuG,GACZlD,KAAKmxG,aAAWjuG,GAKhBlD,KAAK0V,WAAWrG,GAGhBrP,KAAK4Z,QAAQ1E,GA4hEf,QAASk8F,GAAUtnG,GACjB,MAAI,WAAaA,GAAcA,EAAMs6B,QAC9Bt6B,EAAMunG,cAAc,IAAMvnG,EAAMunG,cAAc,GAAGjtE,SAAW,EASrE,QAASktE,GAAUxnG,GACjB,MAAI,WAAaA,GAAcA,EAAMu6B,QAC9Bv6B,EAAMunG,cAAc,IAAMvnG,EAAMunG,cAAc,GAAGhtE,SAAW,EAnuErE,GAAIktE,GAAUrxG,EAAoB,IAE9BsxG,EAEJ,SAAgCvvG,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,IAFnDsvG,GAIlCn+E,EAAUlzB,EAAoB,IAC9B2V,EAAO3V,EAAoB,GAC3B2mB,EAAU3mB,EAAoB,IAC9B2lD,EAAU3lD,EAAoB,IAC9B4lD,EAAS5lD,EAAoB,IAC7B2nD,EAAa3nD,EAAoB,IACjC6wG,EAAW7wG,EAAoB,IAC/B6c,EAAY7c,EAAoB,IAAa,QAE7Cu6B,EAAWv6B,EAAoB,IAC/Bsc,EAAaie,EAASje,WAEtBi1F,EAAYvxG,EAAoB,KAChC4c,EAAa20F,EAAU30F,WAEvBg0F,EAAY5wG,EAAoB,IAGpCywG,GAAQlmD,MAAQsmD,EAAStmD,KAoBzBkmD,GAAQrnD,UACNp3C,MAAO,QACPC,OAAQ,QACR48C,YAAa,OACb2iD,YAAa,QACbC,OAAQ,IACR/rF,OAAQ,IACRgsF,OAAQ,IACRC,YAAa,SAAqBnlG,GAChC,MAAOA,IAETolG,YAAa,SAAqBplG,GAChC,MAAOA,IAETqlG,YAAa,SAAqBrlG,GAChC,MAAOA,IAETslG,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,UAAU,EACVC,iBAAiB,EACjBC,YAAY,EACZC,iBAAiB,EACjBC,cAAe,GAEfC,aAAc,IACdC,mBAAoB,GACpBC,mBAAoB,IAEpBC,0BAzCkBzvG,GA0ClB0vG,kBAAmB,IACnBlkD,kBAAkB,EAClBmkD,uBA5CkB3vG,GA8ClB4vG,UAAW,UACXC,UAAW,UACXC,QAAS,MACTC,QAAS,MAETxlG,MAAOkjG,EAAQlmD,MAAMqB,IACrBxB,SAAS,EAETC,cACEnuC,SACEy+C,QAAS,OACT7tD,OAAQ,oBACRxB,MAAO,UACPuB,WAAY,wBACZqvB,aAAc,MACd82E,UAAW,sCAEbx8E,MACEvkB,OAAQ,OACRD,MAAO,IACPihG,WAAY,qBAEdhnD,KACEh6C,OAAQ,IACRD,MAAO,IACPlF,OAAQ,oBACRovB,aAAc,QAIlB4tB,WACE1lC,KAAM,UACNJ,OAAQ,UACRinC,YAAa,GAGfd,gBACEoB,WAAY,EACZza,SAAU,GACVxyB,SAAU,KAMZ2rC,eA3FkBjnD,GA4FlBg1C,oBA5FkBh1C,GA8FlBkwG,cA9FkBlwG,GA+FlBmwG,cA/FkBnwG,GAgGlBowG,aAhGkBpwG,GAiGlBqwG,aAjGkBrwG,GAkGlBswG,SAlGkBtwG,GAmGlBuwG,SAnGkBvwG,GAoGlBwwG,UApGkBxwG,GAqGlB+jE,SArGkB/jE,GAsGlBgkE,SAtGkBhkE,GAuGlBywG,UAvGkBzwG,GAwGlB0wG,SAxGkB1wG,GAyGlB2wG,SAzGkB3wG,GA0GlB4wG,UA1GkB5wG,IA6JpBkwB,EAAQu9E,EAAQpvG,WAKhBovG,EAAQpvG,UAAUwyG,UAAY,WAC5B/zG,KAAKyE,MAAQ,GAAIoiB,GAAQ,EAAI7mB,KAAKg0G,OAAO1qF,QAAS,EAAItpB,KAAKi0G,OAAO3qF,QAAS,EAAItpB,KAAKk0G,OAAO5qF,SAGvFtpB,KAAKsyG,kBACHtyG,KAAKyE,MAAMkL,EAAI3P,KAAKyE,MAAMkX,EAE5B3b,KAAKyE,MAAMkX,EAAI3b,KAAKyE,MAAMkL,EAG1B3P,KAAKyE,MAAMkL,EAAI3P,KAAKyE,MAAMkX,GAK9B3b,KAAKyE,MAAMqiB,GAAK9mB,KAAKuyG,kBAIGrvG,KAApBlD,KAAKm0G,aACPn0G,KAAKyE,MAAMD,MAAQ,EAAIxE,KAAKm0G,WAAW7qF,QAIzC,IAAI0pF,GAAUhzG,KAAKg0G,OAAOhyE,SAAWhiC,KAAKyE,MAAMkL,EAC5CsjG,EAAUjzG,KAAKi0G,OAAOjyE,SAAWhiC,KAAKyE,MAAMkX,EAC5Cy4F,EAAUp0G,KAAKk0G,OAAOlyE,SAAWhiC,KAAKyE,MAAMqiB,CAChD9mB,MAAKsrD,OAAOmC,eAAeulD,EAASC,EAASmB,IAU/CzD,EAAQpvG,UAAU8yG,eAAiB,SAAUC,GAC3C,GAAIC,GAAcv0G,KAAKw0G,2BAA2BF,EAClD,OAAOt0G,MAAKy0G,4BAA4BF,IAY1C5D,EAAQpvG,UAAUizG,2BAA6B,SAAUF,GACvD,GAAItnD,GAAiBhtD,KAAKsrD,OAAOuC,oBAC7BZ,EAAiBjtD,KAAKsrD,OAAOwC,oBAC7B4mD,EAAKJ,EAAQ3kG,EAAI3P,KAAKyE,MAAMkL,EAC5BglG,EAAKL,EAAQ34F,EAAI3b,KAAKyE,MAAMkX,EAC5B0iD,EAAKi2C,EAAQxtF,EAAI9mB,KAAKyE,MAAMqiB,EAC5B8tF,EAAK5nD,EAAer9C,EACpBklG,EAAK7nD,EAAerxC,EACpBm5F,EAAK9nD,EAAelmC,EAIxBiuF,EAAQrwG,KAAKke,IAAIqqC,EAAet9C,GAC5BqlG,EAAQtwG,KAAKie,IAAIsqC,EAAet9C,GAChCslG,EAAQvwG,KAAKke,IAAIqqC,EAAetxC,GAChCu5F,EAAQxwG,KAAKie,IAAIsqC,EAAetxC,GAChCw5F,EAAQzwG,KAAKke,IAAIqqC,EAAenmC,GAChCsuF,EAAQ1wG,KAAKie,IAAIsqC,EAAenmC,EAQpC,OAAO,IAAID,GAJNquF,GAASC,GAASR,EAAKE,GAAMO,GAASV,EAAKE,IAAOK,GAAS52C,EAAKy2C,GAC5DC,GAASG,GAAS72C,EAAKy2C,GAAMG,GAASE,GAASR,EAAKE,GAAMO,GAASV,EAAKE,KAAQI,GAASI,GAAST,EAAKE,GAAMM,GAAST,EAAKE,IAC3HI,GAASE,GAAS72C,EAAKy2C,GAAMG,GAASE,GAASR,EAAKE,GAAMO,GAASV,EAAKE,KAAQG,GAASK,GAAST,EAAKE,GAAMM,GAAST,EAAKE,MAatIjE,EAAQpvG,UAAUkzG,4BAA8B,SAAUF,GACxD,GAQIc,GACAC,EATAC,EAAKv1G,KAAK6pD,IAAIl6C,EACd6lG,EAAKx1G,KAAK6pD,IAAIluC,EACd85F,EAAKz1G,KAAK6pD,IAAI/iC,EACds5B,EAAKm0D,EAAY5kG,EACjBwwC,EAAKo0D,EAAY54F,EACjB+5F,EAAKnB,EAAYztF,CAerB,OAVI9mB,MAAKoyG,iBACPiD,EAAkBI,EAAKC,GAAjBt1D,EAAKm1D,GACXD,EAAkBG,EAAKC,GAAjBv1D,EAAKq1D,KAEXH,EAAKj1D,IAAOq1D,EAAKz1G,KAAKsrD,OAAOsC,gBAC7B0nD,EAAKn1D,IAAOs1D,EAAKz1G,KAAKsrD,OAAOsC,iBAKxB,GAAI/H,GAAQ7lD,KAAK21G,eAAiBN,EAAKr1G,KAAKkzC,MAAM0iE,OAAO/iG,YAAa7S,KAAK61G,eAAiBP,EAAKt1G,KAAKkzC,MAAM0iE,OAAO/iG,cAS5H89F,EAAQpvG,UAAUu0G,kBAAoB,SAAU78B,GAC9C,IAAK,GAAI54E,GAAI,EAAGA,EAAI44E,EAAO52E,OAAQhC,IAAK,CACtC,GAAIyb,GAAQm9D,EAAO54E,EACnByb,GAAMi6F,MAAQ/1G,KAAKw0G,2BAA2B14F,EAAMA,OACpDA,EAAMk6F,OAASh2G,KAAKy0G,4BAA4B34F,EAAMi6F,MAGtD,IAAIE,GAAcj2G,KAAKw0G,2BAA2B14F,EAAMuG,OACxDvG,GAAMo6F,KAAOl2G,KAAKoyG,gBAAkB6D,EAAY5zG,UAAY4zG,EAAYnvF,EAI1E,GAAIqvF,GAAY,SAAmBtzG,EAAGC,GACpC,MAAOA,GAAEozG,KAAOrzG,EAAEqzG,KAEpBj9B,GAAO7gE,KAAK+9F,IAMdxF,EAAQpvG,UAAU60G,kBAAoB,WAEpC,GAAIC,GAAKr2G,KAAKkuD,SACdluD,MAAKg0G,OAASqC,EAAGrC,OACjBh0G,KAAKi0G,OAASoC,EAAGpC,OACjBj0G,KAAKk0G,OAASmC,EAAGnC,OACjBl0G,KAAKm0G,WAAakC,EAAGlC,WAIrBn0G,KAAK0zG,MAAQ2C,EAAG3C,MAChB1zG,KAAK2zG,MAAQ0C,EAAG1C,MAChB3zG,KAAK8zG,MAAQuC,EAAGvC,MAChB9zG,KAAKozG,UAAYiD,EAAGjD,UACpBpzG,KAAKqzG,UAAYgD,EAAGhD,UACpBrzG,KAAKgxG,KAAOqF,EAAGrF,KACfhxG,KAAKixG,KAAOoF,EAAGpF,KACfjxG,KAAKkxG,KAAOmF,EAAGnF,KACflxG,KAAKmxG,SAAWkF,EAAGlF,SAGnBnxG,KAAK+zG,aASPpD,EAAQpvG,UAAU+0G,cAAgB,SAAUphG,GAG1C,IAAK,GAFDq5C,MAEKluD,EAAI,EAAGA,EAAI6U,EAAK7S,OAAQhC,IAAK,CACpC,GAAIyb,GAAQ,GAAI+K,EAChB/K,GAAMnM,EAAIuF,EAAK7U,GAAGL,KAAKgxG,OAAS,EAChCl1F,EAAMH,EAAIzG,EAAK7U,GAAGL,KAAKixG,OAAS,EAChCn1F,EAAMgL,EAAI5R,EAAK7U,GAAGL,KAAKkxG,OAAS,EAChCp1F,EAAM5G,KAAOA,EAAK7U,OAEI6C,KAAlBlD,KAAKmxG,WACPr1F,EAAMtX,MAAQ0Q,EAAK7U,GAAGL,KAAKmxG,WAAa,EAG1C,IAAIlvG,KACJA,GAAI6Z,MAAQA,EACZ7Z,EAAIogB,OAAS,GAAIwE,GAAQ/K,EAAMnM,EAAGmM,EAAMH,EAAG3b,KAAKk0G,OAAO7vG,KACvDpC,EAAI8zG,UAAQ7yG,GACZjB,EAAI+zG,WAAS9yG,GAEbqrD,EAAWnoD,KAAKnE,GAGlB,MAAOssD,IAUToiD,EAAQpvG,UAAU6tD,eAAiB,SAAUl6C,GAG3C,GAAIvF,GAAGgM,EAAGtb,EAAG4B,EAETssD,IAEJ,IAAIvuD,KAAKyN,QAAUkjG,EAAQlmD,MAAMuB,MAAQhsD,KAAKyN,QAAUkjG,EAAQlmD,MAAMyB,QAAS,CAK7E,GAAIqqD,GAAQv2G,KAAKkuD,UAAUG,kBAAkBruD,KAAKgxG,KAAM97F,GACpDshG,EAAQx2G,KAAKkuD,UAAUG,kBAAkBruD,KAAKixG,KAAM/7F,EAExDq5C,GAAavuD,KAAKs2G,cAAcphG,EAGhC,IAAIuhG,KACJ,KAAKp2G,EAAI,EAAGA,EAAIkuD,EAAWlsD,OAAQhC,IAAK,CACtC4B,EAAMssD,EAAWluD,EAGjB,IAAIq2G,GAASH,EAAMpwG,QAAQlE,EAAI6Z,MAAMnM,GACjCgnG,EAASH,EAAMrwG,QAAQlE,EAAI6Z,MAAMH,OAEVzY,KAAvBuzG,EAAWC,KACbD,EAAWC,OAGbD,EAAWC,GAAQC,GAAU10G,EAI/B,IAAK0N,EAAI,EAAGA,EAAI8mG,EAAWp0G,OAAQsN,IACjC,IAAKgM,EAAI,EAAGA,EAAI86F,EAAW9mG,GAAGtN,OAAQsZ,IAChC86F,EAAW9mG,GAAGgM,KAChB86F,EAAW9mG,GAAGgM,GAAGi7F,WAAajnG,EAAI8mG,EAAWp0G,OAAS,EAAIo0G,EAAW9mG,EAAI,GAAGgM,OAAKzY,GACjFuzG,EAAW9mG,GAAGgM,GAAGk7F,SAAWl7F,EAAI86F,EAAW9mG,GAAGtN,OAAS,EAAIo0G,EAAW9mG,GAAGgM,EAAI,OAAKzY,GAClFuzG,EAAW9mG,GAAGgM,GAAGm7F,WAAannG,EAAI8mG,EAAWp0G,OAAS,GAAKsZ,EAAI86F,EAAW9mG,GAAGtN,OAAS,EAAIo0G,EAAW9mG,EAAI,GAAGgM,EAAI,OAAKzY,QAS3H,IAHAlD,KAAK+2G,iBAAiB7hG,GACtBq5C,EAAavuD,KAAKs2G,cAAcphG,GAE5BlV,KAAKyN,QAAUkjG,EAAQlmD,MAAMwB,KAE/B,IAAK5rD,EAAI,EAAGA,EAAIkuD,EAAWlsD,OAAQhC,IAC7BA,EAAI,IACNkuD,EAAWluD,EAAI,GAAG22G,UAAYzoD,EAAWluD,GAMjD,OAAOkuD,IAUToiD,EAAQpvG,UAAU69B,OAAS,WAEzB,KAAOp/B,KAAK6wG,iBAAiB5sG,iBAC3BjE,KAAK6wG,iBAAiB1sG,YAAYnE,KAAK6wG,iBAAiB3sG,WAG1DlE,MAAKkzC,MAAQlhC,SAASC,cAAc,OACpCjS,KAAKkzC,MAAMzlC,MAAM4E,SAAW,WAC5BrS,KAAKkzC,MAAMzlC,MAAM8E,SAAW,SAG5BvS,KAAKkzC,MAAM0iE,OAAS5jG,SAASC,cAAc,UAC3CjS,KAAKkzC,MAAM0iE,OAAOnoG,MAAM4E,SAAW,WACnCrS,KAAKkzC,MAAM1gC,YAAYxS,KAAKkzC,MAAM0iE,OAGhC,IAAIqB,GAAWjlG,SAASC,cAAc,MACtCglG,GAASxpG,MAAMjC,MAAQ,MACvByrG,EAASxpG,MAAMypG,WAAa,OAC5BD,EAASxpG,MAAMotD,QAAU,OACzBo8C,EAASpmF,UAAY,mDACrB7wB,KAAKkzC,MAAM0iE,OAAOpjG,YAAYykG,GAGhCj3G,KAAKkzC,MAAM5qC,OAAS0J,SAASC,cAAc,OAC3CjS,KAAKkzC,MAAM5qC,OAAOmF,MAAM4E,SAAW,WACnCrS,KAAKkzC,MAAM5qC,OAAOmF,MAAM4U,OAAS,MACjCriB,KAAKkzC,MAAM5qC,OAAOmF,MAAM/F,KAAO,MAC/B1H,KAAKkzC,MAAM5qC,OAAOmF,MAAMyE,MAAQ,OAChClS,KAAKkzC,MAAM1gC,YAAYxS,KAAKkzC,MAAM5qC,OAGlC,IAAIkO,GAAKxW,KACLkmD,EAAc,SAAqBp8C,GACrC0M,EAAG2vC,aAAar8C,IAEdqtG,EAAe,SAAsBrtG,GACvC0M,EAAG4gG,cAActtG,IAEfutG,EAAe,SAAsBvtG,GACvC0M,EAAG8gG,SAASxtG,IAEVytG,EAAY,SAAmBztG,GACjC0M,EAAGghG,WAAW1tG,IAEZosC,EAAU,SAAiBpsC,GAC7B0M,EAAGihG,SAAS3tG,GAId+L,GAAK1M,iBAAiBnJ,KAAKkzC,MAAM0iE,OAAQ,YAAa1vD,GACtDrwC,EAAK1M,iBAAiBnJ,KAAKkzC,MAAM0iE,OAAQ,aAAcuB,GACvDthG,EAAK1M,iBAAiBnJ,KAAKkzC,MAAM0iE,OAAQ,aAAcyB,GACvDxhG,EAAK1M,iBAAiBnJ,KAAKkzC,MAAM0iE,OAAQ,YAAa2B,GACtD1hG,EAAK1M,iBAAiBnJ,KAAKkzC,MAAM0iE,OAAQ,QAAS1/D,GAGlDl2C,KAAK6wG,iBAAiBr+F,YAAYxS,KAAKkzC,QAUzCy9D,EAAQpvG,UAAUm2G,SAAW,SAAUxlG,EAAOC,GAC5CnS,KAAKkzC,MAAMzlC,MAAMyE,MAAQA,EACzBlS,KAAKkzC,MAAMzlC,MAAM0E,OAASA,EAE1BnS,KAAK23G,iBAMPhH,EAAQpvG,UAAUo2G,cAAgB,WAChC33G,KAAKkzC,MAAM0iE,OAAOnoG,MAAMyE,MAAQ,OAChClS,KAAKkzC,MAAM0iE,OAAOnoG,MAAM0E,OAAS,OAEjCnS,KAAKkzC,MAAM0iE,OAAO1jG,MAAQlS,KAAKkzC,MAAM0iE,OAAO/iG,YAC5C7S,KAAKkzC,MAAM0iE,OAAOzjG,OAASnS,KAAKkzC,MAAM0iE,OAAO59E,aAG7Ch4B,KAAKkzC,MAAM5qC,OAAOmF,MAAMyE,MAAQlS,KAAKkzC,MAAM0iE,OAAO/iG,YAAc,GAAS,MAO3E89F,EAAQpvG,UAAUq2G,eAAiB,WAEjC,GAAK53G,KAAK6yG,oBAAuB7yG,KAAKkuD,UAAU2pD,WAAhD,CAEA,IAAK73G,KAAKkzC,MAAM5qC,SAAWtI,KAAKkzC,MAAM5qC,OAAOwvG,OAAQ,KAAM,IAAIjyG,OAAM,yBAErE7F,MAAKkzC,MAAM5qC,OAAOwvG,OAAO/xD,SAM3B4qD,EAAQpvG,UAAUw2G,cAAgB,WAC3B/3G,KAAKkzC,MAAM5qC,QAAWtI,KAAKkzC,MAAM5qC,OAAOwvG,QAE7C93G,KAAKkzC,MAAM5qC,OAAOwvG,OAAOpqE,QAS3BijE,EAAQpvG,UAAUy2G,cAAgB,WAEqB,MAAjDh4G,KAAKgzG,QAAQ1zF,OAAOtf,KAAKgzG,QAAQ3wG,OAAS,GAC5CrC,KAAK21G,eAAiBr6E,WAAWt7B,KAAKgzG,SAAW,IAAMhzG,KAAKkzC,MAAM0iE,OAAO/iG,YAEzE7S,KAAK21G,eAAiBr6E,WAAWt7B,KAAKgzG,SAIa,MAAjDhzG,KAAKizG,QAAQ3zF,OAAOtf,KAAKizG,QAAQ5wG,OAAS,GAC5CrC,KAAK61G,eAAiBv6E,WAAWt7B,KAAKizG,SAAW,KAAOjzG,KAAKkzC,MAAM0iE,OAAO59E,aAAeh4B,KAAKkzC,MAAM5qC,OAAO0vB,cAE3Gh4B,KAAK61G,eAAiBv6E,WAAWt7B,KAAKizG,UAU1CtC,EAAQpvG,UAAU02G,kBAAoB,WACpC,GAAIh3D,GAAMjhD,KAAKsrD,OAAOoC,gBAEtB,OADAzM,GAAIziC,SAAWxe,KAAKsrD,OAAOsC,eACpB3M,GAST0vD,EAAQpvG,UAAU22G,UAAY,SAAUhjG,GAEtClV,KAAKuuD,WAAavuD,KAAKkuD,UAAUiqD,eAAen4G,KAAMkV,EAAMlV,KAAKyN,OAEjEzN,KAAKo2G,oBACLp2G,KAAKo4G,iBAQPzH,EAAQpvG,UAAUqY,QAAU,SAAU1E,OACvBhS,KAATgS,GAA+B,OAATA,IAE1BlV,KAAKk4G,UAAUhjG,GACflV,KAAKwf,SACLxf,KAAK43G,mBAQPjH,EAAQpvG,UAAUmU,WAAa,SAAUrG,GACvC,OAAgBnM,KAAZmM,EAAJ,EAGmB,IADF0N,EAAUs7F,SAAShpG,EAASyN,IAE3C5F,QAAQ0G,IAAI,2DAA4DpB,GAG1Exc,KAAK+3G,gBAELhH,EAASr7F,WAAWrG,EAASrP,MAC7BA,KAAKs4G,wBACLt4G,KAAK03G,SAAS13G,KAAKkS,MAAOlS,KAAKmS,QAE/BnS,KAAK4Z,QAAQ5Z,KAAKkuD,UAAUqqD,gBAC5Bv4G,KAAK43G,mBAMPjH,EAAQpvG,UAAU+2G,sBAAwB,WACxC,GAAIvlF,OAAS7vB,EAEb,QAAQlD,KAAKyN,OACX,IAAKkjG,GAAQlmD,MAAMkB,IACjB54B,EAAS49E,EAAQpvG,UAAUi3G,oBAC3B,MACF,KAAK7H,GAAQlmD,MAAMmB,SACjB74B,EAAS49E,EAAQpvG,UAAUk3G,yBAC3B,MACF,KAAK9H,GAAQlmD,MAAMoB,QACjB94B,EAAS49E,EAAQpvG,UAAUm3G,wBAC3B,MACF,KAAK/H,GAAQlmD,MAAMqB,IACjB/4B,EAAS49E,EAAQpvG,UAAUo3G,oBAC3B,MACF,KAAKhI,GAAQlmD,MAAMsB,QACjBh5B,EAAS49E,EAAQpvG,UAAUq3G,wBAC3B,MACF,KAAKjI,GAAQlmD,MAAMC,SACjB33B,EAAS49E,EAAQpvG,UAAUs3G,yBAC3B,MACF,KAAKlI,GAAQlmD,MAAME,QACjB53B,EAAS49E,EAAQpvG,UAAUu3G,wBAC3B,MACF,KAAKnI,GAAQlmD,MAAMyB,QACjBn5B,EAAS49E,EAAQpvG,UAAUw3G,wBAC3B,MACF,KAAKpI,GAAQlmD,MAAMuB,KACjBj5B,EAAS49E,EAAQpvG,UAAUy3G,qBAC3B,MACF,KAAKrI,GAAQlmD,MAAMwB,KACjBl5B,EAAS49E,EAAQpvG,UAAU03G,qBAC3B,MACF,SACE,KAAM,IAAIpzG,OAAM,2DAAmE7F,KAAKyN,MAAQ,KAGpGzN,KAAKk5G,oBAAsBnmF,GAM7B49E,EAAQpvG,UAAUie,OAAS,WACzB,OAAwBtc,KAApBlD,KAAKuuD,WACP,KAAM,IAAI1oD,OAAM,6BAGlB7F,MAAK23G,gBACL33G,KAAKg4G,gBACLh4G,KAAKm5G,gBACLn5G,KAAKo5G,eACLp5G,KAAKq5G;mBAELr5G,KAAKs5G,mBAELt5G,KAAKu5G,cACLv5G,KAAKw5G,iBASP7I,EAAQpvG,UAAUk4G,YAAc,WAC9B,GAAI7D,GAAS51G,KAAKkzC,MAAM0iE,OACpB91F,EAAM81F,EAAO8D,WAAW,KAK5B,OAHA55F,GAAIs1D,SAAW,QACft1D,EAAIm3D,QAAU,QAEPn3D,GAMT6wF,EAAQpvG,UAAU63G,aAAe,WAC/B,GAAIxD,GAAS51G,KAAKkzC,MAAM0iE,MACdA,GAAO8D,WAAW,MAExBC,UAAU,EAAG,EAAG/D,EAAO1jG,MAAO0jG,EAAOzjG,SAG3Cw+F,EAAQpvG,UAAUq4G,SAAW,WAC3B,MAAO55G,MAAKkzC,MAAMrgC,YAAc7S,KAAKwyG,cASvC7B,EAAQpvG,UAAUs4G,gBAAkB,WAClC,GAAI3nG,EAEJ,IAAIlS,KAAKyN,QAAUkjG,EAAQlmD,MAAME,QAAS,CAGxCz4C,EAFclS,KAAK45G,WAED55G,KAAK0yG,uBAEvBxgG,GADSlS,KAAKyN,QAAUkjG,EAAQlmD,MAAMoB,QAC9B7rD,KAAKozG,UAEL,EAEV,OAAOlhG,IAMTy+F,EAAQpvG,UAAUi4G,cAAgB,WAGhC,IAAwB,IAApBx5G,KAAKmqD,YAKLnqD,KAAKyN,QAAUkjG,EAAQlmD,MAAMwB,MAAQjsD,KAAKyN,QAAUkjG,EAAQlmD,MAAMoB,QAAtE,CAMA,GAAIiuD,GAAe95G,KAAKyN,QAAUkjG,EAAQlmD,MAAMoB,SAAW7rD,KAAKyN,QAAUkjG,EAAQlmD,MAAME,QAGpFovD,EAAgB/5G,KAAKyN,QAAUkjG,EAAQlmD,MAAME,SAAW3qD,KAAKyN,QAAUkjG,EAAQlmD,MAAMC,UAAY1qD,KAAKyN,QAAUkjG,EAAQlmD,MAAMmB,SAE9Hz5C,EAASzN,KAAKJ,IAA8B,IAA1BtE,KAAKkzC,MAAMlb,aAAqB,KAClDlwB,EAAM9H,KAAKkiB,OACXhQ,EAAQlS,KAAK65G,kBACbjyG,EAAQ5H,KAAKkzC,MAAMrgC,YAAc7S,KAAKkiB,OACtCxa,EAAOE,EAAQsK,EACfmQ,EAASva,EAAMqK,EAEf2N,EAAM9f,KAAKy5G,aAIf,IAHA35F,EAAI8D,UAAY,EAChB9D,EAAIkb,KAAO,cAEU,IAAjB8+E,EAAwB,CAE1B,GAEIn+F,GADAq+F,EAAO7nG,CAGX,KAAKwJ,EAJM,EAIIA,EAAIq+F,EAAMr+F,IAAK,CAC5B,GAAIxN,IAAKwN,EALA,IAKaq+F,EALb,GAMLC,EAAU,IAAJ9rG,EACN3C,EAAQxL,KAAKk6G,SAASD,EAAK,EAAG,EAElCn6F,GAAI+D,YAAcrY,EAClBsU,EAAIwiC,YACJxiC,EAAI8kB,OAAOl9B,EAAMI,EAAM6T,GACvBmE,EAAI2iC,OAAO76C,EAAOE,EAAM6T,GACxBmE,EAAIoE,SAENpE,EAAI+D,YAAc7jB,KAAK8yG,UACvBhzF,EAAIq6F,WAAWzyG,EAAMI,EAAKoK,EAAOC,OAC5B,CAGL,GAAIioG,EACAp6G,MAAKyN,QAAUkjG,EAAQlmD,MAAME,QAE/ByvD,EAAWloG,GAASlS,KAAKyyG,mBAAqBzyG,KAAK0yG,qBAC1C1yG,KAAKyN,MAAUkjG,EAAQlmD,MAAMoB,SAGxC/rC,EAAI+D,YAAc7jB,KAAK8yG,UACvBhzF,EAAIiE,UAAY/jB,KAAKgqD,UAAU1lC,KAC/BxE,EAAIwiC,YACJxiC,EAAI8kB,OAAOl9B,EAAMI,GACjBgY,EAAI2iC,OAAO76C,EAAOE,GAClBgY,EAAI2iC,OAAO/6C,EAAO0yG,EAAU/3F,GAC5BvC,EAAI2iC,OAAO/6C,EAAM2a,GACjBvC,EAAIs5D,YACJt5D,EAAIwE,OACJxE,EAAIoE,SAIN,GAEIm2F,GAAYN,EAAgB/5G,KAAKm0G,WAAW9vG,IAAMrE,KAAKk0G,OAAO7vG,IAC9Di2G,EAAYP,EAAgB/5G,KAAKm0G,WAAW7vG,IAAMtE,KAAKk0G,OAAO5vG,IAC9D4xB,EAAO,GAAI2xB,GAAWwyD,EAAWC,GAAYA,EAAYD,GAAa,GAAG,EAC7EnkF,GAAKjN,OAAM,EAIX,KAFA,GAAIozB,GACAC,GACIpmB,EAAKhN,OACXvN,EAAI0G,GAAU6T,EAAKW,aAAewjF,IAAcC,EAAYD,GAAaloG,EACzEkqC,EAAO,GAAIwJ,GAAQn+C,EAXH,EAWuBiU,GACvC2gC,EAAK,GAAIuJ,GAAQn+C,EAAMiU,GACvB3b,KAAK42E,MAAM92D,EAAKu8B,EAAMC,GAEtBx8B,EAAI0kD,UAAY,QAChB1kD,EAAIy1D,aAAe,SACnBz1D,EAAIiE,UAAY/jB,KAAK8yG,UACrBhzF,EAAIw1D,SAASp/C,EAAKW,aAAcnvB,EAAO,GAAiBiU,GAExDua,EAAK3iB,MAGPuM,GAAI0kD,UAAY,QAChB1kD,EAAIy1D,aAAe,KACnB,IAAIt5D,GAAQjc,KAAK0xG,WACjB5xF,GAAIw1D,SAASr5D,EAAOrU,EAAOya,EAASriB,KAAKkiB,UAM3CyuF,EAAQpvG,UAAU62G,cAAgB,WAChC,GAAIP,GAAa73G,KAAKkuD,UAAU2pD,WAC5BvvG,EAAStI,KAAKkzC,MAAM5qC,MAGxB,IAFAA,EAAOuoB,UAAY,IAEdgnF,EAEH,YADAvvG,EAAOwvG,WAAS50G,GAIlB,IAAImM,IACF0tB,QAAW/8B,KAAK2yG,uBAEdmF,EAAS,GAAIhyD,GAAOx9C,EAAQ+G,EAChC/G,GAAOwvG,OAASA,EAGhBxvG,EAAOmF,MAAMotD,QAAU,OAGvBi9C,EAAO3wD,UAAU0wD,EAAW5+F,QAC5B6+F,EAAOjxD,gBAAgB7mD,KAAK4yG,kBAG5B,IAAIp8F,GAAKxW,KACL+2C,EAAW,WACb,GAAI8gE,GAAarhG,EAAG03C,UAAU2pD,WAC1B18E,EAAQ28E,EAAOrxD,UAEnBoxD,GAAWvpD,YAAYnzB,GACvB3kB,EAAG+3C,WAAaspD,EAAWzoD,iBAE3B54C,EAAGgJ,SAGLs4F,GAAOlxD,oBAAoB7P,IAM7B45D,EAAQpvG,UAAU43G,cAAgB,eACCj2G,KAA7BlD,KAAKkzC,MAAM5qC,OAAOwvG,QACpB93G,KAAKkzC,MAAM5qC,OAAOwvG,OAAOt4F,UAO7BmxF,EAAQpvG,UAAUg4G,YAAc,WAC9B,GAAIgB,GAAOv6G,KAAKkuD,UAAUssD,SAC1B,QAAat3G,KAATq3G,EAAJ,CAEA,GAAIz6F,GAAM9f,KAAKy5G,aAEf35F,GAAIkb,KAAO,aACXlb,EAAI26F,UAAY,OAChB36F,EAAIiE,UAAY,OAChBjE,EAAI0kD,UAAY,OAChB1kD,EAAIy1D,aAAe,KAEnB,IAAI5lE,GAAI3P,KAAKkiB,OACTvG,EAAI3b,KAAKkiB,MACbpC,GAAIw1D,SAASilC,EAAM5qG,EAAGgM,KAcxBg1F,EAAQpvG,UAAUq1E,MAAQ,SAAU92D,EAAKu8B,EAAMC,EAAIz4B,OAC7B3gB,KAAhB2gB,IACF/D,EAAI+D,YAAcA,GAGpB/D,EAAIwiC,YACJxiC,EAAI8kB,OAAOyX,EAAK1sC,EAAG0sC,EAAK1gC,GACxBmE,EAAI2iC,OAAOnG,EAAG3sC,EAAG2sC,EAAG3gC,GACpBmE,EAAIoE,UAWNysF,EAAQpvG,UAAUm5G,eAAiB,SAAU56F,EAAKw0F,EAAS18E,EAAM+iF,EAAUC,OACzD13G,KAAZ03G,IACFA,EAAU,EAGZ,IAAIC,GAAU76G,KAAKq0G,eAAeC,EAE9B5vG,MAAKie,IAAe,EAAXg4F,GAAgB,GAC3B76F,EAAI0kD,UAAY,SAChB1kD,EAAIy1D,aAAe,MACnBslC,EAAQl/F,GAAKi/F,GACJl2G,KAAKke,IAAe,EAAX+3F,GAAgB,GAClC76F,EAAI0kD,UAAY,QAChB1kD,EAAIy1D,aAAe,WAEnBz1D,EAAI0kD,UAAY,OAChB1kD,EAAIy1D,aAAe,UAGrBz1D,EAAIiE,UAAY/jB,KAAK8yG,UACrBhzF,EAAIw1D,SAAS19C,EAAMijF,EAAQlrG,EAAGkrG,EAAQl/F,IAWxCg1F,EAAQpvG,UAAUu5G,eAAiB,SAAUh7F,EAAKw0F,EAAS18E,EAAM+iF,EAAUC,OACzD13G,KAAZ03G,IACFA,EAAU,EAGZ,IAAIC,GAAU76G,KAAKq0G,eAAeC,EAE9B5vG,MAAKie,IAAe,EAAXg4F,GAAgB,GAC3B76F,EAAI0kD,UAAY,SAChB1kD,EAAIy1D,aAAe,MACnBslC,EAAQl/F,GAAKi/F,GACJl2G,KAAKke,IAAe,EAAX+3F,GAAgB,GAClC76F,EAAI0kD,UAAY,QAChB1kD,EAAIy1D,aAAe,WAEnBz1D,EAAI0kD,UAAY,OAChB1kD,EAAIy1D,aAAe,UAGrBz1D,EAAIiE,UAAY/jB,KAAK8yG,UACrBhzF,EAAIw1D,SAAS19C,EAAMijF,EAAQlrG,EAAGkrG,EAAQl/F,IAUxCg1F,EAAQpvG,UAAUw5G,eAAiB,SAAUj7F,EAAKw0F,EAAS18E,EAAMhO,OAChD1mB,KAAX0mB,IACFA,EAAS,EAGX,IAAIixF,GAAU76G,KAAKq0G,eAAeC,EAClCx0F,GAAI0kD,UAAY,QAChB1kD,EAAIy1D,aAAe,SACnBz1D,EAAIiE,UAAY/jB,KAAK8yG,UACrBhzF,EAAIw1D,SAAS19C,EAAMijF,EAAQlrG,EAAIia,EAAQixF,EAAQl/F,IAiBjDg1F,EAAQpvG,UAAUy5G,QAAU,SAAUl7F,EAAKu8B,EAAMC,EAAIz4B,GACnD,GAAIo3F,GAASj7G,KAAKq0G,eAAeh4D,GAC7B6+D,EAAOl7G,KAAKq0G,eAAe/3D,EAE/Bt8C,MAAK42E,MAAM92D,EAAKm7F,EAAQC,EAAMr3F,IAMhC8sF,EAAQpvG,UAAU83G,YAAc,WAC9B,GACIh9D,GACAC,EACApmB,EACA4xB,EACAlwB,EACAujF,EACAC,EACAC,EACAzxF,EACA1N,EACAC,EAXA2D,EAAM9f,KAAKy5G,aAef35F,GAAIkb,KAAO,GAAKh7B,KAAKsrD,OAAOsC,eAAiB,UAG7C,IASI0mD,GATAgH,EAAW,KAAQt7G,KAAKyE,MAAMkL,EAC9B4rG,EAAW,KAAQv7G,KAAKyE,MAAMkX,EAC9B6/F,EAAa,EAAIx7G,KAAKsrD,OAAOsC,eAC7B+sD,EAAW36G,KAAKsrD,OAAOoC,iBAAiBjC,WACxCgwD,EAAY,GAAI51D,GAAQnhD,KAAKie,IAAIg4F,GAAWj2G,KAAKke,IAAI+3F,IAErD3G,EAASh0G,KAAKg0G,OACdC,EAASj0G,KAAKi0G,OACdC,EAASl0G,KAAKk0G,MASlB,KALAp0F,EAAI8D,UAAY,EAChBkkC,MAAmC5kD,KAAtBlD,KAAK07G,aAClBxlF,EAAO,GAAI2xB,GAAWmsD,EAAO3vG,IAAK2vG,EAAO1vG,IAAKtE,KAAK0zG,MAAO5rD,GAC1D5xB,EAAKjN,OAAM,IAEHiN,EAAKhN,OAAO,CAClB,GAAIvZ,GAAIumB,EAAKW,YAgBb,IAdI72B,KAAKmyG,UACP91D,EAAO,GAAIx1B,GAAQlX,EAAGskG,EAAO5vG,IAAK6vG,EAAO7vG,KACzCi4C,EAAK,GAAIz1B,GAAQlX,EAAGskG,EAAO3vG,IAAK4vG,EAAO7vG,KACvCrE,KAAKg7G,QAAQl7F,EAAKu8B,EAAMC,EAAIt8C,KAAK+yG,YACxB/yG,KAAKgyG,YACd31D,EAAO,GAAIx1B,GAAQlX,EAAGskG,EAAO5vG,IAAK6vG,EAAO7vG,KACzCi4C,EAAK,GAAIz1B,GAAQlX,EAAGskG,EAAO5vG,IAAMi3G,EAAUpH,EAAO7vG,KAClDrE,KAAKg7G,QAAQl7F,EAAKu8B,EAAMC,EAAIt8C,KAAK8yG,WAEjCz2D,EAAO,GAAIx1B,GAAQlX,EAAGskG,EAAO3vG,IAAK4vG,EAAO7vG,KACzCi4C,EAAK,GAAIz1B,GAAQlX,EAAGskG,EAAO3vG,IAAMg3G,EAAUpH,EAAO7vG,KAClDrE,KAAKg7G,QAAQl7F,EAAKu8B,EAAMC,EAAIt8C,KAAK8yG,YAG/B9yG,KAAKgyG,UAAW,CAClBoJ,EAAQK,EAAU9rG,EAAI,EAAIskG,EAAO5vG,IAAM4vG,EAAO3vG,IAC9CgwG,EAAU,GAAIztF,GAAQlX,EAAGyrG,EAAOlH,EAAO7vG,IACvC,IAAIia,GAAM,KAAOte,KAAK6xG,YAAYliG,GAAK,IACvC3P,MAAK06G,eAAe56F,EAAKw0F,EAASh2F,EAAKq8F,EAAUa,GAGnDtlF,EAAK3iB,OASP,IALAuM,EAAI8D,UAAY,EAChBkkC,MAAmC5kD,KAAtBlD,KAAK27G,aAClBzlF,EAAO,GAAI2xB,GAAWosD,EAAO5vG,IAAK4vG,EAAO3vG,IAAKtE,KAAK2zG,MAAO7rD,GAC1D5xB,EAAKjN,OAAM,IAEHiN,EAAKhN,OAAO,CAClB,GAAIvN,GAAIua,EAAKW,YAgBb,IAdI72B,KAAKmyG,UACP91D,EAAO,GAAIx1B,GAAQmtF,EAAO3vG,IAAKsX,EAAGu4F,EAAO7vG,KACzCi4C,EAAK,GAAIz1B,GAAQmtF,EAAO1vG,IAAKqX,EAAGu4F,EAAO7vG,KACvCrE,KAAKg7G,QAAQl7F,EAAKu8B,EAAMC,EAAIt8C,KAAK+yG,YACxB/yG,KAAKiyG,YACd51D,EAAO,GAAIx1B,GAAQmtF,EAAO3vG,IAAKsX,EAAGu4F,EAAO7vG,KACzCi4C,EAAK,GAAIz1B,GAAQmtF,EAAO3vG,IAAMk3G,EAAU5/F,EAAGu4F,EAAO7vG,KAClDrE,KAAKg7G,QAAQl7F,EAAKu8B,EAAMC,EAAIt8C,KAAK8yG,WAEjCz2D,EAAO,GAAIx1B,GAAQmtF,EAAO1vG,IAAKqX,EAAGu4F,EAAO7vG,KACzCi4C,EAAK,GAAIz1B,GAAQmtF,EAAO1vG,IAAMi3G,EAAU5/F,EAAGu4F,EAAO7vG,KAClDrE,KAAKg7G,QAAQl7F,EAAKu8B,EAAMC,EAAIt8C,KAAK8yG,YAG/B9yG,KAAKiyG,UAAW,CAClBkJ,EAAQM,EAAU9/F,EAAI,EAAIq4F,EAAO3vG,IAAM2vG,EAAO1vG,IAC9CgwG,EAAU,GAAIztF,GAAQs0F,EAAOx/F,EAAGu4F,EAAO7vG,IACvC,IAAIu3G,GAAO,KAAO57G,KAAK8xG,YAAYn2F,GAAK,IACxC3b,MAAK86G,eAAeh7F,EAAKw0F,EAASsH,EAAMjB,EAAUa,GAGpDtlF,EAAK3iB,OAIP,GAAIvT,KAAKkyG,UAAW,CASlB,IARApyF,EAAI8D,UAAY,EAChBkkC,MAAmC5kD,KAAtBlD,KAAK67G,aAClB3lF,EAAO,GAAI2xB,GAAWqsD,EAAO7vG,IAAK6vG,EAAO5vG,IAAKtE,KAAK8zG,MAAOhsD,GAC1D5xB,EAAKjN,OAAM,GAEXkyF,EAAQM,EAAU9rG,EAAI,EAAIqkG,EAAO3vG,IAAM2vG,EAAO1vG,IAC9C82G,EAAQK,EAAU9/F,EAAI,EAAIs4F,EAAO5vG,IAAM4vG,EAAO3vG,KAEtC4xB,EAAKhN,OAAO,CAClB,GAAIpC,GAAIoP,EAAKW,aAGTilF,EAAS,GAAIj1F,GAAQs0F,EAAOC,EAAOt0F,GACnCm0F,EAASj7G,KAAKq0G,eAAeyH,EACjCx/D,GAAK,GAAIuJ,GAAQo1D,EAAOtrG,EAAI6rG,EAAYP,EAAOt/F,GAC/C3b,KAAK42E,MAAM92D,EAAKm7F,EAAQ3+D,EAAIt8C,KAAK8yG,UAEjC,IAAIiJ,GAAQ/7G,KAAK+xG,YAAYjrF,GAAK,GAClC9mB,MAAK+6G,eAAej7F,EAAKg8F,EAAQC,EAAO,GAExC7lF,EAAK3iB,OAGPuM,EAAI8D,UAAY,EAChBy4B,EAAO,GAAIx1B,GAAQs0F,EAAOC,EAAOlH,EAAO7vG,KACxCi4C,EAAK,GAAIz1B,GAAQs0F,EAAOC,EAAOlH,EAAO5vG,KACtCtE,KAAKg7G,QAAQl7F,EAAKu8B,EAAMC,EAAIt8C,KAAK8yG,WAInC,GAAI9yG,KAAKgyG,UAAW,CAClB,GAAIgK,GACAC,CACJn8F,GAAI8D,UAAY,EAGhBo4F,EAAS,GAAIn1F,GAAQmtF,EAAO3vG,IAAK4vG,EAAO5vG,IAAK6vG,EAAO7vG,KACpD43G,EAAS,GAAIp1F,GAAQmtF,EAAO1vG,IAAK2vG,EAAO5vG,IAAK6vG,EAAO7vG,KACpDrE,KAAKg7G,QAAQl7F,EAAKk8F,EAAQC,EAAQj8G,KAAK8yG,WAEvCkJ,EAAS,GAAIn1F,GAAQmtF,EAAO3vG,IAAK4vG,EAAO3vG,IAAK4vG,EAAO7vG,KACpD43G,EAAS,GAAIp1F,GAAQmtF,EAAO1vG,IAAK2vG,EAAO3vG,IAAK4vG,EAAO7vG,KACpDrE,KAAKg7G,QAAQl7F,EAAKk8F,EAAQC,EAAQj8G,KAAK8yG,WAIrC9yG,KAAKiyG,YACPnyF,EAAI8D,UAAY,EAEhBy4B,EAAO,GAAIx1B,GAAQmtF,EAAO3vG,IAAK4vG,EAAO5vG,IAAK6vG,EAAO7vG,KAClDi4C,EAAK,GAAIz1B,GAAQmtF,EAAO3vG,IAAK4vG,EAAO3vG,IAAK4vG,EAAO7vG,KAChDrE,KAAKg7G,QAAQl7F,EAAKu8B,EAAMC,EAAIt8C,KAAK8yG,WAEjCz2D,EAAO,GAAIx1B,GAAQmtF,EAAO1vG,IAAK2vG,EAAO5vG,IAAK6vG,EAAO7vG,KAClDi4C,EAAK,GAAIz1B,GAAQmtF,EAAO1vG,IAAK2vG,EAAO3vG,IAAK4vG,EAAO7vG,KAChDrE,KAAKg7G,QAAQl7F,EAAKu8B,EAAMC,EAAIt8C,KAAK8yG,WAInC,IAAInB,GAAS3xG,KAAK2xG,MACdA,GAAOtvG,OAAS,GAAKrC,KAAKgyG,YAC5B71F,EAAU,GAAMnc,KAAKyE,MAAMkX,EAC3Bw/F,GAASnH,EAAO1vG,IAAM,EAAI0vG,EAAO3vG,KAAO,EACxC+2G,EAAQK,EAAU9rG,EAAI,EAAIskG,EAAO5vG,IAAM8X,EAAU83F,EAAO3vG,IAAM6X,EAC9Dyb,EAAO,GAAI/Q,GAAQs0F,EAAOC,EAAOlH,EAAO7vG,KACxCrE,KAAK06G,eAAe56F,EAAK8X,EAAM+5E,EAAQgJ,GAIzC,IAAI/0F,GAAS5lB,KAAK4lB,MACdA,GAAOvjB,OAAS,GAAKrC,KAAKiyG,YAC5B/1F,EAAU,GAAMlc,KAAKyE,MAAMkL,EAC3BwrG,EAAQM,EAAU9/F,EAAI,EAAIq4F,EAAO3vG,IAAM6X,EAAU83F,EAAO1vG,IAAM4X,EAC9Dk/F,GAASnH,EAAO3vG,IAAM,EAAI2vG,EAAO5vG,KAAO,EACxCuzB,EAAO,GAAI/Q,GAAQs0F,EAAOC,EAAOlH,EAAO7vG,KAExCrE,KAAK86G,eAAeh7F,EAAK8X,EAAMhS,EAAQ+0F,GAIzC,IAAI/I,GAAS5xG,KAAK4xG,MACdA,GAAOvvG,OAAS,GAAKrC,KAAKkyG,YAC5BtoF,EAAS,GACTuxF,EAAQM,EAAU9rG,EAAI,EAAIqkG,EAAO3vG,IAAM2vG,EAAO1vG,IAC9C82G,EAAQK,EAAU9/F,EAAI,EAAIs4F,EAAO5vG,IAAM4vG,EAAO3vG,IAC9C+2G,GAASnH,EAAO5vG,IAAM,EAAI4vG,EAAO7vG,KAAO,EACxCuzB,EAAO,GAAI/Q,GAAQs0F,EAAOC,EAAOC,GAEjCr7G,KAAK+6G,eAAej7F,EAAK8X,EAAMg6E,EAAQhoF,KAY3C+mF,EAAQpvG,UAAU24G,SAAW,SAAUgC,EAAGx7F,EAAGy7F,GAC3C,GAAI96F,GAAGb,EAAGM,EAAGI,EAAGk7F,EAAIC,CAMpB,QAJAn7F,EAAIi7F,EAAIz7F,EACR07F,EAAK13G,KAAKwJ,MAAMguG,EAAI,IACpBG,EAAIn7F,GAAK,EAAIxc,KAAKge,IAAIw5F,EAAI,GAAK,EAAI,IAE3BE,GACN,IAAK,GACH/6F,EAAIH,EAAEV,EAAI67F,EAAEv7F,EAAI,CAAE,MACpB,KAAK,GACHO,EAAIg7F,EAAE77F,EAAIU,EAAEJ,EAAI,CAAE,MACpB,KAAK,GACHO,EAAI,EAAEb,EAAIU,EAAEJ,EAAIu7F,CAAE,MACpB,KAAK,GACHh7F,EAAI,EAAEb,EAAI67F,EAAEv7F,EAAII,CAAE,MACpB,KAAK,GACHG,EAAIg7F,EAAE77F,EAAI,EAAEM,EAAII,CAAE,MACpB,KAAK,GACHG,EAAIH,EAAEV,EAAI,EAAEM,EAAIu7F,CAAE,MAEpB,SACEh7F,EAAI,EAAEb,EAAI,EAAEM,EAAI,EAGpB,MAAO,OAASxV,SAAa,IAAJ+V,GAAW,IAAM/V,SAAa,IAAJkV,GAAW,IAAMlV,SAAa,IAAJwV,GAAW,KAS1F6vF,EAAQpvG,UAAU+6G,gBAAkB,SAAUxgG,GAC5C,WAAc5Y,KAAV4Y,EACE9b,KAAKoyG,gBACA,GAAKt2F,EAAMi6F,MAAMjvF,EAAI9mB,KAAKgqD,UAAUmB,aAElCnrD,KAAK6pD,IAAI/iC,EAAI9mB,KAAKsrD,OAAOsC,eAAkB5tD,KAAKgqD,UAAUmB,YAIhEnrD,KAAKgqD,UAAUmB,aAmBxBwlD,EAAQpvG,UAAUg7G,WAAa,SAAUz8F,EAAKhE,EAAO0gG,EAAQC,EAAQjxG,EAAOsY,GAC1E,GAAI0oC,GAGAh2C,EAAKxW,KACLs0G,EAAUx4F,EAAMA,MAChB83F,EAAO5zG,KAAKk0G,OAAO7vG,IACnByD,IAASgU,MAAO,GAAI+K,GAAQytF,EAAQ3kG,EAAI6sG,EAAQlI,EAAQ34F,EAAI8gG,EAAQnI,EAAQxtF,KAAQhL,MAAO,GAAI+K,GAAQytF,EAAQ3kG,EAAI6sG,EAAQlI,EAAQ34F,EAAI8gG,EAAQnI,EAAQxtF,KAAQhL,MAAO,GAAI+K,GAAQytF,EAAQ3kG,EAAI6sG,EAAQlI,EAAQ34F,EAAI8gG,EAAQnI,EAAQxtF,KAAQhL,MAAO,GAAI+K,GAAQytF,EAAQ3kG,EAAI6sG,EAAQlI,EAAQ34F,EAAI8gG,EAAQnI,EAAQxtF,KAC7SzE,IAAYvG,MAAO,GAAI+K,GAAQytF,EAAQ3kG,EAAI6sG,EAAQlI,EAAQ34F,EAAI8gG,EAAQ7I,KAAW93F,MAAO,GAAI+K,GAAQytF,EAAQ3kG,EAAI6sG,EAAQlI,EAAQ34F,EAAI8gG,EAAQ7I,KAAW93F,MAAO,GAAI+K,GAAQytF,EAAQ3kG,EAAI6sG,EAAQlI,EAAQ34F,EAAI8gG,EAAQ7I,KAAW93F,MAAO,GAAI+K,GAAQytF,EAAQ3kG,EAAI6sG,EAAQlI,EAAQ34F,EAAI8gG,EAAQ7I,IAG7R9rG,GAAIY,QAAQ,SAAUzG,GACpBA,EAAI+zG,OAASx/F,EAAG69F,eAAepyG,EAAI6Z,SAErCuG,EAAO3Z,QAAQ,SAAUzG,GACvBA,EAAI+zG,OAASx/F,EAAG69F,eAAepyG,EAAI6Z,QAIrC,IAAI4gG,KAAcC,QAAS70G,EAAKk6B,OAAQnb,EAAQK,IAAI7E,EAAO,GAAGvG,MAAOuG,EAAO,GAAGvG,SAAY6gG,SAAU70G,EAAI,GAAIA,EAAI,GAAIua,EAAO,GAAIA,EAAO,IAAK2f,OAAQnb,EAAQK,IAAI7E,EAAO,GAAGvG,MAAOuG,EAAO,GAAGvG,SAAY6gG,SAAU70G,EAAI,GAAIA,EAAI,GAAIua,EAAO,GAAIA,EAAO,IAAK2f,OAAQnb,EAAQK,IAAI7E,EAAO,GAAGvG,MAAOuG,EAAO,GAAGvG,SAAY6gG,SAAU70G,EAAI,GAAIA,EAAI,GAAIua,EAAO,GAAIA,EAAO,IAAK2f,OAAQnb,EAAQK,IAAI7E,EAAO,GAAGvG,MAAOuG,EAAO,GAAGvG,SAAY6gG,SAAU70G,EAAI,GAAIA,EAAI,GAAIua,EAAO,GAAIA,EAAO,IAAK2f,OAAQnb,EAAQK,IAAI7E,EAAO,GAAGvG,MAAOuG,EAAO,GAAGvG,QAC/fA,GAAM4gG,SAAWA,CAGjB,KAAK,GAAIxtG,GAAI,EAAGA,EAAIwtG,EAASr6G,OAAQ6M,IAAK,CACxCs9C,EAAUkwD,EAASxtG,EACnB,IAAI0tG,GAAc58G,KAAKw0G,2BAA2BhoD,EAAQxqB,OAC1DwqB,GAAQ0pD,KAAOl2G,KAAKoyG,gBAAkBwK,EAAYv6G,UAAYu6G,EAAY91F,EAO5E41F,EAAStkG,KAAK,SAAUvV,EAAGC,GACzB,GAAIqnB,GAAOrnB,EAAEozG,KAAOrzG,EAAEqzG,IACtB,OAAI/rF,KAGAtnB,EAAE85G,UAAY70G,EAAY,EAC1BhF,EAAE65G,UAAY70G,GAAa,EAGxB,KAITgY,EAAI8D,UAAY5jB,KAAKs8G,gBAAgBxgG,GACrCgE,EAAI+D,YAAcC,EAClBhE,EAAIiE,UAAYvY,CAEhB,KAAK,GAAI0T,GAAK,EAAGA,EAAKw9F,EAASr6G,OAAQ6c,IACrCstC,EAAUkwD,EAASx9F,GACnBlf,KAAK68G,SAAS/8F,EAAK0sC,EAAQmwD,UAY/BhM,EAAQpvG,UAAUs7G,SAAW,SAAU/8F,EAAKm5D,EAAQl1D,EAAWF,GAC7D,KAAIo1D,EAAO52E,OAAS,GAApB,KAIkBa,KAAd6gB,IACFjE,EAAIiE,UAAYA,OAEE7gB,KAAhB2gB,IACF/D,EAAI+D,YAAcA,GAEpB/D,EAAIwiC,YACJxiC,EAAI8kB,OAAOq0C,EAAO,GAAG+8B,OAAOrmG,EAAGspE,EAAO,GAAG+8B,OAAOr6F,EAEhD,KAAK,GAAItb,GAAI,EAAGA,EAAI44E,EAAO52E,SAAUhC,EAAG,CACtC,GAAIyb,GAAQm9D,EAAO54E,EACnByf,GAAI2iC,OAAO3mC,EAAMk6F,OAAOrmG,EAAGmM,EAAMk6F,OAAOr6F,GAG1CmE,EAAIs5D,YACJt5D,EAAIwE,OACJxE,EAAIoE,WAWNysF,EAAQpvG,UAAUu7G,YAAc,SAAUh9F,EAAKhE,EAAOtQ,EAAOsY,EAAa9H,GACxE,GAAIiG,GAASjiB,KAAK+8G,YAAYjhG,EAAOE,EAErC8D,GAAI8D,UAAY5jB,KAAKs8G,gBAAgBxgG,GACrCgE,EAAI+D,YAAcC,EAClBhE,EAAIiE,UAAYvY,EAChBsU,EAAIwiC,YACJxiC,EAAIq4D,IAAIr8D,EAAMk6F,OAAOrmG,EAAGmM,EAAMk6F,OAAOr6F,EAAGsG,EAAQ,EAAa,EAAVvd,KAAK47C,IAAQ,GAChExgC,EAAIwE,OACJxE,EAAIoE,UAUNysF,EAAQpvG,UAAUy7G,kBAAoB,SAAUlhG,GAE9C,GAAIm+F,GAAoF,KAA7E,GAAKn+F,EAAMA,MAAMgL,EAAI9mB,KAAKk0G,OAAO7vG,KAAOrE,KAAKyE,MAAMqiB,EAAI9mB,KAAKuyG,cAIvE,QACEjuF,KAJUtkB,KAAKk6G,SAASD,EAAK,EAAG,GAKhCjtG,OAJgBhN,KAAKk6G,SAASD,EAAK,EAAG,MAoB1CtJ,EAAQpvG,UAAU07G,gBAAkB,SAAUnhG,GAE5C,GAAItQ,GAAOsY,CAEX,IAAiC,gBAAtBhI,GAAMA,MAAMtX,MACrBgH,EAAQsQ,EAAMA,MAAMtX,MACpBsf,EAAchI,EAAMA,MAAMtX,UACrB,CACL,GAAIy1G,GAA2E,KAApE,GAAKn+F,EAAMA,MAAMtX,MAAQxE,KAAKm0G,WAAW9vG,KAAOrE,KAAKyE,MAAMD,MACtEgH,GAAQxL,KAAKk6G,SAASD,EAAK,EAAG,GAC9Bn2F,EAAc9jB,KAAKk6G,SAASD,EAAK,EAAG,IAEtC,OACE31F,KAAM9Y,EACNwB,OAAQ8W,IAWZ6sF,EAAQpvG,UAAU27G,eAAiB,WACjC,OACE54F,KAAMtkB,KAAKgqD,UAAU1lC,KACrBtX,OAAQhN,KAAKgqD,UAAU9lC,SAc3BysF,EAAQpvG,UAAUw7G,YAAc,SAAUjhG,EAAOE,OAClC9Y,KAAT8Y,IACFA,EAAOhc,KAAK45G,WAGd,IAAI33F,EAUJ,OAREA,GADEjiB,KAAKoyG,gBACEp2F,GAAQF,EAAMi6F,MAAMjvF,EAEpB9K,IAAShc,KAAK6pD,IAAI/iC,EAAI9mB,KAAKsrD,OAAOsC,gBAEzC3rC,EAAS,IACXA,EAAS,GAGJA,GAeT0uF,EAAQpvG,UAAUi3G,qBAAuB,SAAU14F,EAAKhE,GACtD,GAAI0gG,GAASx8G,KAAKozG,UAAY,EAC1BqJ,EAASz8G,KAAKqzG,UAAY,EAC1B8J,EAASn9G,KAAKg9G,kBAAkBlhG,EAEpC9b,MAAKu8G,WAAWz8F,EAAKhE,EAAO0gG,EAAQC,EAAQU,EAAO74F,KAAM64F,EAAOnwG,SAUlE2jG,EAAQpvG,UAAUk3G,0BAA4B,SAAU34F,EAAKhE,GAC3D,GAAI0gG,GAASx8G,KAAKozG,UAAY,EAC1BqJ,EAASz8G,KAAKqzG,UAAY,EAC1B8J,EAASn9G,KAAKi9G,gBAAgBnhG,EAElC9b,MAAKu8G,WAAWz8F,EAAKhE,EAAO0gG,EAAQC,EAAQU,EAAO74F,KAAM64F,EAAOnwG,SAUlE2jG,EAAQpvG,UAAUm3G,yBAA2B,SAAU54F,EAAKhE,GAE1D,GAAIshG,IAAYthG,EAAMA,MAAMtX,MAAQxE,KAAKm0G,WAAW9vG,KAAOrE,KAAKm0G,WAAW7qF,QACvEkzF,EAASx8G,KAAKozG,UAAY,GAAgB,GAAXgK,EAAiB,IAChDX,EAASz8G,KAAKqzG,UAAY,GAAgB,GAAX+J,EAAiB,IAEhDD,EAASn9G,KAAKk9G,gBAElBl9G,MAAKu8G,WAAWz8F,EAAKhE,EAAO0gG,EAAQC,EAAQU,EAAO74F,KAAM64F,EAAOnwG,SAUlE2jG,EAAQpvG,UAAUo3G,qBAAuB,SAAU74F,EAAKhE,GACtD,GAAIqhG,GAASn9G,KAAKg9G,kBAAkBlhG,EAEpC9b,MAAK88G,YAAYh9F,EAAKhE,EAAOqhG,EAAO74F,KAAM64F,EAAOnwG,SAUnD2jG,EAAQpvG,UAAUq3G,yBAA2B,SAAU94F,EAAKhE,GAE1D,GAAIugC,GAAOr8C,KAAKq0G,eAAev4F,EAAMuG,OACrCvC,GAAI8D,UAAY,EAChB5jB,KAAK42E,MAAM92D,EAAKu8B,EAAMvgC,EAAMk6F,OAAQh2G,KAAK+yG,WAEzC/yG,KAAK24G,qBAAqB74F,EAAKhE,IAUjC60F,EAAQpvG,UAAUs3G,0BAA4B,SAAU/4F,EAAKhE,GAC3D,GAAIqhG,GAASn9G,KAAKi9G,gBAAgBnhG,EAElC9b,MAAK88G,YAAYh9F,EAAKhE,EAAOqhG,EAAO74F,KAAM64F,EAAOnwG,SAUnD2jG,EAAQpvG,UAAUu3G,yBAA2B,SAAUh5F,EAAKhE,GAC1D,GAAIuhG,GAAUr9G,KAAK45G,WACfwD,GAAYthG,EAAMA,MAAMtX,MAAQxE,KAAKm0G,WAAW9vG,KAAOrE,KAAKm0G,WAAW7qF,QAEvEg0F,EAAUD,EAAUr9G,KAAKyyG,mBACzB8K,EAAYF,EAAUr9G,KAAK0yG,mBAAqB4K,EAChDthG,EAAOshG,EAAUC,EAAYH,EAE7BD,EAASn9G,KAAKk9G,gBAElBl9G,MAAK88G,YAAYh9F,EAAKhE,EAAOqhG,EAAO74F,KAAM64F,EAAOnwG,OAAQgP,IAU3D20F,EAAQpvG,UAAUw3G,yBAA2B,SAAUj5F,EAAKhE,GAC1D,GAAIlU,GAAQkU,EAAM86F,WACd9uG,EAAMgU,EAAM+6F,SACZ2G,EAAQ1hG,EAAMg7F,UAElB,QAAc5zG,KAAV4Y,OAAiC5Y,KAAV0E,OAA+B1E,KAAR4E,OAA+B5E,KAAVs6G,EAAvE,CAIA,GACIz5F,GACAF,EAFA45F,GAAiB,CAIrB,IAAIz9G,KAAK0pD,gBAAkB1pD,KAAKqyG,WAAY,CAK1C,GAAIqL,GAAQ72F,EAAQE,SAASy2F,EAAMzH,MAAOj6F,EAAMi6F,OAC5C4H,EAAQ92F,EAAQE,SAASjf,EAAIiuG,MAAOnuG,EAAMmuG,OAC1C3uF,EAAeP,EAAQM,aAAau2F,EAAOC,GAC3Cp3G,EAAM6gB,EAAa/kB,QAGvBo7G,GAAiBr2F,EAAaN,EAAI,EAGpC,GAAI22F,EAAgB,CAGlB,GAGI/wG,GAHAkxG,GAAQ9hG,EAAMA,MAAMgL,EAAIlf,EAAMkU,MAAMgL,EAAIhf,EAAIgU,MAAMgL,EAAI02F,EAAM1hG,MAAMgL,GAAK,EACvEra,EAAyE,KAApE,GAAKmxG,EAAO59G,KAAKk0G,OAAO7vG,KAAOrE,KAAKyE,MAAMqiB,EAAI9mB,KAAKuyG,cAIxDvyG,MAAKqyG,YACP3lG,EAAIhI,KAAKL,IAAI,EAAI+iB,EAAazX,EAAIpJ,EAAM,EAAG,GAC3Cwd,EAAY/jB,KAAKk6G,SAASztG,EALpB,EAK0BC,GAChCmX,EAAcE,IAEdrX,EAAI,EACJqX,EAAY/jB,KAAKk6G,SAASztG,EATpB,EAS0BC,GAChCmX,EAAc7jB,KAAK8yG,eAGrB/uF,GAAY,OACZF,EAAc7jB,KAAK8yG,SAGrBhzF,GAAI8D,UAAY5jB,KAAKs8G,gBAAgBxgG,EAGrC,IAAIm9D,IAAUn9D,EAAOlU,EAAO41G,EAAO11G,EACnC9H,MAAK68G,SAAS/8F,EAAKm5D,EAAQl1D,EAAWF,KAWxC8sF,EAAQpvG,UAAUs8G,cAAgB,SAAU/9F,EAAKu8B,EAAMC,GACrD,OAAap5C,KAATm5C,OAA6Bn5C,KAAPo5C,EAA1B,CAKA,GAAIshE,IAAQvhE,EAAKvgC,MAAMgL,EAAIw1B,EAAGxgC,MAAMgL,GAAK,EACrCra,EAAyE,KAApE,GAAKmxG,EAAO59G,KAAKk0G,OAAO7vG,KAAOrE,KAAKyE,MAAMqiB,EAAI9mB,KAAKuyG,cAE5DzyF,GAAI8D,UAAyC,EAA7B5jB,KAAKs8G,gBAAgBjgE,GACrCv8B,EAAI+D,YAAc7jB,KAAKk6G,SAASztG,EAAG,EAAG,GACtCzM,KAAK42E,MAAM92D,EAAKu8B,EAAK25D,OAAQ15D,EAAG05D,UAUlCrF,EAAQpvG,UAAUy3G,sBAAwB,SAAUl5F,EAAKhE,GACvD9b,KAAK69G,cAAc/9F,EAAKhE,EAAOA,EAAM86F,YACrC52G,KAAK69G,cAAc/9F,EAAKhE,EAAOA,EAAM+6F,WAUvClG,EAAQpvG,UAAU03G,sBAAwB,SAAUn5F,EAAKhE,OAC/B5Y,KAApB4Y,EAAMk7F,YAIVl3F,EAAI8D,UAAY5jB,KAAKs8G,gBAAgBxgG,GACrCgE,EAAI+D,YAAc7jB,KAAKgqD,UAAU9lC,OAEjClkB,KAAK42E,MAAM92D,EAAKhE,EAAMk6F,OAAQl6F,EAAMk7F,UAAUhB,UAOhDrF,EAAQpvG,UAAU+3G,iBAAmB,WACnC,GACIj5G,GADAyf,EAAM9f,KAAKy5G,aAGf,UAAwBv2G,KAApBlD,KAAKuuD,YAA4BvuD,KAAKuuD,WAAWlsD,QAAU,GAI/D,IAFArC,KAAK81G,kBAAkB91G,KAAKuuD,YAEvBluD,EAAI,EAAGA,EAAIL,KAAKuuD,WAAWlsD,OAAQhC,IAAK,CAC3C,GAAIyb,GAAQ9b,KAAKuuD,WAAWluD,EAG5BL,MAAKk5G,oBAAoB34G,KAAKP,KAAM8f,EAAKhE,KAa7C60F,EAAQpvG,UAAUu8G,oBAAsB,SAAUh0G,GAEhD9J,KAAK+9G,YAAc3M,EAAUtnG,GAC7B9J,KAAKg+G,YAAc1M,EAAUxnG,GAE7B9J,KAAKi+G,mBAAqBj+G,KAAKsrD,OAAOkC,aAQxCmjD,EAAQpvG,UAAU4kD,aAAe,SAAUr8C,GAWzC,GAVAA,EAAQA,GAASC,OAAOD,MAIpB9J,KAAKk+G,gBACPl+G,KAAK2nD,WAAW79C,GAIlB9J,KAAKk+G,eAAiBp0G,EAAMs9C,MAAwB,IAAhBt9C,EAAMs9C,MAA+B,IAAjBt9C,EAAMu9C,OACzDrnD,KAAKk+G,gBAAmBl+G,KAAKm+G,UAAlC,CAEAn+G,KAAK89G,oBAAoBh0G,GAEzB9J,KAAKo+G,WAAa,GAAIt5G,MAAK9E,KAAKipB,OAChCjpB,KAAKq+G,SAAW,GAAIv5G,MAAK9E,KAAKkpB,KAC9BlpB,KAAKs+G,iBAAmBt+G,KAAKsrD,OAAOoC,iBAEpC1tD,KAAKkzC,MAAMzlC,MAAM+1B,OAAS,MAK1B,IAAIhtB,GAAKxW,IACTA,MAAKwnD,YAAc,SAAU19C,GAC3B0M,EAAGixC,aAAa39C,IAElB9J,KAAK0nD,UAAY,SAAU59C,GACzB0M,EAAGmxC,WAAW79C,IAEhB+L,EAAK1M,iBAAiB6I,SAAU,YAAawE,EAAGgxC,aAChD3xC,EAAK1M,iBAAiB6I,SAAU,UAAWwE,EAAGkxC,WAC9C7xC,EAAKhM,eAAeC,KAQtB6mG,EAAQpvG,UAAUkmD,aAAe,SAAU39C,GACzC9J,KAAKu+G,QAAS,EACdz0G,EAAQA,GAASC,OAAOD,KAGxB,IAAI00G,GAAQljF,WAAW81E,EAAUtnG,IAAU9J,KAAK+9G,YAC5CU,EAAQnjF,WAAWg2E,EAAUxnG,IAAU9J,KAAKg+G,WAGhD,IAAIl0G,IAA2B,IAAlBA,EAAM0sD,QAAkB,CAEnC,GAAIkoD,GAAkC,GAAzB1+G,KAAKkzC,MAAMrgC,YACpB8rG,EAAmC,GAA1B3+G,KAAKkzC,MAAMlb,aAEpB4mF,GAAW5+G,KAAKi+G,mBAAmBtuG,GAAK,GAAK6uG,EAAQE,EAAS1+G,KAAKsrD,OAAOuB,UAAY,GACtFgyD,GAAW7+G,KAAKi+G,mBAAmBtiG,GAAK,GAAK8iG,EAAQE,EAAS3+G,KAAKsrD,OAAOuB,UAAY,EAE1F7sD,MAAKsrD,OAAO+B,UAAUuxD,EAASC,GAC/B7+G,KAAK89G,oBAAoBh0G,OACpB,CACL,GAAIg1G,GAAgB9+G,KAAKs+G,iBAAiB7yD,WAAa+yD,EAAQ,IAC3DO,EAAc/+G,KAAKs+G,iBAAiBttE,SAAWytE,EAAQ,IAGvDO,EAAYt6G,KAAKke,IADL,EACqB,IAAM,EAAIle,KAAK47C,GAIhD57C,MAAKge,IAAIhe,KAAKke,IAAIk8F,IAAkBE,IACtCF,EAAgBp6G,KAAKwoC,MAAM4xE,EAAgBp6G,KAAK47C,IAAM57C,KAAK47C,GAAK,MAE9D57C,KAAKge,IAAIhe,KAAKie,IAAIm8F,IAAkBE,IACtCF,GAAiBp6G,KAAKwoC,MAAM4xE,EAAgBp6G,KAAK47C,GAAK,IAAO,IAAO57C,KAAK47C,GAAK,MAI5E57C,KAAKge,IAAIhe,KAAKke,IAAIm8F,IAAgBC,IACpCD,EAAcr6G,KAAKwoC,MAAM6xE,EAAcr6G,KAAK47C,IAAM57C,KAAK47C,IAErD57C,KAAKge,IAAIhe,KAAKie,IAAIo8F,IAAgBC,IACpCD,GAAer6G,KAAKwoC,MAAM6xE,EAAcr6G,KAAK47C,GAAK,IAAO,IAAO57C,KAAK47C,IAEvEtgD,KAAKsrD,OAAOE,eAAeszD,EAAeC,GAG5C/+G,KAAKwf,QAGL,IAAIy/F,GAAaj/G,KAAKi4G,mBACtBj4G,MAAK6U,KAAK,uBAAwBoqG,GAElCppG,EAAKhM,eAAeC,IAQtB6mG,EAAQpvG,UAAUomD,WAAa,SAAU79C,GACvC9J,KAAKkzC,MAAMzlC,MAAM+1B,OAAS,OAC1BxjC,KAAKk+G,gBAAiB,EAGtBroG,EAAKlM,oBAAoBqI,SAAU,YAAahS,KAAKwnD,aACrD3xC,EAAKlM,oBAAoBqI,SAAU,UAAWhS,KAAK0nD,WACnD7xC,EAAKhM,eAAeC,IAMtB6mG,EAAQpvG,UAAUk2G,SAAW,SAAU3tG,GACrC,GAAK9J,KAAK4pD,iBAAV,CACA,GAAK5pD,KAAKu+G,OAQRv+G,KAAKu+G,QAAS,MARE,CAChB,GAAIW,GAAel/G,KAAKkzC,MAAMzrC,wBAC1B03G,EAAS/N,EAAUtnG,GAASo1G,EAAax3G,KACzC03G,EAAS9N,EAAUxnG,GAASo1G,EAAap3G,IACzCu3G,EAAYr/G,KAAKs/G,iBAAiBH,EAAQC,EAC1CC,IAAWr/G,KAAK4pD,iBAAiBy1D,EAAUvjG,MAAM5G,MAKvDW,EAAKhM,eAAeC,KAOtB6mG,EAAQpvG,UAAUi2G,WAAa,SAAU1tG,GACvC,GACIo1G,GAAel/G,KAAKkzC,MAAMzrC,wBAC1B03G,EAAS/N,EAAUtnG,GAASo1G,EAAax3G,KACzC03G,EAAS9N,EAAUxnG,GAASo1G,EAAap3G,GAE7C,IAAK9H,KAAK2pD,YAAV,CASA,GALI3pD,KAAKu/G,gBACPrsF,aAAalzB,KAAKu/G,gBAIhBv/G,KAAKk+G,eAEP,WADAl+G,MAAKw/G,cAIP,IAAIx/G,KAAKsqD,SAAWtqD,KAAKsqD,QAAQ+0D,UAAW,CAE1C,GAAIA,GAAYr/G,KAAKs/G,iBAAiBH,EAAQC,EAC1CC,KAAcr/G,KAAKsqD,QAAQ+0D,YAEzBA,EACFr/G,KAAKy/G,aAAaJ,GAElBr/G,KAAKw/G,oBAGJ,CAEL,GAAIhpG,GAAKxW,IACTA,MAAKu/G,eAAiBpsF,WAAW,WAC/B3c,EAAG+oG,eAAiB,IAGpB,IAAIF,GAAY7oG,EAAG8oG,iBAAiBH,EAAQC,EACxCC,IACF7oG,EAAGipG,aAAaJ,IAvCV,QAiDd1O,EAAQpvG,UAAU61G,cAAgB,SAAUttG,GAC1C9J,KAAKm+G,WAAY,CAEjB,IAAI3nG,GAAKxW,IACTA,MAAK0/G,YAAc,SAAU51G,GAC3B0M,EAAGmpG,aAAa71G,IAElB9J,KAAK4/G,WAAa,SAAU91G,GAC1B0M,EAAGqpG,YAAY/1G,IAEjB+L,EAAK1M,iBAAiB6I,SAAU,YAAawE,EAAGkpG,aAChD7pG,EAAK1M,iBAAiB6I,SAAU,WAAYwE,EAAGopG,YAE/C5/G,KAAKmmD,aAAar8C,IAOpB6mG,EAAQpvG,UAAUo+G,aAAe,SAAU71G,GACzC9J,KAAKynD,aAAa39C,IAOpB6mG,EAAQpvG,UAAUs+G,YAAc,SAAU/1G,GACxC9J,KAAKm+G,WAAY,EAEjBtoG,EAAKlM,oBAAoBqI,SAAU,YAAahS,KAAK0/G,aACrD7pG,EAAKlM,oBAAoBqI,SAAU,WAAYhS,KAAK4/G,YAEpD5/G,KAAK2nD,WAAW79C,IAQlB6mG,EAAQpvG,UAAU+1G,SAAW,SAAUxtG,GAChCA,IACHA,EAAQC,OAAOD,MAGjB,IAAI25B,GAAQ,CAcZ,IAbI35B,EAAMg6B,WAERL,EAAQ35B,EAAMg6B,WAAa,IAClBh6B,EAAMi6B,SAIfN,GAAS35B,EAAMi6B,OAAS,GAMtBN,EAAO,CACT,GAAIq8E,GAAY9/G,KAAKsrD,OAAOsC,eACxBkQ,EAAYgiD,GAAa,EAAIr8E,EAAQ,GAEzCzjC,MAAKsrD,OAAOI,aAAaoS,GACzB99D,KAAKwf,SAELxf,KAAKw/G,eAIP,GAAIP,GAAaj/G,KAAKi4G,mBACtBj4G,MAAK6U,KAAK,uBAAwBoqG,GAKlCppG,EAAKhM,eAAeC,IAYtB6mG,EAAQpvG,UAAUw+G,gBAAkB,SAAUjkG,EAAOkkG,GAUnD,QAAS1yD,GAAK39C,GACZ,MAAOA,GAAI,EAAI,EAAIA,EAAI,GAAK,EAAI,EAVlC,GAAI9M,GAAIm9G,EAAS,GACbl9G,EAAIk9G,EAAS,GACbv/G,EAAIu/G,EAAS,GAWblZ,EAAKx5C,GAAMxqD,EAAE6M,EAAI9M,EAAE8M,IAAMmM,EAAMH,EAAI9Y,EAAE8Y,IAAM7Y,EAAE6Y,EAAI9Y,EAAE8Y,IAAMG,EAAMnM,EAAI9M,EAAE8M,IACrEswG,EAAK3yD,GAAM7sD,EAAEkP,EAAI7M,EAAE6M,IAAMmM,EAAMH,EAAI7Y,EAAE6Y,IAAMlb,EAAEkb,EAAI7Y,EAAE6Y,IAAMG,EAAMnM,EAAI7M,EAAE6M,IACrEuwG,EAAK5yD,GAAMzqD,EAAE8M,EAAIlP,EAAEkP,IAAMmM,EAAMH,EAAIlb,EAAEkb,IAAM9Y,EAAE8Y,EAAIlb,EAAEkb,IAAMG,EAAMnM,EAAIlP,EAAEkP,GAGzE,SAAc,GAANm3F,GAAiB,GAANmZ,GAAWnZ,GAAMmZ,GAAc,GAANA,GAAiB,GAANC,GAAWD,GAAMC,GAAc,GAANpZ,GAAiB,GAANoZ,GAAWpZ,GAAMoZ,IAY9GvP,EAAQpvG,UAAU+9G,iBAAmB,SAAU3vG,EAAGgM,GAChD,GAAItb,GAGJg/G,EAAY,KACRc,EAAmB,KACnBC,EAAc,KACdp+E,EAAS,GAAI6jB,GAAQl2C,EAAGgM,EAE5B,IAAI3b,KAAKyN,QAAUkjG,EAAQlmD,MAAMkB,KAAO3rD,KAAKyN,QAAUkjG,EAAQlmD,MAAMmB,UAAY5rD,KAAKyN,QAAUkjG,EAAQlmD,MAAMoB,QAE5G,IAAKxrD,EAAIL,KAAKuuD,WAAWlsD,OAAS,EAAGhC,GAAK,EAAGA,IAAK,CAChDg/G,EAAYr/G,KAAKuuD,WAAWluD,EAC5B,IAAIq8G,GAAW2C,EAAU3C,QACzB,IAAIA,EACF,IAAK,GAAIh7G,GAAIg7G,EAASr6G,OAAS,EAAGX,GAAK,EAAGA,IAAK,CAE7C,GAAI8qD,GAAUkwD,EAASh7G,GACnBi7G,EAAUnwD,EAAQmwD,QAClB0D,GAAa1D,EAAQ,GAAG3G,OAAQ2G,EAAQ,GAAG3G,OAAQ2G,EAAQ,GAAG3G,QAC9DsK,GAAa3D,EAAQ,GAAG3G,OAAQ2G,EAAQ,GAAG3G,OAAQ2G,EAAQ,GAAG3G,OAClE,IAAIh2G,KAAK+/G,gBAAgB/9E,EAAQq+E,IAAcrgH,KAAK+/G,gBAAgB/9E,EAAQs+E,GAE1E,MAAOjB,QAOf,KAAKh/G,EAAI,EAAGA,EAAIL,KAAKuuD,WAAWlsD,OAAQhC,IAAK,CAC3Cg/G,EAAYr/G,KAAKuuD,WAAWluD,EAC5B,IAAIyb,GAAQujG,EAAUrJ,MACtB,IAAIl6F,EAAO,CACT,GAAIykG,GAAQ77G,KAAKge,IAAI/S,EAAImM,EAAMnM,GAC3B6wG,EAAQ97G,KAAKge,IAAI/G,EAAIG,EAAMH,GAC3Bu6F,EAAOxxG,KAAK2iB,KAAKk5F,EAAQA,EAAQC,EAAQA,IAExB,OAAhBJ,GAAwBlK,EAAOkK,IAAgBlK,EApC5C,MAqCNkK,EAAclK,EACdiK,EAAmBd,IAM3B,MAAOc,IASTxP,EAAQpvG,UAAUk/G,QAAU,SAAUhzG,GACpC,MAAOA,IAASkjG,EAAQlmD,MAAMkB,KAAOl+C,GAASkjG,EAAQlmD,MAAMmB,UAAYn+C,GAASkjG,EAAQlmD,MAAMoB,SAQjG8kD,EAAQpvG,UAAUk+G,aAAe,SAAUJ,GACzC,GAAIjjG,GAASsa,EAAMy1B,CAEdnsD,MAAKsqD,SAsBRluC,EAAUpc,KAAKsqD,QAAQv8B,IAAI3R,QAC3Bsa,EAAO12B,KAAKsqD,QAAQv8B,IAAI2I,KACxBy1B,EAAMnsD,KAAKsqD,QAAQv8B,IAAIo+B,MAvBvB/vC,EAAUpK,SAASC,cAAc,QACjC,EAAIu/F,EAAkB,SAAGp1F,EAAQ3O,SAAWzN,KAAKuqD,aAAanuC,SAC9DA,EAAQ3O,MAAM4E,SAAW,WAEzBqkB,EAAO1kB,SAASC,cAAc,QAC9B,EAAIu/F,EAAkB,SAAG96E,EAAKjpB,SAAWzN,KAAKuqD,aAAa7zB,MAC3DA,EAAKjpB,MAAM4E,SAAW,WAEtB85C,EAAMn6C,SAASC,cAAc,QAC7B,EAAIu/F,EAAkB,SAAGrlD,EAAI1+C,SAAWzN,KAAKuqD,aAAa4B,KAC1DA,EAAI1+C,MAAM4E,SAAW,WAErBrS,KAAKsqD,SACH+0D,UAAW,KACXtxF,KACE3R,QAASA,EACTsa,KAAMA,EACNy1B,IAAKA,KASXnsD,KAAKw/G,eAELx/G,KAAKsqD,QAAQ+0D,UAAYA,EACO,kBAArBr/G,MAAK2pD,YACdvtC,EAAQyU,UAAY7wB,KAAK2pD,YAAY01D,EAAUvjG,OAE/CM,EAAQyU,UAAY,kBAAyB7wB,KAAK2xG,OAAS,aAAe0N,EAAUvjG,MAAMnM,EAAI,qBAA4B3P,KAAK4lB,OAAS,aAAey5F,EAAUvjG,MAAMH,EAAI,qBAA4B3b,KAAK4xG,OAAS,aAAeyN,EAAUvjG,MAAMgL,EAAI,qBAG1P1K,EAAQ3O,MAAM/F,KAAO,IACrB0U,EAAQ3O,MAAM3F,IAAM,IACpB9H,KAAKkzC,MAAM1gC,YAAY4J,GACvBpc,KAAKkzC,MAAM1gC,YAAYkkB,GACvB12B,KAAKkzC,MAAM1gC,YAAY25C,EAGvB,IAAInY,GAAe53B,EAAQzJ,YACvB82B,EAAgBrtB,EAAQktB,aACxBmxB,EAAa/jC,EAAK4S,aAClBo3E,EAAWv0D,EAAIx5C,YACfguG,EAAYx0D,EAAI7iB,aAEhB5hC,EAAO23G,EAAUrJ,OAAOrmG,EAAIqkC,EAAe,CAC/CtsC,GAAOhD,KAAKL,IAAIK,KAAKJ,IAAIoD,EAAM,IAAK1H,KAAKkzC,MAAMrgC,YAAc,GAAKmhC,GAElEtd,EAAKjpB,MAAM/F,KAAO23G,EAAUrJ,OAAOrmG,EAAI,KACvC+mB,EAAKjpB,MAAM3F,IAAMu3G,EAAUrJ,OAAOr6F,EAAI8+C,EAAa,KACnDr+C,EAAQ3O,MAAM/F,KAAOA,EAAO,KAC5B0U,EAAQ3O,MAAM3F,IAAMu3G,EAAUrJ,OAAOr6F,EAAI8+C,EAAahxB,EAAgB,KACtE0iB,EAAI1+C,MAAM/F,KAAO23G,EAAUrJ,OAAOrmG,EAAI+wG,EAAW,EAAI,KACrDv0D,EAAI1+C,MAAM3F,IAAMu3G,EAAUrJ,OAAOr6F,EAAIglG,EAAY,EAAI,MAOvDhQ,EAAQpvG,UAAUi+G,aAAe,WAC/B,GAAIx/G,KAAKsqD,QAAS,CAChBtqD,KAAKsqD,QAAQ+0D,UAAY,IAEzB,KAAK,GAAIt8G,KAAQ/C,MAAKsqD,QAAQv8B,IAC5B,GAAI/tB,KAAKsqD,QAAQv8B,IAAIvsB,eAAeuB,GAAO,CACzC,GAAIyE,GAAOxH,KAAKsqD,QAAQv8B,IAAIhrB,EACxByE,IAAQA,EAAK4C,YACf5C,EAAK4C,WAAWjG,YAAYqD,MAgDtCmpG,EAAQpvG,UAAU6oD,kBAAoB,SAAUnJ,GAC9C8vD,EAAS3mD,kBAAkBnJ,EAAKjhD,MAChCA,KAAKwf,UAWPmxF,EAAQpvG,UAAUq/G,QAAU,SAAU1uG,EAAOC,GAC3CnS,KAAK03G,SAASxlG,EAAOC,GACrBnS,KAAKwf,UAQP5f,EAAOD,QAAUgxG,GAIX,SAAU/wG,EAAQD,EAASO,GAEjCA,EAAoB,KACpBN,EAAOD,QAAUO,EAAoB,GAAGY,OAAO+/G,QAKzC,SAAUjhH,EAAQD,EAASO,GAGjC,GAAI+f,GAAU/f,EAAoB,GAElC+f,GAAQA,EAAQS,EAAIT,EAAQK,EAAG,UAAYugG,OAAQ3gH,EAAoB,QAKjE,SAAUN,EAAQD,EAASO,GAKjC,GAAI4hF,GAAc5hF,EAAoB,IAClC2gF,EAAU3gF,EAAoB,IAC9BulF,EAAOvlF,EAAoB,IAC3BwlD,EAAMxlD,EAAoB,IAC1B6kD,EAAW7kD,EAAoB,IAC/B6lB,EAAU7lB,EAAoB,IAC9B4gH,EAAUhgH,OAAO+/G,MAGrBjhH,GAAOD,SAAWmhH,GAAW5gH,EAAoB,IAAI,WACnD,GAAI6pE,MACAjpD,KAEAJ,EAAIhG,SACJqmG,EAAI,sBAGR,OAFAh3C,GAAErpD,GAAK,EACPqgG,EAAE54G,MAAM,IAAIO,QAAQ,SAAUuG,GAAK6R,EAAE7R,GAAKA,IACd,GAArB6xG,KAAY/2C,GAAGrpD,IAAW5f,OAAO8lB,KAAKk6F,KAAYhgG,IAAIvY,KAAK,KAAOw4G,IACtE,SAAgB5+G,EAAQ+d,GAM3B,IALA,GAAIilC,GAAIJ,EAAS5iD,GACb6+G,EAAOz7G,UAAUlD,OACjB84B,EAAQ,EACRuqD,EAAaD,EAAKt3E,EAClB00E,EAASn9B,EAAIv3C,EACV6yG,EAAO7lF,GAMZ,IALA,GAII34B,GAJAke,EAAIqF,EAAQxgB,UAAU41B,MACtBvU,EAAO8+D,EAAa7E,EAAQngE,GAAGrY,OAAOq9E,EAAWhlE,IAAMmgE,EAAQngE,GAC/Dre,EAASukB,EAAKvkB,OACd6M,EAAI,EAED7M,EAAS6M,GACd1M,EAAMokB,EAAK1X,KACN4yE,IAAee,EAAOtiF,KAAKmgB,EAAGle,KAAM2iD,EAAE3iD,GAAOke,EAAEle,GAEtD,OAAO2iD,IACP27D,GAKE,SAAUlhH,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAEjCA,EAAoB,KACpBN,EAAOD,QAAUO,EAAoB,GAAGwE,KAAK4oD,MAKvC,SAAU1tD,EAAQD,EAASO,GAGjC,GAAI+f,GAAU/f,EAAoB,GAElC+f,GAAQA,EAAQS,EAAG,QAAU4sC,KAAMptD,EAAoB,QAKjD,SAAUN,EAAQD,GAGxBC,EAAOD,QAAU+E,KAAK4oD,MAAQ,SAAc39C,GAE1C,MAAmB,KAAXA,GAAKA,IAAWA,GAAKA,EAAIA,EAAIA,EAAI,GAAK,EAAI,IAM9C,SAAU/P,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAEjCA,EAAoB,IACpB,IAAI0hF,GAAU1hF,EAAoB,GAAGY,MACrClB,GAAOD,QAAU,SAAwBmiB,EAAItf,EAAKy+G,GAChD,MAAOr/B,GAAQ7gF,eAAe+gB,EAAItf,EAAKy+G,KAMnC,SAAUrhH,EAAQD,EAASO,GAEjC,GAAI+f,GAAU/f,EAAoB,GAElC+f,GAAQA,EAAQS,EAAIT,EAAQK,GAAKpgB,EAAoB,IAAK,UAAYa,eAAgBb,EAAoB,IAAIiO,KAKxG,SAAUvO,EAAQD,EAASO,GAKjCY,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAST,IAAI+yC,GAAS,SACT0jB,EAAO,UACPnQ,EAAS,SAQTo2D,GACF58F,MAAQizB,OAAQA,GAChBrzB,QAAUqzB,OAAQA,GAClB4T,aAAeL,OAAQA,GACvBptC,UAAY65B,OAAQA,EAAQl2C,OAXjB,SAWiC6B,UAAa,cASvD4Z,GACF+1F,oBAAsB33C,QAASD,EAAM/3D,UAAa,aAClD0vG,mBAAqB9nD,OAAQA,GAC7B4D,kBAAoBwM,QAASD,GAC7B63C,WAAav7D,OAAQA,GACrBW,gBAAiBgpE,EACjB9N,WAAatoD,OAAQA,EAAQ5nD,UAAa,aAC1CmwG,WAAavoD,OAAQA,EAAQ5nD,UAAa,aAC1CmnD,gBACE7rC,UAAYssC,OAAQA,GACpBW,YAAcX,OAAQA,GACtB9Z,UAAY8Z,OAAQA,GACpBptC,UAAYrc,OAhCH,WAkCX2xG,SAAWz7D,OAAQA,GACnB07D,SAAW17D,OAAQA,GACnByS,UAAWk3D,EACXzO,oBAAsB3nD,OAAQA,GAC9B4nD,oBAAsB5nD,OAAQA,GAC9B0nD,cAAgB1nD,OAAQA,GACxBiE,aAAexX,OAAQA,GACvBw7D,WAAax7D,OAAQA,GACrBrB,SAAWilB,SAAY,YACvBm3C,iBAAmBp3C,QAASD,GAC5B02C,QAAUp6D,OAAQA,GAClB3xB,QAAU2xB,OAAQA,GAClBq6D,QAAUr6D,OAAQA,GAClBm6D,aAAen6D,OAAQA,GACvBi8D,MAAQ1oD,OAAQA,EAAQ5nD,UAAa,aACrC+jE,MAAQnc,OAAQA,EAAQ5nD,UAAa,aACrC0wG,MAAQ9oD,OAAQA,EAAQ5nD,UAAa,aACrCuwG,MAAQ3oD,OAAQA,EAAQ5nD,UAAa,aACrCgkE,MAAQpc,OAAQA,EAAQ5nD,UAAa,aACrC2wG,MAAQ/oD,OAAQA,EAAQ5nD,UAAa,aACrCyvG,uBAAyBz3C,QAASD,EAAM/3D,UAAa,aACrDivG,UAAYj3C,QAASD,GACrB9Q,YAAc+Q,QAASD,EAAM/3D,UAAa,aAC1CkvG,iBAAmBl3C,QAASD,GAC5Bo3C,YAAcn3C,QAASD,GACvB+2C,WAAa92C,QAASD,GACtBg3C,WAAa/2C,QAASD,GACtBi3C,WAAah3C,QAASD,GACtBy4C,OAAS5oD,OAAQA,EAAQ5nD,UAAa,aACtCywG,OAAS7oD,OAAQA,EAAQ5nD,UAAa,aACtC4wG,OAAShpD,OAAQA,EAAQ5nD,UAAa,aACtCuK,OACEq9C,OAAQA,EACRvT,QAAS,MAAO,YAAa,WAAY,MAAO,WAAY,YAAa,WAAY,OAAQ,OAAQ,YAEvG+S,SAAW4Q,QAASD,EAAME,SAAY,YACtC5Q,cACEnuC,SACE5Q,OAAS+rC,OAAQA,GACjBxqC,YAAcwqC,OAAQA,GACtBvqC,QAAUuqC,OAAQA,GAClBnb,cAAgBmb,OAAQA,GACxB27D,WAAa37D,OAAQA,GACrBsjB,SAAWtjB,OAAQA,GACnB75B,UAAYrc,OA9EL,WAgFTq1B,MACEy8E,YAAc57D,OAAQA,GACtBplC,QAAUolC,OAAQA,GAClBrlC,OAASqlC,OAAQA,GACjB75B,UAAYrc,OApFL,WAsFT8qD,KACEn/C,QAAUuqC,OAAQA,GAClBnb,cAAgBmb,OAAQA,GACxBplC,QAAUolC,OAAQA,GAClBrlC,OAASqlC,OAAQA,GACjB75B,UAAYrc,OA3FL,WA6FTqc,UAAYrc,OA7FH,WA+FXwwG,aAAe12C,SAAY,YAC3B22C,aAAe32C,SAAY,YAC3B42C,aAAe52C,SAAY,YAC3Bo4C,UAAYzoD,OAAQA,EAAQ5nD,UAAa,aACzCowG,UAAYxoD,OAAQA,EAAQ5nD,UAAa,aACzCqvG,eAAiBznD,OAAQA,GAGzB34C,QAAUolC,OAAQA,GAClBrlC,OAASqlC,OAAQA,GACjB75B,UAAYrc,OAzGD,UA4Gb1B,GAAQmd,WAAaA,GAIf,SAAUld,EAAQD,EAASO,GAwBjC,QAAS4wG,KACP9wG,KAAKmhH,UAAY,KApBnB,GAAIlsG,GAAU/U,EAAoB,IAC9BsZ,EAAWtZ,EAAoB,IAC/BmgC,EAAQngC,EAAoB,KAC5B+tD,EAAS/tD,EAAoB,IAC7B6wG,EAAW7wG,EAAoB,IAC/B2mB,EAAU3mB,EAAoB,GAiClC4wG,GAAUvvG,UAAU42G,eAAiB,SAAUvH,EAASwQ,EAAS3zG,GAC/D,OAAgBvK,KAAZk+G,EAAJ,CAEIz7G,MAAMC,QAAQw7G,KAChBA,EAAU,GAAInsG,GAAQmsG,GAGxB,IAAIlsG,EACJ,MAAIksG,YAAmBnsG,IAAWmsG,YAAmB5nG,IAGnD,KAAM,IAAI3T,OAAM,uCAGlB,IALEqP,EAAOksG,EAAQlgH,MAKE,GAAfgU,EAAK7S,OAAT,CAEArC,KAAKyN,MAAQA,EAGTzN,KAAKma,SACPna,KAAKma,QAAQxF,IAAI,IAAK3U,KAAKqhH,WAG7BrhH,KAAKma,QAAUinG,EACfphH,KAAKmhH,UAAYjsG,CAGjB,IAAIsB,GAAKxW,IACTA,MAAKqhH,UAAY,WACfzQ,EAAQh3F,QAAQpD,EAAG2D,UAErBna,KAAKma,QAAQzF,GAAG,IAAK1U,KAAKqhH,WAG1BrhH,KAAKgxG,KAAO,IACZhxG,KAAKixG,KAAO,IACZjxG,KAAKkxG,KAAO,GAEZ,IAAIoQ,GAAW1Q,EAAQ6P,QAAQhzG,EAsB/B,IAnBI6zG,QAC+Bp+G,KAA7B0tG,EAAQ2Q,iBACVvhH,KAAKozG,UAAYxC,EAAQ2Q,iBAEzBvhH,KAAKozG,UAAYpzG,KAAKwhH,sBAAsBtsG,EAAMlV,KAAKgxG,OAAS,MAGjC9tG,KAA7B0tG,EAAQ6Q,iBACVzhH,KAAKqzG,UAAYzC,EAAQ6Q,iBAEzBzhH,KAAKqzG,UAAYrzG,KAAKwhH,sBAAsBtsG,EAAMlV,KAAKixG,OAAS,GAKpEjxG,KAAK0hH,iBAAiBxsG,EAAMlV,KAAKgxG,KAAMJ,EAAS0Q,GAChDthH,KAAK0hH,iBAAiBxsG,EAAMlV,KAAKixG,KAAML,EAAS0Q,GAChDthH,KAAK0hH,iBAAiBxsG,EAAMlV,KAAKkxG,KAAMN,GAAS,GAE5C17F,EAAK,GAAG1T,eAAe,SAAU,CACnCxB,KAAKmxG,SAAW,OAChB,IAAIgD,GAAan0G,KAAK2hH,eAAezsG,EAAMlV,KAAKmxG,SAChDnxG,MAAK4hH,kBAAkBzN,EAAYvD,EAAQiR,gBAAiBjR,EAAQkR,iBACpE9hH,KAAKm0G,WAAaA,EAIRn0G,KAAKu4G,eACP,GAAG/2G,eAAe,eACF0B,KAApBlD,KAAK63G,aACP73G,KAAK63G,WAAa,GAAI5pD,GAAOjuD,KAAM,SAAU4wG,GAC7C5wG,KAAK63G,WAAWvoD,kBAAkB,WAChCshD,EAAQpxF,WAad,OAPIxf,MAAK63G,WAEM73G,KAAK63G,WAAWzoD,iBAGhBpvD,KAAKovD,eAAepvD,KAAKu4G,mBAoB1CzH,EAAUvvG,UAAUwgH,sBAAwB,SAAU5zD,EAAQyiD,GAG5D,IAAc,IAFD,IAAK,IAAK,KAAKzqG,QAAQgoD,GAGlC,KAAM,IAAItoD,OAAM,WAAcsoD,EAAS,YAGzC,IAAI6zD,GAAQ7zD,EAAOn1B,aAEnB,QACEouC,SAAUpnE,KAAKmuD,EAAS,YACxB9pD,IAAKusG,EAAQ,UAAYoR,EAAQ,OACjC19G,IAAKssG,EAAQ,UAAYoR,EAAQ,OACjC9rF,KAAM06E,EAAQ,UAAYoR,EAAQ,QAClCC,YAAa9zD,EAAS,QACtB+zD,WAAY/zD,EAAS,SAiBzB2iD,EAAUvvG,UAAUmgH,iBAAmB,SAAUxsG,EAAMi5C,EAAQyiD,EAAS0Q,GACtE,GACIa,GAAWniH,KAAK+hH,sBAAsB5zD,EAAQyiD,GAE9CtnF,EAAQtpB,KAAK2hH,eAAezsG,EAAMi5C,EAClCmzD,IAAsB,KAAVnzD,GAEd7kC,EAAM84F,OAAOD,EAAS/6C,SAAW,GAGnCpnE,KAAK4hH,kBAAkBt4F,EAAO64F,EAAS99G,IAAK89G,EAAS79G,KACrDtE,KAAKmiH,EAASF,aAAe34F,EAC7BtpB,KAAKmiH,EAASD,gBAAgCh/G,KAAlBi/G,EAASjsF,KAAqBisF,EAASjsF,KAAO5M,EAAMA,QAXjE,GAwBjBwnF,EAAUvvG,UAAU8sD,kBAAoB,SAAUF,EAAQj5C,OAC3ChS,KAATgS,IACFA,EAAOlV,KAAKmhH,UAKd,KAAK,GAFDloG,MAEK5Y,EAAI,EAAGA,EAAI6U,EAAK7S,OAAQhC,IAAK,CACpC,GAAImE,GAAQ0Q,EAAK7U,GAAG8tD,IAAW,GACA,IAA3Bl1C,EAAO9S,QAAQ3B,IACjByU,EAAO7S,KAAK5B,GAIhB,MAAOyU,GAAOb,KAAK,SAAUvV,EAAGC,GAC9B,MAAOD,GAAIC,KAcfguG,EAAUvvG,UAAUigH,sBAAwB,SAAUtsG,EAAMi5C,GAO1D,IAAK,GANDl1C,GAASjZ,KAAKquD,kBAAkBn5C,EAAMi5C,GAItCk0D,EAAgB,KAEXhiH,EAAI,EAAGA,EAAI4Y,EAAO5W,OAAQhC,IAAK,CACtC,GAAI8pB,GAAOlR,EAAO5Y,GAAK4Y,EAAO5Y,EAAI,IAEb,MAAjBgiH,GAAyBA,EAAgBl4F,KAC3Ck4F,EAAgBl4F,GAIpB,MAAOk4F,IAWTvR,EAAUvvG,UAAUogH,eAAiB,SAAUzsG,EAAMi5C,GAInD,IAAK,GAHD7kC,GAAQ,GAAI+W,GAGPhgC,EAAI,EAAGA,EAAI6U,EAAK7S,OAAQhC,IAAK,CACpC,GAAIqQ,GAAOwE,EAAK7U,GAAG8tD,EACnB7kC,GAAMq5E,OAAOjyF,GAGf,MAAO4Y,IAQTwnF,EAAUvvG,UAAU+gH,gBAAkB,WACpC,MAAOtiH,MAAKmhH,UAAU9+G,QAiBxByuG,EAAUvvG,UAAUqgH,kBAAoB,SAAUt4F,EAAOi5F,EAAYC,OAChDt/G,KAAfq/G,IACFj5F,EAAMjlB,IAAMk+G,OAGKr/G,KAAfs/G,IACFl5F,EAAMhlB,IAAMk+G,GAMVl5F,EAAMhlB,KAAOglB,EAAMjlB,MAAKilB,EAAMhlB,IAAMglB,EAAMjlB,IAAM,IAGtDysG,EAAUvvG,UAAUg3G,aAAe,WACjC,MAAOv4G,MAAKmhH,WAGdrQ,EAAUvvG,UAAUyW,WAAa,WAC/B,MAAOhY,MAAKma,SAQd22F,EAAUvvG,UAAU+0G,cAAgB,SAAUphG,GAG5C,IAAK,GAFDq5C,MAEKluD,EAAI,EAAGA,EAAI6U,EAAK7S,OAAQhC,IAAK,CACpC,GAAIyb,GAAQ,GAAI+K,EAChB/K,GAAMnM,EAAIuF,EAAK7U,GAAGL,KAAKgxG,OAAS,EAChCl1F,EAAMH,EAAIzG,EAAK7U,GAAGL,KAAKixG,OAAS,EAChCn1F,EAAMgL,EAAI5R,EAAK7U,GAAGL,KAAKkxG,OAAS,EAChCp1F,EAAM5G,KAAOA,EAAK7U,OAEI6C,KAAlBlD,KAAKmxG,WACPr1F,EAAMtX,MAAQ0Q,EAAK7U,GAAGL,KAAKmxG,WAAa,EAG1C,IAAIlvG,KACJA,GAAI6Z,MAAQA,EACZ7Z,EAAIogB,OAAS,GAAIwE,GAAQ/K,EAAMnM,EAAGmM,EAAMH,EAAG3b,KAAKk0G,OAAO7vG,KACvDpC,EAAI8zG,UAAQ7yG,GACZjB,EAAI+zG,WAAS9yG,GAEbqrD,EAAWnoD,KAAKnE,GAGlB,MAAOssD,IAWTuiD,EAAUvvG,UAAUkhH,iBAAmB,SAAUvtG,GAG/C,GAAIvF,GAAGgM,EAAGtb,EAAG4B,EAGTs0G,EAAQv2G,KAAKquD,kBAAkBruD,KAAKgxG,KAAM97F,GAC1CshG,EAAQx2G,KAAKquD,kBAAkBruD,KAAKixG,KAAM/7F,GAE1Cq5C,EAAavuD,KAAKs2G,cAAcphG,GAGhCuhG,IACJ,KAAKp2G,EAAI,EAAGA,EAAIkuD,EAAWlsD,OAAQhC,IAAK,CACtC4B,EAAMssD,EAAWluD,EAGjB,IAAIq2G,GAASH,EAAMpwG,QAAQlE,EAAI6Z,MAAMnM,GACjCgnG,EAASH,EAAMrwG,QAAQlE,EAAI6Z,MAAMH,OAEVzY,KAAvBuzG,EAAWC,KACbD,EAAWC,OAGbD,EAAWC,GAAQC,GAAU10G,EAI/B,IAAK0N,EAAI,EAAGA,EAAI8mG,EAAWp0G,OAAQsN,IACjC,IAAKgM,EAAI,EAAGA,EAAI86F,EAAW9mG,GAAGtN,OAAQsZ,IAChC86F,EAAW9mG,GAAGgM,KAChB86F,EAAW9mG,GAAGgM,GAAGi7F,WAAajnG,EAAI8mG,EAAWp0G,OAAS,EAAIo0G,EAAW9mG,EAAI,GAAGgM,OAAKzY,GACjFuzG,EAAW9mG,GAAGgM,GAAGk7F,SAAWl7F,EAAI86F,EAAW9mG,GAAGtN,OAAS,EAAIo0G,EAAW9mG,GAAGgM,EAAI,OAAKzY,GAClFuzG,EAAW9mG,GAAGgM,GAAGm7F,WAAannG,EAAI8mG,EAAWp0G,OAAS,GAAKsZ,EAAI86F,EAAW9mG,GAAGtN,OAAS,EAAIo0G,EAAW9mG,EAAI,GAAGgM,EAAI,OAAKzY,GAK3H,OAAOqrD,IAQTuiD,EAAUvvG,UAAUi5G,QAAU,WAC5B,GAAI3C,GAAa73G,KAAK63G,UACtB,IAAKA,EAEL,MAAOA,GAAW/oD,WAAa,KAAO+oD,EAAW5oD,oBAMnD6hD,EAAUvvG,UAAUmhH,OAAS,WACvB1iH,KAAKmhH,WACPnhH,KAAK4Z,QAAQ5Z,KAAKmhH,YAWtBrQ,EAAUvvG,UAAU6tD,eAAiB,SAAUl6C,GAC7C,GAAIq5C,KAEJ,IAAIvuD,KAAKyN,QAAUsjG,EAAStmD,MAAMuB,MAAQhsD,KAAKyN,QAAUsjG,EAAStmD,MAAMyB,QACtEqC,EAAavuD,KAAKyiH,iBAAiBvtG,OAMnC,IAHAlV,KAAK+2G,iBAAiB7hG,GACtBq5C,EAAavuD,KAAKs2G,cAAcphG,GAE5BlV,KAAKyN,QAAUsjG,EAAStmD,MAAMwB,KAEhC,IAAK,GAAI5rD,GAAI,EAAGA,EAAIkuD,EAAWlsD,OAAQhC,IACjCA,EAAI,IACNkuD,EAAWluD,EAAI,GAAG22G,UAAYzoD,EAAWluD,GAMjD,OAAOkuD,IAWTuiD,EAAUvvG,UAAUw1G,iBAAmB,SAAU7hG,GAI/C,GAFoBlV,KAAKyN,QAAUsjG,EAAStmD,MAAMmB,UAAY5rD,KAAKyN,QAAUsjG,EAAStmD,MAAMoB,SAAW7rD,KAAKyN,QAAUsjG,EAAStmD,MAAMC,UAAY1qD,KAAKyN,QAAUsjG,EAAStmD,MAAME,QAE/K,CAKA,OAAsBznD,KAAlBlD,KAAKmxG,SACP,KAAM,IAAItrG,OAAM,0DAAyE7F,KAAKyN,MAAQ,IAKxG,QAA+BvK,KAA3BgS,EAAK,GAAGlV,KAAKmxG,UACf,KAAM,IAAItrG,OAAM,iCAAyC7F,KAAKmxG,SAAW,uBAAgCnxG,KAAKyN,MAAQ,OAI1H7N,EAAOD,QAAUmxG,GAIX,SAAUlxG,EAAQD,EAASO,GAcjC,QAASmgC,KACPrgC,KAAKqE,QAAMnB,GACXlD,KAAKsE,QAAMpB,GAWbm9B,EAAM9+B,UAAUohG,OAAS,SAAUn+F,OACnBtB,KAAVsB,SAEatB,KAAblD,KAAKqE,KAAqBrE,KAAKqE,IAAMG,KACvCxE,KAAKqE,IAAMG,QAGItB,KAAblD,KAAKsE,KAAqBtE,KAAKsE,IAAME,KACvCxE,KAAKsE,IAAME,KASf67B,EAAM9+B,UAAUohH,QAAU,SAAUr5F,GAClCtpB,KAAKyV,IAAI6T,EAAMjlB,KACfrE,KAAKyV,IAAI6T,EAAMhlB,MAajB+7B,EAAM9+B,UAAU6gH,OAAS,SAAU7jF,GACjC,OAAYr7B,KAARq7B,EAAJ,CAIA,GAAIqkF,GAAS5iH,KAAKqE,IAAMk6B,EACpBskF,EAAS7iH,KAAKsE,IAAMi6B,CAIxB,IAAIqkF,EAASC,EACX,KAAM,IAAIh9G,OAAM,6CAGlB7F,MAAKqE,IAAMu+G,EACX5iH,KAAKsE,IAAMu+G,IAQbxiF,EAAM9+B,UAAU+nB,MAAQ,WACtB,MAAOtpB,MAAKsE,IAAMtE,KAAKqE,KAQzBg8B,EAAM9+B,UAAUygC,OAAS,WACvB,OAAQhiC,KAAKqE,IAAMrE,KAAKsE,KAAO,GAGjC1E,EAAOD,QAAU0gC,GAIX,SAAUzgC,EAAQD,EAASO,GAGjC,GAAIonB,GAAgCC,EAA8BC,GAEjE,SAAU9nB,GAGL6nB,KAAmCD,EAAiC,MAGpCpkB,MAFlCskB,EAA2E,kBAAnCF,GACvCA,EAA+B3N,MAAMha,EAAS4nB,GAAiCD,KAChC1nB,EAAOD,QAAU6nB,IAUnE,WACA,GAAIs7F,GAAe,IAwBnB,OAAO,SAAS/tG,GAAYqY,EAAQ/d,GAgIlC,QAASlH,GAAM46G,GACb,MAAOA,GAAOr8G,MAAM,UAOtB,QAASs8G,GAAkBl5G,GAEzB,GAAmB,iBAAfA,EAAMrD,KAAyB,CAOjC,GAJKqD,EAAMysD,SAAS0sD,WAClBn5G,EAAMysD,SAAS0sD,aAGbn5G,EAAMysD,SAAS0sD,SAASn5G,EAAMrD,MAChC,MAGAqD,GAAMysD,SAAS0sD,SAASn5G,EAAMrD,OAAQ,EAK1C,GAAIy8G,IAAU,CACdp5G,GAAM0lB,gBAAkB,WACtB0zF,GAAU,EAIZ,IAAIC,GAAUr5G,EAAMysD,SAAS/mC,gBAAgBjH,KAAKze,EAAMysD,SACnC,mBAAX4sD,KACRr5G,EAAMysD,SAAS/mC,gBAAkB,WAC/B2zF,IACAr5G,EAAM0lB,oBAKV1lB,EAAMs5G,YAAcN,CAIpB,KADA,GAAIt7G,GAAOs7G,EACJt7G,IAAS07G,GAAS,CACvB,GAAIG,GAAa77G,EAAK4lB,MACtB,IAAGi2F,EAED,IAAI,GADAC,GACIr0G,EAAI,EAAGA,EAAIo0G,EAAWhhH,OAAQ4M,IAEpC,GADAq0G,EAAYD,EAAWp0G,GAAGq0G,UAAUx5G,EAAMrD,MAC5B,IAAK,GAAIpG,GAAI,EAAGA,EAAIijH,EAAUjhH,SAAW6gH,EAAS7iH,IAC9DijH,EAAUjjH,GAAGyJ,EAInBtC,GAAOA,EAAK4C,YAvLhB,GAAI+K,GAAW9F,IACbxF,gBAAgB,EAGlB,IAAIujB,EAAOm2F,QAAS,CAGlB,GAAIvuG,GAASoY,EAETo2F,EAAoB,SAASp6G,EAASiG,GACxC,GAAIxO,GAAIC,OAAOs+B,OAAOjqB,EAEtB,OADI9F,IAAS2F,EAAO6rG,OAAOhgH,EAAGwO,GACvB0F,EAAY,GAAIC,GAAO5L,EAASvI,GAAIA,GAU7C,OARAmU,GAAO6rG,OAAO2C,EAAmBxuG,GAEjCwuG,EAAkBD,QAAU,SAAUn6G,EAASiG,GAC7C,GAAIxO,GAAIC,OAAOs+B,OAAOjqB,EAEtB,OADI9F,IAAS2F,EAAO6rG,OAAOhgH,EAAGwO,GACvB0F,EAAY,GAAIC,GAAOuuG,QAAQn6G,EAASvI,GAAIA,IAG9C2iH,EAKT,GAAI/tE,GAAU30C,OAAOs+B,OAAOhS,GAGxBhkB,EAAUgkB,EAAOhkB,OA6JrB,OA3JIA,GAAQgkB,SAAQhkB,EAAQgkB,WAC5BhkB,EAAQgkB,OAAOhnB,KAAKqvC,GAIpBroB,EAAO1Y,GAAG,eAAgB,SAAU5K,IACF,IAA5BqL,EAAStL,gBAA4BsL,EAAStL,iBAAmBC,EAAM25G,aACzE35G,EAAMD,iBAEJC,EAAMwjB,UACRw1F,EAAeh5G,EAAM3H,UAKzBszC,EAAQ6tE,aAQR7tE,EAAQ/gC,GAAK,SAAUquG,EAAQW,GAa7B,MAXAv7G,GAAM46G,GAAQr6G,QAAQ,SAAUoB,GAC9B,GAAIw5G,GAAY7tE,EAAQ6tE,UAAUx5G,EAC7Bw5G,KACH7tE,EAAQ6tE,UAAUx5G,GAASw5G,KAG3Bl2F,EAAO1Y,GAAG5K,EAAOk5G,IAEnBM,EAAUl9G,KAAKs9G,KAGVjuE,GAWTA,EAAQ9gC,IAAM,SAAUouG,EAAQW,GAoB9B,MAlBAv7G,GAAM46G,GAAQr6G,QAAQ,SAAUoB,GAC9B,GAAIw5G,GAAY7tE,EAAQ6tE,UAAUx5G,EAC9Bw5G,KACFA,EAAYI,EAAUJ,EAAUh7G,OAAO,SAAUmE,GAC/C,MAAOA,KAAMi3G,OAGXJ,EAAUjhH,OAAS,EACrBozC,EAAQ6tE,UAAUx5G,GAASw5G,GAI3Bl2F,EAAOzY,IAAI7K,EAAOk5G,SACXvtE,GAAQ6tE,UAAUx5G,OAKxB2rC,GAQTA,EAAQ5gC,KAAO,SAAS8uG,EAAW75G,GACjCg5G,EAAeh5G,EAAM3H,OACrBirB,EAAOvY,KAAK8uG,EAAW75G,IAGzB2rC,EAAQ7gC,QAAU,WAEhB,GAAIgvG,GAAUx2F,EAAOhkB,QAAQgkB,OACzBizC,EAAMujD,EAAQz9G,QAAQsvC,IACd,IAAT4qB,GAAYujD,EAAQhwF,OAAOysC,EAAI,GAC9BujD,EAAQvhH,cAAe+qB,GAAOhkB,QAAQgkB,OAG1CqoB,EAAQ6tE,aAGRl2F,EAAOxY,WAgEF6gC,MAOL,SAAU71C,EAAQD,EAASO,GAEjC,GAAIsnB,IAKJ,SAAUzd,EAAQiI,EAAU6xG,EAAY3gH,GAmBxC,QAAS4gH,GAAkB96G,EAAI+6G,EAAS/wF,GACpC,MAAOG,YAAW6wF,EAAOh7G,EAAIgqB,GAAU+wF,GAY3C,QAASE,GAAer+B,EAAK58E,EAAIgqB,GAC7B,QAAIrtB,MAAMC,QAAQggF,KACds+B,EAAKt+B,EAAK5yD,EAAQhqB,GAAKgqB,IAChB,GAWf,QAASkxF,GAAKjiH,EAAKyhF,EAAU1wD,GACzB,GAAI3yB,EAEJ,IAAK4B,EAIL,GAAIA,EAAIyG,QACJzG,EAAIyG,QAAQg7E,EAAU1wD,OACnB,IAAI/wB,EAAII,SAAWa,EAEtB,IADA7C,EAAI,EACGA,EAAI4B,EAAII,QACXqhF,EAASnjF,KAAKyyB,EAAS/wB,EAAI5B,GAAIA,EAAG4B,GAClC5B,QAGJ,KAAKA,IAAK4B,GACNA,EAAIT,eAAenB,IAAMqjF,EAASnjF,KAAKyyB,EAAS/wB,EAAI5B,GAAIA,EAAG4B,GAYvE,QAASunF,GAAUz2D,EAAQpyB,EAAMkd,GAC7B,GAAIsmG,GAAqB,sBAAwBxjH,EAAO,KAAOkd,EAAU,QACzE,OAAO,YACH,GAAItT,GAAI,GAAI1E,OAAM,mBACdwoB,EAAQ9jB,GAAKA,EAAE8jB,MAAQ9jB,EAAE8jB,MAAMnjB,QAAQ,kBAAmB,IACzDA,QAAQ,cAAe,IACvBA,QAAQ,6BAA8B,kBAAoB,sBAE3D0S,EAAM7T,EAAOmN,UAAYnN,EAAOmN,QAAQC,MAAQpN,EAAOmN,QAAQ0G,IAInE,OAHIA,IACAA,EAAIrd,KAAKwJ,EAAOmN,QAASitG,EAAoB91F,GAE1C0E,EAAOpZ,MAAM3Z,KAAMuF,YAwElC,QAAS23C,GAAQknE,EAAO3tE,EAAMzP,GAC1B,GACIq9E,GADAC,EAAQ7tE,EAAKl1C,SAGjB8iH,GAASD,EAAM7iH,UAAYT,OAAOs+B,OAAOklF,GACzCD,EAAOt+G,YAAcq+G,EACrBC,EAAOE,OAASD,EAEZt9E,GACA65E,GAAOwD,EAAQr9E,GAUvB,QAASg9E,GAAOh7G,EAAIgqB,GAChB,MAAO,YACH,MAAOhqB,GAAG2Q,MAAMqZ,EAASztB,YAWjC,QAASi/G,GAASjmF,EAAKnnB,GACnB,aAAWmnB,IAAOkmF,GACPlmF,EAAI5kB,MAAMvC,EAAOA,EAAK,IAAMlU,EAAYA,EAAWkU,GAEvDmnB,EASX,QAASmmF,GAAYC,EAAMC,GACvB,MAAQD,KAASzhH,EAAa0hH,EAAOD,EASzC,QAASE,GAAkB1iH,EAAQkX,EAAOqqG,GACtCQ,EAAKY,EAASzrG,GAAQ,SAAS5S,GAC3BtE,EAAOgH,iBAAiB1C,EAAMi9G,GAAS,KAU/C,QAASqB,GAAqB5iH,EAAQkX,EAAOqqG,GACzCQ,EAAKY,EAASzrG,GAAQ,SAAS5S,GAC3BtE,EAAOwH,oBAAoBlD,EAAMi9G,GAAS,KAWlD,QAASr5G,GAAUg3C,EAAM/2C,GACrB,KAAO+2C,GAAM,CACT,GAAIA,GAAQ/2C,EACR,OAAO,CAEX+2C,GAAOA,EAAKj3C,WAEhB,OAAO,EASX,QAAS46G,GAAM/lG,EAAKgmG,GAChB,MAAOhmG,GAAI9Y,QAAQ8+G,IAAS,EAQhC,QAASH,GAAS7lG,GACd,MAAOA,GAAIvR,OAAOvF,MAAM,QAU5B,QAAS+8G,GAAQn1G,EAAKk1G,EAAME,GACxB,GAAIp1G,EAAI5J,UAAYg/G,EAChB,MAAOp1G,GAAI5J,QAAQ8+G,EAGnB,KADA,GAAI5kH,GAAI,EACDA,EAAI0P,EAAI1N,QAAQ,CACnB,GAAK8iH,GAAap1G,EAAI1P,GAAG8kH,IAAcF,IAAWE,GAAap1G,EAAI1P,KAAO4kH,EACtE,MAAO5kH,EAEXA,KAEJ,OAAQ,EAShB,QAASuI,GAAQ3G,GACb,MAAO0D,OAAMpE,UAAU0K,MAAM1L,KAAK0B,EAAK,GAU3C,QAASmjH,GAAYr1G,EAAKvN,EAAK4V,GAK3B,IAJA,GAAIitG,MACApsG,KACA5Y,EAAI,EAEDA,EAAI0P,EAAI1N,QAAQ,CACnB,GAAIk8B,GAAM/7B,EAAMuN,EAAI1P,GAAGmC,GAAOuN,EAAI1P,EAC9B6kH,GAAQjsG,EAAQslB,GAAO,GACvB8mF,EAAQj/G,KAAK2J,EAAI1P,IAErB4Y,EAAO5Y,GAAKk+B,EACZl+B,IAaJ,MAVI+X,KAIIitG,EAHC7iH,EAGS6iH,EAAQjtG,KAAK,SAAyBvV,EAAGC,GAC/C,MAAOD,GAAEL,GAAOM,EAAEN,KAHZ6iH,EAAQjtG,QAQnBitG,EASX,QAASC,GAASrjH,EAAKX,GAKnB,IAJA,GAAI0d,GAAQjc,EACRwiH,EAAYjkH,EAAS,GAAG03B,cAAgB13B,EAAS2K,MAAM,GAEvD5L,EAAI,EACDA,EAAImlH,GAAgBnjH,QAAQ,CAI/B,GAHA2c,EAASwmG,GAAgBnlH,IACzB0C,EAAO,EAAWic,EAASumG,EAAYjkH,IAE3BW,GACR,MAAOc,EAEX1C,KAEJ,MAAO6C,GAQX,QAASuiH,KACL,MAAOC,MAQX,QAASC,GAAoBv8G,GACzB,GAAIw8G,GAAMx8G,EAAQy8G,eAAiBz8G,CACnC,OAAQw8G,GAAIE,aAAeF,EAAIG,cAAgBh8G,EAyCnD,QAASi8G,GAAMC,EAASt9G,GACpB,GAAI5I,GAAOC,IACXA,MAAKimH,QAAUA,EACfjmH,KAAK2I,SAAWA,EAChB3I,KAAKoJ,QAAU68G,EAAQ78G,QACvBpJ,KAAKmC,OAAS8jH,EAAQ52G,QAAQ62G,YAI9BlmH,KAAKmmH,WAAa,SAASC,GACnB5B,EAASyB,EAAQ52G,QAAQ63B,QAAS++E,KAClClmH,EAAK2jH,QAAQ0C,IAIrBpmH,KAAKkxE,OAoCT,QAASm1C,GAAoBJ,GACzB,GACIK,GAAaL,EAAQ52G,QAAQi3G,UAajC,OAAO,KAXHA,IAEOC,GACAC,EACAC,GACAC,EACCC,GAGDC,EAFAC,IAIOZ,EAAS54F,GAS/B,QAASA,GAAa44F,EAAStC,EAAWvsE,GACtC,GAAI0vE,GAAc1vE,EAAM2vE,SAAS1kH,OAC7B2kH,EAAqB5vE,EAAM6vE,gBAAgB5kH,OAC3CirB,EAAWq2F,EAAYuD,IAAgBJ,EAAcE,GAAuB,EAC5Ex5F,EAAWm2F,GAAawD,GAAYC,KAAkBN,EAAcE,GAAuB,CAE/F5vE,GAAM9pB,UAAYA,EAClB8pB,EAAM5pB,UAAYA,EAEdF,IACA24F,EAAQoB,YAKZjwE,EAAMusE,UAAYA,EAGlB2D,EAAiBrB,EAAS7uE,GAG1B6uE,EAAQpxG,KAAK,eAAgBuiC,GAE7B6uE,EAAQsB,UAAUnwE,GAClB6uE,EAAQoB,QAAQG,UAAYpwE,EAQhC,QAASkwE,GAAiBrB,EAAS7uE,GAC/B,GAAIiwE,GAAUpB,EAAQoB,QAClBN,EAAW3vE,EAAM2vE,SACjBU,EAAiBV,EAAS1kH,MAGzBglH,GAAQK,aACTL,EAAQK,WAAaC,EAAqBvwE,IAI1CqwE,EAAiB,IAAMJ,EAAQO,cAC/BP,EAAQO,cAAgBD,EAAqBvwE,GACnB,IAAnBqwE,IACPJ,EAAQO,eAAgB,EAG5B,IAAIF,GAAaL,EAAQK,WACrBE,EAAgBP,EAAQO,cACxBC,EAAeD,EAAgBA,EAAc5lF,OAAS0lF,EAAW1lF,OAEjEA,EAASoV,EAAMpV,OAAS8lF,EAAUf,EACtC3vE,GAAM2wE,UAAYznF,KAClB8W,EAAM4wE,UAAY5wE,EAAM2wE,UAAYL,EAAWK,UAE/C3wE,EAAM70B,MAAQ0lG,EAASJ,EAAc7lF,GACrCoV,EAAM54B,SAAW0pG,EAAYL,EAAc7lF,GAE3CmmF,EAAed,EAASjwE,GACxBA,EAAMgxE,gBAAkBC,EAAajxE,EAAM9d,OAAQ8d,EAAM1T,OAEzD,IAAI4kF,GAAkBC,EAAYnxE,EAAM4wE,UAAW5wE,EAAM9d,OAAQ8d,EAAM1T,OACvE0T,GAAMoxE,iBAAmBF,EAAgB34G,EACzCynC,EAAMqxE,iBAAmBH,EAAgB3sG,EACzCy7B,EAAMkxE,gBAAmB5lG,GAAI4lG,EAAgB34G,GAAK+S,GAAI4lG,EAAgB3sG,GAAM2sG,EAAgB34G,EAAI24G,EAAgB3sG,EAEhHy7B,EAAM3yC,MAAQmjH,EAAgB5wD,EAAS4wD,EAAcb,SAAUA,GAAY,EAC3E3vE,EAAMsxE,SAAWd,EAAgBe,EAAYf,EAAcb,SAAUA,GAAY,EAEjF3vE,EAAMwxE,YAAevB,EAAQG,UAAsCpwE,EAAM2vE,SAAS1kH,OAC9EglH,EAAQG,UAAUoB,YAAexxE,EAAM2vE,SAAS1kH,OAASglH,EAAQG,UAAUoB,YADtCxxE,EAAM2vE,SAAS1kH,OAGxDwmH,EAAyBxB,EAASjwE,EAGlC,IAAIj1C,GAAS8jH,EAAQ78G,OACjBiB,GAAU+sC,EAAMmf,SAASp0D,OAAQA,KACjCA,EAASi1C,EAAMmf,SAASp0D,QAE5Bi1C,EAAMj1C,OAASA,EAGnB,QAASgmH,GAAed,EAASjwE,GAC7B,GAAIpV,GAASoV,EAAMpV,OACfpY,EAASy9F,EAAQyB,gBACjBC,EAAY1B,EAAQ0B,cACpBvB,EAAYH,EAAQG,aAEpBpwE,GAAMusE,YAAcuD,IAAeM,EAAU7D,YAAcwD,KAC3D4B,EAAY1B,EAAQ0B,WAChBp5G,EAAG63G,EAAUluF,QAAU,EACvB3d,EAAG6rG,EAAU9jF,QAAU,GAG3B9Z,EAASy9F,EAAQyB,aACbn5G,EAAGqyB,EAAOryB,EACVgM,EAAGqmB,EAAOrmB,IAIlBy7B,EAAM9d,OAASyvF,EAAUp5G,GAAKqyB,EAAOryB,EAAIia,EAAOja,GAChDynC,EAAM1T,OAASqlF,EAAUptG,GAAKqmB,EAAOrmB,EAAIiO,EAAOjO,GAQpD,QAASktG,GAAyBxB,EAASjwE,GACvC,GAEI4xE,GAAUC,EAAWC,EAAWj8F,EAFhC4yC,EAAOwnD,EAAQ8B,cAAgB/xE,EAC/B4wE,EAAY5wE,EAAM2wE,UAAYloD,EAAKkoD;yDAGvC,IAAI3wE,EAAMusE,WAAayD,KAAiBY,EAAYoB,IAAoBvpD,EAAKmpD,WAAa9lH,GAAY,CAClG,GAAIo2B,GAAS8d,EAAM9d,OAASumC,EAAKvmC,OAC7BoK,EAAS0T,EAAM1T,OAASm8B,EAAKn8B,OAE7Bh3B,EAAI67G,EAAYP,EAAW1uF,EAAQoK,EACvCulF,GAAYv8G,EAAEiD,EACdu5G,EAAYx8G,EAAEiP,EACdqtG,EAAYtmG,GAAIhW,EAAEiD,GAAK+S,GAAIhW,EAAEiP,GAAMjP,EAAEiD,EAAIjD,EAAEiP,EAC3CsR,EAAYo7F,EAAa/uF,EAAQoK,GAEjC2jF,EAAQ8B,aAAe/xE,MAGvB4xE,GAAWnpD,EAAKmpD,SAChBC,EAAYppD,EAAKopD,UACjBC,EAAYrpD,EAAKqpD,UACjBj8F,EAAY4yC,EAAK5yC,SAGrBmqB,GAAM4xE,SAAWA,EACjB5xE,EAAM6xE,UAAYA,EAClB7xE,EAAM8xE,UAAYA,EAClB9xE,EAAMnqB,UAAYA,EAQtB,QAAS06F,GAAqBvwE,GAK1B,IAFA,GAAI2vE,MACA1mH,EAAI,EACDA,EAAI+2C,EAAM2vE,SAAS1kH,QACtB0kH,EAAS1mH,IACL+jC,QAAS8I,GAAMkK,EAAM2vE,SAAS1mH,GAAG+jC,SACjCC,QAAS6I,GAAMkK,EAAM2vE,SAAS1mH,GAAGgkC,UAErChkC,GAGJ,QACI0nH,UAAWznF,KACXymF,SAAUA,EACV/kF,OAAQ8lF,EAAUf,GAClBztF,OAAQ8d,EAAM9d,OACdoK,OAAQ0T,EAAM1T,QAStB,QAASokF,GAAUf,GACf,GAAIU,GAAiBV,EAAS1kH,MAG9B,IAAuB,IAAnBolH,EACA,OACI93G,EAAGu9B,GAAM65E,EAAS,GAAG3iF,SACrBzoB,EAAGuxB,GAAM65E,EAAS,GAAG1iF,SAK7B,KADA,GAAI10B,GAAI,EAAGgM,EAAI,EAAGtb,EAAI,EACfA,EAAIonH,GACP93G,GAAKo3G,EAAS1mH,GAAG+jC,QACjBzoB,GAAKorG,EAAS1mH,GAAGgkC,QACjBhkC,GAGJ,QACIsP,EAAGu9B,GAAMv9B,EAAI83G,GACb9rG,EAAGuxB,GAAMvxB,EAAI8rG,IAWrB,QAASc,GAAYP,EAAWr4G,EAAGgM,GAC/B,OACIhM,EAAGA,EAAIq4G,GAAa,EACpBrsG,EAAGA,EAAIqsG,GAAa,GAU5B,QAASK,GAAa14G,EAAGgM,GACrB,MAAIhM,KAAMgM,EACC0tG,GAGP3mG,GAAI/S,IAAM+S,GAAI/G,GACPhM,EAAI,EAAI25G,GAAiBC,GAE7B5tG,EAAI,EAAI6tG,GAAeC,GAUlC,QAASvB,GAAY3+C,EAAIC,EAAIpnE,GACpBA,IACDA,EAAQsnH,GAEZ,IAAI/5G,GAAI65D,EAAGpnE,EAAM,IAAMmnE,EAAGnnE,EAAM,IAC5BuZ,EAAI6tD,EAAGpnE,EAAM,IAAMmnE,EAAGnnE,EAAM,GAEhC,OAAOsC,MAAK2iB,KAAM1X,EAAIA,EAAMgM,EAAIA,GAUpC,QAASssG,GAAS1+C,EAAIC,EAAIpnE,GACjBA,IACDA,EAAQsnH,GAEZ,IAAI/5G,GAAI65D,EAAGpnE,EAAM,IAAMmnE,EAAGnnE,EAAM,IAC5BuZ,EAAI6tD,EAAGpnE,EAAM,IAAMmnE,EAAGnnE,EAAM,GAChC,OAA0B,KAAnBsC,KAAK27C,MAAM1kC,EAAGhM,GAAWjL,KAAK47C,GASzC,QAASqoE,GAAY1/F,EAAOC,GACxB,MAAO++F,GAAS/+F,EAAI,GAAIA,EAAI,GAAIygG,IAAmB1B,EAASh/F,EAAM,GAAIA,EAAM,GAAI0gG,IAUpF,QAAS3yD,GAAS/tC,EAAOC,GACrB,MAAOg/F,GAAYh/F,EAAI,GAAIA,EAAI,GAAIygG,IAAmBzB,EAAYj/F,EAAM,GAAIA,EAAM,GAAI0gG,IAiB1F,QAAS9C,KACL7mH,KAAK4pH,KAAOC,GACZ7pH,KAAK8pH,MAAQC,GAEb/pH,KAAKgqH,SAAU,EAEfhE,EAAMrsG,MAAM3Z,KAAMuF,WAoEtB,QAASihH,KACLxmH,KAAK4pH,KAAOK,GACZjqH,KAAK8pH,MAAQI,GAEblE,EAAMrsG,MAAM3Z,KAAMuF,WAElBvF,KAAKwa,MAASxa,KAAKimH,QAAQoB,QAAQ8C,iBAoEvC,QAASC,KACLpqH,KAAKqqH,SAAWC,GAChBtqH,KAAK8pH,MAAQS,GACbvqH,KAAKwqH,SAAU,EAEfxE,EAAMrsG,MAAM3Z,KAAMuF,WAsCtB,QAASklH,GAAuBrE,EAAI3/G,GAChC,GAAIikH,GAAM9hH,EAAQw9G,EAAGuE,SACjB7nF,EAAUl6B,EAAQw9G,EAAGwE,eAMzB,OAJInkH,IAAQ0gH,GAAYC,MACpBsD,EAAMtF,EAAYsF,EAAIriH,OAAOy6B,GAAU,cAAc,KAGjD4nF,EAAK5nF,GAiBjB,QAAS4jF,KACL1mH,KAAKqqH,SAAWQ,GAChB7qH,KAAK8qH,aAEL9E,EAAMrsG,MAAM3Z,KAAMuF,WA0BtB,QAASwlH,GAAW3E,EAAI3/G,GACpB,GAAIukH,GAAapiH,EAAQw9G,EAAGuE,SACxBG,EAAY9qH,KAAK8qH,SAGrB,IAAIrkH,GAAQygH,GAAc+D,KAAqC,IAAtBD,EAAW3oH,OAEhD,MADAyoH,GAAUE,EAAW,GAAGE,aAAc,GAC9BF,EAAYA,EAGxB,IAAI3qH,GACAgxG,EACAuZ,EAAiBhiH,EAAQw9G,EAAGwE,gBAC5BO,KACAhpH,EAASnC,KAAKmC,MAQlB,IALAkvG,EAAgB2Z,EAAW1iH,OAAO,SAAS+4B,GACvC,MAAOh3B,GAAUg3B,EAAMl/B,OAAQA,KAI/BsE,IAASygH,GAET,IADA7mH,EAAI,EACGA,EAAIgxG,EAAchvG,QACrByoH,EAAUzZ,EAAchxG,GAAG6qH,aAAc,EACzC7qH,GAMR,KADAA,EAAI,EACGA,EAAIuqH,EAAevoH,QAClByoH,EAAUF,EAAevqH,GAAG6qH,aAC5BC,EAAqB/kH,KAAKwkH,EAAevqH,IAIzCoG,GAAQ0gH,GAAYC,WACb0D,GAAUF,EAAevqH,GAAG6qH,YAEvC7qH,GAGJ,OAAK8qH,GAAqB9oH,QAMtB+iH,EAAY/T,EAAchpG,OAAO8iH,GAAuB,cAAc,GACtEA,OAPJ,GAwBJ,QAASvE,KACLZ,EAAMrsG,MAAM3Z,KAAMuF,UAElB,IAAIm+G,GAAUM,EAAOhkH,KAAK0jH,QAAS1jH,KACnCA,MAAKqhC,MAAQ,GAAIqlF,GAAW1mH,KAAKimH,QAASvC,GAC1C1jH,KAAKorH,MAAQ,GAAIvE,GAAW7mH,KAAKimH,QAASvC,GAE1C1jH,KAAKqrH,aAAe,KACpBrrH,KAAKsrH,eAqCT,QAASC,GAAc5H,EAAW6H,GAC1B7H,EAAYuD,IACZlnH,KAAKqrH,aAAeG,EAAUvE,gBAAgB,GAAGiE,WACjDO,EAAalrH,KAAKP,KAAMwrH,IACjB7H,GAAawD,GAAYC,KAChCqE,EAAalrH,KAAKP,KAAMwrH,GAIhC,QAASC,GAAaD,GAClB,GAAInqF,GAAQmqF,EAAUvE,gBAAgB,EAEtC,IAAI5lF,EAAM6pF,aAAelrH,KAAKqrH,aAAc,CACxC,GAAIK,IAAa/7G,EAAG0xB,EAAM+C,QAASzoB,EAAG0lB,EAAMgD,QAC5CrkC,MAAKsrH,YAAYllH,KAAKslH,EACtB,IAAIC,GAAM3rH,KAAKsrH,YACXM,EAAkB,WAClB,GAAIvrH,GAAIsrH,EAAIxlH,QAAQulH,EAChBrrH,IAAK,GACLsrH,EAAI/3F,OAAOvzB,EAAG,GAGtB8yB,YAAWy4F,EAAiBC,KAIpC,QAASC,GAAiBN,GAEtB,IAAK,GADD77G,GAAI67G,EAAUj1D,SAASnyB,QAASzoB,EAAI6vG,EAAUj1D,SAASlyB,QAClDhkC,EAAI,EAAGA,EAAIL,KAAKsrH,YAAYjpH,OAAQhC,IAAK,CAC9C,GAAIgO,GAAIrO,KAAKsrH,YAAYjrH,GACrB+/C,EAAK17C,KAAKge,IAAI/S,EAAItB,EAAEsB,GAAIwwC,EAAKz7C,KAAKge,IAAI/G,EAAItN,EAAEsN,EAChD,IAAIykC,GAAM2rE,IAAkB5rE,GAAM4rE,GAC9B,OAAO,EAGf,OAAO,EAsBX,QAASC,GAAY/F,EAASzhH,GAC1BxE,KAAKimH,QAAUA,EACfjmH,KAAK8U,IAAItQ,GAmGb,QAASynH,GAAkBC,GAEvB,GAAIlH,EAAMkH,EAASC,IACf,MAAOA,GAGX,IAAIC,GAAUpH,EAAMkH,EAASG,IACzBC,EAAUtH,EAAMkH,EAASK,GAM7B,OAAIH,IAAWE,EACJH,GAIPC,GAAWE,EACJF,EAAUC,GAAqBE,GAItCvH,EAAMkH,EAASM,IACRA,GAGJC,GA2DX,QAASC,GAAWr9G,GAChBrP,KAAKqP,QAAUwxG,MAAW7gH,KAAKm4F,SAAU9oF,OAEzCrP,KAAKsW,GAAKmvG,IAEVzlH,KAAKimH,QAAU,KAGfjmH,KAAKqP,QAAQ63B,OAASw9E,EAAY1kH,KAAKqP,QAAQ63B,QAAQ,GAEvDlnC,KAAKi2E,MAAQ02C,GAEb3sH,KAAK4sH,gBACL5sH,KAAK6sH,eAqOT,QAASC,IAAS72C,GACd,MAAIA,GAAQ82C,GACD,SACA92C,EAAQ+2C,GACR,MACA/2C,EAAQg3C,GACR,OACAh3C,EAAQi3C,GACR,QAEJ,GAQX,QAASC,IAAalgG,GAClB,MAAIA,IAAaw8F,GACN,OACAx8F,GAAau8F,GACb,KACAv8F,GAAaq8F,GACb,OACAr8F,GAAas8F,GACb,QAEJ,GASX,QAAS6D,IAA6BC,EAAiBC,GACnD,GAAIrH,GAAUqH,EAAWrH,OACzB,OAAIA,GACOA,EAAQ/kH,IAAImsH,GAEhBA,EAQX,QAASE,MACLb,EAAW/yG,MAAM3Z,KAAMuF,WA6D3B,QAASioH,MACLD,GAAe5zG,MAAM3Z,KAAMuF,WAE3BvF,KAAKytH,GAAK,KACVztH,KAAK0tH,GAAK,KA4Ed,QAASC,MACLJ,GAAe5zG,MAAM3Z,KAAMuF,WAsC/B,QAASqoH,MACLlB,EAAW/yG,MAAM3Z,KAAMuF,WAEvBvF,KAAK6tH,OAAS,KACd7tH,KAAK8tH,OAAS,KAmElB,QAASC,MACLR,GAAe5zG,MAAM3Z,KAAMuF,WA8B/B,QAASyoH,MACLT,GAAe5zG,MAAM3Z,KAAMuF,WA2D/B,QAAS0oH,MACLvB,EAAW/yG,MAAM3Z,KAAMuF,WAIvBvF,KAAKkuH,OAAQ,EACbluH,KAAKmuH,SAAU,EAEfnuH,KAAK6tH,OAAS,KACd7tH,KAAK8tH,OAAS,KACd9tH,KAAKmZ,MAAQ,EAqGjB,QAASnE,IAAO5L,EAASiG,GAGrB,MAFAA,GAAUA,MACVA,EAAQ++G,YAAc1J,EAAYr1G,EAAQ++G,YAAap5G,GAAOmjF,SAASk2B,QAChE,GAAI9K,IAAQn6G,EAASiG,GAiIhC,QAASk0G,IAAQn6G,EAASiG,GACtBrP,KAAKqP,QAAUwxG,MAAW7rG,GAAOmjF,SAAU9oF,OAE3CrP,KAAKqP,QAAQ62G,YAAclmH,KAAKqP,QAAQ62G,aAAe98G,EAEvDpJ,KAAKsuH,YACLtuH,KAAKqnH,WACLrnH,KAAKouH,eACLpuH,KAAKuuH,eAELvuH,KAAKoJ,QAAUA,EACfpJ,KAAKo3C,MAAQivE,EAAoBrmH,MACjCA,KAAKwuH,YAAc,GAAIxC,GAAYhsH,KAAMA,KAAKqP,QAAQm/G,aAEtDC,GAAezuH,MAAM,GAErBkkH,EAAKlkH,KAAKqP,QAAQ++G,YAAa,SAAS19G,GACpC,GAAI48G,GAAattH,KAAKyV,IAAI,GAAK/E,GAAK,GAAIA,EAAK,IAC7CA,GAAK,IAAM48G,EAAWoB,cAAch+G,EAAK,IACzCA,EAAK,IAAM48G,EAAWqB,eAAej+G,EAAK,KAC3C1Q,MA4PP,QAASyuH,IAAexI,EAASxwG,GAC7B,GAAIrM,GAAU68G,EAAQ78G,OACtB,IAAKA,EAAQqE,MAAb,CAGA,GAAI1K,EACJmhH,GAAK+B,EAAQ52G,QAAQu/G,SAAU,SAASpqH,EAAO7D,GAC3CoC,EAAOuiH,EAASl8G,EAAQqE,MAAO9M,GAC3B8U,GACAwwG,EAAQsI,YAAYxrH,GAAQqG,EAAQqE,MAAM1K,GAC1CqG,EAAQqE,MAAM1K,GAAQyB,GAEtB4E,EAAQqE,MAAM1K,GAAQkjH,EAAQsI,YAAYxrH,IAAS,KAGtD0S,IACDwwG,EAAQsI,iBAShB,QAASM,IAAgB/kH,EAAOoL,GAC5B,GAAI45G,GAAe98G,EAAS+8G,YAAY,QACxCD,GAAaE,UAAUllH,GAAO,GAAM,GACpCglH,EAAaG,QAAU/5G,EACvBA,EAAK/S,OAAO+sH,cAAcJ,GAngF9B,GA+FIjO,IA/FA2E,IAAmB,GAAI,SAAU,MAAO,KAAM,KAAM,KACpD2J,GAAen9G,EAASC,cAAc,OAEtCwyG,GAAgB,WAEhBv3E,GAAQxoC,KAAKwoC,MACbxqB,GAAMhe,KAAKge,IACX4d,GAAMx7B,KAAKw7B,GA0FXugF,IADyB,kBAAlB//G,QAAO+/G,OACL,SAAgB1+G,GACrB,GAAIA,IAAWe,GAAwB,OAAXf,EACxB,KAAM,IAAIL,WAAU,6CAIxB,KAAK,GADD0oF,GAAS1pF,OAAOqB,GACXg5B,EAAQ,EAAGA,EAAQ51B,UAAUlD,OAAQ84B,IAAS,CACnD,GAAIjb,GAAS3a,UAAU41B,EACvB,IAAIjb,IAAWhd,GAAwB,OAAXgd,EACxB,IAAK,GAAI+nD,KAAW/nD,GACZA,EAAO1e,eAAeymE,KACtBuiB,EAAOviB,GAAW/nD,EAAO+nD,IAKzC,MAAOuiB,IAGF1pF,OAAO+/G,MAWpB,IAAIr7G,IAASgkF,EAAU,SAAgB4lC,EAAMr/G,EAAKs7D,GAG9C,IAFA,GAAIzkD,GAAO9lB,OAAO8lB,KAAK7W,GACnB1P,EAAI,EACDA,EAAIumB,EAAKvkB,UACPgpE,GAAUA,GAAS+jD,EAAKxoG,EAAKvmB,MAAQ6C,KACtCksH,EAAKxoG,EAAKvmB,IAAM0P,EAAI6W,EAAKvmB,KAE7BA,GAEJ,OAAO+uH,IACR,SAAU,iBAST/jD,GAAQme,EAAU,SAAe4lC,EAAMr/G,GACvC,MAAOvK,IAAO4pH,EAAMr/G,GAAK,IAC1B,QAAS,iBAiNR21G,GAAY,EAeZ2J,GAAe,wCAEf1I,GAAiB,gBAAkB58G,GACnCw8G,GAAyBjB,EAASv7G,EAAQ,kBAAoB7G,EAC9DujH,GAAqBE,IAAiB0I,GAAa/gH,KAAK9E,UAAUC,WAOlE2/G,GAAmB,GAEnBlC,GAAc,EACd+D,GAAa,EACb9D,GAAY,EACZC,GAAe,EAEfiC,GAAiB,EACjBC,GAAiB,EACjBC,GAAkB,EAClBC,GAAe,EACfC,GAAiB,GAEjB3wF,GAAuBwwF,GAAiBC,GACxCj2D,GAAqBk2D,GAAeC,GACpCt/E,GAAgBrR,GAAuBw6B,GAEvCo2D,IAAY,IAAK,KACjBC,IAAmB,UAAW,UA4BlC3D,GAAMzkH,WAKFmiH,QAAS,aAKTxyC,KAAM,WACFlxE,KAAK4pH,MAAQ/E,EAAkB7kH,KAAKoJ,QAASpJ,KAAK4pH,KAAM5pH,KAAKmmH,YAC7DnmH,KAAKqqH,UAAYxF,EAAkB7kH,KAAKmC,OAAQnC,KAAKqqH,SAAUrqH,KAAKmmH,YACpEnmH,KAAK8pH,OAASjF,EAAkBc,EAAoB3lH,KAAKoJ,SAAUpJ,KAAK8pH,MAAO9pH,KAAKmmH,aAMxFvxG,QAAS,WACL5U,KAAK4pH,MAAQ7E,EAAqB/kH,KAAKoJ,QAASpJ,KAAK4pH,KAAM5pH,KAAKmmH,YAChEnmH,KAAKqqH,UAAYtF,EAAqB/kH,KAAKmC,OAAQnC,KAAKqqH,SAAUrqH,KAAKmmH,YACvEnmH,KAAK8pH,OAAS/E,EAAqBY,EAAoB3lH,KAAKoJ,SAAUpJ,KAAK8pH,MAAO9pH,KAAKmmH,aA4T/F,IAAImJ,KACAC,UAAWrI,GACXsI,UAAWvE,GACXwE,QAAStI,IAGT0C,GAAuB,YACvBE,GAAsB,mBAgB1B7sE,GAAQ2pE,EAAYb,GAKhBtC,QAAS,SAAmB0C,GACxB,GAAIzC,GAAY2L,GAAgBlJ,EAAG3/G,KAG/Bk9G,GAAYuD,IAA6B,IAAdd,EAAG/+D,SAC9BrnD,KAAKgqH,SAAU,GAGfrG,EAAYsH,IAA2B,IAAb7E,EAAGh/D,QAC7Bu8D,EAAYwD,IAIXnnH,KAAKgqH,UAINrG,EAAYwD,KACZnnH,KAAKgqH,SAAU,GAGnBhqH,KAAK2I,SAAS3I,KAAKimH,QAAStC,GACxBoD,UAAWX,GACXa,iBAAkBb,GAClB3C,YAvbW,QAwbXltD,SAAU6vD,OAKtB,IAAIsJ,KACAC,YAAazI,GACb0I,YAAa3E,GACb4E,UAAW1I,GACX2I,cAAe1I,GACf2I,WAAY3I,IAIZ4I,IACAC,EAzcmB,QA0cnBC,EAzciB,MA0cjBC,EAzcmB,QA0cnBC,EAzcoB,UA4cpBnG,GAAyB,cACzBC,GAAwB,qCAGxBngH,GAAOsmH,iBAAmBtmH,EAAOumH,eACjCrG,GAAyB,gBACzBC,GAAwB,6CAiB5BhtE,EAAQspE,EAAmBR,GAKvBtC,QAAS,SAAmB0C,GACxB,GAAI5rG,GAAQxa,KAAKwa,MACb+1G,GAAgB,EAEhBC,EAAsBpK,EAAG3/G,KAAKoY,cAAc3T,QAAQ,KAAM,IAC1Dy4G,EAAY+L,GAAkBc,GAC9B/M,EAAcuM,GAAuB5J,EAAG3C,cAAgB2C,EAAG3C,YAE3DgN,EAnfW,SAmfAhN,EAGXiN,EAAaxL,EAAQ1qG,EAAO4rG,EAAGuK,UAAW,YAG1ChN,GAAYuD,KAA8B,IAAdd,EAAG/+D,QAAgBopE,GAC3CC,EAAa,IACbl2G,EAAMpU,KAAKggH,GACXsK,EAAal2G,EAAMnY,OAAS,GAEzBshH,GAAawD,GAAYC,MAChCmJ,GAAgB,GAIhBG,EAAa,IAKjBl2G,EAAMk2G,GAActK,EAEpBpmH,KAAK2I,SAAS3I,KAAKimH,QAAStC,GACxBoD,SAAUvsG,EACVysG,iBAAkBb,GAClB3C,YAAaA,EACbltD,SAAU6vD,IAGVmK,GAEA/1G,EAAMoZ,OAAO88F,EAAY,MAKrC,IAAIE,KACAC,WAAY3J,GACZ4J,UAAW7F,GACX8F,SAAU5J,GACV6J,YAAa5J,IAGbkD,GAA6B,aAC7BC,GAA6B,2CAejCrtE,GAAQktE,EAAkBpE,GACtBtC,QAAS,SAAmB0C,GACxB,GAAI3/G,GAAOmqH,GAAuBxK,EAAG3/G,KAOrC,IAJIA,IAASygH,KACTlnH,KAAKwqH,SAAU,GAGdxqH,KAAKwqH,QAAV,CAIA,GAAIG,GAAUF,EAAuBlqH,KAAKP,KAAMomH,EAAI3/G,EAGhDA,IAAQ0gH,GAAYC,KAAiBuD,EAAQ,GAAGtoH,OAASsoH,EAAQ,GAAGtoH,QAAW,IAC/ErC,KAAKwqH,SAAU,GAGnBxqH,KAAK2I,SAAS3I,KAAKimH,QAASx/G,GACxBsgH,SAAU4D,EAAQ,GAClB1D,gBAAiB0D,EAAQ,GACzBlH,YAtkBW,QAukBXltD,SAAU6vD,OAsBtB,IAAI6K,KACAJ,WAAY3J,GACZ4J,UAAW7F,GACX8F,SAAU5J,GACV6J,YAAa5J,IAGbyD,GAAsB,2CAc1B3tE,GAAQwpE,EAAYV,GAChBtC,QAAS,SAAoB0C,GACzB,GAAI3/G,GAAOwqH,GAAgB7K,EAAG3/G,MAC1BkkH,EAAUI,EAAWxqH,KAAKP,KAAMomH,EAAI3/G,EACnCkkH,IAIL3qH,KAAK2I,SAAS3I,KAAKimH,QAASx/G,GACxBsgH,SAAU4D,EAAQ,GAClB1D,gBAAiB0D,EAAQ,GACzBlH,YA7nBW,QA8nBXltD,SAAU6vD,MA4EtB,IAAIyF,IAAgB,KAChBE,GAAiB,EAarB7uE,GAAQ0pE,EAAiBZ,GAOrBtC,QAAS,SAAoBuC,EAASiL,EAAYC,GAC9C,GAAIV,GAhuBW,SAguBAU,EAAU1N,YACrB2N,EA/tBW,SA+tBAD,EAAU1N,WAEzB,MAAI2N,GAAWD,EAAUE,oBAAsBF,EAAUE,mBAAmBC,kBAA5E,CAKA,GAAIb,EACAlF,EAAchrH,KAAKP,KAAMkxH,EAAYC,OAClC,IAAIC,GAAWtF,EAAiBvrH,KAAKP,KAAMmxH,GAC9C,MAGJnxH,MAAK2I,SAASs9G,EAASiL,EAAYC,KAMvCv8G,QAAS,WACL5U,KAAKqhC,MAAMzsB,UACX5U,KAAKorH,MAAMx2G,YA0CnB,IAAI28G,IAAwBjM,EAAS6J,GAAa1hH,MAAO,eACrD+jH,GAAsBD,KAA0BruH,EAIhDupH,GAAoB,OACpBD,GAA4B,eAC5BL,GAAoB,OACpBE,GAAqB,QACrBE,GAAqB,QACrBkF,GA4IJ,WACI,IAAKD,GACD,OAAO,CAEX,IAAIE,MACAC,EAAc5nH,EAAO6nH,KAAO7nH,EAAO6nH,IAAIC,QAO3C,QANC,OAAQ,eAAgB,QAAS,QAAS,cAAe,QAAQnpH,QAAQ,SAAS61B,GAI/EmzF,EAASnzF,IAAOozF,GAAc5nH,EAAO6nH,IAAIC,SAAS,eAAgBtzF,KAE/DmzF,IA1IX1F,GAAYzqH,WAKRuT,IAAK,SAAStQ,GAzBS,WA2BfA,IACAA,EAAQxE,KAAK8xH,WAGbN,IAAuBxxH,KAAKimH,QAAQ78G,QAAQqE,OAASgkH,GAAiBjtH,KACtExE,KAAKimH,QAAQ78G,QAAQqE,MAAM8jH,IAAyB/sH,GAExDxE,KAAKksH,QAAU1nH,EAAMqa,cAAcnR,QAMvCiJ,OAAQ,WACJ3W,KAAK8U,IAAI9U,KAAKimH,QAAQ52G,QAAQm/G,cAOlCsD,QAAS,WACL,GAAI5F,KAMJ,OALAhI,GAAKlkH,KAAKimH,QAAQmI,YAAa,SAASd,GAChC9I,EAAS8I,EAAWj+G,QAAQ63B,QAASomF,MACrCpB,EAAUA,EAAQ7jH,OAAOilH,EAAWz/F,qBAGrCo+F,EAAkBC,EAAQ3jH,KAAK,OAO1CwpH,gBAAiB,SAAS36E,GACtB,GAAImf,GAAWnf,EAAMmf,SACjBtpC,EAAYmqB,EAAMgxE,eAGtB,IAAIpoH,KAAKimH,QAAQoB,QAAQ2K,UAErB,WADAz7D,GAAS1sD,gBAIb,IAAIqiH,GAAUlsH,KAAKksH,QACf+F,EAAUjN,EAAMkH,EAASC,MAAuBsF,GAAiBtF,IACjEG,EAAUtH,EAAMkH,EAASK,MAAwBkF,GAAiBlF,IAClEH,EAAUpH,EAAMkH,EAASG,MAAwBoF,GAAiBpF,GAEtE,IAAI4F,EAAS,CAGT,GAAIC,GAAyC,IAA1B96E,EAAM2vE,SAAS1kH,OAC9B8vH,EAAgB/6E,EAAM54B,SAAW,EACjC4zG,EAAiBh7E,EAAM4wE,UAAY,GAEvC,IAAIkK,GAAgBC,GAAiBC,EACjC,OAIR,MAAIhG,IAAWE,MAAf,GAKI2F,GACC3F,GAAWr/F,EAAY6L,IACvBszF,GAAWn/F,EAAYqmC,GACjBtzD,KAAKqyH,WAAW97D,OAH3B,IAWJ87D,WAAY,SAAS97D,GACjBv2D,KAAKimH,QAAQoB,QAAQ2K,WAAY,EACjCz7D,EAAS1sD,kBAiFjB,IAAI8iH,IAAiB,EACjBO,GAAc,EACdD,GAAgB,EAChBD,GAAc,EACdsF,GAAmBtF,GACnBD,GAAkB,EAyBtBL,GAAWnrH,WAKP42F,YAOArjF,IAAK,SAASzF,GAKV,MAJAwxG,IAAO7gH,KAAKqP,QAASA,GAGrBrP,KAAKimH,SAAWjmH,KAAKimH,QAAQuI,YAAY73G,SAClC3W,MAQX0uH,cAAe,SAASrB,GACpB,GAAIpJ,EAAeoJ,EAAiB,gBAAiBrtH,MACjD,MAAOA,KAGX,IAAI4sH,GAAe5sH,KAAK4sH,YAMxB,OALAS,GAAkBD,GAA6BC,EAAiBrtH,MAC3D4sH,EAAaS,EAAgB/2G,MAC9Bs2G,EAAaS,EAAgB/2G,IAAM+2G,EACnCA,EAAgBqB,cAAc1uH,OAE3BA,MAQXuyH,kBAAmB,SAASlF,GACxB,MAAIpJ,GAAeoJ,EAAiB,oBAAqBrtH,MAC9CA,MAGXqtH,EAAkBD,GAA6BC,EAAiBrtH,YACzDA,MAAK4sH,aAAaS,EAAgB/2G,IAClCtW,OAQX2uH,eAAgB,SAAStB,GACrB,GAAIpJ,EAAeoJ,EAAiB,iBAAkBrtH,MAClD,MAAOA,KAGX,IAAI6sH,GAAc7sH,KAAK6sH,WAMvB,OALAQ,GAAkBD,GAA6BC,EAAiBrtH,OACjB,IAA3CklH,EAAQ2H,EAAaQ,KACrBR,EAAYzmH,KAAKinH,GACjBA,EAAgBsB,eAAe3uH,OAE5BA,MAQXwyH,mBAAoB,SAASnF,GACzB,GAAIpJ,EAAeoJ,EAAiB,qBAAsBrtH,MACtD,MAAOA,KAGXqtH,GAAkBD,GAA6BC,EAAiBrtH,KAChE,IAAIm7B,GAAQ+pF,EAAQllH,KAAK6sH,YAAaQ,EAItC,OAHIlyF,IAAS,GACTn7B,KAAK6sH,YAAYj5F,OAAOuH,EAAO,GAE5Bn7B,MAOXyyH,mBAAoB,WAChB,MAAOzyH,MAAK6sH,YAAYxqH,OAAS,GAQrCqwH,iBAAkB,SAASrF,GACvB,QAASrtH,KAAK4sH,aAAaS,EAAgB/2G,KAQ/CzB,KAAM,SAASuiC,GAIX,QAASviC,GAAK/K,GACV/J,EAAKkmH,QAAQpxG,KAAK/K,EAAOstC,GAJ7B,GAAIr3C,GAAOC,KACPi2E,EAAQj2E,KAAKi2E,KAObA,GAAQ+2C,IACRn4G,EAAK9U,EAAKsP,QAAQvF,MAAQgjH,GAAS72C,IAGvCphE,EAAK9U,EAAKsP,QAAQvF,OAEdstC,EAAMu7E,iBACN99G,EAAKuiC,EAAMu7E,iBAIX18C,GAAS+2C,IACTn4G,EAAK9U,EAAKsP,QAAQvF,MAAQgjH,GAAS72C,KAU3C28C,QAAS,SAASx7E,GACd,GAAIp3C,KAAK6yH,UACL,MAAO7yH,MAAK6U,KAAKuiC,EAGrBp3C,MAAKi2E,MA7KM,IAoLf48C,QAAS,WAEL,IADA,GAAIxyH,GAAI,EACDA,EAAIL,KAAK6sH,YAAYxqH,QAAQ,CAChC,KAAMrC,KAAK6sH,YAAYxsH,GAAG41E,OAvLnB,GAuL2C02C,KAC9C,OAAO,CAEXtsH,KAEJ,OAAO,GAOXknH,UAAW,SAAS4J,GAGhB,GAAI2B,GAAiBjS,MAAWsQ,EAGhC,KAAK3M,EAASxkH,KAAKqP,QAAQ63B,QAASlnC,KAAM8yH,IAGtC,MAFA9yH,MAAK4oB,aACL5oB,KAAKi2E,MA3ME,GAgNPj2E,MAAKi2E,OAASq8C,GAAmBvF,GAhN1B,MAiNP/sH,KAAKi2E,MAAQ02C,IAGjB3sH,KAAKi2E,MAAQj2E,KAAKg2E,QAAQ88C,GAItB9yH,KAAKi2E,OAASi3C,GAAcD,GAAgBD,GAAcD,KAC1D/sH,KAAK4yH,QAAQE,IAWrB98C,QAAS,SAASm7C,KAOlBtjG,eAAgB,aAOhBjF,MAAO,cA8DXs0B,EAAQqwE,GAAgBb,GAKpBv0B,UAKI4uB,SAAU,GASdgM,SAAU,SAAS37E,GACf,GAAI47E,GAAiBhzH,KAAKqP,QAAQ03G,QAClC,OAA0B,KAAnBiM,GAAwB57E,EAAM2vE,SAAS1kH,SAAW2wH,GAS7Dh9C,QAAS,SAAS5+B,GACd,GAAI6+B,GAAQj2E,KAAKi2E,MACb0tC,EAAYvsE,EAAMusE,UAElBsP,EAAeh9C,GAASi3C,GAAcD,IACtCzlC,EAAUxnF,KAAK+yH,SAAS37E,EAG5B,OAAI67E,KAAiBtP,EAAYyD,KAAiB5/B,GACvCvR,EAAQ82C,GACRkG,GAAgBzrC,EACnBm8B,EAAYwD,GACLlxC,EAAQ+2C,GACN/2C,EAAQi3C,GAGdj3C,EAAQg3C,GAFJC,GA5VJ,MAiXnBhwE,EAAQswE,GAAeD,IAKnBp1B,UACIruF,MAAO,MACP+uB,UAAW,GACXkuF,SAAU,EACV95F,UAAWkd,IAGftc,eAAgB,WACZ,GAAIZ,GAAYjtB,KAAKqP,QAAQ4d,UACzBi/F,IAOJ,OANIj/F,GAAY6L,IACZozF,EAAQ9lH,KAAKmmH,IAEbt/F,EAAYqmC,IACZ44D,EAAQ9lH,KAAKimH,IAEVH,GAGXgH,cAAe,SAAS97E,GACpB,GAAI/nC,GAAUrP,KAAKqP,QACf8jH,GAAW,EACX30G,EAAW44B,EAAM54B,SACjByO,EAAYmqB,EAAMnqB,UAClBtd,EAAIynC,EAAM9d,OACV3d,EAAIy7B,EAAM1T,MAed,OAZMzW,GAAY5d,EAAQ4d,YAClB5d,EAAQ4d,UAAY6L,IACpB7L,EAAmB,IAANtd,EAAW05G,GAAkB15G,EAAI,EAAK25G,GAAiBC,GACpE4J,EAAWxjH,GAAK3P,KAAKytH,GACrBjvG,EAAW9Z,KAAKge,IAAI00B,EAAM9d,UAE1BrM,EAAmB,IAANtR,EAAW0tG,GAAkB1tG,EAAI,EAAK6tG,GAAeC,GAClE0J,EAAWx3G,GAAK3b,KAAK0tH,GACrBlvG,EAAW9Z,KAAKge,IAAI00B,EAAM1T,UAGlC0T,EAAMnqB,UAAYA,EACXkmG,GAAY30G,EAAWnP,EAAQwpB,WAAa5L,EAAY5d,EAAQ4d,WAG3E8lG,SAAU,SAAS37E,GACf,MAAOm2E,IAAehsH,UAAUwxH,SAASxyH,KAAKP,KAAMo3C,KAC/Cp3C,KAAKi2E,MAAQi3C,MAAkBltH,KAAKi2E,MAAQi3C,KAAgBltH,KAAKkzH,cAAc97E,KAGxFviC,KAAM,SAASuiC,GAEXp3C,KAAKytH,GAAKr2E,EAAM9d,OAChBt5B,KAAK0tH,GAAKt2E,EAAM1T,MAEhB,IAAIzW,GAAYkgG,GAAa/1E,EAAMnqB,UAE/BA,KACAmqB,EAAMu7E,gBAAkB3yH,KAAKqP,QAAQvF,MAAQmjB,GAEjDjtB,KAAKukH,OAAO1vG,KAAKtU,KAAKP,KAAMo3C,MAcpC8F,EAAQywE,GAAiBJ,IAKrBp1B,UACIruF,MAAO,QACP+uB,UAAW,EACXkuF,SAAU,GAGdl5F,eAAgB,WACZ,OAAQs+F,KAGZ4G,SAAU,SAAS37E,GACf,MAAOp3C,MAAKukH,OAAOwO,SAASxyH,KAAKP,KAAMo3C,KAClC1yC,KAAKge,IAAI00B,EAAM3yC,MAAQ,GAAKzE,KAAKqP,QAAQwpB,WAAa74B,KAAKi2E,MAAQi3C,KAG5Er4G,KAAM,SAASuiC,GACX,GAAoB,IAAhBA,EAAM3yC,MAAa,CACnB,GAAI2uH,GAAQh8E,EAAM3yC,MAAQ,EAAI,KAAO,KACrC2yC,GAAMu7E,gBAAkB3yH,KAAKqP,QAAQvF,MAAQspH,EAEjDpzH,KAAKukH,OAAO1vG,KAAKtU,KAAKP,KAAMo3C,MAiBpC8F,EAAQ0wE,GAAiBlB,GAKrBv0B,UACIruF,MAAO,QACPi9G,SAAU,EACVh7F,KAAM,IACN8M,UAAW,GAGfhL,eAAgB,WACZ,OAAQ4+F,KAGZz2C,QAAS,SAAS5+B,GACd,GAAI/nC,GAAUrP,KAAKqP,QACfgkH,EAAgBj8E,EAAM2vE,SAAS1kH,SAAWgN,EAAQ03G,SAClDuM,EAAgBl8E,EAAM54B,SAAWnP,EAAQwpB,UACzC06F,EAAYn8E,EAAM4wE,UAAY34G,EAAQ0c,IAM1C,IAJA/rB,KAAK8tH,OAAS12E,GAITk8E,IAAkBD,GAAkBj8E,EAAMusE,WAAawD,GAAYC,MAAkBmM,EACtFvzH,KAAK4oB,YACF,IAAIwuB,EAAMusE,UAAYuD,GACzBlnH,KAAK4oB,QACL5oB,KAAK6tH,OAAS/J,EAAkB,WAC5B9jH,KAAKi2E,MAAQq8C,GACbtyH,KAAK4yH,WACNvjH,EAAQ0c,KAAM/rB,UACd,IAAIo3C,EAAMusE,UAAYwD,GACzB,MAAOmL,GAEX,OA7gBW,KAghBf1pG,MAAO,WACHsK,aAAalzB,KAAK6tH,SAGtBh5G,KAAM,SAASuiC,GACPp3C,KAAKi2E,QAAUq8C,KAIfl7E,GAAUA,EAAMusE,UAAYwD,GAC5BnnH,KAAKimH,QAAQpxG,KAAK7U,KAAKqP,QAAQvF,MAAQ,KAAMstC,IAE7Cp3C,KAAK8tH,OAAO/F,UAAYznF,KACxBtgC,KAAKimH,QAAQpxG,KAAK7U,KAAKqP,QAAQvF,MAAO9J,KAAK8tH,aAevD5wE,EAAQ6wE,GAAkBR,IAKtBp1B,UACIruF,MAAO,SACP+uB,UAAW,EACXkuF,SAAU,GAGdl5F,eAAgB,WACZ,OAAQs+F,KAGZ4G,SAAU,SAAS37E,GACf,MAAOp3C,MAAKukH,OAAOwO,SAASxyH,KAAKP,KAAMo3C,KAClC1yC,KAAKge,IAAI00B,EAAMsxE,UAAY1oH,KAAKqP,QAAQwpB,WAAa74B,KAAKi2E,MAAQi3C,OAc/EhwE,EAAQ8wE,GAAiBT,IAKrBp1B,UACIruF,MAAO,QACP+uB,UAAW,GACXmwF,SAAU,GACV/7F,UAAW6L,GAAuBw6B,GAClCyzD,SAAU,GAGdl5F,eAAgB,WACZ,MAAO2/F,IAAcjsH,UAAUssB,eAAettB,KAAKP,OAGvD+yH,SAAU,SAAS37E,GACf,GACI4xE,GADA/7F,EAAYjtB,KAAKqP,QAAQ4d,SAW7B,OARIA,IAAa6L,GAAuBw6B,IACpC01D,EAAW5xE,EAAMkxE,gBACVr7F,EAAY6L,GACnBkwF,EAAW5xE,EAAMoxE,iBACVv7F,EAAYqmC,KACnB01D,EAAW5xE,EAAMqxE,kBAGdzoH,KAAKukH,OAAOwO,SAASxyH,KAAKP,KAAMo3C,IACnCnqB,EAAYmqB,EAAMgxE,iBAClBhxE,EAAM54B,SAAWxe,KAAKqP,QAAQwpB,WAC9Bue,EAAMwxE,aAAe5oH,KAAKqP,QAAQ03G,UAClCrkG,GAAIsmG,GAAYhpH,KAAKqP,QAAQ25G,UAAY5xE,EAAMusE,UAAYwD,IAGnEtyG,KAAM,SAASuiC,GACX,GAAInqB,GAAYkgG,GAAa/1E,EAAMgxE,gBAC/Bn7F,IACAjtB,KAAKimH,QAAQpxG,KAAK7U,KAAKqP,QAAQvF,MAAQmjB,EAAWmqB,GAGtDp3C,KAAKimH,QAAQpxG,KAAK7U,KAAKqP,QAAQvF,MAAOstC,MA2B9C8F,EAAQ+wE,GAAevB,GAKnBv0B,UACIruF,MAAO,MACPi9G,SAAU,EACVyM,KAAM,EACN1xF,SAAU,IACV/V,KAAM,IACN8M,UAAW,EACX46F,aAAc,IAGlB5lG,eAAgB,WACZ,OAAQ2+F,KAGZx2C,QAAS,SAAS5+B,GACd,GAAI/nC,GAAUrP,KAAKqP,QAEfgkH,EAAgBj8E,EAAM2vE,SAAS1kH,SAAWgN,EAAQ03G,SAClDuM,EAAgBl8E,EAAM54B,SAAWnP,EAAQwpB,UACzC66F,EAAiBt8E,EAAM4wE,UAAY34G,EAAQ0c,IAI/C,IAFA/rB,KAAK4oB,QAEAwuB,EAAMusE,UAAYuD,IAAgC,IAAflnH,KAAKmZ,MACzC,MAAOnZ,MAAK2zH,aAKhB,IAAIL,GAAiBI,GAAkBL,EAAe,CAClD,GAAIj8E,EAAMusE,WAAawD,GACnB,MAAOnnH,MAAK2zH,aAGhB,IAAIC,IAAgB5zH,KAAKkuH,OAAS92E,EAAM2wE,UAAY/nH,KAAKkuH,MAAQ7+G,EAAQyyB,SACrE+xF,GAAiB7zH,KAAKmuH,SAAWjG,EAAYloH,KAAKmuH,QAAS/2E,EAAMpV,QAAU3yB,EAAQokH,YAEvFzzH,MAAKkuH,MAAQ92E,EAAM2wE,UACnB/nH,KAAKmuH,QAAU/2E,EAAMpV,OAEhB6xF,GAAkBD,EAGnB5zH,KAAKmZ,OAAS,EAFdnZ,KAAKmZ,MAAQ,EAKjBnZ,KAAK8tH,OAAS12E,CAKd,IAAiB,IADFp3C,KAAKmZ,MAAQ9J,EAAQmkH,KAIhC,MAAKxzH,MAAKyyH,sBAGNzyH,KAAK6tH,OAAS/J,EAAkB,WAC5B9jH,KAAKi2E,MAAQq8C,GACbtyH,KAAK4yH,WACNvjH,EAAQyyB,SAAU9hC,MACdktH,IANAoF,GAUnB,MAttBW,KAytBfqB,YAAa,WAIT,MAHA3zH,MAAK6tH,OAAS/J,EAAkB,WAC5B9jH,KAAKi2E,MA3tBE,IA4tBRj2E,KAAKqP,QAAQyyB,SAAU9hC,MA5tBf,IAguBf4oB,MAAO,WACHsK,aAAalzB,KAAK6tH,SAGtBh5G,KAAM,WACE7U,KAAKi2E,OAASq8C,KACdtyH,KAAK8tH,OAAOgG,SAAW9zH,KAAKmZ,MAC5BnZ,KAAKimH,QAAQpxG,KAAK7U,KAAKqP,QAAQvF,MAAO9J,KAAK8tH,YAoBvD94G,GAAO++G,QAAU,QAMjB/+G,GAAOmjF,UAOH67B,WAAW,EAQXxF,YAl9BuB,UAw9BvBtnF,QAAQ,EASRg/E,YAAa,KAObI,WAAY,KAOZ+H,SAEKN,IAAmB7mF,QAAQ,KAC3BymF,IAAkBzmF,QAAQ,IAAS,YACnC8mF,IAAkB/gG,UAAW6L,MAC7B00F,IAAgBvgG,UAAW6L,KAAwB,WACnDm1F,KACAA,IAAgBnkH,MAAO,YAAa0pH,KAAM,IAAK,SAC/C5F,KAQLgB,UAMIqF,WAAY,OAOZC,YAAa,OASbC,aAAc,OAOdC,eAAgB,OAOhBC,SAAU,OAQVC,kBAAmB,iBAoC3B/Q,IAAQhiH,WAMJuT,IAAK,SAASzF,GAaV,MAZAwxG,IAAO7gH,KAAKqP,QAASA,GAGjBA,EAAQm/G,aACRxuH,KAAKwuH,YAAY73G,SAEjBtH,EAAQ62G,cAERlmH,KAAKo3C,MAAMxiC,UACX5U,KAAKo3C,MAAMj1C,OAASkN,EAAQ62G,YAC5BlmH,KAAKo3C,MAAM85B,QAERlxE,MASX0tC,KAAM,SAAS+rB,GACXz5D,KAAKqnH,QAAQnE,QAAUzpD,EA5Db,EADP,GAsEP8tD,UAAW,SAAS4J,GAChB,GAAI9J,GAAUrnH,KAAKqnH,OACnB,KAAIA,EAAQnE,QAAZ,CAKAljH,KAAKwuH,YAAYuD,gBAAgBZ,EAEjC,IAAI7D,GACAc,EAAcpuH,KAAKouH,YAKnBmG,EAAgBlN,EAAQkN,gBAIvBA,GAAkBA,GAAiBA,EAAct+C,MAAQq8C,MAC1DiC,EAAgBlN,EAAQkN,cAAgB,KAI5C,KADA,GAAIl0H,GAAI,EACDA,EAAI+tH,EAAY/rH,QACnBirH,EAAac,EAAY/tH,GA9FnB,IAsGFgnH,EAAQnE,SACHqR,GAAiBjH,GAAciH,IAChCjH,EAAWoF,iBAAiB6B,GAGhCjH,EAAW1kG,QAFX0kG,EAAW/F,UAAU4J,IAOpBoD,GAAiBjH,EAAWr3C,OAASi3C,GAAcD,GAAgBD,MACpEuH,EAAgBlN,EAAQkN,cAAgBjH,GAE5CjtH,MASRa,IAAK,SAASosH,GACV,GAAIA,YAAsBZ,GACtB,MAAOY,EAIX,KAAK,GADDc,GAAcpuH,KAAKouH,YACd/tH,EAAI,EAAGA,EAAI+tH,EAAY/rH,OAAQhC,IACpC,GAAI+tH,EAAY/tH,GAAGgP,QAAQvF,OAASwjH,EAChC,MAAOc,GAAY/tH,EAG3B,OAAO,OASXoV,IAAK,SAAS63G,GACV,GAAIrJ,EAAeqJ,EAAY,MAAOttH,MAClC,MAAOA,KAIX,IAAIw0H,GAAWx0H,KAAKkB,IAAIosH,EAAWj+G,QAAQvF,MAS3C,OARI0qH,IACAx0H,KAAKuY,OAAOi8G,GAGhBx0H,KAAKouH,YAAYhoH,KAAKknH,GACtBA,EAAWrH,QAAUjmH,KAErBA,KAAKwuH,YAAY73G,SACV22G,GAQX/0G,OAAQ,SAAS+0G,GACb,GAAIrJ,EAAeqJ,EAAY,SAAUttH,MACrC,MAAOA,KAMX,IAHAstH,EAAattH,KAAKkB,IAAIosH,GAGN,CACZ,GAAIc,GAAcpuH,KAAKouH,YACnBjzF,EAAQ+pF,EAAQkJ,EAAad,IAElB,IAAXnyF,IACAizF,EAAYx6F,OAAOuH,EAAO,GAC1Bn7B,KAAKwuH,YAAY73G,UAIzB,MAAO3W,OASX0U,GAAI,SAASquG,EAAQW,GACjB,GAAIX,IAAW7/G,GAGXwgH,IAAYxgH,EAAhB,CAIA,GAAIorH,GAAWtuH,KAAKsuH,QAKpB,OAJApK,GAAKY,EAAS/B,GAAS,SAASj5G,GAC5BwkH,EAASxkH,GAASwkH,EAASxkH,OAC3BwkH,EAASxkH,GAAO1D,KAAKs9G,KAElB1jH,OASX2U,IAAK,SAASouG,EAAQW,GAClB,GAAIX,IAAW7/G,EAAf,CAIA,GAAIorH,GAAWtuH,KAAKsuH,QAQpB,OAPApK,GAAKY,EAAS/B,GAAS,SAASj5G,GACvB45G,EAGD4K,EAASxkH,IAAUwkH,EAASxkH,GAAO8pB,OAAOsxF,EAAQoJ,EAASxkH,GAAQ45G,GAAU,SAFtE4K,GAASxkH,KAKjB9J,OAQX6U,KAAM,SAAS/K,EAAOoL,GAEdlV,KAAKqP,QAAQ2kH,WACbnF,GAAgB/kH,EAAOoL,EAI3B,IAAIo5G,GAAWtuH,KAAKsuH,SAASxkH,IAAU9J,KAAKsuH,SAASxkH,GAAOmC,OAC5D,IAAKqiH,GAAaA,EAASjsH,OAA3B,CAIA6S,EAAKzO,KAAOqD,EACZoL,EAAKrL,eAAiB,WAClBqL,EAAKqhD,SAAS1sD,iBAIlB,KADA,GAAIxJ,GAAI,EACDA,EAAIiuH,EAASjsH,QAChBisH,EAASjuH,GAAG6U,GACZ7U,MAQRuU,QAAS,WACL5U,KAAKoJ,SAAWqlH,GAAezuH,MAAM,GAErCA,KAAKsuH,YACLtuH,KAAKqnH,WACLrnH,KAAKo3C,MAAMxiC,UACX5U,KAAKoJ,QAAU,OAyCvBy3G,GAAO7rG,IACHkyG,YAAaA,GACb+D,WAAYA,GACZ9D,UAAWA,GACXC,aAAcA,GAEduF,eAAgBA,GAChBO,YAAaA,GACbD,cAAeA,GACfD,YAAaA,GACbsF,iBAAkBA,GAClBvF,gBAAiBA,GACjB0H,aAlrCe,GAorCfpL,eAAgBA,GAChBC,eAAgBA,GAChBC,gBAAiBA,GACjBC,aAAcA,GACdC,eAAgBA,GAChB3wF,qBAAsBA,GACtBw6B,mBAAoBA,GACpBnpB,cAAeA,GAEfo5E,QAASA,GACTyC,MAAOA,EACPgG,YAAaA,EAEbtF,WAAYA,EACZG,WAAYA,EACZL,kBAAmBA,EACnBI,gBAAiBA,EACjBwD,iBAAkBA,EAElBsC,WAAYA,EACZa,eAAgBA,GAChBmH,IAAKzG,GACL0G,IAAKnH,GACLoH,MAAO5G,GACP6G,MAAOlH,GACPmH,OAAQ/G,GACRgH,MAAOnH,GAEPl5G,GAAImwG,EACJlwG,IAAKowG,EACLb,KAAMA,EACN74C,MAAOA,GACP7lE,OAAQA,GACRq7G,OAAQA,GACR3jE,QAASA,EACT8mE,OAAQA,EACRsB,SAAUA,SAKsB,KAAXv7G,EAAyBA,EAA0B,mBAAThK,MAAuBA,SAC/EiV,OAASA,IAGdwS,EAAgC,WAC9B,MAAOxS,KACRzU,KAAKZ,EAASO,EAAqBP,EAASC,MACbsD,IAActD,EAAOD,QAAU6nB,IAOlEzd,OAAQiI,WAKL,SAAUpS,EAAQD,EAASO,GAMjCP,EAAQkW,KAAO3V,EAAoB,GACnCP,EAAQu6C,QAAUh6C,EAAoB,IAGtCP,EAAQsV,QAAU/U,EAAoB,IACtCP,EAAQ6Z,SAAWtZ,EAAoB,IACvCP,EAAQmW,MAAQ5V,EAAoB,IAGpCP,EAAQq1H,SAAW90H,EAAoB,KACvCP,EAAQs1H,QAAU/0H,EAAoB,KACtCP,EAAQu1H,UACNppG,KAAM5rB,EAAoB,IAC1B40B,SAAU50B,EAAoB,IAC9BmgC,MAAOngC,EAAoB,IAC3BmuB,MAAOnuB,EAAoB,KAC3By0B,SAAUz0B,EAAoB,IAE9BonC,YACE5wB,OACEoX,KAAM5tB,EAAoB,IAC1BuyD,eAAgBvyD,EAAoB,KACpCqyD,QAASryD,EAAoB,KAC7BsyD,UAAWtyD,EAAoB,KAC/B6yC,UAAW7yC,EAAoB,KAGjC4yC,gBAAiB5yC,EAAoB,IACrCqf,UAAWrf,EAAoB,IAC/BstC,YAAattC,EAAoB,IACjCg4B,WAAYh4B,EAAoB,IAChCy8D,SAAUz8D,EAAoB,KAC9B+iE,UAAW/iE,EAAoB,KAC/B08D,WAAY18D,EAAoB,KAChCytC,MAAOztC,EAAoB,IAC3B6vD,QAAS7vD,EAAoB,IAC7B28D,OAAQ38D,EAAoB,KAC5Bu7D,UAAWv7D,EAAoB,KAC/B6zB,SAAU7zB,EAAoB,MAKlCP,EAAQgE,OAASzD,EAAoB,GACrCP,EAAQqV,OAAS9U,EAAoB,IACrCP,EAAQ8nB,SAAWvnB,EAAoB,KAIjC,SAAUN,EAAQD,EAASO,GAgCjC,QAAS80H,GAASttG,EAAWhR,EAAOy5C,EAAQ9gD,GAE1C,KAAMrP,eAAgBg1H,IACpB,KAAM,IAAIxoD,aAAY,mDAIxB,MAAM7mE,MAAMC,QAAQuqD,IAAWA,YAAkBl7C,IAAWk7C,YAAkB32C,KAAa22C,YAAkBrvD,QAAQ,CACnH,GAAIq0H,GAAgB9lH,CACpBA,GAAU8gD,EACVA,EAASglE,EAKP9lH,GAAWA,EAAQ+rD,gBACrBlkD,QAAQC,KAAK,wHAGf,IAAIX,GAAKxW,IAmBT,IAlBAA,KAAKs0B,gBACHrL,MAAO,KACPC,IAAK,KACL2hB,YAAY,EACZna,aACE6D,KAAM,SACN7jB,KAAM,UAER/M,OAAQA,EACRuO,MAAO,KACPC,OAAQ,KACRi3B,UAAW,KACXC,UAAW,MAEbrpC,KAAKqP,QAAUwG,EAAK7P,cAAehG,KAAKs0B,gBAGxCt0B,KAAKqD,QAAQqkB,IACRrY,GAAWA,OAAiC,KAAfA,EAAQ2gB,IAAoB,CAC5DhwB,KAAK+tB,IAAItuB,KAAKgO,MAAM6E,WAAa,QAGjC,KAFA,GAAI8iH,GACAC,EAAUr1H,KAAK+tB,IAAItuB,MACf21H,GAAoBC,GAC1BD,EAAmBrrH,OAAOypC,iBAAiB6hF,EAAS,MAAMpoG,UAC1DooG,EAAUA,EAAQC,aAEpBt1H,MAAKqP,QAAQ2gB,IAAMolG,GAAsD,OAAlCA,EAAiBv2G,kBAExD7e,MAAKqP,QAAQ2gB,IAAM3gB,EAAQ2gB,GAG7BhwB,MAAKqP,QAAQ8xB,YAAc9xB,GAAWA,EAAQ8xB,YAC9CnhC,KAAKqP,QAAQisD,sBAAwBjsD,GAAWA,EAAQisD,sBAGxDt7D,KAAKsnC,cAELtnC,KAAKyS,MACHsb,IAAK/tB,KAAK+tB,IACV3E,SAAUppB,KAAKoC,MACfmtB,SACE7a,GAAI1U,KAAK0U,GAAG6T,KAAKvoB,MACjB2U,IAAK3U,KAAK2U,IAAI4T,KAAKvoB,MACnB6U,KAAM7U,KAAK6U,KAAK0T,KAAKvoB,OAEvB8oB,eACAjT,MACEmhD,SAAU,WACR,MAAOxgD,GAAGqe,SAASqB,KAAKzxB,OAE1BkkD,QAAS,WACP,MAAOnyC,GAAGqe,SAASqB,KAAKA,MAG1BrK,SAAUrV,EAAGm0B,UAAUpiB,KAAK/R,GAC5B0pD,eAAgB1pD,EAAGo0B,gBAAgBriB,KAAK/R,GACxC8V,OAAQ9V,EAAGi0B,QAAQliB,KAAK/R,GACxBioD,aAAcjoD,EAAGk0B,cAAcniB,KAAK/R,KAKxCxW,KAAKspB,MAAQ,GAAI+W,GAAMrgC,KAAKyS,KAAMzS,KAAKqP,SACvCrP,KAAKsnC,WAAWlhC,KAAKpG,KAAKspB,OAC1BtpB,KAAKyS,KAAK6W,MAAQtpB,KAAKspB,MAGvBtpB,KAAK60B,SAAW,GAAId,GAAS/zB,KAAKyS,KAAMzS,KAAKqP,SAC7CrP,KAAKqnC,UAAY,KACjBrnC,KAAKsnC,WAAWlhC,KAAKpG,KAAK60B,UAG1B70B,KAAKuqC,YAAc,GAAIiD,GAAYxtC,KAAKyS,KAAMzS,KAAKqP,SACnDrP,KAAKsnC,WAAWlhC,KAAKpG,KAAKuqC,aAG1BvqC,KAAKyuB,QAAU,GAAIshC,GAAQ/vD,KAAKyS,KAAMzS,KAAKqP,SAC3CrP,KAAKsnC,WAAWlhC,KAAKpG,KAAKyuB,SAE1BzuB,KAAKkxB,UAAY,KACjBlxB,KAAKsxD,WAAa,KAElBtxD,KAAK+tB,IAAItuB,KAAKy2C,QAAU,SAAUpsC,GAChC0M,EAAG3B,KAAK,QAAS2B,EAAG0vB,mBAAmBp8B,KAEzC9J,KAAK+tB,IAAItuB,KAAK81H,WAAa,SAAUzrH,GACnC0M,EAAG3B,KAAK,cAAe2B,EAAG0vB,mBAAmBp8B,KAE/C9J,KAAK+tB,IAAItuB,KAAK+1H,cAAgB,SAAU1rH,GACtC0M,EAAG3B,KAAK,cAAe2B,EAAG0vB,mBAAmBp8B,KAE/C9J,KAAK+tB,IAAItuB,KAAK22C,YAAc,SAAUtsC,GACpC0M,EAAG3B,KAAK,YAAa2B,EAAG0vB,mBAAmBp8B,KAEzCC,OAAOumH,cACTtwH,KAAK+tB,IAAItuB,KAAKg2H,cAAgB,SAAU3rH,GACtC0M,EAAG3B,KAAK,YAAa2B,EAAG0vB,mBAAmBp8B,KAE7C9J,KAAK+tB,IAAItuB,KAAKi2H,cAAgB,SAAU5rH,GACtC0M,EAAG3B,KAAK,YAAa2B,EAAG0vB,mBAAmBp8B,KAE7C9J,KAAK+tB,IAAItuB,KAAKk2H,YAAc,SAAU7rH,GACpC0M,EAAG3B,KAAK,UAAW2B,EAAG0vB,mBAAmBp8B,OAG3C9J,KAAK+tB,IAAItuB,KAAK+nD,YAAc,SAAU19C,GACpC0M,EAAG3B,KAAK,YAAa2B,EAAG0vB,mBAAmBp8B,KAE7C9J,KAAK+tB,IAAItuB,KAAKymD,YAAc,SAAUp8C,GACpC0M,EAAG3B,KAAK,YAAa2B,EAAG0vB,mBAAmBp8B,KAE7C9J,KAAK+tB,IAAItuB,KAAKioD,UAAY,SAAU59C,GAClC0M,EAAG3B,KAAK,UAAW2B,EAAG0vB,mBAAmBp8B,MAK7C9J,KAAK41H,gBAAiB,EACtB51H,KAAK0U,GAAG,UAAW,WACjB,GAAsB,MAAlB1U,KAAKkxB,YAAqBlxB,KAAKqP,QAAQ8xB,YAA3C,CACA,IAAK3qB,EAAGo/G,eAEN,GADAp/G,EAAGo/G,gBAAiB,MACI1yH,IAApBsT,EAAGnH,QAAQ4Z,WAAwC/lB,IAAlBsT,EAAGnH,QAAQ6Z,IAAkB,CAChE,OAAwBhmB,IAApBsT,EAAGnH,QAAQ4Z,WAAwC/lB,IAAlBsT,EAAGnH,QAAQ6Z,IAC9C,GAAII,GAAQ9S,EAAGq/G,cAGjB,IAAI5sG,OAA4B/lB,IAApBsT,EAAGnH,QAAQ4Z,MAAqBzS,EAAGnH,QAAQ4Z,MAAQK,EAAMjlB,IACjE6kB,MAAwBhmB,IAAlBsT,EAAGnH,QAAQ6Z,IAAmB1S,EAAGnH,QAAQ6Z,IAAMI,EAAMhlB,GAC/DkS,GAAGsyB,UAAU7f,EAAOC,GAAO6Y,WAAW,QAEtCvrB,GAAGoyB,KAAM7G,WAAW,KAInBvrB,EAAGqwB,iBAAmBrwB,EAAGswB,yBAC5BtwB,EAAGqwB,iBAAkB,EACrBrwB,EAAGuX,IAAItuB,KAAKgO,MAAM6E,WAAa,UAC3BkE,EAAGnH,QAAQisD,uBACbnoC,WAAW,WACT,MAAO3c,GAAGnH,QAAQisD,yBACjB,OAMLjsD,GACFrP,KAAK0V,WAAWrG,GAId8gD,GACFnwD,KAAKooC,UAAU+nB,GAIbz5C,GACF1W,KAAKmoC,SAASzxB,GAIhB1W,KAAKslC,UAoSP,QAASwwF,GAASplH,GAChB,MAAOmF,GAAKrP,QAAQkK,EAAKwE,KAAK+T,MAAO,QAAQriB,UAQ/C,QAASmvH,GAAOrlH,GACd,GAAIwY,OAAuBhmB,IAAjBwN,EAAKwE,KAAKgU,IAAmBxY,EAAKwE,KAAKgU,IAAMxY,EAAKwE,KAAK+T,KACjE,OAAOpT,GAAKrP,QAAQ0iB,EAAK,QAAQtiB,UAQnC,QAASovH,GAAsBd,EAAUxkH,GACvC,GAAIulH,GAAaf,EAAS9yH,MAAMgkC,cAAcj0B,OAC1Cs3B,EAAgByrF,EAAS9yH,MAAMsF,KAAKyK,OAEpCqc,EAAQ9d,EAAKpG,OACbsf,EAAS4E,EAAM1mB,IACfouH,GAAe,EACfxlG,EAAcwkG,EAASrgG,SAASxlB,QAAQqhB,YAAY6D,KAEpD4hG,EAAU,WACZ,MAAmB,UAAfzlG,EACKlC,EAAMrc,OAASzB,EAAK5I,IAAM4I,EAAKyB,OAE/BzB,EAAK5I,KAIZsuH,GAAkD,EAA5BlB,EAAS3pF,gBAC/B8qF,EAAezsG,EAASusG,IACxBhkH,EAASzB,EAAKyB,MAclB,OAZIkkH,GAAeD,EACbxsG,EAASqsG,GAAcrsG,EAASusG,IAAYhkH,IAC9CyX,GAAUusG,IAAYjB,EAASzmG,QAAQpf,QAAQ6S,OAAOxR,KAAKsgC,UAEpDqlF,EAAelkH,EAASikH,EAAsBH,EACvDrsG,GAAUusG,IAAYhkH,EAAS8jH,EAAaf,EAASzmG,QAAQpf,QAAQ6S,OAAOxR,KAAKsgC,SAEjFklF,GAAe,EAGjBtsG,EAASllB,KAAKL,IAAIulB,EAAQ6f,EAAgBwsF,IAEjCC,aAAcA,EAAcI,aAAc1sG,EAAQusG,QAASE,GAziBtE,GAAI1yH,GAASzD,EAAoB,GAC7B2V,EAAO3V,EAAoB,GAC3B+U,EAAU/U,EAAoB,IAC9BsZ,EAAWtZ,EAAoB,IAC/BmgC,EAAQngC,EAAoB,IAC5B4rB,EAAO5rB,EAAoB,IAC3B6zB,EAAW7zB,EAAoB,IAC/BstC,EAActtC,EAAoB,IAClCg4B,EAAah4B,EAAoB,IACjC6vD,EAAU7vD,EAAoB,IAE9Bsc,EAAatc,EAAoB,IAAIsc,WACrCM,EAAa5c,EAAoB,KAAK4c,WACtC83B,EAAmB10C,EAAoB,KAAK00C,iBAE5CH,EAAev0C,EAAoB,IAAa,QAChD6c,EAAY7c,EAAoB,IAAa,OAqMjD80H,GAASzzH,UAAY,GAAIuqB,GAOzBkpG,EAASzzH,UAAUumC,oBAAsB,WACvC,MAAO,IAAI2M,GAAaz0C,KAAMA,KAAK+tB,IAAIrG,UAAWktB,IAUpDogF,EAASzzH,UAAUie,OAAS,WAC1Bxf,KAAKyuB,SAAWzuB,KAAKyuB,QAAQglC,WAAYC,cAAc,IACvD1zD,KAAKslC,WAGP0vF,EAASzzH,UAAUmU,WAAa,SAAUrG,GASxC,IALmB,IAFF0N,EAAUs7F,SAAShpG,EAASyN,IAG3C5F,QAAQ0G,IAAI,2DAA4DpB,GAE1EsP,EAAKvqB,UAAUmU,WAAWnV,KAAKP,KAAMqP,GAEjC,QAAUA,IACRA,EAAQ5I,OAASzG,KAAKqP,QAAQ5I,KAAM,CACtCzG,KAAKqP,QAAQ5I,KAAO4I,EAAQ5I,IAG5B,IAAIyqB,GAAYlxB,KAAKkxB,SACrB,IAAIA,EAAW,CACb,GAAIkhC,GAAYpyD,KAAK4zD,cACrB5zD,MAAKmoC,SAAS,MACdnoC,KAAKmoC,SAASjX,GACdlxB,KAAK2zD,aAAavB,MAU1B4iE,EAASzzH,UAAU4mC,SAAW,SAAUzxB,GAEtC,GAAI6/G,EAIFA,GAHG7/G,EAEMA,YAAiBzB,IAAWyB,YAAiB8C,GACzC9C,EAGA,GAAIzB,GAAQyB,GACvBjQ,MACEwiB,MAAO,OACPC,IAAK,UARI,KAcflpB,KAAKkxB,UAAYqlG,EACjBv2H,KAAKyuB,SAAWzuB,KAAKyuB,QAAQ0Z,SAASouF,IAOxCvB,EAASzzH,UAAU6mC,UAAY,SAAU+nB,GAEvC,GAAIomE,EACJ,IAAKpmE,EAEE,CACL,GAAI7nD,GAAS,SAAgBkmB,GAC3B,OAAyB,IAAlBA,EAAMuO,QAGbw5F,GADEpmE,YAAkBl7C,IAAWk7C,YAAkB32C,GACpC,GAAIA,GAAS22C,GAAU7nD,OAAQA,IAG/B,GAAI2M,GAAQk7C,EAAO7nD,OAAOA,QATzCiuH,GAAa,IAafv2H,MAAKsxD,WAAailE,EAClBv2H,KAAKyuB,QAAQ2Z,UAAUmuF,IAOzBvB,EAASzzH,UAAUqY,QAAU,SAAU1E,GACjCA,GAAQA,EAAKi7C,QACfnwD,KAAKooC,UAAUlzB,EAAKi7C,QAGlBj7C,GAAQA,EAAKwB,OACf1W,KAAKmoC,SAASjzB,EAAKwB,QAqBvBs+G,EAASzzH,UAAUoyD,aAAe,SAAUt8C,EAAKhI,GAC/CrP,KAAKyuB,SAAWzuB,KAAKyuB,QAAQklC,aAAat8C,GAEtChI,GAAWA,EAAQmnH,OACrBx2H,KAAKw2H,MAAMn/G,EAAKhI,IAQpB2lH,EAASzzH,UAAUqyD,aAAe,WAChC,MAAO5zD,MAAKyuB,SAAWzuB,KAAKyuB,QAAQmlC,oBAetCohE,EAASzzH,UAAUi1H,MAAQ,SAAUlgH,EAAIjH,GACvC,GAAKrP,KAAKkxB,eAAmBhuB,IAANoT,EAAvB,CAEA,GAAIe,GAAM1R,MAAMC,QAAQ0Q,GAAMA,GAAMA,GAGhC4a,EAAYlxB,KAAKkxB,UAAUlZ,aAAa9W,IAAImW,GAC9C5Q,MACEwiB,MAAO,OACPC,IAAK,UAKLD,EAAQ,KACRC,EAAM,IAcV,IAbAgI,EAAUxoB,QAAQ,SAAUuoB,GAC1B,GAAIvvB,GAAIuvB,EAAShI,MAAMriB,UACnB2D,EAAI,OAAS0mB,GAAWA,EAAS/H,IAAItiB,UAAYqqB,EAAShI,MAAMriB,WAEtD,OAAVqiB,GAAkBvnB,EAAIunB,KACxBA,EAAQvnB,IAGE,OAARwnB,GAAgB3e,EAAI2e,KACtBA,EAAM3e,KAII,OAAV0e,GAA0B,OAARC,EAAc,CAClC,GAAI1S,GAAKxW,KAEL0Q,EAAO1Q,KAAKyuB,QAAQ/X,MAAMW,EAAI,IAC9Bo/G,GAAmC,EAAxBz2H,KAAKurC,gBAChBmrF,EAAwB,KAGxBC,EAAyB,SAAgC9zF,EAAM+zF,EAAUpjH,GAC3E,GAAI2xB,GAAiB6wF,EAAsBx/G,EAAI9F,EAM/C,IAJKgmH,IACHA,EAAwBvxF,GAGtBuxF,EAAsBP,SAAWhxF,EAAegxF,SAAYO,EAAsBR,aAAtF,CAEWQ,EAAsBP,SAAWhxF,EAAegxF,SAAWhxF,EAAe+wF,eAEnFQ,EAAwBvxF,EACxBsxF,GAAiC,EAAtBjgH,EAAG+0B,gBAGhB,IAAI8Q,GAAOo6E,EACPn6E,EAAKo6E,EAAsBJ,aAC3B7lG,EAAYjd,EAAO8oC,EAAKD,GAAQC,EAAKD,GAAQxZ,CAEjDrsB,GAAG6uB,eAAe5U,GAEbmmG,GACHpgH,EAAG8uB,YAKHuxF,EAA2B,WAC7B,GAAIC,GAAsBd,EAAsBx/G,EAAI9F,EAEhDomH,GAAoBZ,cAAgBY,EAAoBX,SAAWO,EAAsBP,UAC3F3/G,EAAG6uB,eAAeyxF,EAAoBR,cACtC9/G,EAAG8uB,YAMHyxF,EAAwB,WAE1BF,IAGA1jG,WAAW0jG,EAA0B,MAInCpmH,GAAUwY,EAAQC,GAAO,EACzB4Y,EAAWp9B,KAAKJ,IAAItE,KAAKspB,MAAMJ,IAAMlpB,KAAKspB,MAAML,MAAuB,KAAfC,EAAMD,IAE9D8Y,GAAY1yB,OAAiCnM,KAAtBmM,EAAQ0yB,WAA0B1yB,EAAQ0yB,SAEhEA,KAEH20F,GAA0BR,cAAc,EAAOI,cAAe,EAAGH,SAAU,IAG7En2H,KAAKspB,MAAMsY,SAASnxB,EAASqxB,EAAW,EAAGrxB,EAASqxB,EAAW,GAAKC,UAAWA,GAAag1F,EAAuBJ,MAevH3B,EAASzzH,UAAUqnC,IAAM,SAAUv5B,EAAS1G,GAC1C,GACI2gB,GADAyY,GAAY1yB,OAAiCnM,KAAtBmM,EAAQ0yB,WAA0B1yB,EAAQ0yB,UAGjEoY,EAAUn6C,KAAKkxB,WAAalxB,KAAKkxB,UAAUlZ,YACxB,KAAnBmiC,EAAQ93C,YAAyCa,KAAzBi3C,EAAQj5C,MAAM,GAAGgoB,KAE3CI,EAAQtpB,KAAK6oC,eACb7oC,KAAK4kC,OAAOtb,EAAMjlB,IAAIuC,WAAam7B,UAAWA,GAAap5B,KAG3D2gB,EAAQtpB,KAAK61H,eACb71H,KAAKspB,MAAMsY,SAAStY,EAAMjlB,IAAKilB,EAAMhlB,KAAOy9B,UAAWA,GAAap5B,KAsExEqsH,EAASzzH,UAAUs0H,aAAe,WAEhC,GAAIvsG,GAAQtpB,KAAK6oC,eACbxkC,EAAoB,OAAdilB,EAAMjlB,IAAeilB,EAAMjlB,IAAIuC,UAAY,KACjDtC,EAAoB,OAAdglB,EAAMhlB,IAAeglB,EAAMhlB,IAAIsC,UAAY,KACjDowH,EAAU,KACVC,EAAU,IAEd,IAAW,MAAP5yH,GAAsB,MAAPC,EAAa,CAC9B,GAAIw9B,GAAWx9B,EAAMD,CACjBy9B,IAAY,IACdA,EAAW,GAEb,IAAIyZ,GAASzZ,EAAW9hC,KAAKoC,MAAM4/B,OAAO9vB,MAEtCm9B,KACAC,EAAoB,CAGxBz5B,GAAKnN,QAAQ1I,KAAKyuB,QAAQ/X,MAAO,SAAUhG,EAAMlO,GAC/C,GAAIkO,EAAKud,aAAc,CAErBohB,EAAY7sC,GAAOkO,EAAK8O,QADN,GAElB8vB,EAAoBD,EAAY7sC,GAAKH,SAKzC,IADiBitC,EAAoB,EAGnC,IAAK,GAAIjvC,GAAI,EAAGA,EAAIivC,EAAmBjvC,IACrCwV,EAAKnN,QAAQ2mC,EAAa,SAAUE,GAClCA,EAAIlvC,MA8BV,IAxBAwV,EAAKnN,QAAQ1I,KAAKyuB,QAAQ/X,MAAO,SAAUhG,GACzC,GAEIwmH,GACAC,EAHAluG,EAAQ6sG,EAASplH,GACjBwY,EAAM6sG,EAAOrlH,EAIb1Q,MAAKqP,QAAQ2gB,KACfknG,EAAYjuG,GAASvY,EAAKuhB,gBAAkB,IAAMspB,EAClD47E,EAAUjuG,GAAOxY,EAAKshB,eAAiB,IAAMupB,IAE7C27E,EAAYjuG,GAASvY,EAAKshB,eAAiB,IAAMupB,EACjD47E,EAAUjuG,GAAOxY,EAAKuhB,gBAAkB,IAAMspB,GAG5C27E,EAAY7yH,IACdA,EAAM6yH,EACNF,EAAUtmH,GAERymH,EAAU7yH,IACZA,EAAM6yH,EACNF,EAAUvmH,IAEZ6X,KAAKvoB,OAEHg3H,GAAWC,EAAS,CACtB,GAAIG,GAAMJ,EAAQhlG,eAAiB,GAC/BqlG,EAAMJ,EAAQhlG,gBAAkB,GAChCwR,EAAQzjC,KAAKoC,MAAM4/B,OAAO9vB,MAAQklH,EAAMC,CAExC5zF,GAAQ,IACNzjC,KAAKqP,QAAQ2gB,KACf3rB,EAAMyxH,EAASkB,GAAWK,EAAMv1F,EAAW2B,EAC3Cn/B,EAAMyxH,EAAOkB,GAAWG,EAAMt1F,EAAW2B,IAEzCp/B,EAAMyxH,EAASkB,GAAWI,EAAMt1F,EAAW2B,EAC3Cn/B,EAAMyxH,EAAOkB,GAAWI,EAAMv1F,EAAW2B,KAMjD,OACEp/B,IAAY,MAAPA,EAAc,GAAIS,MAAKT,GAAO,KACnCC,IAAY,MAAPA,EAAc,GAAIQ,MAAKR,GAAO,OAQvC0wH,EAASzzH,UAAUsnC,aAAe,WAChC,GAAIxkC,GAAM,KACNC,EAAM,KAEN61C,EAAUn6C,KAAKkxB,WAAalxB,KAAKkxB,UAAUlZ,YAc/C,OAbImiC,IACFA,EAAQzxC,QAAQ,SAAUgI,GACxB,GAAIuY,GAAQpT,EAAKrP,QAAQkK,EAAKuY,MAAO,QAAQriB,UACzCsiB,EAAMrT,EAAKrP,YAAoBtD,IAAZwN,EAAKwY,IAAmBxY,EAAKwY,IAAMxY,EAAKuY,MAAO,QAAQriB,WAClE,OAARvC,GAAgB4kB,EAAQ5kB,KAC1BA,EAAM4kB,IAEI,OAAR3kB,GAAgB4kB,EAAM5kB,KACxBA,EAAM4kB,MAMV7kB,IAAY,MAAPA,EAAc,GAAIS,MAAKT,GAAO,KACnCC,IAAY,MAAPA,EAAc,GAAIQ,MAAKR,GAAO,OAUvC0wH,EAASzzH,UAAU2kC,mBAAqB,SAAUp8B,GAChD,GAEI6F,GAFAy0B,EAAUt6B,EAAMk4B,OAASl4B,EAAMk4B,OAAOryB,EAAI7F,EAAMs6B,QAChDC,EAAUv6B,EAAMk4B,OAASl4B,EAAMk4B,OAAOrmB,EAAI7R,EAAMu6B,OAGlD10B,GADE3P,KAAKqP,QAAQ2gB,IACXna,EAAKlO,iBAAiB3H,KAAK+tB,IAAI1E,iBAAmB+a,EAElDA,EAAUvuB,EAAKtO,gBAAgBvH,KAAK+tB,IAAI1E,gBAE9C,IAAI1N,GAAI0oB,EAAUxuB,EAAKhO,eAAe7H,KAAK+tB,IAAI1E,iBAE3C3Y,EAAO1Q,KAAKyuB,QAAQwnC,eAAensD,GACnC0kB,EAAQxuB,KAAKyuB,QAAQwoC,gBAAgBntD,GACrCsuB,EAAaF,EAAWqB,qBAAqBzvB,GAE7CmjC,EAAOjtC,KAAKyuB,QAAQpf,QAAQ49B,MAAQ,KACpCxoC,EAAQzE,KAAKyS,KAAKoD,KAAKmhD,WACvB9gC,EAAOl2B,KAAKyS,KAAKoD,KAAK8yC,UACtB58B,EAAO/rB,KAAKyqC,QAAQ96B,GACpB2nH,EAAcrqF,EAAOA,EAAKlhB,EAAMtnB,EAAOyxB,GAAQnK,EAE/C3iB,EAAUyM,EAAK5L,UAAUH,GACzBytH,EAAO,IAiBX,OAhBY,OAAR7mH,EACF6mH,EAAO,OACgB,MAAdn/F,EACTm/F,EAAO,cACE1hH,EAAKxL,UAAUjB,EAASpJ,KAAK60B,SAAS9G,IAAIiG,YACnDujG,EAAO,OACEv3H,KAAKqnC,WAAaxxB,EAAKxL,UAAUjB,EAASpJ,KAAKqnC,UAAUtZ,IAAIiG,YACtEujG,EAAO,OACE1hH,EAAKxL,UAAUjB,EAASpJ,KAAKyuB,QAAQV,IAAIkjB,UAClDsmF,EAAO,cACE1hH,EAAKxL,UAAUjB,EAASpJ,KAAKuqC,YAAY/R,KAClD++F,EAAO,eACE1hH,EAAKxL,UAAUjB,EAASpJ,KAAK+tB,IAAIiU,UAC1Cu1F,EAAO,eAIPztH,MAAOA,EACP4G,KAAMA,EAAOA,EAAK4F,GAAK,KACvBkY,MAAOA,EAAQA,EAAMof,QAAU,KAC/B2pF,KAAMA,EACNC,MAAO1tH,EAAMysD,SAAWzsD,EAAMysD,SAASihE,MAAQ1tH,EAAM0tH,MACrDC,MAAO3tH,EAAMysD,SAAWzsD,EAAMysD,SAASkhE,MAAQ3tH,EAAM2tH,MACrD9nH,EAAGA,EACHgM,EAAGA,EACHoQ,KAAMA,EACNurG,YAAaA,IAQjBtC,EAASzzH,UAAUm2H,kBAAoB,WACjC13H,KAAKspB,MAAMsX,QACb5gC,KAAKspB,MAAMuY,mBAEqB3+B,IAA5BlD,KAAKqP,QAAQ8xB,aACfnhC,KAAK0V,WAAW1V,KAAKqP,SAEvBrP,KAAKspB,MAAMoY,iBAIf9hC,EAAOD,QAAUq1H,GAIX,SAAUp1H,EAAQD,EAASO,GAqBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAhBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAImR,GAAazV,EAAoB,IAEjC0V,EAAcjT,EAAuBgT,GAErC8G,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC3H,EAAS9U,EAAoB,IAC7B2kC,EAAa3kC,EAAoB,IACjC2V,EAAO3V,EAAoB,GAM3Bs0C,EAAc,WAIhB,QAASA,KACP,GAAIK,GAAatvC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,GACrF,EAAImX,EAA0B,SAAG1c,KAAMw0C,GAEvCx0C,KAAK60C,WAAaA,EAClB70C,KAAK23H,WAAY,EACjB33H,KAAK43H,mBAAsBjoH,EAAG,MAASgM,EAAG,OAC1C3b,KAAKmL,EAAI,IAAM,IACfnL,KAAKwL,OAAUL,EAAG,IAAKC,EAAG,IAAKtI,EAAG,IAAKD,EAAG,GAC1C7C,KAAK63H,cAAY30H,GACjBlD,KAAK83H,cAAiB3sH,EAAG,IAAKC,EAAG,IAAKtI,EAAG,IAAKD,EAAG,GACjD7C,KAAK+3H,kBAAgB70H,GACrBlD,KAAKg4H,SAAU,EAGfh4H,KAAKi4H,eAAiB,aACtBj4H,KAAKk4H,cAAgB,aAGrBl4H,KAAKqD,UAolBP,OA3kBA,EAAIuZ,EAAuB,SAAG43B,IAC5BhyC,IAAK,WACLgC,MAAO,SAAkBkjB,OACHxkB,KAAhBlD,KAAKotB,SACPptB,KAAKotB,OAAOxY,UACZ5U,KAAKotB,WAASlqB,IAEhBlD,KAAK0nB,UAAYA,EACjB1nB,KAAK0nB,UAAUlV,YAAYxS,KAAKkzC,OAChClzC,KAAKm4H,cAELn4H,KAAK03G,cASPl1G,IAAK,oBACLgC,MAAO,SAA2BmE,GAChC,GAAwB,kBAAbA,GAGT,KAAM,IAAI9C,OAAM,8EAFhB7F,MAAKi4H,eAAiBtvH,KAY1BnG,IAAK,mBACLgC,MAAO,SAA0BmE,GAC/B,GAAwB,kBAAbA,GAGT,KAAM,IAAI9C,OAAM,+EAFhB7F,MAAKk4H,cAAgBvvH,KAczBnG,IAAK,iBACLgC,MAAO,SAAwBgH,GAC7B,GAAI4sH,IAAeC,MAAO,UAAWC,KAAM,UAAWC,SAAU,UAAWC,WAAY,UAAWzsH,KAAM,UAAW0sH,UAAW,UAAW3sH,MAAO,UAAW4sH,KAAM,UAAWC,SAAU,UAAWC,YAAa,UAAWC,cAAe,UAAWC,kBAAmB,UAAWC,KAAM,UAAWC,YAAa,UAAWC,KAAM,UAAWC,KAAM,UAAWC,aAAc,UAAWC,WAAY,UAAWC,cAAe,UAAWC,YAAa,UAAWC,SAAU,UAAWC,cAAe,UAAWC,UAAW,UAAWC,eAAgB,UAAWC,UAAW,UAAWC,UAAW,UAAWC,UAAW,UAAWC,cAAe,UAAWC,gBAAiB,UAAWC,OAAQ,UAAWC,eAAgB,UAAWC,UAAW,UAAWC,eAAgB,UAAWC,iBAAkB,UAAWC,QAAS,UAAWC,UAAW,UAAWC,UAAW,UAAWC,UAAW,UAAWC,eAAgB,UAAWC,gBAAiB,UAAWC,UAAW,UAAWC,WAAY,UAAWC,WAAY,UAAWC,OAAQ,UAAWC,OAAQ,UAAWC,MAAO,UAAWC,KAAM,UAAWC,QAAS,UAAWC,aAAc,UAAWC,WAAY,UAAWC,QAAS,UAAWC,YAAa,UAAWC,YAAa,UAAWC,aAAc,UAAWC,WAAY,UAAWC,aAAc,UAAWC,WAAY,UAAWC,UAAW,UAAWC,WAAY,UAAWC,YAAa,UAAWC,OAAQ,UAAWC,MAAO,UAAWC,SAAU,UAAWC,UAAW,UAAWC,YAAa,UAAWC,cAAe,UAAWC,eAAgB,UAAWC,WAAY,UAAWC,UAAW,UAAWC,cAAe,UAAWC,aAAc,UAAWC,UAAW,UAAWC,UAAW,UAAWC,OAAQ,UAAWC,gBAAiB,UAAWC,UAAW,UAAWC,KAAM,UAAWC,UAAW,UAAWC,IAAK,UAAWC,UAAW,UAAWC,cAAe,UAAWC,QAAS,UAAWC,OAAQ,UAAWC,UAAW,UAAWC,QAAS,UAAWC,UAAW,UAAWC,KAAM,UAAWC,UAAW,UAAWC,UAAW,UAAWC,SAAU,UAAWC,WAAY,UAAWC,OAAQ,UAAWC,cAAe,UAAWC,WAAY,UAAWC,MAAO,UAAWC,UAAW,UAAWC,SAAU,UAAWC,MAAO,UAAWC,WAAY,UAAWC,MAAO,UAAWC,MAAO,UAAWC,WAAY,UAAWC,UAAW,UAAWC,WAAY,UAAWC,OAAQ,UAAWC,aAAc,UAAWC,MAAO,UAAWC,qBAAsB,UAAWC,QAAS,UAAWlzH,IAAK,UAAWmzH,QAAS,UAAWC,QAAS,UAAWC,SAAU,UAAWC,UAAW,UAAWC,OAAQ,UAAWC,QAAS,UAAWC,MAAO,UAAWC,WAAY,UAAWC,YAAa,UAAWC,OAAQ,UAAWC,UAAW,UAAWC,KAAM,UAAWC,KAAM,UAAWC,UAAW,UAAWC,YAAa,UAAWC,SAAU,UAAWC,OAAQ,UAAWC,UAAW,UAAWC,eAAgB,UAAWC,WAAY,UAAWC,cAAe,UAAWC,SAAU,UAAWC,SAAU,UAAWC,aAAc,UAAWC,YAAa,UAAWC,KAAM,UAAWC,OAAQ,UAAWC,YAAa,UAAWC,MAAO,UAAWC,MAAO,UACjgG,IAAqB,gBAAVr1H,GACT,MAAO4sH,GAAW5sH,MAkBtBhJ,IAAK,WACLgC,MAAO,SAAkBgH,GACvB,GAAIs1H,KAAav7H,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAEhF,IAAc,SAAViG,EAAJ,CAIA,GAAIgD,OAAO,GAGPuyH,EAAY/gI,KAAKghI,eAAex1H,EAMpC,QALkBtI,KAAd69H,IACFv1H,EAAQu1H,IAImB,IAAzBlrH,EAAKlR,SAAS6G,IAChB,IAA+B,IAA3BqK,EAAK1J,WAAWX,GAAiB,CACnC,GAAIy1H,GAAYz1H,EAAMG,OAAO,GAAGA,OAAO,EAAGH,EAAMnJ,OAAS,GAAG8F,MAAM,IAClEqG,IAASrD,EAAG81H,EAAU,GAAI71H,EAAG61H,EAAU,GAAIn+H,EAAGm+H,EAAU,GAAIp+H,EAAG,OAC1D,KAAgC,IAA5BgT,EAAKtH,YAAY/C,GAAiB,CAC3C,GAAI01H,GAAa11H,EAAMG,OAAO,GAAGA,OAAO,EAAGH,EAAMnJ,OAAS,GAAG8F,MAAM,IACnEqG,IAASrD,EAAG+1H,EAAW,GAAI91H,EAAG81H,EAAW,GAAIp+H,EAAGo+H,EAAW,GAAIr+H,EAAGq+H,EAAW,QACxE,KAA+B,IAA3BrrH,EAAKxJ,WAAWb,GAAiB,CAC1C,GAAI21H,GAAStrH,EAAK9K,SAASS,EAC3BgD,IAASrD,EAAGg2H,EAAOh2H,EAAGC,EAAG+1H,EAAO/1H,EAAGtI,EAAGq+H,EAAOr+H,EAAGD,EAAG,QAGrD,IAAI2I,YAAiB1K,aACHoC,KAAZsI,EAAML,OAA+BjI,KAAZsI,EAAMJ,OAA+BlI,KAAZsI,EAAM1I,EAAiB,CAC3E,GAAIo5D,OAAoBh5D,KAAZsI,EAAM3I,EAAkB2I,EAAM3I,EAAI,KAC9C2L,IAASrD,EAAGK,EAAML,EAAGC,EAAGI,EAAMJ,EAAGtI,EAAG0I,EAAM1I,EAAGD,EAAGq5D,GAMtD,OAAah5D,KAATsL,EACF,KAAM,IAAI3I,OAAM,iIAAkI,EAAI+P,EAAqB,SAAGpK,GAE9KxL,MAAKohI,UAAU5yH,EAAMsyH,OAUzBt+H,IAAK,OACLgC,MAAO,eACsBtB,KAAvBlD,KAAKk4H,gBACPl4H,KAAKk4H,gBACLl4H,KAAKk4H,kBAAgBh1H,IAGvBlD,KAAKg4H,SAAU,EACfh4H,KAAKkzC,MAAMzlC,MAAMqxB,QAAU,QAC3B9+B,KAAKqhI,wBAaP7+H,IAAK,QACLgC,MAAO,WACL,GAAIoxC,GAAQ51C,MAKU,OAHFuF,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,MAIjFvF,KAAK+3H,cAAgBliH,EAAKrQ,UAAWxF,KAAKwL,SAGvB,IAAjBxL,KAAKg4H,SACPh4H,KAAKi4H,eAAej4H,KAAK83H,cAG3B93H,KAAKkzC,MAAMzlC,MAAMqxB,QAAU,OAI3B3L,WAAW;0BACmBjwB,KAAxB0yC,EAAMsiF,gBACRtiF,EAAMsiF,gBACNtiF,EAAMsiF,kBAAgBh1H,KAEvB,MASLV,IAAK,QACLgC,MAAO,WACLxE,KAAKi4H,eAAej4H,KAAKwL,OACzBxL,KAAKg4H,SAAU,EACfh4H,KAAKshI,WASP9+H,IAAK,SACLgC,MAAO,WACLxE,KAAKg4H,SAAU,EACfh4H,KAAKi4H,eAAej4H,KAAKwL,OACzBxL,KAAKuhI,cAAcvhI,KAAKwL,UAS1BhJ,IAAK,YACLgC,MAAO,eACsBtB,KAAvBlD,KAAK+3H,cACP/3H,KAAKs4C,SAASt4C,KAAK+3H,eAAe,GAElCyJ,MAAM,wCAYVh/H,IAAK,YACLgC,MAAO,SAAmBgK,IAIL,OAHFjJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,MAI9EvF,KAAK83H,aAAejiH,EAAKrQ,UAAWgJ,IAGtCxO,KAAKwL,MAAQgD,CACb,IAAIlC,GAAMuJ,EAAK1I,SAASqB,EAAKrD,EAAGqD,EAAKpD,EAAGoD,EAAK1L,GAEzC2+H,EAAe,EAAI/8H,KAAK47C,GACxBr+B,EAASjiB,KAAKmL,EAAImB,EAAI5K,EACtBiO,EAAI3P,KAAK43H,kBAAkBjoH,EAAIsS,EAASvd,KAAKke,IAAI6+G,EAAen1H,EAAIG,GACpEkP,EAAI3b,KAAK43H,kBAAkBj8G,EAAIsG,EAASvd,KAAKie,IAAI8+G,EAAen1H,EAAIG,EAExEzM,MAAK0hI,oBAAoBj0H,MAAM/F,KAAOiI,EAAI,GAAM3P,KAAK0hI,oBAAoB7uH,YAAc,KACvF7S,KAAK0hI,oBAAoBj0H,MAAM3F,IAAM6T,EAAI,GAAM3b,KAAK0hI,oBAAoB1pG,aAAe,KAEvFh4B,KAAKuhI,cAAc/yH,MAUrBhM,IAAK,cACLgC,MAAO,SAAqBA,GAC1BxE,KAAKwL,MAAM3I,EAAI2B,EAAQ,IACvBxE,KAAKuhI,cAAcvhI,KAAKwL,UAU1BhJ,IAAK,iBACLgC,MAAO,SAAwBA,GAC7B,GAAI8H,GAAMuJ,EAAK1I,SAASnN,KAAKwL,MAAML,EAAGnL,KAAKwL,MAAMJ,EAAGpL,KAAKwL,MAAM1I,EAC/DwJ,GAAII,EAAIlI,EAAQ,GAChB,IAAIgK,GAAOqH,EAAK5H,SAAS3B,EAAIG,EAAGH,EAAI5K,EAAG4K,EAAII,EAC3C8B,GAAQ,EAAIxO,KAAKwL,MAAM3I,EACvB7C,KAAKwL,MAAQgD,EACbxO,KAAKuhI,mBAUP/+H,IAAK,gBACLgC,MAAO,WACL,GAAIgK,GAAOjJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKwL,MAEhFc,EAAMuJ,EAAK1I,SAASqB,EAAKrD,EAAGqD,EAAKpD,EAAGoD,EAAK1L,GACzCgd,EAAM9f,KAAK2hI,kBAAkBjoB,WAAW,UACnBx2G,KAArBlD,KAAK4hI,cACP5hI,KAAK60C,YAAc9qC,OAAO83H,kBAAoB,IAAM/hH,EAAIgiH,8BAAgChiH,EAAIiiH,2BAA6BjiH,EAAIkiH,0BAA4BliH,EAAImiH,yBAA2BniH,EAAIoiH,wBAA0B,IAExNpiH,EAAIqiH,aAAaniI,KAAK60C,WAAY,EAAG,EAAG70C,KAAK60C,WAAY,EAAG,EAG5D,IAAIswC,GAAInlF,KAAK2hI,kBAAkB9uH,YAC3BpG,EAAIzM,KAAK2hI,kBAAkB3pG,YAC/BlY,GAAI65F,UAAU,EAAG,EAAGx0B,EAAG14E,GAEvBqT,EAAIsiH,aAAapiI,KAAK63H,UAAW,EAAG,GACpC/3G,EAAIiE,UAAY,eAAiB,EAAIzX,EAAII,GAAK,IAC9CoT,EAAIu7B,OAAOr7C,KAAK43H,kBAAkBjoH,EAAG3P,KAAK43H,kBAAkBj8G,EAAG3b,KAAKmL,GACpE2U,EAAIwE,OAEJtkB,KAAKqiI,gBAAgB79H,MAAQ,IAAM8H,EAAII,EACvC1M,KAAKsiI,aAAa99H,MAAQ,IAAMgK,EAAK3L,EAErC7C,KAAKuiI,gBAAgB90H,MAAMyqC,gBAAkB,QAAUl4C,KAAK83H,aAAa3sH,EAAI,IAAMnL,KAAK83H,aAAa1sH,EAAI,IAAMpL,KAAK83H,aAAah1H,EAAI,IAAM9C,KAAK83H,aAAaj1H,EAAI,IACjK7C,KAAKwiI,YAAY/0H,MAAMyqC,gBAAkB,QAAUl4C,KAAKwL,MAAML,EAAI,IAAMnL,KAAKwL,MAAMJ,EAAI,IAAMpL,KAAKwL,MAAM1I,EAAI,IAAM9C,KAAKwL,MAAM3I,EAAI,OASnIL,IAAK,WACLgC,MAAO,WACLxE,KAAK2hI,kBAAkBl0H,MAAMyE,MAAQ,OACrClS,KAAK2hI,kBAAkBl0H,MAAM0E,OAAS,OAEtCnS,KAAK2hI,kBAAkBzvH,MAAQ,IAAMlS,KAAK60C,WAC1C70C,KAAK2hI,kBAAkBxvH,OAAS,IAAMnS,KAAK60C,cAU7CryC,IAAK,UACLgC,MAAO,WAYL,GAXAxE,KAAKkzC,MAAQlhC,SAASC,cAAc,OACpCjS,KAAKkzC,MAAMhrC,UAAY,mBAEvBlI,KAAKyiI,eAAiBzwH,SAASC,cAAc,OAC7CjS,KAAK0hI,oBAAsB1vH,SAASC,cAAc,OAClDjS,KAAK0hI,oBAAoBx5H,UAAY,eACrClI,KAAKyiI,eAAejwH,YAAYxS,KAAK0hI,qBAErC1hI,KAAK2hI,kBAAoB3vH,SAASC,cAAc,UAChDjS,KAAKyiI,eAAejwH,YAAYxS,KAAK2hI,mBAEhC3hI,KAAK2hI,kBAAkBjoB,WAOrB,CACL,GAAI55F,GAAM9f,KAAK2hI,kBAAkBjoB,WAAW,KAC5C15G,MAAK60C,YAAc9qC,OAAO83H,kBAAoB,IAAM/hH,EAAIgiH,8BAAgChiH,EAAIiiH,2BAA6BjiH,EAAIkiH,0BAA4BliH,EAAImiH,yBAA2BniH,EAAIoiH,wBAA0B,GAEtNliI,KAAK2hI,kBAAkBjoB,WAAW,MAAMyoB,aAAaniI,KAAK60C,WAAY,EAAG,EAAG70C,KAAK60C,WAAY,EAAG,OAX1D,CACtC,GAAIoiE,GAAWjlG,SAASC,cAAc,MACtCglG,GAASxpG,MAAMjC,MAAQ,MACvByrG,EAASxpG,MAAMypG,WAAa,OAC5BD,EAASxpG,MAAMotD,QAAU,OACzBo8C,EAASpmF,UAAY,mDACrB7wB,KAAK2hI,kBAAkBnvH,YAAYykG,GAQrCj3G,KAAKyiI,eAAev6H,UAAY,YAEhClI,KAAK0iI,WAAa1wH,SAASC,cAAc,OACzCjS,KAAK0iI,WAAWx6H,UAAY,cAE5BlI,KAAK2iI,cAAgB3wH,SAASC,cAAc,OAC5CjS,KAAK2iI,cAAcz6H,UAAY,iBAE/BlI,KAAK4iI,SAAW5wH,SAASC,cAAc,OACvCjS,KAAK4iI,SAAS16H,UAAY,YAE1BlI,KAAKsiI,aAAetwH,SAASC,cAAc,QAC3C,KACEjS,KAAKsiI,aAAa77H,KAAO,QACzBzG,KAAKsiI,aAAaj+H,IAAM,IACxBrE,KAAKsiI,aAAah+H,IAAM,MAG1B,MAAOoP,IACP1T,KAAKsiI,aAAa99H,MAAQ,MAC1BxE,KAAKsiI,aAAap6H,UAAY,YAE9BlI,KAAKqiI,gBAAkBrwH,SAASC,cAAc,QAC9C,KACEjS,KAAKqiI,gBAAgB57H,KAAO,QAC5BzG,KAAKqiI,gBAAgBh+H,IAAM,IAC3BrE,KAAKqiI,gBAAgB/9H,IAAM,MAG7B,MAAOoP,IACP1T,KAAKqiI,gBAAgB79H,MAAQ,MAC7BxE,KAAKqiI,gBAAgBn6H,UAAY,YAEjClI,KAAK0iI,WAAWlwH,YAAYxS,KAAKsiI,cACjCtiI,KAAK2iI,cAAcnwH,YAAYxS,KAAKqiI,gBAEpC,IAAI7rH,GAAKxW,IACTA,MAAKsiI,aAAavrF,SAAW,WAC3BvgC,EAAGqsH,YAAY7iI,KAAKwE,QAEtBxE,KAAKsiI,aAAajrF,QAAU,WAC1B7gC,EAAGqsH,YAAY7iI,KAAKwE,QAEtBxE,KAAKqiI,gBAAgBtrF,SAAW,WAC9BvgC,EAAGssH,eAAe9iI,KAAKwE,QAEzBxE,KAAKqiI,gBAAgBhrF,QAAU,WAC7B7gC,EAAGssH,eAAe9iI,KAAKwE,QAGzBxE,KAAK+iI,gBAAkB/wH,SAASC,cAAc,OAC9CjS,KAAK+iI,gBAAgB76H,UAAY,2BACjClI,KAAK+iI,gBAAgBlyG,UAAY,cAEjC7wB,KAAKgjI,aAAehxH,SAASC,cAAc,OAC3CjS,KAAKgjI,aAAa96H,UAAY,wBAC9BlI,KAAKgjI,aAAanyG,UAAY,WAE9B7wB,KAAKwiI,YAAcxwH,SAASC,cAAc,OAC1CjS,KAAKwiI,YAAYt6H,UAAY,gBAC7BlI,KAAKwiI,YAAY3xG,UAAY,MAE7B7wB,KAAKuiI,gBAAkBvwH,SAASC,cAAc,OAC9CjS,KAAKuiI,gBAAgBr6H,UAAY,oBACjClI,KAAKuiI,gBAAgB1xG,UAAY,UAEjC7wB,KAAKijI,aAAejxH,SAASC,cAAc,OAC3CjS,KAAKijI,aAAa/6H,UAAY,wBAC9BlI,KAAKijI,aAAapyG,UAAY,SAC9B7wB,KAAKijI,aAAa/sF,QAAUl2C,KAAKshI,MAAM/4G,KAAKvoB,MAAM,GAElDA,KAAKkjI,YAAclxH,SAASC,cAAc,OAC1CjS,KAAKkjI,YAAYh7H,UAAY,uBAC7BlI,KAAKkjI,YAAYryG,UAAY,QAC7B7wB,KAAKkjI,YAAYhtF,QAAUl2C,KAAKmjI,OAAO56G,KAAKvoB,MAE5CA,KAAKojI,WAAapxH,SAASC,cAAc,OACzCjS,KAAKojI,WAAWl7H,UAAY,sBAC5BlI,KAAKojI,WAAWvyG,UAAY,OAC5B7wB,KAAKojI,WAAWltF,QAAUl2C,KAAKqjI,MAAM96G,KAAKvoB,MAE1CA,KAAKsjI,WAAatxH,SAASC,cAAc,OACzCjS,KAAKsjI,WAAWp7H,UAAY,sBAC5BlI,KAAKsjI,WAAWzyG,UAAY,YAC5B7wB,KAAKsjI,WAAWptF,QAAUl2C,KAAKujI,UAAUh7G,KAAKvoB,MAE9CA,KAAKkzC,MAAM1gC,YAAYxS,KAAKyiI,gBAC5BziI,KAAKkzC,MAAM1gC,YAAYxS,KAAK4iI,UAC5B5iI,KAAKkzC,MAAM1gC,YAAYxS,KAAK+iI,iBAC5B/iI,KAAKkzC,MAAM1gC,YAAYxS,KAAK2iI,eAC5B3iI,KAAKkzC,MAAM1gC,YAAYxS,KAAKgjI,cAC5BhjI,KAAKkzC,MAAM1gC,YAAYxS,KAAK0iI,YAC5B1iI,KAAKkzC,MAAM1gC,YAAYxS,KAAKwiI,aAC5BxiI,KAAKkzC,MAAM1gC,YAAYxS,KAAKuiI,iBAE5BviI,KAAKkzC,MAAM1gC,YAAYxS,KAAKijI,cAC5BjjI,KAAKkzC,MAAM1gC,YAAYxS,KAAKkjI,aAC5BljI,KAAKkzC,MAAM1gC,YAAYxS,KAAKojI,YAC5BpjI,KAAKkzC,MAAM1gC,YAAYxS,KAAKsjI,eAS9B9gI,IAAK,cACLgC,MAAO,WACL,GAAIgzC,GAASx3C,IAEbA,MAAKy4B,QACLz4B,KAAKwjI,SACLxjI,KAAKotB,OAAS,GAAIpY,GAAOhV,KAAK2hI,mBAC9B3hI,KAAKotB,OAAOlsB,IAAI,SAAS4T,KAAMoyB,QAAQ,IAEvCrC,EAAW1X,QAAQntB,KAAKotB,OAAQ,SAAUtjB,GACxC0tC,EAAOisF,cAAc35H,KAEvB9J,KAAKotB,OAAO1Y,GAAG,MAAO,SAAU5K,GAC9B0tC,EAAOisF,cAAc35H,KAEvB9J,KAAKotB,OAAO1Y,GAAG,WAAY,SAAU5K,GACnC0tC,EAAOisF,cAAc35H,KAEvB9J,KAAKotB,OAAO1Y,GAAG,UAAW,SAAU5K,GAClC0tC,EAAOisF,cAAc35H,KAEvB9J,KAAKotB,OAAO1Y,GAAG,SAAU,SAAU5K,GACjC0tC,EAAOisF,cAAc35H,QAUzBtH,IAAK,qBACLgC,MAAO,WACL,IAAuB,IAAnBxE,KAAK23H,UAAqB,CAC5B,GAAI73G,GAAM9f,KAAK2hI,kBAAkBjoB,WAAW,UACnBx2G,KAArBlD,KAAK4hI,cACP5hI,KAAK60C,YAAc9qC,OAAO83H,kBAAoB,IAAM/hH,EAAIgiH,8BAAgChiH,EAAIiiH,2BAA6BjiH,EAAIkiH,0BAA4BliH,EAAImiH,yBAA2BniH,EAAIoiH,wBAA0B,IAExNpiH,EAAIqiH,aAAaniI,KAAK60C,WAAY,EAAG,EAAG70C,KAAK60C,WAAY,EAAG,EAG5D,IAAIswC,GAAInlF,KAAK2hI,kBAAkB9uH,YAC3BpG,EAAIzM,KAAK2hI,kBAAkB3pG,YAC/BlY,GAAI65F,UAAU,EAAG,EAAGx0B,EAAG14E,EAGvB,IAAIkD,OAAI,GACJgM,MAAI,GACJs+F,MAAM,GACNypB,MAAM,EACV1jI,MAAK43H,mBAAsBjoH,EAAO,GAAJw1E,EAASxpE,EAAO,GAAJlP,GAC1CzM,KAAKmL,EAAI,IAAOg6E,CAChB,IAAIs8C,GAAe,EAAI/8H,KAAK47C,GAAK,IAE7BqjF,EAAO,EAAI3jI,KAAKmL,EAChBO,MAAM,EACV,KAAKuuG,EAAM,EAAGA,EAAM,IAAKA,IACvB,IAAKypB,EAAM,EAAGA,EAAM1jI,KAAKmL,EAAGu4H,IAC1B/zH,EAAI3P,KAAK43H,kBAAkBjoH,EAAI+zH,EAAMh/H,KAAKke,IAAI6+G,EAAexnB,GAC7Dt+F,EAAI3b,KAAK43H,kBAAkBj8G,EAAI+nH,EAAMh/H,KAAKie,IAAI8+G,EAAexnB,GAC7DvuG,EAAMmK,EAAK5H,SAASgsG,GAPb,EAAI,KAOqBypB,EAAMC,EAAM,GAC5C7jH,EAAIiE,UAAY,OAASrY,EAAIP,EAAI,IAAMO,EAAIN,EAAI,IAAMM,EAAI5I,EAAI,IAC7Dgd,EAAI20D,SAAS9kE,EAAI,GAAKgM,EAAI,GAAK,EAAG,EAGtCmE,GAAI+D,YAAc,gBAClB/D,EAAIu7B,OAAOr7C,KAAK43H,kBAAkBjoH,EAAG3P,KAAK43H,kBAAkBj8G,EAAG3b,KAAKmL,GACpE2U,EAAIoE,SAEJlkB,KAAK63H,UAAY/3G,EAAI8jH,aAAa,EAAG,EAAGz+C,EAAG14E,GAE7CzM,KAAK23H,WAAY,KAWnBn1H,IAAK,gBACLgC,MAAO,SAAuBsF,GAC5B,GAAIyS,GAAOvc,KAAKyiI,eAAeh7H,wBAC3BC,EAAOoC,EAAMk4B,OAAOryB,EAAI4M,EAAK7U,KAC7BI,EAAMgC,EAAMk4B,OAAOrmB,EAAIY,EAAKzU,IAE5B6zE,EAAU,GAAM37E,KAAKyiI,eAAezqG,aACpC0jD,EAAU,GAAM17E,KAAKyiI,eAAe5vH,YAEpClD,EAAIjI,EAAOg0E,EACX//D,EAAI7T,EAAM6zE,EAEVp5D,EAAQ7d,KAAK27C,MAAM1wC,EAAGgM,GACtBsG,EAAS,IAAOvd,KAAKL,IAAIK,KAAK2iB,KAAK1X,EAAIA,EAAIgM,EAAIA,GAAI+/D,GAEnD1hB,EAASt1D,KAAKie,IAAIJ,GAASN,EAAS05D,EACpCkoD,EAAUn/H,KAAKke,IAAIL,GAASN,EAASy5D,CAEzC17E,MAAK0hI,oBAAoBj0H,MAAM3F,IAAMkyD,EAAS,GAAMh6D,KAAK0hI,oBAAoB1pG,aAAe,KAC5Fh4B,KAAK0hI,oBAAoBj0H,MAAM/F,KAAOm8H,EAAU,GAAM7jI,KAAK0hI,oBAAoB7uH,YAAc,IAG7F,IAAIpG,GAAI8V,GAAS,EAAI7d,KAAK47C,GAC1B7zC,GAAIA,EAAI,EAAIA,EAAI,EAAIA,CACpB,IAAI/K,GAAIugB,EAASjiB,KAAKmL,EAClBmB,EAAMuJ,EAAK1I,SAASnN,KAAKwL,MAAML,EAAGnL,KAAKwL,MAAMJ,EAAGpL,KAAKwL,MAAM1I,EAC/DwJ,GAAIG,EAAIA,EACRH,EAAI5K,EAAIA,CACR,IAAI8M,GAAOqH,EAAK5H,SAAS3B,EAAIG,EAAGH,EAAI5K,EAAG4K,EAAII,EAC3C8B,GAAQ,EAAIxO,KAAKwL,MAAM3I,EACvB7C,KAAKwL,MAAQgD,EAGbxO,KAAKuiI,gBAAgB90H,MAAMyqC,gBAAkB,QAAUl4C,KAAK83H,aAAa3sH,EAAI,IAAMnL,KAAK83H,aAAa1sH,EAAI,IAAMpL,KAAK83H,aAAah1H,EAAI,IAAM9C,KAAK83H,aAAaj1H,EAAI,IACjK7C,KAAKwiI,YAAY/0H,MAAMyqC,gBAAkB,QAAUl4C,KAAKwL,MAAML,EAAI,IAAMnL,KAAKwL,MAAMJ,EAAI,IAAMpL,KAAKwL,MAAM1I,EAAI,IAAM9C,KAAKwL,MAAM3I,EAAI,QAG9H2xC,IAGT70C,GAAiB,QAAI60C,GAIf,SAAU50C,EAAQD,EAASO,GAgCjC,QAAS+0H,GAAQvtG,EAAWhR,EAAOy5C,EAAQ9gD,GAEzC,KAAM1J,MAAMC,QAAQuqD,IAAWA,YAAkBl7C,IAAWk7C,YAAkB32C,KAAa22C,YAAkBrvD,QAAQ,CACnH,GAAIq0H,GAAgB9lH,CACpBA,GAAU8gD,EACVA,EAASglE,EAKP9lH,GAAWA,EAAQ+rD,gBACrBlkD,QAAQC,KAAK,uHAGf,IAAIX,GAAKxW,IACTA,MAAKs0B,gBACHrL,MAAO,KACPC,IAAK,KAEL2hB,YAAY,EAEZna,aACE6D,KAAM,SACN7jB,KAAM,UAGR/M,OAAQA,EAERuO,MAAO,KACPC,OAAQ,KACRi3B,UAAW,KACXC,UAAW,MAEbrpC,KAAKqP,QAAUwG,EAAK7P,cAAehG,KAAKs0B,gBAGxCt0B,KAAKqD,QAAQqkB,GAGb1nB,KAAKsnC,cAELtnC,KAAKyS,MACHsb,IAAK/tB,KAAK+tB,IACV3E,SAAUppB,KAAKoC,MACfmtB,SACE7a,GAAI1U,KAAK0U,GAAG6T,KAAKvoB,MACjB2U,IAAK3U,KAAK2U,IAAI4T,KAAKvoB,MACnB6U,KAAM7U,KAAK6U,KAAK0T,KAAKvoB,OAEvB8oB,eACAjT,MACEgW,SAAUrV,EAAGm0B,UAAUpiB,KAAK/R,GAC5B0pD,eAAgB1pD,EAAGo0B,gBAAgBriB,KAAK/R,GACxC8V,OAAQ9V,EAAGi0B,QAAQliB,KAAK/R,GACxBioD,aAAcjoD,EAAGk0B,cAAcniB,KAAK/R,KAKxCxW,KAAKspB,MAAQ,GAAI+W,GAAMrgC,KAAKyS,MAC5BzS,KAAKsnC,WAAWlhC,KAAKpG,KAAKspB,OAC1BtpB,KAAKyS,KAAK6W,MAAQtpB,KAAKspB,MAGvBtpB,KAAK60B,SAAW,GAAId,GAAS/zB,KAAKyS,MAClCzS,KAAKsnC,WAAWlhC,KAAKpG,KAAK60B,UAI1B70B,KAAKuqC,YAAc,GAAIiD,GAAYxtC,KAAKyS,MACxCzS,KAAKsnC,WAAWlhC,KAAKpG,KAAKuqC,aAG1BvqC,KAAK8jI,UAAY,GAAIroE,GAAUz7D,KAAKyS,MAEpCzS,KAAKsnC,WAAWlhC,KAAKpG,KAAK8jI,WAE1B9jI,KAAKkxB,UAAY,KACjBlxB,KAAKsxD,WAAa,KAGlBtxD,KAAK0U,GAAG,MAAO,SAAU5K,GACvB0M,EAAG3B,KAAK,QAAS2B,EAAG0vB,mBAAmBp8B,MAEzC9J,KAAK0U,GAAG,YAAa,SAAU5K,GAC7B0M,EAAG3B,KAAK,cAAe2B,EAAG0vB,mBAAmBp8B,MAE/C9J,KAAK+tB,IAAItuB,KAAK+1H,cAAgB,SAAU1rH,GACtC0M,EAAG3B,KAAK,cAAe2B,EAAG0vB,mBAAmBp8B,KAI3CuF,GACFrP,KAAK0V,WAAWrG,GAId8gD,GACFnwD,KAAKooC,UAAU+nB,GAIbz5C,GACF1W,KAAKmoC,SAASzxB,GAIhB1W,KAAKslC,UAtIP,GAAI3hC,GAASzD,EAAoB,GAC7B2V,EAAO3V,EAAoB,GAC3B+U,EAAU/U,EAAoB,IAC9BsZ,EAAWtZ,EAAoB,IAC/BmgC,EAAQngC,EAAoB,IAC5B4rB,EAAO5rB,EAAoB,IAC3B6zB,EAAW7zB,EAAoB,IAC/BstC,EAActtC,EAAoB,IAClCg4B,EAAah4B,EAAoB,IACjCu7D,EAAYv7D,EAAoB,KAEhCsc,EAAatc,EAAoB,IAAIsc,WACrCM,EAAa5c,EAAoB,KAAK4c,WACtC83B,EAAmB10C,EAAoB,KAAK00C,iBAE5CH,EAAev0C,EAAoB,IAAa,QAChD6c,EAAY7c,EAAoB,IAAa,OA0HjD+0H,GAAQ1zH,UAAY,GAAIuqB,GAExBmpG,EAAQ1zH,UAAUmU,WAAa,SAAUrG,IAGpB,IADF0N,EAAUs7F,SAAShpG,EAASyN,IAE3C5F,QAAQ0G,IAAI,2DAA4DpB,GAG1EsP,EAAKvqB,UAAUmU,WAAWnV,KAAKP,KAAMqP,IAOvC4lH,EAAQ1zH,UAAU4mC,SAAW,SAAUzxB,GACrC,GAGI6/G,GAHAwN,EAAgC,MAAlB/jI,KAAKkxB,SAsBvB,IAfEqlG,EAHG7/G,EAEMA,YAAiBzB,IAAWyB,YAAiB8C,GACzC9C,EAGA,GAAIzB,GAAQyB,GACvBjQ,MACEwiB,MAAO,OACPC,IAAK,UARI,KAcflpB,KAAKkxB,UAAYqlG,EACjBv2H,KAAK8jI,WAAa9jI,KAAK8jI,UAAU37F,SAASouF,GAEtCwN,EACF,OAA0B7gI,IAAtBlD,KAAKqP,QAAQ4Z,WAA0C/lB,IAApBlD,KAAKqP,QAAQ6Z,IAAkB,CACpE,GAAID,OAA8B/lB,IAAtBlD,KAAKqP,QAAQ4Z,MAAqBjpB,KAAKqP,QAAQ4Z,MAAQ,KAC/DC,MAA0BhmB,IAApBlD,KAAKqP,QAAQ6Z,IAAmBlpB,KAAKqP,QAAQ6Z,IAAM,IAC7DlpB,MAAK8oC,UAAU7f,EAAOC,GAAO6Y,WAAW,QAExC/hC,MAAK4oC,KAAM7G,WAAW,KAS5BkzF,EAAQ1zH,UAAU6mC,UAAY,SAAU+nB,GAEtC,GAAIomE,EAIFA,GAHGpmE,EAEMA,YAAkBl7C,IAAWk7C,YAAkB32C,GAC3C22C,EAGA,GAAIl7C,GAAQk7C,GALZ,KAQfnwD,KAAKsxD,WAAailE,EAClBv2H,KAAK8jI,UAAU17F,UAAUmuF,IAU3BtB,EAAQ1zH,UAAU+hE,UAAY,SAAU11B,EAAS17B,EAAOC,GAOtD,WANcjP,KAAVgP,IACFA,EAAQ,QAEKhP,KAAXiP,IACFA,EAAS,QAE4BjP,KAAnClD,KAAK8jI,UAAU3zE,OAAOviB,GACjB5tC,KAAK8jI,UAAU3zE,OAAOviB,GAAS01B,UAAUpxD,EAAOC,GAEhD,sBAAwBy7B,EAAU,KAS7CqnF,EAAQ1zH,UAAUyiI,eAAiB,SAAUp2F,GAC3C,WAAuC1qC,KAAnClD,KAAK8jI,UAAU3zE,OAAOviB,KACjB5tC,KAAK8jI,UAAU3zE,OAAOviB,GAAS7Q,cAAkE75B,KAAtDlD,KAAK8jI,UAAUz0H,QAAQ8gD,OAAO79C,WAAWs7B,IAA+E,GAArD5tC,KAAK8jI,UAAUz0H,QAAQ8gD,OAAO79C,WAAWs7B,MAYlKqnF,EAAQ1zH,UAAUsnC,aAAe,WAC/B,GAAIxkC,GAAM,KACNC,EAAM,IAGV,KAAK,GAAIspC,KAAW5tC,MAAK8jI,UAAU3zE,OACjC,GAAInwD,KAAK8jI,UAAU3zE,OAAO3uD,eAAeosC,IACO,GAA1C5tC,KAAK8jI,UAAU3zE,OAAOviB,GAAS7Q,QACjC,IAAK,GAAI18B,GAAI,EAAGA,EAAIL,KAAK8jI,UAAU3zE,OAAOviB,GAAS1c,UAAU7uB,OAAQhC,IAAK,CACxE,GAAIqQ,GAAO1Q,KAAK8jI,UAAU3zE,OAAOviB,GAAS1c,UAAU7wB,GAChDmE,EAAQqR,EAAKrP,QAAQkK,EAAKf,EAAG,QAAQ/I,SACzCvC,GAAa,MAAPA,EAAcG,EAAQH,EAAMG,EAAQA,EAAQH,EAClDC,EAAa,MAAPA,EAAcE,EAAQF,EAAME,EAAQA,EAAQF,EAM1D,OACED,IAAY,MAAPA,EAAc,GAAIS,MAAKT,GAAO,KACnCC,IAAY,MAAPA,EAAc,GAAIQ,MAAKR,GAAO,OAUvC2wH,EAAQ1zH,UAAU2kC,mBAAqB,SAAUp8B,GAC/C,GAAIs6B,GAAUt6B,EAAMk4B,OAASl4B,EAAMk4B,OAAOryB,EAAI7F,EAAMs6B,QAChDC,EAAUv6B,EAAMk4B,OAASl4B,EAAMk4B,OAAOrmB,EAAI7R,EAAMu6B,QAChD10B,EAAIy0B,EAAUvuB,EAAKtO,gBAAgBvH,KAAK+tB,IAAI1E,iBAC5C1N,EAAI0oB,EAAUxuB,EAAKhO,eAAe7H,KAAK+tB,IAAI1E,iBAC3C0C,EAAO/rB,KAAKyqC,QAAQ96B,GAEpByoB,EAAaF,EAAWqB,qBAAqBzvB,GAE7CV,EAAUyM,EAAK5L,UAAUH,GACzBytH,EAAO,IACP1hH,GAAKxL,UAAUjB,EAASpJ,KAAK60B,SAAS9G,IAAIiG,YAC5CujG,EAAO,OACEv3H,KAAKqnC,WAAaxxB,EAAKxL,UAAUjB,EAASpJ,KAAKqnC,UAAUtZ,IAAIiG,YACtEujG,EAAO,OACE1hH,EAAKxL,UAAUjB,EAASpJ,KAAK8jI,UAAU9mE,UAAUjvC,IAAImlB,OAC9DqkF,EAAO,YACE1hH,EAAKxL,UAAUjB,EAASpJ,KAAK8jI,UAAU7mE,WAAWlvC,IAAImlB,OAC/DqkF,EAAO,YACE1hH,EAAKxL,UAAUjB,EAASpJ,KAAK8jI,UAAU5mE,WAAWnvC,IAAImlB,OAC/DqkF,EAAO,SACE1hH,EAAKxL,UAAUjB,EAASpJ,KAAK8jI,UAAU3mE,YAAYpvC,IAAImlB,OAChEqkF,EAAO,SACgB,MAAdn/F,EACTm/F,EAAO,cACE1hH,EAAKxL,UAAUjB,EAASpJ,KAAKuqC,YAAY/R,KAClD++F,EAAO,eACE1hH,EAAKxL,UAAUjB,EAASpJ,KAAK+tB,IAAIiU,UAC1Cu1F,EAAO,aAGT,IAAI/yH,MACAw4D,EAAYh9D,KAAK8jI,UAAU9mE,UAC3BC,EAAaj9D,KAAK8jI,UAAU7mE,UAQhC,QAPKD,EAAUpyC,QAAU5qB,KAAKkxB,UAAU7uB,OAAS,GAC/CmC,EAAM4B,KAAK42D,EAAUsH,cAAc3oD,KAEhCshD,EAAWryC,QAAU5qB,KAAKkxB,UAAU7uB,OAAS,GAChDmC,EAAM4B,KAAK62D,EAAWqH,cAAc3oD,KAIpC7R,MAAOA,EACPytH,KAAMA,EACNC,MAAO1tH,EAAMysD,SAAWzsD,EAAMysD,SAASihE,MAAQ1tH,EAAM0tH,MACrDC,MAAO3tH,EAAMysD,SAAWzsD,EAAMysD,SAASkhE,MAAQ3tH,EAAM2tH,MACrD9nH,EAAGA,EACHgM,EAAGA,EACHoQ,KAAMA,EACNvnB,MAAOA,IASXywH,EAAQ1zH,UAAUumC,oBAAsB,WACtC,MAAO,IAAI2M,GAAaz0C,KAAMA,KAAK+tB,IAAIrG,UAAWktB,IAGpDh1C,EAAOD,QAAUs1H,GAIX,SAAUr1H,EAAQD,EAASO,GAMjCP,EAAQkW,KAAO3V,EAAoB,GACnCP,EAAQu6C,QAAUh6C,EAAoB,IAGtCP,EAAQsV,QAAU/U,EAAoB,IACtCP,EAAQ6Z,SAAWtZ,EAAoB,IACvCP,EAAQmW,MAAQ5V,EAAoB,IAGpCP,EAAQskI,QAAU/jI,EAAoB,KACtCP,EAAQukI,SACN5zD,OAAQpwE,EAAoB,KAC5BikI,UAAWjkI,EAAoB,KAC/BkkI,YAAalkI,EAAoB,KACjC4c,WAAY5c,EAAoB,MAElCP,EAAQukI,QAAQG,WAAa,SAAUjtF,GACrC,MAAOz3C,GAAQukI,QAAQC,UAAUh2D,WAAW/2B,IAE9Cz3C,EAAQukI,QAAQI,aAAe,SAAUltF,EAAO/nC,GAC9C,MAAO1P,GAAQukI,QAAQE,YAAYv0D,WAAWz4B,EAAO/nC,IAIvD1P,EAAQgE,OAASzD,EAAoB,GACrCP,EAAQqV,OAAS9U,EAAoB,IACrCP,EAAQ8nB,SAAWvnB,EAAoB,KAIjC,SAAUN,EAAQD,EAASO,GAmDjC,QAAS+jI,GAAQv8G,EAAWxS,EAAM7F,GAChC,GAAIumC,GAAQ51C,IAEZ,MAAMA,eAAgBikI,IACpB,KAAM,IAAIz3D,aAAY,mDAIxBxsE,MAAKqP,WACLrP,KAAKs0B,gBACHS,OAAQ,KACRoD,QAASA,EACTsP,YAAY,GAEd5xB,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBAc/Bt0B,KAAKyS,MACHiV,UAAWA,EAGXw2B,SACAk8B,eACAv/C,SACA0pG,eAEAh1G,SACE7a,GAAI1U,KAAK0U,GAAG6T,KAAKvoB,MACjB2U,IAAK3U,KAAK2U,IAAI4T,KAAKvoB,MACnB6U,KAAM7U,KAAK6U,KAAK0T,KAAKvoB,MACrBuzB,KAAMvzB,KAAKuzB,KAAKhL,KAAKvoB,OAEvBwkI,gBACEC,MAAO,aACPt3G,QAAS,aACTu3G,YAAa,aACbC,OAAQ,aACRC,YAAa,aACbC,OAAQ,aACRC,UAAW,aACXxsG,aAAc,aACdysG,QAAS,aACTC,YAAa,aACbz3G,UAAW,aACX03G,UAAW,cAEb/vH,MACEgpC,MAAO,KACPrjB,MAAO,MAETqqG,WACEC,WAAY,aACZx5D,WAAY,aACZxnC,WAAY,cAEdlkC,WACA0jB,MACElf,MAAO,EACP8vG,aAAe5kG,EAAG,EAAGgM,EAAG,KAK5B3b,KAAKolI,qBAGLplI,KAAKuwE,OAAS,GAAID,GAAO,WACvB,MAAO16B,GAAMnjC,KAAK8c,QAAQ1a,KAAK,oBAEjC7U,KAAKmwD,OAAS,GAAIk1E,GAClBrlI,KAAK41G,OAAS,GAAI0vB,GAAOtlI,KAAKyS,MAC9BzS,KAAKulI,iBAAmB,GAAIC,GAAiBxlI,KAAKyS,KAAMzS,KAAK41G,QAC7D51G,KAAKylI,mBAAqB,GAAIC,GAAmB1lI,KAAKyS,KAAMzS,KAAK41G,OAAQ51G,KAAKulI,kBAC9EvlI,KAAK2jB,KAAO,GAAIgiH,GAAK3lI,KAAKyS,KAAMzS,KAAK41G,QACrC51G,KAAK4lI,SAAW,GAAIC,GAAe7lI,KAAKyS,KAAMzS,KAAK41G,QACnD51G,KAAK67B,QAAU,GAAIiqG,GAAc9lI,KAAKyS,MACtCzS,KAAK+lI,aAAe,GAAIC,GAAahmI,KAAKyS,MAC1CzS,KAAKimI,WAAa,GAAIC,GAAclmI,KAAKyS,MACzCzS,KAAK++E,aAAe,GAAIonD,GAAmBnmI,KAAKyS,KAAMzS,KAAK41G,OAAQ51G,KAAKulI,kBAExEvlI,KAAKomI,aAAe,GAAIC,GAAarmI,KAAKyS,KAAMzS,KAAKuwE,OAAQvwE,KAAKmwD,OAAQnwD,KAAK+lI,cAC/E/lI,KAAKsmI,aAAe,GAAIC,GAAavmI,KAAKyS,KAAMzS,KAAKuwE,OAAQvwE,KAAKmwD,QAElEnwD,KAAKyS,KAAKxS,QAAqB,YAAI,GAAIumI,GAAYxmI,KAAKyS,KAAM,IAAK,KACnEzS,KAAKyS,KAAKxS,QAAoB,WAAID,KAAKimI,WAGvCjmI,KAAK41G,OAAOvyG,UAGZrD,KAAK0V,WAAWrG,GAGhBrP,KAAK4Z,QAAQ1E,GArJfhV,EAAoB,IAEpB,IAAIkzB,GAAUlzB,EAAoB,IAC9B2V,EAAO3V,EAAoB,GAC3BikI,EAAYjkI,EAAoB,KAChCkkI,EAAclkI,EAAoB,KAClC4kC,EAAY5kC,EAAoB,IAChCi4B,EAAUj4B,EAAoB,KAE9BowE,EAASpwE,EAAoB,KAAc,QAC3CmlI,EAASnlI,EAAoB,KAAc,QAC3CmmI,EAAenmI,EAAoB,KAAc,QACjDqmI,EAAermI,EAAoB,KAAc,QACjD4lI,EAAgB5lI,EAAoB,KAAc,QAClDgmI,EAAgBhmI,EAAoB,KAAc,QAClD2lI,EAAiB3lI,EAAoB,KAAc,QACnDolI,EAASplI,EAAoB,KAAc,QAC3CylI,EAAOzlI,EAAoB,KAAc,QACzCwlI,EAAqBxlI,EAAoB,KAAc,QACvDslI,EAAmBtlI,EAAoB,KAAc,QACrD8lI,EAAe9lI,EAAoB,KAAc,QACjDimI,EAAqBjmI,EAAoB,KAAc,QACvDu0C,EAAev0C,EAAoB,IAAa,QAChD6c,EAAY7c,EAAoB,IAAa,QAE7Cu6B,EAAWv6B,EAAoB,IAC/Bsc,EAAaie,EAASje,WAEtBi1F,EAAYvxG,EAAoB,KAChC4c,EAAa20F,EAAU30F,WACvB83B,EAAmB68D,EAAU78D,iBAE7B4xF,EAActmI,EAAoB,KAAc,OAyHpDkzB,GAAQ6wG,EAAQ1iI,WAMhB0iI,EAAQ1iI,UAAUmU,WAAa,SAAUrG,GACvC,GAAImoC,GAASx3C,IAEb,QAAgBkD,KAAZmM,EAAuB,EAEN,IADF0N,EAAUs7F,SAAShpG,EAASyN,IAE3C5F,QAAQ0G,IAAI,2DAA4DpB,EAI1E,IAAI9N,IAAU,SAAU,UAAW,aAoCnC,IAnCAmH,EAAK/P,oBAAoB4I,EAAQ1O,KAAKqP,QAASA,GAG/CA,EAAUrP,KAAK+lI,aAAarwH,WAAWrG,EAAQgvE,OAAQhvE,GAEvDrP,KAAK41G,OAAOlgG,WAAWrG,GAGvBrP,KAAKmwD,OAAOz6C,WAAWrG,EAAQ8gD,QAC/BnwD,KAAKomI,aAAa1wH,WAAWrG,EAAQ6uC,OACrCl+C,KAAKsmI,aAAa5wH,WAAWrG,EAAQwrB,OACrC76B,KAAK67B,QAAQnmB,WAAWrG,EAAQwsB,SAChC77B,KAAK++E,aAAarpE,WAAWrG,EAAQ0vE,aAAc1vE,EAASrP,KAAKqP,SAEjErP,KAAKylI,mBAAmB/vH,WAAWrG,EAAQmuE,aAC3Cx9E,KAAK4lI,SAASlwH,WAAWrG,EAAQmuE,aACjCx9E,KAAKulI,iBAAiB7vH,WAAWrG,EAAQmuE,iBAGlBt6E,KAAnBmM,EAAQ8gD,QACVnwD,KAAKyS,KAAK8c,QAAQ1a,KAAK,gBAMrB,aAAexF,KACZrP,KAAK6nC,eACR7nC,KAAK6nC,aAAe,GAAI4M,GAAaz0C,KAAMA,KAAKyS,KAAKiV,UAAWktB,EAAkB50C,KAAK41G,OAAO/gE,aAGhG70C,KAAK6nC,aAAanyB,WAAWrG,EAAQ04B,YAInC/nC,KAAK6nC,eAAsD,IAAtC7nC,KAAK6nC,aAAax4B,QAAQS,QAAkB,CACnE,GAAI22H,IAAmBvoF,SAAWrjB,SAAWwjD,UAAYb,eAAiBuB,gBAAkBljD,WAAahc,UACzGhK,GAAK7P,WAAWygI,EAAevoF,MAAOl+C,KAAKomI,aAAa/2H,SACxDwG,EAAK7P,WAAWygI,EAAe5rG,MAAO76B,KAAKsmI,aAAaj3H,SACxDwG,EAAK7P,WAAWygI,EAAepoD,OAAQr+E,KAAK+lI,aAAa12H,SAEzDwG,EAAK7P,WAAWygI,EAAejpD,YAAax9E,KAAKulI,iBAAiBl2H,SAClEwG,EAAK7P,WAAWygI,EAAejpD,YAAax9E,KAAK4lI,SAASv2H,SAE1DwG,EAAK7P,WAAWygI,EAAejpD,YAAax9E,KAAKylI,mBAAmBp2H,SACpEwG,EAAK7P,WAAWygI,EAAe1nD,aAAc/+E,KAAK++E,aAAa1vE,SAC/DwG,EAAK7P,WAAWygI,EAAe5qG,QAAS77B,KAAK67B,QAAQxsB,SAGrDwG,EAAK7P,WAAWygI,EAAe5mH,OAAQ7f,KAAK41G,OAAOvmG,SACnDwG,EAAK7P,WAAWygI,EAAe5mH,OAAQ7f,KAAKqP,SAE5CrP,KAAK6nC,aAAaI,iBAAiBw+F,OAIVvjI,KAAvBmM,EAAQo4B,YACiB,IAAvBp4B,EAAQo4B,eACavkC,KAAnBlD,KAAK0nC,YACP1nC,KAAK0nC,UAAY,GAAI5C,GAAU9kC,KAAK41G,OAAO1iE,OAC3ClzC,KAAK0nC,UAAUhzB,GAAG,SAAU,WAC1B8iC,EAAO/kC,KAAK8c,QAAQ1a,KAAK,oBAIN3R,KAAnBlD,KAAK0nC,YACP1nC,KAAK0nC,UAAU9yB,gBACR5U,MAAK0nC,WAEd1nC,KAAKyS,KAAK8c,QAAQ1a,KAAK,aAGzB7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,YAGzB7U,KAAK41G,OAAOgL,UAEZ5gH,KAAKyS,KAAK8c,QAAQ1a,KAAK,qBAa3BovH,EAAQ1iI,UAAUmlI,sBAAwB,WACxC,GAAIxoF,GAAQl+C,KAAKyS,KAAKyrC,MAClBrjB,EAAQ76B,KAAKyS,KAAKooB,KACtB76B,MAAKyS,KAAK2nE,eACVp6E,KAAKyS,KAAK8xH,cAEV,KAAK,GAAIrnG,KAAUghB,GACbA,EAAM18C,eAAe07B,KAClBl9B,KAAKimI,WAAWU,iBAAiBzpG,KAA4C,IAAjCghB,EAAMhhB,GAAQ7tB,QAAQub,QACrE5qB,KAAKyS,KAAK2nE,YAAYh0E,KAAK83C,EAAMhhB,GAAQ5mB,IAK/C,KAAK,GAAImpC,KAAU5kB,GACjB,GAAIA,EAAMr5B,eAAei+C,GAAS,CAChC,GAAIvkB,GAAOL,EAAM4kB,GAIbmnF,EAAW1oF,EAAMhjB,EAAK+gB,QACtB4qF,EAAS3oF,EAAMhjB,EAAKghB,MACpB4qF,MAAgC5jI,KAAb0jI,OAAqC1jI,KAAX2jI,EAE7C73G,GAAahvB,KAAKimI,WAAWc,iBAAiBtnF,KAAmC,IAAxBvkB,EAAK7rB,QAAQub,QAAoBk8G,IAAgD,IAA5BF,EAASv3H,QAAQub,SACtG,IAA1Bi8G,EAAOx3H,QAAQub,MAEdoE,IACFhvB,KAAKyS,KAAK8xH,YAAYn+H,KAAK80B,EAAK5kB,MASxC2tH,EAAQ1iI,UAAU6jI,mBAAqB,WACrC,GAAIxtF,GAAS53C,IAIbA,MAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WACnCkjC,EAAO0uF,aAAaU,eACpBpvF,EAAOnlC,KAAK8c,QAAQ1a,KAAK,kBAI3B7U,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WAEnCkjC,EAAOquF,WAAWe,eAClBpvF,EAAO8uF,wBAEP9uF,EAAOqvF,kBAAkBrvF,EAAOnlC,KAAKyrC,OACrCtG,EAAOqvF,kBAAkBrvF,EAAOnlC,KAAKooB,OAErC+c,EAAOnlC,KAAK8c,QAAQ1a,KAAK,mBACzB+iC,EAAOnlC,KAAK8c,QAAQ1a,KAAK,qBAc7BovH,EAAQ1iI,UAAUqY,QAAU,SAAU1E,GAQpC,GANAlV,KAAKyS,KAAK8c,QAAQ1a,KAAK,gBACvB7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,cAGvB7U,KAAKulI,iBAAiB2B,cAElBhyH,GAAQA,EAAKi3C,MAAQj3C,EAAKgpC,OAAShpC,EAAK2lB,OAC1C,KAAM,IAAI2xC,aAAY,iGAMxB,IAFAxsE,KAAK0V,WAAWR,GAAQA,EAAK7F,SAEzB6F,GAAQA,EAAKi3C,IAAK,CACpBj1C,QAAQ0G,IAAI,4PAEZ,IAAIwwD,GAAU+1D,EAAUh2D,WAAWj5D,EAAKi3C,IAExC,YADAnsD,MAAK4Z,QAAQw0D,GAER,GAAIl5D,GAAQA,EAAKiyH,MAAO,CAE7BjwH,QAAQ0G,IAAI,oQACZ,IAAIwpH,GAAYhD,EAAYv0D,WAAW36D,EAAKiyH,MAE5C,YADAnnI,MAAK4Z,QAAQwtH,GAGbpnI,KAAKomI,aAAaxsH,QAAQ1E,GAAQA,EAAKgpC,OAAO,GAC9Cl+C,KAAKsmI,aAAa1sH,QAAQ1E,GAAQA,EAAK2lB,OAAO,GAIhD76B,KAAKyS,KAAK8c,QAAQ1a,KAAK,gBAGvB7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,eAGvB7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,gBASzBovH,EAAQ1iI,UAAUqT,QAAU,WAC1B5U,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAEvB7U,KAAKyS,KAAK8c,QAAQ5a,MAClB3U,KAAK2U,YAGE3U,MAAKmwD,aACLnwD,MAAK41G,aACL51G,MAAKulI,uBACLvlI,MAAKylI,yBACLzlI,MAAK2jB,WACL3jB,MAAK4lI,eACL5lI,MAAK67B,cACL77B,MAAK+lI,mBACL/lI,MAAKimI,iBACLjmI,MAAK++E,mBACL/+E,MAAKomI,mBACLpmI,MAAKsmI,mBACLtmI,MAAK6nC,mBACL7nC,MAAKuwE,MAEZ,KAAK,GAAIrzC,KAAUl9B,MAAKyS,KAAKyrC,MACtBl+C,KAAKyS,KAAKyrC,MAAM18C,eAAe07B,UAC7Bl9B,MAAKyS,KAAKyrC,MAAMhhB,EAGzB,KAAK,GAAIuiB,KAAUz/C,MAAKyS,KAAKooB,MACtB76B,KAAKyS,KAAKooB,MAAMr5B,eAAei+C,UAC7Bz/C,MAAKyS,KAAKooB,MAAM4kB,EAIzB5pC,GAAK9R,mBAAmB/D,KAAKyS,KAAKiV,YAWpCu8G,EAAQ1iI,UAAU0lI,kBAAoB,SAAUhlI,GAC9C,GAAIqU,GAGAg9F,MAAWpwG,GACXqwG,MAAWrwG,GACXmkI,EAAa,CACjB,KAAK/wH,IAAMrU,GACT,GAAIA,EAAIT,eAAe8U,GAAK,CAC1B,GAAI9R,GAAQvC,EAAIqU,GAAI64C,eACNjsD,KAAVsB,IACF8uG,MAAwBpwG,KAAbowG,EAAyB9uG,EAAQE,KAAKL,IAAIG,EAAO8uG,GAC5DC,MAAwBrwG,KAAbqwG,EAAyB/uG,EAAQE,KAAKJ,IAAIE,EAAO+uG,GAC5D8zB,GAAc7iI,GAMpB,OAAiBtB,KAAbowG,OAAuCpwG,KAAbqwG,EAC5B,IAAKj9F,IAAMrU,GACLA,EAAIT,eAAe8U,IACrBrU,EAAIqU,GAAIgxH,cAAch0B,EAAUC,EAAU8zB,IAUlDpD,EAAQ1iI,UAAUwjC,SAAW,WAC3B,OAAQ/kC,KAAK0nC,WAAa1nC,KAAK0nC,UAAUQ,QAG3C+7F,EAAQ1iI,UAAUq/G,QAAU,WAC1B,MAAO5gH,MAAK41G,OAAOgL,QAAQjnG,MAAM3Z,KAAK41G,OAAQrwG,YAEhD0+H,EAAQ1iI,UAAUgmI,YAAc,WAC9B,MAAOvnI,MAAK41G,OAAO2xB,YAAY5tH,MAAM3Z,KAAK41G,OAAQrwG,YAEpD0+H,EAAQ1iI,UAAUimI,YAAc,WAC9B,MAAOxnI,MAAK41G,OAAO4xB,YAAY7tH,MAAM3Z,KAAK41G,OAAQrwG,YAEpD0+H,EAAQ1iI,UAAUkmI,SAAW,WAC3B,MAAOznI,MAAKimI,WAAWwB,SAAS9tH,MAAM3Z,KAAKimI,WAAY1gI,YAEzD0+H,EAAQ1iI,UAAUmmI,UAAY,WAC5B,MAAO1nI,MAAKimI,WAAWyB,UAAU/tH,MAAM3Z,KAAKimI,WAAY1gI,YAE1D0+H,EAAQ1iI,UAAUomI,YAAc,WAC9B,MAAO3nI,MAAKimI,WAAW0B,YAAYhuH,MAAM3Z,KAAKimI,WAAY1gI,YAE5D0+H,EAAQ1iI,UAAUqmI,QAAU,WAC1B,MAAO5nI,MAAKimI,WAAW2B,QAAQjuH,MAAM3Z,KAAKimI,WAAY1gI,YAExD0+H,EAAQ1iI,UAAUsmI,kBAAoB,WACpC,MAAO7nI,MAAKimI,WAAW4B,kBAAkBluH,MAAM3Z,KAAKimI,WAAY1gI,YAElE0+H,EAAQ1iI,UAAUumI,oBAAsB,WACtC,MAAO9nI,MAAKimI,WAAW6B,oBAAoBnuH,MAAM3Z,KAAKimI,WAAY1gI,YAEpE0+H,EAAQ1iI,UAAUwmI,iBAAmB,WACnC,MAAO/nI,MAAKimI,WAAW8B,iBAAiBpuH,MAAM3Z,KAAKimI,WAAY1gI,YAEjE0+H,EAAQ1iI,UAAUymI,gBAAkB,WAClC,MAAOhoI,MAAKimI,WAAW+B,gBAAgBruH,MAAM3Z,KAAKimI,WAAY1gI,YAEhE0+H,EAAQ1iI,UAAU0mI,QAAU,WAC1B,MAAOjoI,MAAK+lI,aAAakC,QAAQtuH,MAAM3Z,KAAK+lI,aAAcxgI,YAE5D0+H,EAAQ1iI,UAAU2mI,eAAiB,WACjC,MAAOloI,MAAK++E,aAAampD,eAAevuH,MAAM3Z,KAAK++E,aAAcx5E,YAEnE0+H,EAAQ1iI,UAAU4mI,gBAAkB,WAClC,MAAOnoI,MAAK++E,aAAaopD,gBAAgBxuH,MAAM3Z,KAAK++E,aAAcx5E,YAEpE0+H,EAAQ1iI,UAAU6mI,YAAc,WAC9B,MAAOpoI,MAAK++E,aAAaqpD,YAAYzuH,MAAM3Z,KAAK++E,aAAcx5E,YAEhE0+H,EAAQ1iI,UAAU09E,SAAW,WAC3B,MAAOj/E,MAAK++E,aAAaE,SAAStlE,MAAM3Z,KAAK++E,aAAcx5E,YAE7D0+H,EAAQ1iI,UAAU8mI,aAAe,WACyC,MAAxEnxH,SAAQ0G,IAAI,4DAAmE5d,KAAK++E,aAAaE,SAAStlE,MAAM3Z,KAAK++E,aAAcx5E,YAErI0+H,EAAQ1iI,UAAU+mI,YAAc,WAC9B,MAAOtoI,MAAK++E,aAAaupD,YAAY3uH,MAAM3Z,KAAK++E,aAAcx5E,YAEhE0+H,EAAQ1iI,UAAUgnI,aAAe,WAC/B,MAAOvoI,MAAK++E,aAAawpD,aAAa5uH,MAAM3Z,KAAK++E,aAAcx5E,YAEjE0+H,EAAQ1iI,UAAUinI,eAAiB,WACjC,MAAOxoI,MAAK++E,aAAaypD,eAAe7uH,MAAM3Z,KAAK++E,aAAcx5E,YAEnE0+H,EAAQ1iI,UAAUknI,aAAe,WAC/B,MAAOzoI,MAAKomI,aAAaqC,aAAa9uH,MAAM3Z,KAAKomI,aAAc7gI,YAEjE0+H,EAAQ1iI,UAAUmnI,eAAiB,WACjC,MAAO1oI,MAAKomI,aAAasC,eAAe/uH,MAAM3Z,KAAKomI,aAAc7gI,YAEnE0+H,EAAQ1iI,UAAUonI,SAAW,WAC3B,MAAO3oI,MAAKomI,aAAauC,SAAShvH,MAAM3Z,KAAKomI,aAAc7gI,YAE7D0+H,EAAQ1iI,UAAUqnI,eAAiB,WACjC,MAAO5oI,MAAKomI,aAAawC,eAAejvH,MAAM3Z,KAAKomI,aAAc7gI,YAEnE0+H,EAAQ1iI,UAAUsnI,kBAAoB,SAAUC,GAC9C,WAAkC5lI,KAA9BlD,KAAKyS,KAAKyrC,MAAM4qF,GACX9oI,KAAKomI,aAAayC,kBAAkBlvH,MAAM3Z,KAAKomI,aAAc7gI,WAE7DvF,KAAKsmI,aAAauC,kBAAkBlvH,MAAM3Z,KAAKsmI,aAAc/gI,YAGxE0+H,EAAQ1iI,UAAUwnI,kBAAoB,WACpC,MAAO/oI,MAAKomI,aAAa2C,kBAAkBpvH,MAAM3Z,KAAKomI,aAAc7gI,YAEtE0+H,EAAQ1iI,UAAUynI,gBAAkB,WAClC,MAAOhpI,MAAK67B,QAAQmtG,gBAAgBrvH,MAAM3Z,KAAK67B,QAASt2B,YAE1D0+H,EAAQ1iI,UAAU0nI,eAAiB,WACjC,MAAOjpI,MAAK67B,QAAQotG,eAAetvH,MAAM3Z,KAAK67B,QAASt2B,YAEzD0+H,EAAQ1iI,UAAU2nI,UAAY,WAC5B,MAAOlpI,MAAK67B,QAAQqtG,UAAUvvH,MAAM3Z,KAAK67B,QAASt2B,YAEpD0+H,EAAQ1iI,UAAUqyD,aAAe,WAC/B,MAAO5zD,MAAKulI,iBAAiB3xE,aAAaj6C,MAAM3Z,KAAKulI,iBAAkBhgI,YAEzE0+H,EAAQ1iI,UAAUoyD,aAAe,WAC/B,MAAO3zD,MAAKulI,iBAAiB5xE,aAAah6C,MAAM3Z,KAAKulI,iBAAkBhgI,YAEzE0+H,EAAQ1iI,UAAU4nI,iBAAmB,WACnC,MAAOnpI,MAAKulI,iBAAiB4D,iBAAiBxvH,MAAM3Z,KAAKulI,iBAAkBhgI,YAE7E0+H,EAAQ1iI,UAAU6nI,iBAAmB,WACnC,MAAOppI,MAAKulI,iBAAiB6D,iBAAiBzvH,MAAM3Z,KAAKulI,iBAAkBhgI,YAE7E0+H,EAAQ1iI,UAAU8nI,UAAY,WAC5B,GAAIhoF,GAAOrhD,KAAKulI,iBAAiB8D,UAAU1vH,MAAM3Z,KAAKulI,iBAAkBhgI,UACxE,YAAarC,KAATm+C,OAAkCn+C,KAAZm+C,EAAK/qC,GACtB+qC,EAAK/qC,GAEP+qC,GAET4iF,EAAQ1iI,UAAU+nI,UAAY,WAC5B,GAAIpuG,GAAOl7B,KAAKulI,iBAAiB+D,UAAU3vH,MAAM3Z,KAAKulI,iBAAkBhgI,UACxE,YAAarC,KAATg4B,OAAkCh4B,KAAZg4B,EAAK5kB,GACtB4kB,EAAK5kB,GAEP4kB,GAET+oG,EAAQ1iI,UAAUgoI,YAAc,WAC9B,MAAOvpI,MAAKulI,iBAAiBgE,YAAY5vH,MAAM3Z,KAAKulI,iBAAkBhgI,YAExE0+H,EAAQ1iI,UAAUioI,YAAc,WAC9B,MAAOxpI,MAAKulI,iBAAiBiE,YAAY7vH,MAAM3Z,KAAKulI,iBAAkBhgI,YAExE0+H,EAAQ1iI,UAAU2lI,YAAc,WAC9BlnI,KAAKulI,iBAAiB2B,YAAYvtH,MAAM3Z,KAAKulI,iBAAkBhgI,WAC/DvF,KAAKwf,UAEPykH,EAAQ1iI,UAAUie,OAAS,WACzB,MAAOxf,MAAK4lI,SAASpmH,OAAO7F,MAAM3Z,KAAK4lI,SAAUrgI,YAEnD0+H,EAAQ1iI,UAAUy1D,SAAW,WAC3B,MAAOh3D,MAAK2jB,KAAKqzC,SAASr9C,MAAM3Z,KAAK2jB,KAAMpe,YAE7C0+H,EAAQ1iI,UAAUkoI,gBAAkB,WAClC,MAAOzpI,MAAK2jB,KAAK8lH,gBAAgB9vH,MAAM3Z,KAAK2jB,KAAMpe,YAEpD0+H,EAAQ1iI,UAAUqnC,IAAM,WACtB,MAAO5oC,MAAK2jB,KAAKilB,IAAIjvB,MAAM3Z,KAAK2jB,KAAMpe,YAExC0+H,EAAQ1iI,UAAUqjC,OAAS,WACzB,MAAO5kC,MAAK2jB,KAAKihB,OAAOjrB,MAAM3Z,KAAK2jB,KAAMpe,YAE3C0+H,EAAQ1iI,UAAUi1H,MAAQ,WACxB,MAAOx2H,MAAK2jB,KAAK6yG,MAAM78G,MAAM3Z,KAAK2jB,KAAMpe,YAE1C0+H,EAAQ1iI,UAAUmoI,YAAc,WAC9B,MAAO1pI,MAAK2jB,KAAK+lH,YAAY/vH,MAAM3Z,KAAK2jB,KAAMpe,YAEhD0+H,EAAQ1iI,UAAUooI,2BAA6B,WAC7C,GAAIt6H,KAIJ,OAHIrP,MAAK6nC,eACPx4B,EAAUrP,KAAK6nC,aAAa+R,WAAWjgC,MAAM3Z,KAAK6nC,eAE7Cx4B,GAGTzP,EAAOD,QAAUskI,GAIX,SAAUrkI,EAAQD,EAASO,GAQO,mBAA7B0pI,4BASTA,yBAAyBroI,UAAU85C,OAAS,SAAU1rC,EAAGgM,EAAGxQ,GAC1DnL,KAAKsiD,YACLtiD,KAAKm4E,IAAIxoE,EAAGgM,EAAGxQ,EAAG,EAAG,EAAIzG,KAAK47C,IAAI,GAClCtgD,KAAKo5E,aASPwwD,yBAAyBroI,UAAUsoI,OAAS,SAAUl6H,EAAGgM,EAAGxQ,GAC1DnL,KAAKsiD,YACLtiD,KAAKuc,KAAK5M,EAAIxE,EAAGwQ,EAAIxQ,EAAO,EAAJA,EAAW,EAAJA,GAC/BnL,KAAKo5E,aASPwwD,yBAAyBroI,UAAUy+G,SAAW,SAAUrwG,EAAGgM,EAAGxQ,GAE5DnL,KAAKsiD,YAGLn3C,GAAK,KACLwQ,GAAK,KAAQxQ,CAEb,IAAIzJ,GAAQ,EAAJyJ,EACJ2+H,EAAKpoI,EAAI,EACTqoI,EAAKrlI,KAAK2iB,KAAK,GAAK,EAAI3lB,EACxB+K,EAAI/H,KAAK2iB,KAAK3lB,EAAIA,EAAIooI,EAAKA,EAG/B9pI,MAAK4kC,OAAOj1B,EAAGgM,GAAKlP,EAAIs9H,IACxB/pI,KAAKyiD,OAAO9yC,EAAIm6H,EAAInuH,EAAIouH,GACxB/pI,KAAKyiD,OAAO9yC,EAAIm6H,EAAInuH,EAAIouH,GACxB/pI,KAAKyiD,OAAO9yC,EAAGgM,GAAKlP,EAAIs9H,IACxB/pI,KAAKo5E,aASPwwD,yBAAyBroI,UAAUyoI,aAAe,SAAUr6H,EAAGgM,EAAGxQ,GAEhEnL,KAAKsiD,YAGLn3C,GAAK,KACLwQ,GAAK,KAAQxQ,CAEb,IAAIzJ,GAAQ,EAAJyJ,EACJ2+H,EAAKpoI,EAAI,EACTqoI,EAAKrlI,KAAK2iB,KAAK,GAAK,EAAI3lB,EACxB+K,EAAI/H,KAAK2iB,KAAK3lB,EAAIA,EAAIooI,EAAKA,EAE/B9pI,MAAK4kC,OAAOj1B,EAAGgM,GAAKlP,EAAIs9H,IACxB/pI,KAAKyiD,OAAO9yC,EAAIm6H,EAAInuH,EAAIouH,GACxB/pI,KAAKyiD,OAAO9yC,EAAIm6H,EAAInuH,EAAIouH,GACxB/pI,KAAKyiD,OAAO9yC,EAAGgM,GAAKlP,EAAIs9H,IACxB/pI,KAAKo5E,aASPwwD,yBAAyBroI,UAAU0oI,KAAO,SAAUt6H,EAAGgM,EAAGxQ,GAExDnL,KAAKsiD,YAGLn3C,GAAK,IACLwQ,GAAK,GAAMxQ,CAEX,KAAK,GAAIhK,GAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,GAAI8gB,GAAS9gB,EAAI,GAAM,EAAQ,IAAJgK,EAAc,GAAJA,CACrCnL,MAAKyiD,OAAO9yC,EAAIsS,EAASvd,KAAKke,IAAQ,EAAJzhB,EAAQuD,KAAK47C,GAAK,IAAK3kC,EAAIsG,EAASvd,KAAKie,IAAQ,EAAJxhB,EAAQuD,KAAK47C,GAAK,KAGnGtgD,KAAKo5E,aASPwwD,yBAAyBroI,UAAU2oI,QAAU,SAAUv6H,EAAGgM,EAAGxQ,GAE3DnL,KAAKsiD,YAELtiD,KAAKyiD,OAAO9yC,EAAGgM,EAAIxQ,GACnBnL,KAAKyiD,OAAO9yC,EAAIxE,EAAGwQ,GACnB3b,KAAKyiD,OAAO9yC,EAAGgM,EAAIxQ,GACnBnL,KAAKyiD,OAAO9yC,EAAIxE,EAAGwQ,GAEnB3b,KAAKo5E,aAYPwwD,yBAAyBroI,UAAU4oI,UAAY,SAAUx6H,EAAGgM,EAAGwpE,EAAG14E,EAAGtB,GACnE,GAAIi/H,GAAM1lI,KAAK47C,GAAK,GAChB6kC,GAAI,EAAIh6E,EAAI,IACdA,EAAIg6E,EAAI,GAEN14E,EAAI,EAAItB,EAAI,IACdA,EAAIsB,EAAI,GAEVzM,KAAKsiD,YACLtiD,KAAK4kC,OAAOj1B,EAAIxE,EAAGwQ,GACnB3b,KAAKyiD,OAAO9yC,EAAIw1E,EAAIh6E,EAAGwQ,GACvB3b,KAAKm4E,IAAIxoE,EAAIw1E,EAAIh6E,EAAGwQ,EAAIxQ,EAAGA,EAAS,IAANi/H,EAAiB,IAANA,GAAW,GACpDpqI,KAAKyiD,OAAO9yC,EAAIw1E,EAAGxpE,EAAIlP,EAAItB,GAC3BnL,KAAKm4E,IAAIxoE,EAAIw1E,EAAIh6E,EAAGwQ,EAAIlP,EAAItB,EAAGA,EAAG,EAAS,GAANi/H,GAAU,GAC/CpqI,KAAKyiD,OAAO9yC,EAAIxE,EAAGwQ,EAAIlP,GACvBzM,KAAKm4E,IAAIxoE,EAAIxE,EAAGwQ,EAAIlP,EAAItB,EAAGA,EAAS,GAANi/H,EAAgB,IAANA,GAAW,GACnDpqI,KAAKyiD,OAAO9yC,EAAGgM,EAAIxQ,GACnBnL,KAAKm4E,IAAIxoE,EAAIxE,EAAGwQ,EAAIxQ,EAAGA,EAAS,IAANi/H,EAAiB,IAANA,GAAW,GAChDpqI,KAAKo5E,aAaPwwD,yBAAyBroI,UAAU8oI,YAAc,SAAU16H,EAAGgM,EAAGwpE,EAAG14E,GAClE,GACI69H,GAAKnlD,EAAI,EADD,SAGZolD,EAAK99H,EAAI,EAHG,SAKZ+9H,EAAK76H,EAAIw1E,EAETslD,EAAK9uH,EAAIlP,EAETi+H,EAAK/6H,EAAIw1E,EAAI,EAEbwlD,EAAKhvH,EAAIlP,EAAI,CAEbzM,MAAKsiD,YACLtiD,KAAK4kC,OAAOj1B,EAAGg7H,GACf3qI,KAAKuiD,cAAc5yC,EAAGg7H,EAAKJ,EAAIG,EAAKJ,EAAI3uH,EAAG+uH,EAAI/uH,GAC/C3b,KAAKuiD,cAAcmoF,EAAKJ,EAAI3uH,EAAG6uH,EAAIG,EAAKJ,EAAIC,EAAIG,GAChD3qI,KAAKuiD,cAAcioF,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACjDzqI,KAAKuiD,cAAcmoF,EAAKJ,EAAIG,EAAI96H,EAAGg7H,EAAKJ,EAAI56H,EAAGg7H,GAC/C3qI,KAAKo5E,aAWPwwD,yBAAyBroI,UAAUqpI,SAAW,SAAUj7H,EAAGgM,EAAGwpE,EAAG14E,GAC/D,GACIo+H,GAAW1lD,EACX2lD,EAAWr+H,GAFP,EAAI,GAKR69H,EAAKO,EAAW,EADR,SAGZN,EAAKO,EAAW,EAHJ,SAKZN,EAAK76H,EAAIk7H,EAETJ,EAAK9uH,EAAImvH,EAETJ,EAAK/6H,EAAIk7H,EAAW,EAEpBF,EAAKhvH,EAAImvH,EAAW,EAEpBC,EAAMpvH,GAAKlP,EAAIq+H,EAAW,GAE1BE,EAAMrvH,EAAIlP,CAEVzM,MAAKsiD,YACLtiD,KAAK4kC,OAAO4lG,EAAIG,GAEhB3qI,KAAKuiD,cAAcioF,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACjDzqI,KAAKuiD,cAAcmoF,EAAKJ,EAAIG,EAAI96H,EAAGg7H,EAAKJ,EAAI56H,EAAGg7H,GAE/C3qI,KAAKuiD,cAAc5yC,EAAGg7H,EAAKJ,EAAIG,EAAKJ,EAAI3uH,EAAG+uH,EAAI/uH,GAC/C3b,KAAKuiD,cAAcmoF,EAAKJ,EAAI3uH,EAAG6uH,EAAIG,EAAKJ,EAAIC,EAAIG,GAEhD3qI,KAAKyiD,OAAO+nF,EAAIO,GAEhB/qI,KAAKuiD,cAAcioF,EAAIO,EAAMR,EAAIG,EAAKJ,EAAIU,EAAKN,EAAIM,GACnDhrI,KAAKuiD,cAAcmoF,EAAKJ,EAAIU,EAAKr7H,EAAGo7H,EAAMR,EAAI56H,EAAGo7H,GAEjD/qI,KAAKyiD,OAAO9yC,EAAGg7H,IAejBf,yBAAyBroI,UAAU+1E,WAAa,SAAU3nE,EAAGgM,EAAG8lC,EAAIC,EAAIw1B,GACtEl3E,KAAKsiD,YACLtiD,KAAK4kC,OAAOj1B,EAAGgM,EAYf,KAVA,GAAIsvH,GAAgB/zD,EAAQ70E,OACxB+9C,EAAKqB,EAAK9xC,EACVwwC,EAAKuB,EAAK/lC,EACVuvH,EAAQ/qF,EAAKC,EACb+qF,EAAgBzmI,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,GACzCirF,EAAe,EACfvlH,GAAO,EACP6tF,EAAQ,EACR23B,EAAan0D,EAAQ,GAElBi0D,GAAiB,IACtBE,EAAan0D,EAAQk0D,IAAiBH,GAClCI,EAAaF,IACfE,EAAaF,GAGfz3B,EAAQhvG,KAAK2iB,KAAKgkH,EAAaA,GAAc,EAAIH,EAAQA,IACzDx3B,EAAQtzD,EAAK,GAAKszD,EAAQA,EAC1B/jG,GAAK+jG,EACL/3F,GAAKuvH,EAAQx3B,GAEA,IAAT7tF,EACF7lB,KAAKyiD,OAAO9yC,EAAGgM,GAEf3b,KAAK4kC,OAAOj1B,EAAGgM,GAGjBwvH,GAAiBE,EACjBxlH,GAAQA,GAUZ+jH,yBAAyBroI,UAAU+pI,QAAU,SAAU37H,EAAGgM,EAAGxQ,GAC3DnL,KAAKsiD,WACL,IACIz/C,GAAc,EAAV6B,KAAK47C,GADD,CAEZtgD,MAAK4kC,OAAOj1B,EAAIxE,EAAGwQ,EACnB,KAAK,GAAItb,GAAI,EAAGA,EAHJ,EAGeA,IACzBL,KAAKyiD,OAAO9yC,EAAIxE,EAAIzG,KAAKie,IAAI9f,EAAIxC,GAAIsb,EAAIxQ,EAAIzG,KAAKke,IAAI/f,EAAIxC,GAE5DL,MAAKo5E,eAMH,SAAUx5E,EAAQD,EAASO,GAMjCP,EAAY,IACV4rI,KAAM,OACNC,IAAK,kBACLC,KAAM,OACNlgE,QAAS,WACTG,QAAS,WACTuT,SAAU,YACVC,SAAU,YACVwsD,eAAgB,+CAChBC,gBAAiB,qEACjBC,oBAAqB,wEACrBC,gBAAiB,kCACjBC,mBAAoB,8BACpBC,iBAAkB,8BAEpBpsI,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV4rI,KAAM,YACNC,IAAK,iBACLC,KAAM,SACNlgE,QAAS,oBACTG,QAAS,mBACTuT,SAAU,mBACVC,SAAU,kBACVwsD,eAAgB,oEAChBC,gBAAiB,8FACjBC,oBAAqB,0FACrBC,gBAAiB,0DACjBC,mBAAoB,wCACpBC,iBAAkB,yCAEpBpsI,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV4rI,KAAM,SACNC,IAAK,qBACLC,KAAM,QACNlgE,QAAS,cACTG,QAAS,gBACTuT,SAAU,cACVC,SAAU,gBACVwsD,eAAgB,0DAChBC,gBAAiB,8EACjBC,oBAAqB,2EACrBC,gBAAiB,8CACjBC,mBAAoB,iCACpBC,iBAAkB,gCAEpBpsI,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV4rI,KAAM,WACNC,IAAK,wBACLC,KAAM,WACNlgE,QAAS,mBACTG,QAAS,sBACTuT,SAAU,mBACVC,SAAU,sBACVwsD,eAAgB,sCAChBC,gBAAiB,mEACjBC,oBAAqB,yEACrBC,gBAAiB,iDACjBC,mBAAoB,0CACpBC,iBAAkB,6CAEpBpsI,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV4rI,KAAM,WACNC,IAAK,uBACLC,KAAM,QACNlgE,QAAS,iBACTG,QAAS,iBACTuT,SAAU,gBACVC,SAAU,gBACVwsD,eAAgB,uDAChBC,gBAAiB,6EACjBC,oBAAqB,kFACrBC,gBAAiB,wCACjBC,mBAAoB,0CACpBC,iBAAkB,0CAEpBpsI,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAQ,UACN4rI,KAAM,SACNC,IAAK;0BACLC,KAAM,SACNlgE,QAAS,eACTG,QAAS,mBACTuT,SAAU,YACVC,SAAU,gBACVwsD,eAAgB,0DAChBC,gBAAiB,mEACjBC,oBAAqB,yEACrBC,gBAAiB,gDACjBC,mBAAoB,sCACpBC,iBAAkB,sCAEpBpsI,EAAQ,SAAWA,EAAQ,SAC3BA,EAAe,MAAIA,EAAQ,SAC3BA,EAAe,MAAIA,EAAQ,SAG3BA,EAAY,IACV4rI,KAAM,gBACNC,IAAK,oBACLC,KAAM,QACNlgE,QAAS,gBACTG,QAAS,iBACTuT,SAAU,qBACVC,SAAU,sBACVwsD,eAAgB,yDAChBC,gBAAiB,yEACjBC,oBAAqB,mFACrBC,gBAAiB,wCACjBC,mBAAoB,iCACpBC,iBAAkB,2CAEpBpsI,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACV4rI,KAAM,KACNC,IAAK,OACLC,KAAM,KACNlgE,QAAS,OACTG,QAAS,QACTuT,SAAU,OACVC,SAAU,QACVwsD,eAAgB,cAChBC,gBAAiB,6BACjBC,oBAAqB,qBACrBC,gBAAiB,eACjBC,mBAAoB,UACpBC,iBAAkB,WAEpBpsI,EAAe,MAAIA,EAAY,IAIzB,SAAUC,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAevCqvH,EAAc,WAIhB,QAASA,MACP,EAAItvH,EAA0B,SAAG1c,KAAMgsI,GAEvChsI,KAAKisI,eAAiB,EAEtBjsI,KAAK87B,MAAQ,GAAI5B,OACjBl6B,KAAK41G,OAAS5jG,SAASC,cAAc,UAqIvC,OA7HA,EAAI2K,EAAuB,SAAGovH,IAC5BxpI,IAAK,OACLgC,MAAO,WACL,IAAIxE,KAAKg1C,cAAT,CAEAh1C,KAAK+P,IAAM/P,KAAK87B,MAAM/rB,GACtB,IAAIo1E,GAAInlF,KAAK87B,MAAM5pB,MACfzF,EAAIzM,KAAK87B,MAAM3pB,MAGnBnS,MAAKkS,MAAQizE,EACbnlF,KAAKmS,OAAS1F,CAEd,IAAIy/H,GAAKxnI,KAAKwJ,MAAMzB,EAAI,GACpB0/H,EAAKznI,KAAKwJ,MAAMzB,EAAI,GACpB2/H,EAAK1nI,KAAKwJ,MAAMzB,EAAI,GACpB4/H,EAAM3nI,KAAKwJ,MAAMzB,EAAI,IAErBmG,EAAKlO,KAAKwJ,MAAMi3E,EAAI,GACpBmnD,EAAK5nI,KAAKwJ,MAAMi3E,EAAI,GACpBonD,EAAK7nI,KAAKwJ,MAAMi3E,EAAI,GACpBqnD,EAAM9nI,KAAKwJ,MAAMi3E,EAAI,GAGzBnlF,MAAK41G,OAAO1jG,MAAQ,EAAIo6H,EACxBtsI,KAAK41G,OAAOzjG,OAAS+5H,EAKrBlsI,KAAKysI,cAAgB,EAAG,EAAG75H,EAAIs5H,IAAMt5H,EAAI,EAAG05H,EAAIH,IAAMv5H,EAAIu5H,EAAII,EAAIH,IAAM,EAAIG,EAAIJ,EAAIK,EAAKH,IAEzFrsI,KAAK0sI,kBAQPlqI,IAAK,cACLgC,MAAO,WACL,WAA4BtB,KAArBlD,KAAKysI,eAsBdjqI,IAAK,cACLgC,MAAO,WACL,GAAIsb,GAAM9f,KAAK41G,OAAO8D,WAAW,MAG7Bp9D,EAAKt8C,KAAKysI,YAAY,EAC1B3sH,GAAI6sH,UAAU3sI,KAAK87B,MAAOwgB,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAGlD,KAAK,GAAI+jC,GAAa,EAAGA,EAAargF,KAAKisI,eAAgB5rD,IAAc,CACvE,GAAIhkC,GAAOr8C,KAAKysI,YAAYpsD,EAAa,GACrCusD,EAAM5sI,KAAKysI,YAAYpsD,EAE3BvgE,GAAI6sH,UAAU3sI,KAAK41G,OAAQv5D,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIuwF,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,QAqB/FpqI,IAAK,sBACLgC,MAAO,SAA6Bsb,EAAKy7B,EAAQ7zC,EAAMI,EAAKoK,EAAOC,GAEjE,GAAKnS,KAAKg1C,cAEV,GAAIuG,EAAS,EAAG,CAEdA,GAAU,EAEV,KADA,GAAI8kC,GAAa,EACV9kC,EAAS,GAAK8kC,EAAargF,KAAKisI,gBACrC1wF,GAAU,GACV8kC,GAAc,CAGZA,IAAcrgF,KAAKisI,iBACrB5rD,EAAargF,KAAKisI,eAAiB,EAIrC,IAAI5vF,GAAOr8C,KAAKysI,YAAYpsD,EAC5BvgE,GAAI6sH,UAAU3sI,KAAK41G,OAAQv5D,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAI30C,EAAMI,EAAKoK,EAAOC,OAGjF2N,GAAI6sH,UAAU3sI,KAAK87B,MAAOp0B,EAAMI,EAAKoK,EAAOC,OAI3C65H,IAGTrsI,GAAiB,QAAIqsI,GAIf,SAAUpsI,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAM3BmlI,EAAS,WAIX,QAASA,MACP,EAAI3oH,EAA0B,SAAG1c,KAAMqlI,GAEvCrlI,KAAK4Y,QACL5Y,KAAK6sI,aAAe,EACpB7sI,KAAK8sI,eACL9sI,KAAK62D,WAAa,EAElB72D,KAAK+sI,gBAAmB//H,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aACjKC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAG7I/M,KAAKqP,WACLrP,KAAKs0B,gBACHipD,kBAAkB,GAEpB1nE,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBA0FjC,OAjFA,EAAI1X,EAAuB,SAAGyoH,IAC5B7iI,IAAK,aACLgC,MAAO,SAAoB6K,GACzB,GAAI29H,IAAgB,mBAEpB,QAAgB9pI,KAAZmM,EACF,IAAK,GAAI49H,KAAa59H,GACpB,GAAIA,EAAQ7N,eAAeyrI,KACgB,IAArCD,EAAa7mI,QAAQ8mI,GAAmB,CAC1C,GAAIz+G,GAAQnf,EAAQ49H,EACpBjtI,MAAKyV,IAAIw3H,EAAWz+G,OAY9BhsB,IAAK,QACLgC,MAAO,WACLxE,KAAKmwD,UACLnwD,KAAK8sI,kBAaPtqI,IAAK,MACLgC,MAAO,SAAa0oI,GAClB,GAAIC,KAAe5nI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,GAE9EipB,EAAQxuB,KAAKmwD,OAAO+8E,EAExB,QAAchqI,KAAVsrB,GAAuB2+G,EACzB,IAAsC,IAAlCntI,KAAKqP,QAAQkuE,kBAA8Bv9E,KAAK8sI,YAAYzqI,OAAS,EAAG,CAE1E,GAAI84B,GAAQn7B,KAAK62D,WAAa72D,KAAK8sI,YAAYzqI,MAC/CrC,MAAK62D,aACLroC,KACAA,EAAMhjB,MAAQxL,KAAKmwD,OAAOnwD,KAAK8sI,YAAY3xG,IAC3Cn7B,KAAKmwD,OAAO+8E,GAAa1+G,MACpB,CAEL,GAAI4+G,GAASptI,KAAK6sI,aAAe7sI,KAAK+sI,cAAc1qI,MACpDrC,MAAK6sI,eACLr+G,KACAA,EAAMhjB,MAAQxL,KAAK+sI,cAAcK,GACjCptI,KAAKmwD,OAAO+8E,GAAa1+G,EAI7B,MAAOA,MAYThsB,IAAK,MACLgC,MAAO,SAAayoI,EAAWx/H,GAG7B,MAFAzN,MAAKmwD,OAAO88E,GAAax/H,EACzBzN,KAAK8sI,YAAY1mI,KAAK6mI,GACfx/H,MAGJ43H,IAGT1lI,GAAiB,QAAI0lI,GAIf,SAAUzlI,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAC3B+U,EAAU/U,EAAoB,IAC9BsZ,EAAWtZ,EAAoB,IAC/Bw6B,EAAOx6B,EAAoB,IAAa,QAMxCmmI,EAAe,WAOjB,QAASA,GAAa5zH,EAAM89D,EAAQpgB,EAAQ41E,GAC1C,GAAInwF,GAAQ51C,IAoIZ,KAlIA,EAAI0c,EAA0B,SAAG1c,KAAMqmI,GAEvCrmI,KAAKyS,KAAOA,EACZzS,KAAKuwE,OAASA,EACdvwE,KAAKmwD,OAASA,EACdnwD,KAAK+lI,aAAeA,EAGpB/lI,KAAKyS,KAAKyyH,UAAUC,WAAanlI,KAAKo/B,OAAO7W,KAAKvoB,MAElDA,KAAKqtI,gBACH53H,IAAK,SAAa3L,EAAOqM,GACvBy/B,EAAMngC,IAAIU,EAAOO,QAEnBC,OAAQ,SAAgB7M,EAAOqM,GAC7By/B,EAAMj/B,OAAOR,EAAOO,MAAOP,EAAOjB,KAAMiB,EAAOU,UAEjD0B,OAAQ,SAAgBzO,EAAOqM,GAC7By/B,EAAMr9B,OAAOpC,EAAOO,SAIxB1W,KAAKs0B,gBACH9R,YAAa,EACb+8D,oBAAqB,EACrBtjD,gBAAa/4B,GACbsI,OACEwB,OAAQ,UACRD,WAAY,UACZE,WACED,OAAQ,UACRD,WAAY,WAEdG,OACEF,OAAQ,UACRD,WAAY,YAGhByvB,OACE7sB,GAAG,EACHgM,GAAG,GAELqf,MACExvB,MAAO,UACPwQ,KAAM,GACN05D,KAAM,QACN3oE,WAAY,OACZo+C,YAAa,EACb8pB,YAAa,UACb/gC,MAAO,SACP+9B,QAAS,EACT8K,OAAO,EACPC,MACErJ,IAAK,QAEPsJ,UACEtJ,IAAK,eAEPuJ,MACEvJ,IAAK,UAEPwJ,MACExJ,IAAK,GACL33D,KAAM,GACN05D,KAAM,YACNzD,QAAS,IAGbzjD,UAAOtrB,GACP0nB,QAAQ,EACRo8C,MACE0O,KAAM,cACN1tD,SAAM9kB,GACN8Y,KAAM,GACNxQ,MAAO,WAETswB,UAAO54B,GACP+Y,UAAO/Y,GACPyyE,oBAAoB,EACpBiG,UAAO14E,GACPgf,QACEpa,IAAK,EACLF,MAAO,EACPya,OAAQ,EACR3a,KAAM,GAER+1B,KAAM,EACN5B,SAAS,EACTY,SACEp4B,IAAK,GACLC,IAAK,GACL2X,OACEnM,SAAS,EACTzL,IAAK,GACLC,IAAK,GACLgwE,WAAY,GACZD,cAAe,GAEjB33C,sBAAuB,SAA+Br4B,EAAKC,EAAKC,EAAOC,GACrE,GAAIF,IAAQD,EACV,MAAO,EAEP,IAAII,GAAQ,GAAKH,EAAMD,EACvB,OAAOK,MAAKJ,IAAI,GAAIE,EAAQH,GAAOI,KAIzCoe,QACE/S,SAAS,EACTtE,MAAO,kBACPwQ,KAAM,GACNrM,EAAG,EACHgM,EAAG,GAEL4J,MAAO,UACP/B,iBACEH,cAAc,EACd+Y,aAAc,EACdof,eAAe,EACfN,cAAc,EACdukC,oBAAoB,GAEtBzjE,KAAM,GACNiU,UAAO/sB,GACPsB,UAAOtB,GACPyM,MAAGzM,GACHyY,MAAGzY,IAIDlD,KAAKs0B,eAAemJ,MAAQ,EAC9B,KAAM,oFAGRz9B,MAAKqP,QAAUwG,EAAKhH,aAAa7O,KAAKs0B,gBAEtCt0B,KAAKolI,qBAyZP,OAjZA,EAAIxoH,EAAuB,SAAGypH,IAC5B7jI,IAAK,qBACLgC,MAAO,WACL,GAAIgzC,GAASx3C,IAGbA,MAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB1U,KAAK6Z,QAAQ0O,KAAKvoB,OACvDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW1U,KAAK6Z,QAAQ0O,KAAKvoB,OAClDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW,WAC9BmB,EAAKnN,QAAQ8uC,EAAO61F,eAAgB,SAAU1kI,EAAUmB,GAClD0tC,EAAO/kC,KAAKyC,KAAKgpC,OAAO1G,EAAO/kC,KAAKyC,KAAKgpC,MAAMvpC,IAAI7K,EAAOnB,WAEzD6uC,GAAO/kC,KAAKyyH,UAAUC,iBACtB3tF,GAAO61F,eAAe53H,UACtB+hC,GAAO61F,eAAe12H,aACtB6gC,GAAO61F,eAAe90H,aACtBi/B,GAAO61F,oBAUlB7qI,IAAK,aACLgC,MAAO,SAAoB6K,GACzB,OAAgBnM,KAAZmM,EAAuB,CAIzB,GAHAqrB,EAAKa,aAAav7B,KAAKqP,QAASA,OAGVnM,KAAlBmM,EAAQkW,MACV,IAAK,GAAI2X,KAAUl9B,MAAKyS,KAAKyrC,MACvBl+C,KAAKyS,KAAKyrC,MAAM18C,eAAe07B,IACjCl9B,KAAKyS,KAAKyrC,MAAMhhB,GAAQtB,aAM9B,QAAqB14B,KAAjBmM,EAAQ2rB,KACV,IAAK,GAAI+0E,KAAW/vG,MAAKyS,KAAKyrC,MACxBl+C,KAAKyS,KAAKyrC,MAAM18C,eAAeuuG,KACjC/vG,KAAKyS,KAAKyrC,MAAM6xD,GAASp0E,oBACzB37B,KAAKyS,KAAKyrC,MAAM6xD,GAASzqF,eAM/B,QAAqBpiB,KAAjBmM,EAAQ2M,KACV,IAAK,GAAIsxH,KAAYttI,MAAKyS,KAAKyrC,MACzBl+C,KAAKyS,KAAKyrC,MAAM18C,eAAe8rI,IACjCttI,KAAKyS,KAAKyrC,MAAMovF,GAAUhoH,mBAMTpiB,KAAnBmM,EAAQub,YAA4C1nB,KAApBmM,EAAQwsB,SAC1C77B,KAAKyS,KAAK8c,QAAQ1a,KAAK,oBAa7BrS,IAAK,UACLgC,MAAO,SAAiB05C,GACtB,GAAIqvF,GAAYhoI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAE3EioI,EAAextI,KAAKyS,KAAKyC,KAAKgpC,KAElC,IAAIA,YAAiBjpC,IAAWipC,YAAiB1kC,GAC/CxZ,KAAKyS,KAAKyC,KAAKgpC,MAAQA,MAClB,IAAIv4C,MAAMC,QAAQs4C,GACvBl+C,KAAKyS,KAAKyC,KAAKgpC,MAAQ,GAAIjpC,GAC3BjV,KAAKyS,KAAKyC,KAAKgpC,MAAMzoC,IAAIyoC,OACpB,CAAA,GAAKA,EAGV,KAAM,IAAIp8C,WAAU,4BAFpB9B,MAAKyS,KAAKyC,KAAKgpC,MAAQ,GAAIjpC,GAe7B,GAVIu4H,GAEF33H,EAAKnN,QAAQ1I,KAAKqtI,eAAgB,SAAU1kI,EAAUmB,GACpD0jI,EAAa74H,IAAI7K,EAAOnB,KAK5B3I,KAAKyS,KAAKyrC,SAENl+C,KAAKyS,KAAKyC,KAAKgpC,MAAO,CAExB,GAAI1nC,GAAKxW,IACT6V,GAAKnN,QAAQ1I,KAAKqtI,eAAgB,SAAU1kI,EAAUmB,GACpD0M,EAAG/D,KAAKyC,KAAKgpC,MAAMxpC,GAAG5K,EAAOnB,IAI/B,IAAI0O,GAAMrX,KAAKyS,KAAKyC,KAAKgpC,MAAMnmC,QAC/B/X,MAAKyV,IAAI4B,GAAK,IAGE,IAAdk2H,GACFvtI,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAY3BrS,IAAK,MACLgC,MAAO,SAAa6S,GAKlB,IAAK,GAJDk2H,GAAYhoI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAE3E+Q,MAAK,GACLm3H,KACKptI,EAAI,EAAGA,EAAIgX,EAAIhV,OAAQhC,IAAK,CACnCiW,EAAKe,EAAIhX,EACT,IAAI2mC,GAAahnC,KAAKyS,KAAKyC,KAAKgpC,MAAMh9C,IAAIoV,GACtC+qC,EAAOrhD,KAAKo/B,OAAO4H,EACvBymG,GAASrnI,KAAKi7C,GACdrhD,KAAKyS,KAAKyrC,MAAM5nC,GAAM+qC,EAGxBrhD,KAAK+lI,aAAa2H,kBAAkBD,IAElB,IAAdF,GACFvtI,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAa3BrS,IAAK,SACLgC,MAAO,SAAgB6S,EAAKs2H,EAAa92H,GAGvC,IAAK,GAFDqnC,GAAQl+C,KAAKyS,KAAKyrC,MAClBzB,GAAc,EACTp8C,EAAI,EAAGA,EAAIgX,EAAIhV,OAAQhC,IAAK,CACnC,GAAIiW,GAAKe,EAAIhX,GACTghD,EAAOnD,EAAM5nC,GACbpB,EAAOy4H,EAAYttI,OACV6C,KAATm+C,EAEEA,EAAK3rC,WAAWR,KAClBunC,GAAc,IAGhBA,GAAc,EAEd4E,EAAOrhD,KAAKo/B,OAAOlqB,GACnBgpC,EAAM5nC,GAAM+qC,GAIX5E,OAA2Bv5C,KAAZ2T,IAIlB4lC,EAAckxF,EAAYllG,KAAK,SAAUrhC,EAAU+zB,GACjD,GAAIyyG,GAAW/2H,EAAQskB,EACvB,OAAOyyG,IAAYA,EAAShyD,QAAUx0E,EAASw0E,UAI/B,IAAhBn/B,EACFz8C,KAAKyS,KAAK8c,QAAQ1a,KAAK,gBAEvB7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAW3BrS,IAAK,SACLgC,MAAO,SAAgB6S,GAGrB,IAAK,GAFD6mC,GAAQl+C,KAAKyS,KAAKyrC,MAEb79C,EAAI,EAAGA,EAAIgX,EAAIhV,OAAQhC,IAAK,OAE5B69C,GADE7mC,EAAIhX,IAIfL,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAWzBrS,IAAK,SACLgC,MAAO,SAAgBwiC,GAGrB,MAAO,KAFgBzhC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKm1B,GAE/DsM,EAAYhnC,KAAKyS,KAAMzS,KAAKuwE,OAAQvwE,KAAKmwD,OAAQnwD,KAAKqP,QAASrP,KAAKs0B,mBASlG9xB,IAAK,UACLgC,MAAO,WACL,GAAIozC,GAAS53C,KAET6tI,EAAiBtoI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAEpFsQ,GAAKnN,QAAQ1I,KAAKyS,KAAKyrC,MAAO,SAAUmD,EAAMnkB,GAC5C,GAAIhoB,GAAO0iC,EAAOnlC,KAAKyC,KAAKgpC,MAAMh9C,IAAIg8B,OACzBh6B,KAATgS,KACqB,IAAnB24H,GACFxsF,EAAK3rC,YAAa/F,EAAG,KAAMgM,EAAG,OAEhC0lC,EAAK3rC,YAAa8mB,OAAO,IACzB6kB,EAAK3rC,WAAWR,SAYtB1S,IAAK,eACLgC,MAAO,SAAsB6S,GAC3B,GAAIy2H,KACJ,QAAY5qI,KAARmU,GACF,IAA2B,IAAvB1R,MAAMC,QAAQyR,IAChB,IAAK,GAAIhX,GAAI,EAAGA,EAAIgX,EAAIhV,OAAQhC,IAC9B,OAAgC6C,KAA5BlD,KAAKyS,KAAKyrC,MAAM7mC,EAAIhX,IAAmB,CACzC,GAAIghD,GAAOrhD,KAAKyS,KAAKyrC,MAAM7mC,EAAIhX,GAC/BytI,GAAUz2H,EAAIhX,KAAQsP,EAAGjL,KAAKwoC,MAAMmU,EAAK1xC,GAAIgM,EAAGjX,KAAKwoC,MAAMmU,EAAK1lC,SAIpE,QAA6BzY,KAAzBlD,KAAKyS,KAAKyrC,MAAM7mC,GAAoB,CACtC,GAAIkkE,GAAQv7E,KAAKyS,KAAKyrC,MAAM7mC,EAC5By2H,GAAUz2H,IAAS1H,EAAGjL,KAAKwoC,MAAMquC,EAAM5rE,GAAIgM,EAAGjX,KAAKwoC,MAAMquC,EAAM5/D,SAInE,KAAK,GAAIwD,GAAK,EAAGA,EAAKnf,KAAKyS,KAAK2nE,YAAY/3E,OAAQ8c,IAAM,CACxD,GAAI4uH,GAAS/tI,KAAKyS,KAAKyrC,MAAMl+C,KAAKyS,KAAK2nE,YAAYj7D,GACnD2uH,GAAU9tI,KAAKyS,KAAK2nE,YAAYj7D,KAASxP,EAAGjL,KAAKwoC,MAAM6gG,EAAOp+H,GAAIgM,EAAGjX,KAAKwoC,MAAM6gG,EAAOpyH,IAG3F,MAAOmyH,MAQTtrI,IAAK,iBACLgC,MAAO,WAEL,GAAIspI,MACA3zF,EAAUn6C,KAAKyS,KAAKyC,KAAKgpC,MAAMlmC,YAEnC,KAAK,GAAIklB,KAAUid,GAAQ/kC,MACzB,GAAI+kC,EAAQ/kC,MAAM5T,eAAe07B,GAAS,CACxC,GAAImkB,GAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,EACvBid,GAAQ/kC,MAAM8nB,GAAQvtB,GAAKjL,KAAKwoC,MAAMmU,EAAK1xC,IAAMwqC,EAAQ/kC,MAAM8nB,GAAQvhB,GAAKjX,KAAKwoC,MAAMmU,EAAK1lC,IAC9FmyH,EAAU1nI,MAAOkQ,GAAI+qC,EAAK/qC,GAAI3G,EAAGjL,KAAKwoC,MAAMmU,EAAK1xC,GAAIgM,EAAGjX,KAAKwoC,MAAMmU,EAAK1lC,KAI9Ew+B,EAAQxjC,OAAOm3H,MAUjBtrI,IAAK,iBACLgC,MAAO,SAAwB04B,GAC7B,OAAgCh6B,KAA5BlD,KAAKyS,KAAKyrC,MAAMhhB,GAClB,MAAOl9B,MAAKyS,KAAKyrC,MAAMhhB,GAAQ3X,MAAMnD,eAazC5f,IAAK,oBACLgC,MAAO,SAA2B04B,EAAQjQ,GACxC,GAAI+gH,KACJ,QAAgC9qI,KAA5BlD,KAAKyS,KAAKyrC,MAAMhhB,GAGlB,IAAK,GAFDmkB,GAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,GACvB+wG,KACK5tI,EAAI,EAAGA,EAAIghD,EAAKxmB,MAAMx4B,OAAQhC,IAAK,CAC1C,GAAI66B,GAAOmmB,EAAKxmB,MAAMx6B,EACJ,QAAd4sB,GAAsBiO,EAAKghB,MAAQmF,EAAK/qC,OAEbpT,KAAzB+qI,EAAQ/yG,EAAK+gB,UACf+xF,EAAS5nI,KAAK80B,EAAK+gB,QACnBgyF,EAAQ/yG,EAAK+gB,SAAU,GAEF,SAAdhvB,GAAwBiO,EAAK+gB,QAAUoF,EAAK/qC,QAE1BpT,KAAvB+qI,EAAQ/yG,EAAKghB,QACf8xF,EAAS5nI,KAAK80B,EAAKghB,MACnB+xF,EAAQ/yG,EAAKghB,OAAQ,GAK7B,MAAO8xF,MAUTxrI,IAAK,oBACLgC,MAAO,SAA2B04B,GAChC,GAAIgxG,KACJ,QAAgChrI,KAA5BlD,KAAKyS,KAAKyrC,MAAMhhB,GAElB,IAAK,GADDmkB,GAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,GAClB78B,EAAI,EAAGA,EAAIghD,EAAKxmB,MAAMx4B,OAAQhC,IACrC6tI,EAAS9nI,KAAKi7C,EAAKxmB,MAAMx6B,GAAGiW,QAG9BY,SAAQ0G,IAAI,mEAAoEsf,EAElF,OAAOgxG,MAYT1rI,IAAK,WACLgC,MAAO,SAAkB04B,EAAQvtB,EAAGgM,GAClC,GAAIq8B,GAASh4C,SAEmBkD,KAA5BlD,KAAKyS,KAAKyrC,MAAMhhB,IAClBl9B,KAAKyS,KAAKyrC,MAAMhhB,GAAQvtB,EAAI7L,OAAO6L,GACnC3P,KAAKyS,KAAKyrC,MAAMhhB,GAAQvhB,EAAI7X,OAAO6X,GACnCwX,WAAW,WACT6kB,EAAOvlC,KAAK8c,QAAQ1a,KAAK,oBACxB,IAEHqC,QAAQ0G,IAAI,0DAA2Dsf,OAItEmpG,IAGT1mI,GAAiB,QAAI0mI,GAIf,SAAUzmI,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAEjCA,EAAoB,IACpBA,EAAoB,IACpBN,EAAOD,QAAUO,EAAoB,MAK/B,SAAUN,EAAQD,EAASO,GAEjC,GAAIwhF,GAAUxhF,EAAoB,IAC9BsjD,EAAWtjD,EAAoB,IAAI,YACnC+9B,EAAY/9B,EAAoB,GACpCN,GAAOD,QAAUO,EAAoB,GAAGiuI,WAAa,SAAUrsH,GAC7D,GAAIF,GAAI9gB,OAAOghB,EACf,YAAuB5e,KAAhB0e,EAAE4hC,IACJ,cAAgB5hC,IAEhBqc,EAAUz8B,eAAekgF,EAAQ9/D,MAMlC,SAAUhiB,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvCyxH,EAAmBluI,EAAoB,KAAc,QACrDu5B,EAAgBv5B,EAAoB,IAAa,QAQjDsxE,EAAgB,WAQlB,QAASA,GAAc1xD,EAAKxV,EAAQmZ,EAAUvW,GAC5C,GAAI0oC,GAAQ51C,MAEZ,EAAI0c,EAA0B,SAAG1c,KAAMwxE,GAEvCxxE,KAAK8f,IAAMA,EACX9f,KAAKsK,OAASA,CASd,IAAI+jI,GAAY,SAAmBz2G,EAAM+7C,GACvC,OAAazwE,KAAT00B,EAAoB,MAAO,EAG/B,IAAI3e,GAAS28B,EAAMtrC,OAAOuyB,oBAAoB/c,EAAK2D,EAAUvW,EAAOymE,GAEhEzhE,EAAQ,CACZ,IAAa,KAAT0lB,EAAa,CAKf1lB,EADc0jC,EAAM91B,IAAIwuH,YAAY12G,GACpB1lB,MAGlB,OAASA,MAAOA,EAAO+G,OAAQA,GAGjCjZ,MAAKi0B,MAAQ,GAAIm6G,GAAiBC,GAqgBpC,OA/eA,EAAIzxH,EAAuB,SAAG40D,IAC5BhvE,IAAK,UACLgC,MAAO,SAAiBozB,GACtB,IAAK6B,EAAc+mB,aAAa5oB,GAC9B,MAAO53B,MAAKi0B,MAAMs6G,UAGpB,IAAIvzG,GAAOh7B,KAAKsK,OAAOqnE,WAGvB/5C,GAAOA,EAAK1sB,QAAQ,QAAS,MAC7B0sB,EAAOA,EAAK1sB,QAAQ,MAAO,KAK3B,IAAIsjI,GAAU5pI,OAAOgzB,GAAMzvB,MAAM,MAC7BwzC,EAAY6yF,EAAQnsI,MAExB,IAAI24B,EAAK+hD,MAEP,IAAK,GAAI18E,GAAI,EAAGA,EAAIs7C,EAAWt7C,IAAK,CAClC,GAAIw0E,GAAS70E,KAAKyuI,YAAYD,EAAQnuI,GAAI26B,EAAK+hD,MAG/C,QAAe75E,KAAX2xE,EAEJ,GAAsB,IAAlBA,EAAOxyE,OAAX,CAKA,GAAI24B,EAAKm3C,OAAS,EAGhB,IAAK,GAAIjjE,GAAI,EAAGA,EAAI2lE,EAAOxyE,OAAQ6M,IAAK,CACtC,GAAIykE,GAAMkB,EAAO3lE,GAAGykE,IAChB+6D,EAAQ75D,EAAO3lE,GAAG0oB,IACtB53B,MAAK2uI,qBAAqBD,EAAO/6D,GAAK,OAIxC,KAAK,GAAIz0D,GAAK,EAAGA,EAAK21D,EAAOxyE,OAAQ6c,IAAM,CACzC,GAAI0vH,GAAO/5D,EAAO31D,GAAIy0D,IAClBk7D,EAASh6D,EAAO31D,GAAI0Y,IACxB53B,MAAKi0B,MAAM66G,OAAOD,EAAQD,GAI9B5uI,KAAKi0B,MAAM86G,cArBT/uI,MAAKi0B,MAAM86G,QAAQ,QAyBvB,IAAI/zG,EAAKm3C,OAAS,EAGhB,IAAK,GAAIhzD,GAAK,EAAGA,EAAKw8B,EAAWx8B,IAC/Bnf,KAAK2uI,qBAAqBH,EAAQrvH,QAIpC,KAAK,GAAI6vH,GAAM,EAAGA,EAAMrzF,EAAWqzF,IACjChvI,KAAKi0B,MAAM86G,QAAQP,EAAQQ,GAKjC,OAAOhvI,MAAKi0B,MAAMs6G,cAWpB/rI,IAAK,qBACLgC,MAAO,SAA4ByqI,GACjC,GAAIC,GAAS,MAMb,OALqB,aAAjBD,GAAgD,OAAjBA,EACjCC,EAAS,YACiB,IAAjBD,GAA0C,SAAjBA,IAClCC,EAAS,QAEJA,KAUT1sI,IAAK,kBACLgC,MAAO,SAAyBozB,GAC9B,GAAIi9C,MAIAnzE,GACFs7E,MAAM,EACNE,MAAM,EACNC,MAAM,EACNgyD,SAAS,EACT98H,SAAU,EACV+8H,OAAQ,GACRC,YA6CF,KA1CA3tI,EAAEiyE,IAAM,WACN,MAAgC,KAAzB3zE,KAAKqvI,SAAShtI,OAAe,SAAWrC,KAAKqvI,SAAS,IAG/D3tI,EAAE4tI,QAAU,WACV,MAA6B,KAAzBtvI,KAAKqvI,SAAShtI,OAAqB,SAAuC,SAArBrC,KAAKqvI,SAAS,GAAsB,OACvF3tI,EAAEs7E,MAAQt7E,EAAEw7E,KACP,WACEx7E,EAAEs7E,KACJ,OACEt7E,EAAEw7E,KACJ,WADF,IAMXx7E,EAAE6tI,UAAY,WACGhqI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAE1EvF,MAAKmvI,UACPnvI,KAAKyV,IAAI,KACTzV,KAAKmvI,SAAU,GAEbnvI,KAAKovI,OAAO/sI,OAAS,IACvBwyE,EAAOzuE,MAAOwxB,KAAM53B,KAAKovI,OAAQz7D,IAAK3zE,KAAKsvI,YAC3CtvI,KAAKovI,OAAS,KAIlB1tI,EAAE+T,IAAM,SAAUmiB,GACH,MAATA,IACFl2B,EAAEytI,SAAU,GAEVztI,EAAEytI,UACJnvI,KAAKovI,QAAU,IACfpvI,KAAKmvI,SAAU,GAEL,KAARv3G,IACF53B,KAAKovI,QAAUx3G,IAIZl2B,EAAE2Q,SAAWulB,EAAKv1B,QAAQ,CAC/B,GAAImtI,GAAK53G,EAAKtY,OAAO5d,EAAE2Q,SACnB,SAAQ/D,KAAKkhI,GACV9tI,EAAEy7E,KAGLz7E,EAAE+T,IAAI+5H,GAFN9tI,EAAEytI,SAAU,EAIL,IAAI7gI,KAAKkhI,GACb9tI,EAAEy7E,MAASz7E,EAAEs7E,OAAQ,MAAM1uE,KAAKspB,EAAKjsB,OAAOjK,EAAE2Q,SAAU,IAKjD3Q,EAAEy7E,MAASz7E,EAAEw7E,OAAQ,MAAM5uE,KAAKspB,EAAKjsB,OAAOjK,EAAE2Q,SAAU,KAKxD3Q,EAAEy7E,MAAQ,SAAS7uE,KAAKspB,EAAKjsB,OAAOjK,EAAE2Q,SAAU,KAC1D3Q,EAAE6tI,YACF7tI,EAAEy7E,MAAO,EACTz7E,EAAE2tI,SAASI,QAAQ,QACnB/tI,EAAE2Q,UAAY,IACJ3Q,EAAEy7E,MAAoB,SAAZz7E,EAAEiyE,OAAoB,QAAQrlE,KAAKspB,EAAKjsB,OAAOjK,EAAE2Q,SAAU,KAC/E3Q,EAAE6tI,YACF7tI,EAAEs7E,MAAO,EACTt7E,EAAE2tI,SAASh0H,QACX3Z,EAAE2Q,UAAY,IACJ3Q,EAAEy7E,MAAoB,SAAZz7E,EAAEiyE,OAAoB,QAAQrlE,KAAKspB,EAAKjsB,OAAOjK,EAAE2Q,SAAU,KAC/E3Q,EAAE6tI,YACF7tI,EAAEw7E,MAAO,EACTx7E,EAAE2tI,SAASh0H,QACX3Z,EAAE2Q,UAAY,GACO,SAAZ3Q,EAAEiyE,OAAoB,WAAWrlE,KAAKspB,EAAKjsB,OAAOjK,EAAE2Q,SAAU,KACvE3Q,EAAE6tI,YACF7tI,EAAEy7E,MAAO,EACTz7E,EAAE2tI,SAASh0H,QACX3Z,EAAE2Q,UAAY,GAEd3Q,EAAE+T,IAAI+5H,IAzBN9tI,EAAE6tI,YACF7tI,EAAEw7E,MAAO,EACTx7E,EAAE2tI,SAASI,QAAQ,QACnB/tI,EAAE2Q,UAAY,IARd3Q,EAAE6tI,YACF7tI,EAAEs7E,MAAO,EACTt7E,EAAE2tI,SAASI,QAAQ,QACnB/tI,EAAE2Q,UAAY,GA6BP,IAAI/D,KAAKkhI,GACd,OAAOlhI,KAAKspB,EAAKjsB,OAAOjK,EAAE2Q,SAAU,KACtC3Q,EAAE+T,IAAI,KACN/T,EAAE2Q,UAAY,GACL,QAAQ/D,KAAKspB,EAAKjsB,OAAOjK,EAAE2Q,SAAU,KAC9C3Q,EAAE+T,IAAI,KACN/T,EAAE2Q,UAAY,GAEd3Q,EAAE+T,IAAI,KAGR/T,EAAE+T,IAAI+5H,GAER9tI,EAAE2Q,WAGJ,MADA3Q,GAAE6tI,YACK16D,KAUTryE,IAAK,sBACLgC,MAAO,SAA6BozB,GAClC,GAAIi9C,MAIAnzE,GACFs7E,MAAM,EACNE,MAAM,EACNC,MAAM,EACNuyD,WAAW,EACXP,SAAS,EACT98H,SAAU,EACV+8H,OAAQ,GACRC,YA6CF,KA1CA3tI,EAAEiyE,IAAM,WACN,MAAgC,KAAzB3zE,KAAKqvI,SAAShtI,OAAe,SAAWrC,KAAKqvI,SAAS,IAG/D3tI,EAAE4tI,QAAU,WACV,MAA6B,KAAzBtvI,KAAKqvI,SAAShtI,OAAqB,SAAuC,SAArBrC,KAAKqvI,SAAS,GAAsB,OACvF3tI,EAAEs7E,MAAQt7E,EAAEw7E,KACP,WACEx7E,EAAEs7E,KACJ,OACEt7E,EAAEw7E,KACJ,WADF,IAMXx7E,EAAE6tI,UAAY,WACGhqI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAE1EvF,MAAKmvI,UACPnvI,KAAKyV,IAAI,KACTzV,KAAKmvI,SAAU,GAEbnvI,KAAKovI,OAAO/sI,OAAS,IACvBwyE,EAAOzuE,MAAOwxB,KAAM53B,KAAKovI,OAAQz7D,IAAK3zE,KAAKsvI,YAC3CtvI,KAAKovI,OAAS,KAIlB1tI,EAAE+T,IAAM,SAAUmiB,GACH,MAATA,IACFl2B,EAAEytI,SAAU,GAEVztI,EAAEytI,UACJnvI,KAAKovI,QAAU,IACfpvI,KAAKmvI,SAAU,GAEL,KAARv3G,IACF53B,KAAKovI,QAAUx3G,IAIZl2B,EAAE2Q,SAAWulB,EAAKv1B,QAAQ,CAC/B,GAAImtI,GAAK53G,EAAKtY,OAAO5d,EAAE2Q,SACnB,SAAQ/D,KAAKkhI,IACV9tI,EAAEy7E,KAGLz7E,EAAE+T,IAAI+5H,GAFN9tI,EAAEytI,SAAU,EAIdztI,EAAEguI,WAAY,GACL,KAAKphI,KAAKkhI,GACf9tI,EAAE2Q,SAAWulB,EAAKv1B,OAAS,IAC7BX,EAAE2Q,WACFm9H,EAAK53G,EAAKtY,OAAO5d,EAAE2Q,UACf,MAAM/D,KAAKkhI,GACb9tI,EAAEytI,SAAU,GAEZztI,EAAE+T,IAAI+5H,GACN9tI,EAAEguI,WAAY,IAGRhuI,EAAEy7E,MAASz7E,EAAEs7E,OAASt7E,EAAEguI,YAAahuI,EAAEytI,UAAY,KAAK7gI,KAAKkhI,GAI7D9tI,EAAEy7E,MAASz7E,EAAEw7E,OAASx7E,EAAEguI,YAAahuI,EAAEytI,UAAY,KAAK7gI,KAAKkhI,IAI7D9tI,EAAEy7E,OAASz7E,EAAEguI,WAAahuI,EAAEytI,UAAY,IAAI7gI,KAAKkhI,IAC3D9tI,EAAE6tI,YACF7tI,EAAEy7E,MAAO,EACTz7E,EAAE2tI,SAASI,QAAQ,UACT/tI,EAAEy7E,MAAoB,SAAZz7E,EAAEiyE,OAAoB,KAAKrlE,KAAKkhI,GAChD9tI,EAAE2Q,WAAaulB,EAAKv1B,OAAS,GAAK,cAAciM,KAAKspB,EAAKtY,OAAO5d,EAAE2Q,SAAW,KAChF3Q,EAAE6tI,YACF7tI,EAAEs7E,MAAO,EACTt7E,EAAE2tI,SAASh0H,SAEX3Z,EAAE+T,IAAI+5H,IAEE9tI,EAAEy7E,MAAoB,SAAZz7E,EAAEiyE,OAAoB,KAAKrlE,KAAKkhI,GAChD9tI,EAAE2Q,WAAaulB,EAAKv1B,OAAS,GAAK,cAAciM,KAAKspB,EAAKtY,OAAO5d,EAAE2Q,SAAW,KAChF3Q,EAAE6tI,YACF7tI,EAAEw7E,MAAO,EACTx7E,EAAE2tI,SAASh0H,SAEX3Z,EAAE+T,IAAI+5H,GAEC9tI,EAAEy7E,MAAoB,SAAZz7E,EAAEiyE,OAAoB,IAAIrlE,KAAKkhI,GAC9C9tI,EAAE2Q,WAAaulB,EAAKv1B,OAAS,GAAK,cAAciM,KAAKspB,EAAKtY,OAAO5d,EAAE2Q,SAAW,KAChF3Q,EAAE6tI,YACF7tI,EAAEy7E,MAAO,EACTz7E,EAAE2tI,SAASh0H,SAEX3Z,EAAE+T,IAAI+5H,IAGR9tI,EAAE+T,IAAI+5H,GACN9tI,EAAEguI,WAAY,IAjCdhuI,EAAE6tI,YACF7tI,EAAEw7E,MAAO,EACTx7E,EAAE2tI,SAASI,QAAQ,UANnB/tI,EAAE6tI,YACF7tI,EAAEs7E,MAAO,EACTt7E,EAAE2tI,SAASI,QAAQ,SAqCrB/tI,EAAE2Q,WAGJ,MADA3Q,GAAE6tI,YACK16D,KAaTryE,IAAK,cACLgC,MAAO,SAAqBozB,EAAMq3G,GAChC,GAAIC,GAASlvI,KAAK2vI,mBAAmBV,EACrC,OAAe,SAAXC,IAEAt3G,KAAMA,EACN+7C,IAAK,WAEa,aAAXu7D,EACFlvI,KAAK4vI,oBAAoBh4G,GACZ,SAAXs3G,EACFlvI,KAAK6vI,gBAAgBj4G,OADvB,MAYTp1B,IAAK,eACLgC,MAAO,SAAsBozB,GAC3B,GAAI1lB,GAAQlS,KAAK8f,IAAIwuH,YAAY12G,GAAM1lB,KACvC,OAAOlS,MAAKi0B,MAAM67G,WAAa59H,EAAQlS,KAAKsK,OAAOqnE,YAAYQ,UAajE3vE,IAAK,gBACLgC,MAAO,SAAuBurI,GAI5B,IAHA,GAAIn4G,GAAO,GACPutD,EAAI,EAEDA,EAAI4qD,EAAM1tI,QAAQ,CACvB,GAAI2tI,GAAe,KAATp4G,EAAc,GAAK,IACzBq4G,EAAUr4G,EAAOo4G,EAAMD,EAAM5qD,EAEjC,IAAInlF,KAAKkwI,aAAaD,GAAU,KAChCr4G,GAAOq4G,EACP9qD,IAGF,MAAOA,MAYT3iF,IAAK,oBACLgC,MAAO,SAA2BurI,GAGhC,IAFA,GAAI5qD,GAAI,EAEDA,EAAI4qD,EAAM1tI,SACXrC,KAAKkwI,aAAaH,EAAM9jI,MAAM,EAAGk5E,KACrCA,GAGF,OAAOA,MAmBT3iF,IAAK,uBACLgC,MAAO,SAA8Bya,GACnC,GAAI00D,GAAMpuE,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,SAC1E4qI,EAAa5qI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAGhF0Z,GAAMA,EAAI/T,QAAQ,SAAU,QAC5B+T,EAAMA,EAAI/T,QAAQ,oBAAqB,WAGvC,KAFA,GAAI6kI,GAAQ9wH,EAAI9W,MAAM,MAEf4nI,EAAM1tI,OAAS,GAAG,CACvB,GAAI8iF,GAAInlF,KAAKowI,cAAcL,EAE3B,IAAU,IAAN5qD,EAAS,CAEX,GAAIkrD,GAAON,EAAM,GAGbpgI,EAAI3P,KAAKswI,kBAAkBD,EAC/BrwI,MAAKi0B,MAAM86G,QAAQsB,EAAKpkI,MAAM,EAAG0D,GAAIgkE,GAGrCo8D,EAAM,GAAKM,EAAKpkI,MAAM0D,OACjB,CAEL,GAAI4gI,GAAOprD,CACU,OAAjB4qD,EAAM5qD,EAAI,GACZA,IACyB,MAAhB4qD,EAAMQ,IACfA,GAGF,IAAI34G,GAAOm4G,EAAM9jI,MAAM,EAAGk5E,GAAG58E,KAAK,GAE9B48E,IAAK4qD,EAAM1tI,QAAU8tI,EACvBnwI,KAAKi0B,MAAM66G,OAAOl3G,EAAM+7C,GAExB3zE,KAAKi0B,MAAM86G,QAAQn3G,EAAM+7C,GAI3Bo8D,EAAQA,EAAM9jI,MAAMskI,SAKrB/+D,IAGT7xE,GAAiB,QAAI6xE,GAIf,SAAU5xE,EAAQD,EAASO,GAqBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAhBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAI+sG,GAAUrxG,EAAoB,IAE9BsxG,EAAW7uG,EAAuB4uG,GAElC90F,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAiBvCyxH,EAAmB,WAKrB,QAASA,GAAiBE,IACxB,EAAI5xH,EAA0B,SAAG1c,KAAMouI,GAEvCpuI,KAAKsuI,YAAcA,EACnBtuI,KAAKwrB,QAAU,EACfxrB,KAAKkS,MAAQ,EACblS,KAAKmS,OAAS,EACdnS,KAAKi0B,SA0OP,OA7NA,EAAIrX,EAAuB,SAAGwxH,IAC5B5rI,IAAK,OACLgC,MAAO,SAAclE,EAAGs3B,GACtB,GAAI+7C,GAAMpuE,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,aAGxDrC,KAAlBlD,KAAKi0B,MAAM3zB,KACbN,KAAKi0B,MAAM3zB,IACT4R,MAAO,EACPC,OAAQ,EACR0iE,WAUJ,IAAI27D,GAAU54G,MACD10B,KAAT00B,GAA+B,KAATA,IAAa44G,EAAU,IAGjD,IAAInlI,GAASrL,KAAKsuI,YAAYkC,EAAS78D,GACnCmB,GAAQ,EAAI08B,EAAkB,YAAOnmG,EAAO4N,OAChD67D,GAAMl9C,KAAOA,EACbk9C,EAAM5iE,MAAQ7G,EAAO6G,MACrB4iE,EAAMnB,IAAMA,MAECzwE,KAAT00B,GAA+B,KAATA,IACxBk9C,EAAM5iE,MAAQ,GAGhBlS,KAAKi0B,MAAM3zB,GAAGu0E,OAAOzuE,KAAK0uE,GAG1B90E,KAAKi0B,MAAM3zB,GAAG4R,OAAS4iE,EAAM5iE,SAU/B1P,IAAK,WACLgC,MAAO,WACL,GAAIkyB,GAAO12B,KAAKi0B,MAAMj0B,KAAKwrB,QAC3B,YAAatoB,KAATwzB,EAA2B,EAExBA,EAAKxkB,SAWd1P,IAAK,SACLgC,MAAO,SAAgBozB,GACrB,GAAI+7C,GAAMpuE,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,QAE9EvF,MAAKywI,KAAKzwI,KAAKwrB,QAASoM,EAAM+7C,MAWhCnxE,IAAK,UACLgC,MAAO,SAAiBozB,GACtB,GAAI+7C,GAAMpuE,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,QAE9EvF,MAAKywI,KAAKzwI,KAAKwrB,QAASoM,EAAM+7C,GAC9B3zE,KAAKwrB,aAYPhpB,IAAK,uBACLgC,MAAO,WACL,IAAK,GAAIyK,GAAI,EAAGA,EAAIjP,KAAKi0B,MAAM5xB,OAAQ4M,IAAK,CAC1C,GAAIynB,GAAO12B,KAAKi0B,MAAMhlB,GAGlBkD,EAAS,CAEb,QAAoBjP,KAAhBwzB,EAAKm+C,OAEP,IAAK,GAAIv0E,GAAI,EAAGA,EAAIo2B,EAAKm+C,OAAOxyE,OAAQ/B,IAAK,CAC3C,GAAIw0E,GAAQp+C,EAAKm+C,OAAOv0E,EAEpB6R,GAAS2iE,EAAM3iE,SACjBA,EAAS2iE,EAAM3iE,QAKrBukB,EAAKvkB,OAASA,MAWlB3P,IAAK,qBACLgC,MAAO,WAGL,IAAK,GAFD0N,GAAQ,EACRC,EAAS,EACJlD,EAAI,EAAGA,EAAIjP,KAAKi0B,MAAM5xB,OAAQ4M,IAAK,CAC1C,GAAIynB,GAAO12B,KAAKi0B,MAAMhlB,EAElBynB,GAAKxkB,MAAQA,IACfA,EAAQwkB,EAAKxkB,OAEfC,GAAUukB,EAAKvkB,OAGjBnS,KAAKkS,MAAQA,EACblS,KAAKmS,OAASA,KAchB3P,IAAK,oBACLgC,MAAO,WAEL,IAAK,GADDksI,MACKzhI,EAAI,EAAGA,EAAIjP,KAAKi0B,MAAM5xB,OAAQ4M,IAAK,CAC1C,GAAIynB,GAAO12B,KAAKi0B,MAAMhlB,EAItB,IAA2B,IAAvBynB,EAAKm+C,OAAOxyE,SAGZ4M,IAAMjP,KAAKi0B,MAAM5xB,OAAS,GACT,IAAfq0B,EAAKxkB,OADX,CAIA,GAAIy+H,OACJ,EAAIn/B,EAAkB,SAAGm/B,EAASj6G,GAClCi6G,EAAQ97D,SAIR,KAAK,GAFD+7D,OAAkB,GAClBC,KACKvwI,EAAI,EAAGA,EAAIo2B,EAAKm+C,OAAOxyE,OAAQ/B,IAAK,CAC3C,GAAIw0E,GAAQp+C,EAAKm+C,OAAOv0E,EACJ,KAAhBw0E,EAAM5iE,MACR2+H,EAAUzqI,KAAK0uE,OAES5xE,KAApB0tI,IACFA,EAAkB97D,GAMC,IAArB+7D,EAAUxuI,YAAoCa,KAApB0tI,GAC5BC,EAAUzqI,KAAKwqI,GAGjBD,EAAQ97D,OAASg8D,EAEjBH,EAAStqI,KAAKuqI,IAGhB,MAAOD,MAUTluI,IAAK,WACLgC,MAAO,WAGLxE,KAAK8wI,uBACL9wI,KAAK+wI,oBACL,IAAIL,GAAW1wI,KAAKgxI,mBAGpB,QACE9+H,MAAOlS,KAAKkS,MACZC,OAAQnS,KAAKmS,OACb8hB,MAAOy8G,OAINtC,IAGTzuI,GAAiB,QAAIyuI,GAIf,SAAUxuI,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCE,EAAahlB,EAAoB,IAEjCilB,EAAaxiB,EAAuBuiB,GASpCwU,EAAM,SAAUrU,GAQlB,QAASqU,GAAIrqB,EAASoD,EAAMuP,IAC1B,EAAItF,EAA0B,SAAG1c,KAAM05B,EAEvC,IAAIkc,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAO05B,EAAI1lB,YAAa,EAAI6Q,EAA0B,SAAG6U,IAAMn5B,KAAKP,KAAMqP,EAASoD,EAAMuP,GAGjJ,OADA4zB,GAAMq7F,YAAYjvH,GACX4zB,EAqFT,OAlGA,EAAI3wB,EAAoB,SAAGyU,EAAKrU,IAwBhC,EAAIzI,EAAuB,SAAG8c,IAC5Bl3B,IAAK,SACLgC,MAAO,SAAgBsb,GACrB,GAAI2D,GAAWle,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKyjB,SACpFvW,EAAQ3H,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKkN,KAErF,IAAIlN,KAAKslB,aAAa7B,EAAUvW,GAAQ,CACtC,GAAIgkI,GAAalxI,KAAKmxI,uBAAuBrxH,EAAK2D,EAAUvW,EAE5DlN,MAAKkS,MAAQg/H,EAAWh/H,MAAQlS,KAAKkiB,OAAOta,MAAQ5H,KAAKkiB,OAAOxa,KAChE1H,KAAKmS,OAAS++H,EAAW/+H,OAASnS,KAAKkiB,OAAOpa,IAAM9H,KAAKkiB,OAAOG,OAChEriB,KAAKiiB,OAASjiB,KAAKkS,MAAQ,MAe/B1P,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKyiB,OAAO3C,EAAK2D,EAAUvW,GAC3BlN,KAAK0H,KAAOiI,EAAI3P,KAAKkS,MAAQ,EAC7BlS,KAAK8H,IAAM6T,EAAI3b,KAAKmS,OAAS,EAE7BnS,KAAKylB,mBAAmB3F,EAAK7G,GAC7B6G,EAAIqqH,UAAUnqI,KAAK0H,KAAM1H,KAAK8H,IAAK9H,KAAKkS,MAAOlS,KAAKmS,OAAQ8G,EAAOmjB,cACnEp8B,KAAK0lB,YAAY5F,EAAK7G,GAEtBjZ,KAAK8lB,kBAAkBnW,EAAGgM,EAAGmE,EAAK2D,EAAUvW,GAC5ClN,KAAKgiB,YAAY6D,KAAK/F,EAAK9f,KAAK0H,KAAO1H,KAAK0kB,SAASxS,MAAQ,EAAIlS,KAAKkiB,OAAOxa,KAAM1H,KAAK8H,IAAM9H,KAAK0kB,SAASvS,OAAS,EAAInS,KAAKkiB,OAAOpa,IAAK2b,EAAUvW,MAatJ1K,IAAK,oBACLgC,MAAO,SAA2BmL,EAAGgM,EAAGmE,EAAK2D,EAAUvW,GACrDlN,KAAKykB,mBAAmB9U,EAAGgM,EAAGmE,EAAK2D,EAAUvW,EAE7C,IAAIkvB,GAAep8B,KAAKqP,QAAQmU,gBAAgB4Y,YAChDp8B,MAAKoxI,sBAAsBh1G,MAW7B55B,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpCviB,KAAKyiB,OAAO3C,EACZ,IAAI0C,GAAcxiB,KAAKqP,QAAQmT,WAE/B,OAAO9d,MAAKL,IAAIK,KAAKge,IAAI1iB,KAAKkS,MAAQ,EAAIxN,KAAKie,IAAIJ,IAAS7d,KAAKge,IAAI1iB,KAAKmS,OAAS,EAAIzN,KAAKke,IAAIL,KAAWC,MAGxGkX,GACPvU,EAAoB,QAEtBxlB,GAAiB,QAAI+5B,GAIf,SAAU95B,EAAQD,EAASO,GAEjCA,EAAoB,KACpBN,EAAOD,QAAUO,EAAoB,GAAGY,OAAOyiD,gBAKzC,SAAU3jD,EAAQD,EAASO,GAGjC,GAAI6kD,GAAW7kD,EAAoB,IAC/BmxI,EAAkBnxI,EAAoB,GAE1CA,GAAoB,IAAI,iBAAkB,WACxC,MAAO,UAAwB4hB,GAC7B,MAAOuvH,GAAgBtsF,EAASjjC,QAO9B,SAAUliB,EAAQD,EAASO,GAEjCN,EAAOD,SAAYgC,QAAWzB,EAAoB,KAAMkB,YAAY,IAI9D,SAAUxB,EAAQD,EAASO,GAEjCA,EAAoB,KACpBN,EAAOD,QAAUO,EAAoB,GAAGY,OAAOwwI,gBAKzC,SAAU1xI,EAAQD,EAASO,GAGjC,GAAI+f,GAAU/f,EAAoB,GAClC+f,GAAQA,EAAQS,EAAG,UAAY4wH,eAAgBpxI,EAAoB,KAAK4U,OAKlE,SAAUlV,EAAQD,EAASO,GAIjC,GAAIsP,GAAWtP,EAAoB,IAC/BshB,EAAWthB,EAAoB,IAC/Bkd,EAAQ,SAAUwE,EAAG0c,GAEvB,GADA9c,EAASI,IACJpS,EAAS8uB,IAAoB,OAAVA,EAAgB,KAAMx8B,WAAUw8B,EAAQ,6BAElE1+B,GAAOD,SACLmV,IAAKhU,OAAOwwI,iBAAmB,gBAC7B,SAAUhjI,EAAMijI,EAAOz8H,GACrB,IACEA,EAAM5U,EAAoB,IAAIihB,SAAS5gB,KAAML,EAAoB,IAAIiO,EAAErN,OAAOS,UAAW,aAAauT,IAAK,GAC3GA,EAAIxG,MACJijI,IAAUjjI,YAAgB3I,QAC1B,MAAO4E,GAAKgnI,GAAQ,EACtB,MAAO,UAAwB3vH,EAAG0c,GAIhC,MAHAlhB,GAAMwE,EAAG0c,GACLizG,EAAO3vH,EAAE5N,UAAYsqB,EACpBxpB,EAAI8M,EAAG0c,GACL1c,QAEL,OAAS1e,IACjBka,MAAOA,IAMH,SAAUxd,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCwsH,EAAoBtxI,EAAoB,IAExCuxI,EAAoB9uI,EAAuB6uI,GAS3C73G,EAAS,SAAU+3G,GAQrB,QAAS/3G,GAAOtqB,EAASoD,EAAMuP,IAC7B,EAAItF,EAA0B,SAAG1c,KAAM25B,EAEvC,IAAIic,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAO25B,EAAO3lB,YAAa,EAAI6Q,EAA0B,SAAG8U,IAASp5B,KAAKP,KAAMqP,EAASoD,EAAMuP,GAGvJ,OADA4zB,GAAMq7F,YAAYjvH,GACX4zB,EAkFT,OA/FA,EAAI3wB,EAAoB,SAAG0U,EAAQ+3G,IAwBnC,EAAI90H,EAAuB,SAAG+c,IAC5Bn3B,IAAK,SACLgC,MAAO,SAAgBsb,GACrB,GAAI2D,GAAWle,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKyjB,SACpFvW,EAAQ3H,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKkN,KAErF,IAAIlN,KAAKslB,aAAa7B,EAAUvW,GAAQ,CACtC,GAAIgkI,GAAalxI,KAAKmxI,uBAAuBrxH,EAAK2D,EAAUvW,GAExDykI,EAAWjtI,KAAKJ,IAAI4sI,EAAWh/H,MAAQlS,KAAKkiB,OAAOta,MAAQ5H,KAAKkiB,OAAOxa,KAAMwpI,EAAW/+H,OAASnS,KAAKkiB,OAAOpa,IAAM9H,KAAKkiB,OAAOG,OAEnIriB,MAAKqP,QAAQ2M,KAAO21H,EAAW,EAC/B3xI,KAAKkS,MAAQy/H,EACb3xI,KAAKmS,OAASw/H,EACd3xI,KAAKiiB,OAASjiB,KAAKkS,MAAQ,MAe/B1P,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKyiB,OAAO3C,EAAK2D,EAAUvW,GAC3BlN,KAAK0H,KAAOiI,EAAI3P,KAAKkS,MAAQ,EAC7BlS,KAAK8H,IAAM6T,EAAI3b,KAAKmS,OAAS,EAE7BnS,KAAK4xI,eAAe9xH,EAAKnQ,EAAGgM,EAAG1C,GAE/BjZ,KAAK8lB,kBAAkBnW,EAAGgM,GAC1B3b,KAAKgiB,YAAY6D,KAAK/F,EAAK9f,KAAK0H,KAAO1H,KAAK0kB,SAASxS,MAAQ,EAAIlS,KAAKkiB,OAAOxa,KAAMiU,EAAG8H,EAAUvW,MAUlG1K,IAAK,oBACLgC,MAAO,SAA2BmL,EAAGgM,GACnC3b,KAAKoiB,YAAYta,IAAM6T,EAAI3b,KAAKqP,QAAQ2M,KACxChc,KAAKoiB,YAAY1a,KAAOiI,EAAI3P,KAAKqP,QAAQ2M,KACzChc,KAAKoiB,YAAYxa,MAAQ+H,EAAI3P,KAAKqP,QAAQ2M,KAC1Chc,KAAKoiB,YAAYC,OAAS1G,EAAI3b,KAAKqP,QAAQ2M,QAW7CxZ,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GAGpC,MADAviB,MAAKyiB,OAAO3C,GACQ,GAAb9f,KAAKkS,UAGTynB,GACP83G,EAA2B,QAE7B9xI,GAAiB,QAAIg6B,GAIf,SAAU/5B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCwsH,EAAoBtxI,EAAoB,IAExCuxI,EAAoB9uI,EAAuB6uI,GAS3C53G,EAAgB,SAAU83G,GAU5B,QAAS93G,GAAcvqB,EAASoD,EAAMuP,EAAa+Z,EAAUI,IAC3D,EAAIzf,EAA0B,SAAG1c,KAAM45B,EAEvC,IAAIgc,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAO45B,EAAc5lB,YAAa,EAAI6Q,EAA0B,SAAG+U,IAAgBr5B,KAAKP,KAAMqP,EAASoD,EAAMuP,GAGrK,OADA4zB,GAAMmF,UAAUhf,EAAUI,GACnByZ,EAwGT,OAvHA,EAAI3wB,EAAoB,SAAG2U,EAAe83G,IA0B1C,EAAI90H,EAAuB,SAAGgd,IAC5Bp3B,IAAK,SACLgC,MAAO,SAAgBsb,GACrB,GAAI2D,GAAWle,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKyjB,SACpFvW,EAAQ3H,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKkN,KAIrF,QAFwChK,KAAtBlD,KAAK+7B,SAAShsB,SAA6C7M,KAAxBlD,KAAK+7B,SAAS7pB,WAAgDhP,KAAzBlD,KAAK+7B,SAAS5pB,OAEvF,CACf,GAAIw/H,GAA+B,EAApB3xI,KAAKqP,QAAQ2M,IAI5B,OAHAhc,MAAKkS,MAAQy/H,EACb3xI,KAAKmS,OAASw/H,OACd3xI,KAAKiiB,OAAS,GAAMjiB,KAAKkS,OAKvBlS,KAAKslB,aAAa7B,EAAUvW,IAC9BlN,KAAK6xI,kBAeTrvI,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAK8xI,aAAaruH,GAClBzjB,KAAKyiB,SACLziB,KAAK0H,KAAOiI,EAAI3P,KAAKkS,MAAQ,EAC7BlS,KAAK8H,IAAM6T,EAAI3b,KAAKmS,OAAS,EAG7BnS,KAAK4xI,eAAe9xH,EAAKnQ,EAAGgM,EAAG1C,GAG/B6G,EAAIkE,OAEJlE,EAAIiyH,OAEJ/xI,KAAKgyI,qBAAqBlyH,EAAK7G,GAE/B6G,EAAIsE,UAEJpkB,KAAKiyI,gBAAgBnyH,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,GAE1ClN,KAAK8lB,kBAAkBnW,EAAGgM,MAW5BnZ,IAAK,oBACLgC,MAAO,SAA2BmL,EAAGgM,GACnC3b,KAAKoiB,YAAYta,IAAM6T,EAAI3b,KAAKqP,QAAQ2M,KACxChc,KAAKoiB,YAAY1a,KAAOiI,EAAI3P,KAAKqP,QAAQ2M,KACzChc,KAAKoiB,YAAYxa,MAAQ+H,EAAI3P,KAAKqP,QAAQ2M,KAC1Chc,KAAKoiB,YAAYC,OAAS1G,EAAI3b,KAAKqP,QAAQ2M,KAG3Chc,KAAKoiB,YAAY1a,KAAOhD,KAAKL,IAAIrE,KAAKoiB,YAAY1a,KAAM1H,KAAKgiB,YAAYhG,KAAKtU,MAC9E1H,KAAKoiB,YAAYxa,MAAQlD,KAAKJ,IAAItE,KAAKoiB,YAAYxa,MAAO5H,KAAKgiB,YAAYhG,KAAKtU,KAAO1H,KAAKgiB,YAAYhG,KAAK9J,OAC7GlS,KAAKoiB,YAAYC,OAAS3d,KAAKJ,IAAItE,KAAKoiB,YAAYC,OAAQriB,KAAKoiB,YAAYC,OAASriB,KAAK86C,gBAW7Ft4C,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GAGpC,MADAviB,MAAKyiB,OAAO3C,GACQ,GAAb9f,KAAKkS,UAGT0nB,GACP63G,EAA2B,QAE7B9xI,GAAiB,QAAIi6B,GAIf,SAAUh6B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCE,EAAahlB,EAAoB,IAEjCilB,EAAaxiB,EAAuBuiB,GASpC2U,EAAW,SAAUxU,GAQvB,QAASwU,GAASxqB,EAASoD,EAAMuP,IAC/B,EAAItF,EAA0B,SAAG1c,KAAM65B,EAEvC,IAAI+b,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAO65B,EAAS7lB,YAAa,EAAI6Q,EAA0B,SAAGgV,IAAWt5B,KAAKP,KAAMqP,EAASoD,EAAMuP,GAG3J,OADA4zB,GAAMq7F,YAAYjvH,GACX4zB,EA6DT,OA1EA,EAAI3wB,EAAoB,SAAG4U,EAAUxU,IAwBrC,EAAIzI,EAAuB,SAAGid,IAC5Br3B,IAAK,SACLgC,MAAO,SAAgBsb,EAAK2D,EAAUvW,GACpC,GAAIlN,KAAKslB,aAAa7B,EAAUvW,GAAQ,CACtC,GAAIgkI,GAAalxI,KAAKmxI,uBAAuBrxH,EAAK2D,EAAUvW,GACxD8O,EAAOk1H,EAAWh/H,MAAQlS,KAAKkiB,OAAOta,MAAQ5H,KAAKkiB,OAAOxa,IAE9D1H,MAAKkS,MAAQ8J,EACbhc,KAAKmS,OAAS6J,EACdhc,KAAKiiB,OAASjiB,KAAKkS,MAAQ,MAe/B1P,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKyiB,OAAO3C,EAAK2D,EAAUvW,GAC3BlN,KAAK0H,KAAOiI,EAAI3P,KAAKkS,MAAQ,EAC7BlS,KAAK8H,IAAM6T,EAAI3b,KAAKmS,OAAS,EAE7BnS,KAAKylB,mBAAmB3F,EAAK7G,GAC7B6G,EAAI8qH,SAASj7H,EAAI3P,KAAKkS,MAAQ,EAAGyJ,EAAI3b,KAAKmS,OAAS,EAAGnS,KAAKkS,MAAOlS,KAAKmS,QACvEnS,KAAK0lB,YAAY5F,EAAK7G,GAEtBjZ,KAAK8lB,kBAAkBnW,EAAGgM,EAAGmE,EAAK2D,EAAUvW,GAC5ClN,KAAKgiB,YAAY6D,KAAK/F,EAAK9f,KAAK0H,KAAO1H,KAAK0kB,SAASxS,MAAQ,EAAIlS,KAAKkiB,OAAOxa,KAAM1H,KAAK8H,IAAM9H,KAAK0kB,SAASvS,OAAS,EAAInS,KAAKkiB,OAAOpa,IAAK2b,EAAUvW,MAUtJ1K,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKkyI,kBAAkBpyH,EAAKyC,OAGhCsX,GACP1U,EAAoB,QAEtBxlB,GAAiB,QAAIk6B,GAIf,SAAUj6B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCmtH,EAAcjyI,EAAoB,IAElCkyI,EAAczvI,EAAuBwvI,GASrCr4G,EAAU,SAAUu4G,GAQtB,QAASv4G,GAAQzqB,EAASoD,EAAMuP,GAE9B,OADA,EAAItF,EAA0B,SAAG1c,KAAM85B,IAChC,EAAI/U,EAAqC,SAAG/kB,MAAO85B,EAAQ9lB,YAAa,EAAI6Q,EAA0B,SAAGiV,IAAUv5B,KAAKP,KAAMqP,EAASoD,EAAMuP,IAiCtJ,OA1CA,EAAIiD,EAAoB,SAAG6U,EAASu4G,IAuBpC,EAAIz1H,EAAuB,SAAGkd,IAC5Bt3B,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKsyI,WAAWxyH,EAAK,UAAW,EAAGnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,MAW5DzW,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKkyI,kBAAkBpyH,EAAKyC,OAGhCuX,GACPs4G,EAAqB,QAEvBzyI,GAAiB,QAAIm6B,GAIf,SAAUl6B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCmtH,EAAcjyI,EAAoB,IAElCkyI,EAAczvI,EAAuBwvI,GASrCp4G,EAAM,SAAUs4G,GAQlB,QAASt4G,GAAI1qB,EAASoD,EAAMuP,GAE1B,OADA,EAAItF,EAA0B,SAAG1c,KAAM+5B,IAChC,EAAIhV,EAAqC,SAAG/kB,MAAO+5B,EAAI/lB,YAAa,EAAI6Q,EAA0B,SAAGkV,IAAMx5B,KAAKP,KAAMqP,EAASoD,EAAMuP,IAmC9I,OA5CA,EAAIiD,EAAoB,SAAG8U,EAAKs4G,IAuBhC,EAAIz1H,EAAuB,SAAGmd,IAC5Bv3B,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKsyI,WAAWxyH,EAAK,SAAU,EAAGnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,MAW3DzW,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GAGpC,MADAviB,MAAKyiB,OAAO3C,GACL9f,KAAKqP,QAAQ2M,SAGjB+d,GACPq4G,EAAqB,QAEvBzyI,GAAiB,QAAIo6B,GAIf,SAAUn6B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCE,EAAahlB,EAAoB,IAEjCilB,EAAaxiB,EAAuBuiB,GASpC8U,EAAU,SAAU3U,GAQtB,QAAS2U,GAAQ3qB,EAASoD,EAAMuP,GAE9B,OADA,EAAItF,EAA0B,SAAG1c,KAAMg6B,IAChC,EAAIjV,EAAqC,SAAG/kB,MAAOg6B,EAAQhmB,YAAa,EAAI6Q,EAA0B,SAAGmV,IAAUz5B,KAAKP,KAAMqP,EAASoD,EAAMuP,IAqEtJ,OA9EA,EAAIiD,EAAoB,SAAG+U,EAAS3U,IAoBpC,EAAIzI,EAAuB,SAAGod,IAC5Bx3B,IAAK,SACLgC,MAAO,SAAgBsb,GACrB,GAAI2D,GAAWle,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKyjB,SACpFvW,EAAQ3H,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKkN,KAErF,IAAIlN,KAAKslB,aAAa7B,EAAUvW,GAAQ,CACtC,GAAIgkI,GAAalxI,KAAKmxI,uBAAuBrxH,EAAK2D,EAAUvW,EAE5DlN,MAAKmS,OAA6B,EAApB++H,EAAW/+H,OACzBnS,KAAKkS,MAAQg/H,EAAWh/H,MAAQg/H,EAAW/+H,OAC3CnS,KAAKiiB,OAAS,GAAMjiB,KAAKkS,UAe7B1P,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKyiB,OAAO3C,EAAK2D,EAAUvW,GAC3BlN,KAAK0H,KAAOiI,EAAiB,GAAb3P,KAAKkS,MACrBlS,KAAK8H,IAAM6T,EAAkB,GAAd3b,KAAKmS,OAEpBnS,KAAKylB,mBAAmB3F,EAAK7G,GAC7B6G,EAAIuqH,YAAYrqI,KAAK0H,KAAM1H,KAAK8H,IAAK9H,KAAKkS,MAAOlS,KAAKmS,QACtDnS,KAAK0lB,YAAY5F,EAAK7G,GAEtBjZ,KAAK8lB,kBAAkBnW,EAAGgM,EAAGmE,EAAK2D,EAAUvW,GAC5ClN,KAAKgiB,YAAY6D,KAAK/F,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,MAW7C1K,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpCviB,KAAKyiB,OAAO3C,EACZ,IAAIjd,GAAiB,GAAb7C,KAAKkS,MACTpP,EAAkB,GAAd9C,KAAKmS,OACTgzE,EAAIzgF,KAAKke,IAAIL,GAAS1f,EACtB4J,EAAI/H,KAAKie,IAAIJ,GAASzf,CAC1B,OAAOD,GAAIC,EAAI4B,KAAK2iB,KAAK89D,EAAIA,EAAI14E,EAAIA,OAGlCutB,GACP7U,EAAoB,QAEtBxlB,GAAiB,QAAIq6B,GAIf,SAAUp6B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCE,EAAahlB,EAAoB,IAEjCilB,EAAaxiB,EAAuBuiB,GASpC+U,EAAO,SAAU5U,GAQnB,QAAS4U,GAAK5qB,EAASoD,EAAMuP,IAC3B,EAAItF,EAA0B,SAAG1c,KAAMi6B,EAEvC,IAAI2b,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAOi6B,EAAKjmB,YAAa,EAAI6Q,EAA0B,SAAGoV,IAAO15B,KAAKP,KAAMqP,EAASoD,EAAMuP,GAGnJ,OADA4zB,GAAMq7F,YAAYjvH,GACX4zB,EA0HT,OAvIA,EAAI3wB,EAAoB,SAAGgV,EAAM5U,IAwBjC,EAAIzI,EAAuB,SAAGqd,IAC5Bz3B,IAAK,SACLgC,MAAO,SAAgBsb,EAAK2D,EAAUvW,GAChClN,KAAKslB,aAAa7B,EAAUvW,KAC9BlN,KAAKyqE,UACHv4D,MAAOpO,OAAO9D,KAAKqP,QAAQ23D,KAAKhrD,MAChC7J,OAAQrO,OAAO9D,KAAKqP,QAAQ23D,KAAKhrD,OAEnChc,KAAKkS,MAAQlS,KAAKyqE,SAASv4D,MAAQlS,KAAKkiB,OAAOta,MAAQ5H,KAAKkiB,OAAOxa,KACnE1H,KAAKmS,OAASnS,KAAKyqE,SAASt4D,OAASnS,KAAKkiB,OAAOpa,IAAM9H,KAAKkiB,OAAOG,OACnEriB,KAAKiiB,OAAS,GAAMjiB,KAAKkS,UAe7B1P,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAQ/C,GAPAjZ,KAAKyiB,OAAO3C,EAAK2D,EAAUvW,GAC3BlN,KAAKqP,QAAQ23D,KAAKhrD,KAAOhc,KAAKqP,QAAQ23D,KAAKhrD,MAAQ,GAEnDhc,KAAK0H,KAAOiI,EAAI3P,KAAKkS,MAAQ,EAC7BlS,KAAK8H,IAAM6T,EAAI3b,KAAKmS,OAAS,EAC7BnS,KAAKuyI,MAAMzyH,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,OAEZ/V,KAAvBlD,KAAKqP,QAAQ4M,MAAqB,CAEpCjc,KAAKgiB,YAAY6D,KAAK/F,EAAK9f,KAAK0H,KAAO1H,KAAKyqE,SAASv4D,MAAQ,EAAIlS,KAAKkiB,OAAOxa,KAAMiU,EAAI3b,KAAKmS,OAAS,EAD/E,EACoGsR,GAG5HzjB,KAAK8lB,kBAAkBnW,EAAGgM,MAU5BnZ,IAAK,oBACLgC,MAAO,SAA2BmL,EAAGgM,GAMnC,GALA3b,KAAKoiB,YAAYta,IAAM6T,EAA6B,GAAzB3b,KAAKqP,QAAQ23D,KAAKhrD,KAC7Chc,KAAKoiB,YAAY1a,KAAOiI,EAA6B,GAAzB3P,KAAKqP,QAAQ23D,KAAKhrD,KAC9Chc,KAAKoiB,YAAYxa,MAAQ+H,EAA6B,GAAzB3P,KAAKqP,QAAQ23D,KAAKhrD,KAC/Chc,KAAKoiB,YAAYC,OAAS1G,EAA6B,GAAzB3b,KAAKqP,QAAQ23D,KAAKhrD,SAErB9Y,KAAvBlD,KAAKqP,QAAQ4M,OAAuBjc,KAAKgiB,YAAYhG,KAAK9J,MAAQ,EAAG,CAEvElS,KAAKoiB,YAAY1a,KAAOhD,KAAKL,IAAIrE,KAAKoiB,YAAY1a,KAAM1H,KAAKgiB,YAAYhG,KAAKtU;iFAC9E1H,KAAKoiB,YAAYxa,MAAQlD,KAAKJ,IAAItE,KAAKoiB,YAAYxa,MAAO5H,KAAKgiB,YAAYhG,KAAKtU,KAAO1H,KAAKgiB,YAAYhG,KAAK9J,OAC7GlS,KAAKoiB,YAAYC,OAAS3d,KAAKJ,IAAItE,KAAKoiB,YAAYC,OAAQriB,KAAKoiB,YAAYC,OAASriB,KAAKgiB,YAAYhG,KAAK7J,OAHtF,OAkB1B3P,IAAK,QACLgC,MAAO,SAAesb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAChD,GAAIwxD,GAAW3mE,OAAO9D,KAAKqP,QAAQ23D,KAAKhrD,UAET9Y,KAA3BlD,KAAKqP,QAAQ23D,KAAKh/C,MACpBlI,EAAIkb,MAAQvX,EAAW,QAAU,IAAMgnD,EAAW,MAAQzqE,KAAKqP,QAAQ23D,KAAK0O,KAG5E51D,EAAIiE,UAAY/jB,KAAKqP,QAAQ23D,KAAKx7D,OAAS,QAC3CsU,EAAI0kD,UAAY,SAChB1kD,EAAIy1D,aAAe,SAGnBv1E,KAAKqkB,aAAavE,EAAK7G,GACvB6G,EAAIw1D,SAASt1E,KAAKqP,QAAQ23D,KAAKh/C,KAAMrY,EAAGgM,GAGxC3b,KAAKukB,cAAczE,EAAK7G,IAExB/B,QAAQoiC,MAAM,gIAYlB92C,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKkyI,kBAAkBpyH,EAAKyC,OAGhC0X,GACP9U,EAAoB,QAEtBxlB,GAAiB,QAAIs6B,GAIf,SAAUr6B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCwsH,EAAoBtxI,EAAoB,IAExCuxI,EAAoB9uI,EAAuB6uI,GAS3Ct3G,EAAQ,SAAUw3G,GAUpB,QAASx3G,GAAM7qB,EAASoD,EAAMuP,EAAa+Z,EAAUI,IACnD,EAAIzf,EAA0B,SAAG1c,KAAMk6B,EAEvC,IAAI0b,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAOk6B,EAAMlmB,YAAa,EAAI6Q,EAA0B,SAAGqV,IAAQ35B,KAAKP,KAAMqP,EAASoD,EAAMuP,GAGrJ,OADA4zB,GAAMmF,UAAUhf,EAAUI,GACnByZ,EA+GT,OA9HA,EAAI3wB,EAAoB,SAAGiV,EAAOw3G,IA0BlC,EAAI90H,EAAuB,SAAGsd,IAC5B13B,IAAK,SACLgC,MAAO,SAAgBsb,GACrB,GAAI2D,GAAWle,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKyjB,SACpFvW,EAAQ3H,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKkN,KAIrF,QAFwChK,KAAtBlD,KAAK+7B,SAAShsB,SAA6C7M,KAAxBlD,KAAK+7B,SAAS7pB,WAAgDhP,KAAzBlD,KAAK+7B,SAAS5pB,OAEvF,CACf,GAAIq4D,GAA2B,EAApBxqE,KAAKqP,QAAQ2M,IAGxB,OAFAhc,MAAKkS,MAAQs4D,OACbxqE,KAAKmS,OAASq4D,GAIZxqE,KAAKslB,aAAa7B,EAAUvW,IAC9BlN,KAAK6xI,kBAeTrvI,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAM/C,GALAjZ,KAAK8xI,aAAaruH,GAClBzjB,KAAKyiB,SACLziB,KAAK0H,KAAOiI,EAAI3P,KAAKkS,MAAQ,EAC7BlS,KAAK8H,IAAM6T,EAAI3b,KAAKmS,OAAS,GAE2B,IAApDnS,KAAKqP,QAAQmU,gBAAgBi8D,mBAA6B,CAC5D,GAAI+yD,GAAqBxyI,KAAKqP,QAAQmT,YAClCiwH,EAAqBzyI,KAAKqP,QAAQkwE,qBAAuB,EAAIv/E,KAAKqP,QAAQmT,YAC1EA,GAAeiB,EAAWgvH,EAAqBD,GAAsBxyI,KAAKyS,KAAKkR,KAAKlf,KACxFqb,GAAI8D,UAAYlf,KAAKL,IAAIrE,KAAKkS,MAAOsQ,GAErC1C,EAAIwiC,YAGJxiC,EAAI+D,YAAcJ,EAAWzjB,KAAKqP,QAAQ7D,MAAMyB,UAAUD,OAASE,EAAQlN,KAAKqP,QAAQ7D,MAAM0B,MAAMF,OAAShN,KAAKqP,QAAQ7D,MAAMwB,OAGhI8S,EAAIiE,UAAYN,EAAWzjB,KAAKqP,QAAQ7D,MAAMyB,UAAUF,WAAaG,EAAQlN,KAAKqP,QAAQ7D,MAAM0B,MAAMH,WAAa/M,KAAKqP,QAAQ7D,MAAMuB,WAGtI+S,EAAIvD,KAAKvc,KAAK0H,KAAO,GAAMoY,EAAI8D,UAAW5jB,KAAK8H,IAAM,GAAMgY,EAAI8D,UAAW5jB,KAAKkS,MAAQ4N,EAAI8D,UAAW5jB,KAAKmS,OAAS2N,EAAI8D,WACxH9D,EAAIwE,OAEJtkB,KAAKwkB,cAAc1E,EAAK7G,GAExB6G,EAAIs5D,YAGNp5E,KAAKgyI,qBAAqBlyH,EAAK7G,GAE/BjZ,KAAKiyI,gBAAgBnyH,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,GAE1ClN,KAAK8lB,kBAAkBnW,EAAGgM,MAU5BnZ,IAAK,oBACLgC,MAAO,SAA2BmL,EAAGgM,GACnC3b,KAAKyiB,SACLziB,KAAKykB,mBAAmB9U,EAAGgM,OAEAzY,KAAvBlD,KAAKqP,QAAQ4M,OAAuBjc,KAAKgiB,YAAYhG,KAAK9J,MAAQ,IACpElS,KAAKoiB,YAAY1a,KAAOhD,KAAKL,IAAIrE,KAAKoiB,YAAY1a,KAAM1H,KAAKgiB,YAAYhG,KAAKtU,MAC9E1H,KAAKoiB,YAAYxa,MAAQlD,KAAKJ,IAAItE,KAAKoiB,YAAYxa,MAAO5H,KAAKgiB,YAAYhG,KAAKtU,KAAO1H,KAAKgiB,YAAYhG,KAAK9J,OAC7GlS,KAAKoiB,YAAYC,OAAS3d,KAAKJ,IAAItE,KAAKoiB,YAAYC,OAAQriB,KAAKoiB,YAAYC,OAASriB,KAAK86C,iBAY/Ft4C,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKkyI,kBAAkBpyH,EAAKyC,OAGhC2X,GACPu3G,EAA2B,QAE7B9xI,GAAiB,QAAIu6B,GAIf,SAAUt6B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCmtH,EAAcjyI,EAAoB,IAElCkyI,EAAczvI,EAAuBwvI,GASrCh4G,EAAS,SAAUk4G,GAQrB,QAASl4G,GAAO9qB,EAASoD,EAAMuP,GAE7B,OADA,EAAItF,EAA0B,SAAG1c,KAAMm6B,IAChC,EAAIpV,EAAqC,SAAG/kB,MAAOm6B,EAAOnmB,YAAa,EAAI6Q,EAA0B,SAAGsV,IAAS55B,KAAKP,KAAMqP,EAASoD,EAAMuP,IAiCpJ,OA1CA,EAAIiD,EAAoB,SAAGkV,EAAQk4G,IAuBnC,EAAIz1H,EAAuB,SAAGud,IAC5B33B,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKsyI,WAAWxyH,EAAK,SAAU,EAAGnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,MAW3DzW,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKkyI,kBAAkBpyH,EAAKyC,OAGhC4X,GACPi4G,EAAqB,QAEvBzyI,GAAiB,QAAIw6B,GAIf,SAAUv6B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCmtH,EAAcjyI,EAAoB,IAElCkyI,EAAczvI,EAAuBwvI,GASrC/3G,EAAU,SAAUi4G,GAQtB,QAASj4G,GAAQ/qB,EAASoD,EAAMuP,GAE9B,OADA,EAAItF,EAA0B,SAAG1c,KAAMo6B,IAChC,EAAIrV,EAAqC,SAAG/kB,MAAOo6B,EAAQpmB,YAAa,EAAI6Q,EAA0B,SAAGuV,IAAU75B,KAAKP,KAAMqP,EAASoD,EAAMuP,IAiCtJ,OA1CA,EAAIiD,EAAoB,SAAGmV,EAASi4G,IAuBpC,EAAIz1H,EAAuB,SAAGwd,IAC5B53B,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKsyI,WAAWxyH,EAAK,UAAW,EAAGnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,MAW5DzW,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKkyI,kBAAkBpyH,EAAKyC,OAGhC6X,GACPg4G,EAAqB,QAEvBzyI,GAAiB,QAAIy6B,GAIf,SAAUx6B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCmtH,EAAcjyI,EAAoB,IAElCkyI,EAAczvI,EAAuBwvI,GASrC93G,EAAO,SAAUg4G,GAQnB,QAASh4G,GAAKhrB,EAASoD,EAAMuP,GAE3B,OADA,EAAItF,EAA0B,SAAG1c,KAAMq6B,IAChC,EAAItV,EAAqC,SAAG/kB,MAAOq6B,EAAKrmB,YAAa,EAAI6Q,EAA0B,SAAGwV,IAAO95B,KAAKP,KAAMqP,EAASoD,EAAMuP,IAiChJ,OA1CA,EAAIiD,EAAoB,SAAGoV,EAAMg4G,IAuBjC,EAAIz1H,EAAuB,SAAGyd,IAC5B73B,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKsyI,WAAWxyH,EAAK,OAAQ,EAAGnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,MAWzDzW,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKkyI,kBAAkBpyH,EAAKyC,OAGhC8X,GACP+3G,EAAqB,QAEvBzyI,GAAiB,QAAI06B,GAIf,SAAUz6B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCE,EAAahlB,EAAoB,IAEjCilB,EAAaxiB,EAAuBuiB,GASpCoV,EAAO,SAAUjV,GAQnB,QAASiV,GAAKjrB,EAASoD,EAAMuP,IAC3B,EAAItF,EAA0B,SAAG1c,KAAMs6B,EAEvC,IAAIsb,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAOs6B,EAAKtmB,YAAa,EAAI6Q,EAA0B,SAAGyV,IAAO/5B,KAAKP,KAAMqP,EAASoD,EAAMuP,GAGnJ,OADA4zB,GAAMq7F,YAAYjvH,GACX4zB,EA8DT,OA3EA,EAAI3wB,EAAoB,SAAGqV,EAAMjV,IAwBjC,EAAIzI,EAAuB,SAAG0d,IAC5B93B,IAAK,SACLgC,MAAO,SAAgBsb,EAAK2D,EAAUvW,GAChClN,KAAKslB,aAAa7B,EAAUvW,KAC9BlN,KAAK0kB,SAAW1kB,KAAKgiB,YAAY2C,YAAY7E,EAAK2D,EAAUvW,GAC5DlN,KAAKkS,MAAQlS,KAAK0kB,SAASxS,MAAQlS,KAAKkiB,OAAOta,MAAQ5H,KAAKkiB,OAAOxa,KACnE1H,KAAKmS,OAASnS,KAAK0kB,SAASvS,OAASnS,KAAKkiB,OAAOpa,IAAM9H,KAAKkiB,OAAOG,OACnEriB,KAAKiiB,OAAS,GAAMjiB,KAAKkS,UAe7B1P,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKyiB,OAAO3C,EAAK2D,EAAUvW,GAC3BlN,KAAK0H,KAAOiI,EAAI3P,KAAKkS,MAAQ,EAC7BlS,KAAK8H,IAAM6T,EAAI3b,KAAKmS,OAAS,EAG7BnS,KAAKqkB,aAAavE,EAAK7G,GACvBjZ,KAAKgiB,YAAY6D,KAAK/F,EAAK9f,KAAK0H,KAAO1H,KAAK0kB,SAASxS,MAAQ,EAAIlS,KAAKkiB,OAAOxa,KAAM1H,KAAK8H,IAAM9H,KAAK0kB,SAASvS,OAAS,EAAInS,KAAKkiB,OAAOpa,IAAK2b,EAAUvW,GAGpJlN,KAAKukB,cAAczE,EAAK7G,GAExBjZ,KAAK8lB,kBAAkBnW,EAAGgM,EAAGmE,EAAK2D,EAAUvW,MAW9C1K,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKkyI,kBAAkBpyH,EAAKyC,OAGhC+X,GACPnV,EAAoB,QAEtBxlB,GAAiB,QAAI26B,GAIf,SAAU16B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCmtH,EAAcjyI,EAAoB,IAElCkyI,EAAczvI,EAAuBwvI,GASrC53G,EAAW,SAAU83G,GAQvB,QAAS93G,GAASlrB,EAASoD,EAAMuP,GAE/B,OADA,EAAItF,EAA0B,SAAG1c,KAAMu6B,IAChC,EAAIxV,EAAqC,SAAG/kB,MAAOu6B,EAASvmB,YAAa,EAAI6Q,EAA0B,SAAG0V,IAAWh6B,KAAKP,KAAMqP,EAASoD,EAAMuP,IAiCxJ,OA1CA,EAAIiD,EAAoB,SAAGsV,EAAU83G,IAuBrC,EAAIz1H,EAAuB,SAAG2d,IAC5B/3B,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKsyI,WAAWxyH,EAAK,WAAY,EAAGnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,MAW7DzW,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKkyI,kBAAkBpyH,EAAKyC,OAGhCgY,GACP63G,EAAqB,QAEvBzyI,GAAiB,QAAI46B,GAIf,SAAU36B,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCmtH,EAAcjyI,EAAoB,IAElCkyI,EAAczvI,EAAuBwvI,GASrC33G,EAAe,SAAU63G,GAQ3B,QAAS73G,GAAanrB,EAASoD,EAAMuP,GAEnC,OADA,EAAItF,EAA0B,SAAG1c,KAAMw6B,IAChC,EAAIzV,EAAqC,SAAG/kB,MAAOw6B,EAAaxmB,YAAa,EAAI6Q,EAA0B,SAAG2V,IAAej6B,KAAKP,KAAMqP,EAASoD,EAAMuP,IAiChK,OA1CA,EAAIiD,EAAoB,SAAGuV,EAAc63G,IAuBzC,EAAIz1H,EAAuB,SAAG4d,IAC5Bh4B,IAAK,OACLgC,MAAO,SAAcsb,EAAKnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,GAC/CjZ,KAAKsyI,WAAWxyH,EAAK,eAAgB,EAAGnQ,EAAGgM,EAAG8H,EAAUvW,EAAO+L,MAWjEzW,IAAK,mBACLgC,MAAO,SAA0Bsb,EAAKyC,GACpC,MAAOviB,MAAKkyI,kBAAkBpyH,EAAKyC,OAGhCiY,GACP43G,EAAqB,QAEvBzyI,GAAiB,QAAI66B,GAIf,SAAU56B,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAC3B+U,EAAU/U,EAAoB,IAC9BsZ,EAAWtZ,EAAoB,IAC/B87C,EAAO97C,EAAoB,IAAa,QAMxCqmI,EAAe,WAMjB,QAASA,GAAa9zH,EAAM89D,EAAQpgB,GAClC,GAAIva,GAAQ51C,MAEZ,EAAI0c,EAA0B,SAAG1c,KAAMumI,GAEvCvmI,KAAKyS,KAAOA,EACZzS,KAAKuwE,OAASA,EACdvwE,KAAKmwD,OAASA,EAGdnwD,KAAKyS,KAAKyyH,UAAUv5D,WAAa3rE,KAAKo/B,OAAO7W,KAAKvoB,MAElDA,KAAK0yI,gBACHj9H,IAAK,SAAa3L,EAAOqM,GACvBy/B,EAAMngC,IAAIU,EAAOO,QAEnBC,OAAQ,SAAgB7M,EAAOqM,GAC7By/B,EAAMj/B,OAAOR,EAAOO,QAEtB6B,OAAQ,SAAgBzO,EAAOqM,GAC7By/B,EAAMr9B,OAAOpC,EAAOO,SAIxB1W,KAAKqP,WACLrP,KAAKs0B,gBACHwoB,QACER,IAAMxsC,SAAS,EAAOstC,YAAa,EAAG32C,KAAM,SAC5CgK,QAAUX,SAAS,EAAOstC,YAAa,EAAG32C,KAAM,SAChD41C,MAAQvsC,SAAS,EAAOstC,YAAa,EAAG32C,KAAM,UAEhDi3C,oBAAoB,EACpBlyC,OACEA,MAAO,UACPyB,UAAW,UACXC,MAAO,UACPgwC,QAAS,OACTzxC,QAAS,GAEX8X,QAAQ,EACRyX,MACExvB,MAAO,UACPwQ,KAAM,GACN05D,KAAM,QACN3oE,WAAY,OACZo+C,YAAa,EACb8pB,YAAa,UACb/gC,MAAO,aACP6oC,OAAO,EACP9K,QAAS,EACT+K,MACErJ,IAAK,QAEPsJ,UACEtJ,IAAK,eAEPuJ,MACEvJ,IAAK,UAEPwJ,MACExJ,IAAK,GACL33D,KAAM,GACN05D,KAAM,cACNzD,QAAS,IAGbrnD,QAAQ,EACRizB,WAAY,IACZ5hC,UAAO/Y,GACPyyE,oBAAoB,EACpBtzE,WAAQa,GACR24B,SAAS,EACTY,SACEp4B,IAAK,EACLC,IAAK,GACL2X,OACEnM,SAAS,EACTzL,IAAK,GACLC,IAAK,GACLgwE,WAAY,GACZD,cAAe,GAEjB33C,sBAAuB,SAA+Br4B,EAAKC,EAAKC,EAAOC,GACrE,GAAIF,IAAQD,EACV,MAAO,EAEP,IAAII,GAAQ,GAAKH,EAAMD,EACvB,OAAOK,MAAKJ,IAAI,GAAIE,EAAQH,GAAOI,KAIzCm5C,eAAgB,IAChB2B,kBAAmB,GACnB18B,QACE/S,SAAS,EACTtE,MAAO,kBACPwQ,KAAM,GACNrM,EAAG,EACHgM,EAAG,GAELmiC,QACEhuC,SAAS,EACTrJ,KAAM,UACN42E,eAAgB,OAChBD,UAAW,IAEbntD,UAAO/sB,GACPgP,MAAO,EACP1N,UAAOtB,IAGT2S,EAAK7P,WAAWhG,KAAKqP,QAASrP,KAAKs0B,gBAEnCt0B,KAAKolI,qBAwZP,OAhZA,EAAIxoH,EAAuB,SAAG2pH,IAC5B/jI,IAAK,qBACLgC,MAAO,WACL,GAAIgzC,GAASx3C,IAGbA,MAAKyS,KAAK8c,QAAQ7a,GAAG,6BAA8B,SAAUjO,GAC3D,GAAIoO,KAAOtP,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAE7D,aAATkB,IACFA,EAAO,aAET,IAAIg2C,IAAc,CAClB,KAAK,GAAIgD,KAAUjI,GAAO/kC,KAAKooB,MAC7B,GAAI2c,EAAO/kC,KAAKooB,MAAMr5B,eAAei+C,GAAS,CAC5C,GAAIvkB,GAAOsc,EAAO/kC,KAAKooB,MAAM4kB,GACzBkzF,EAAWn7F,EAAO/kC,KAAKyC,KAAK2lB,MAAMzlB,MAAMqqC,EAI5C,QAAiBv8C,KAAbyvI,EAAwB,CAC1B,GAAIC,GAAgBD,EAAS70F,WACP56C,KAAlB0vI,IAC4B,IAA1BA,EAAc9iI,SAA2C,YAAvB8iI,EAAcnsI,WACrCvD,KAATuD,EACFy0B,EAAKxlB,YAAaooC,QAAQ,IAE1B5iB,EAAKxlB,YAAaooC,QAAUr3C,KAAMA,KAEpCg2C,GAAc,KAMX,IAAT5nC,IAAiC,IAAhB4nC,GACnBjF,EAAO/kC,KAAK8c,QAAQ1a,KAAK,kBAY7B7U,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WACnC8iC,EAAOq7F,mBAIT7yI,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB1U,KAAK6Z,QAAQ0O,KAAKvoB,OACvDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW1U,KAAK6Z,QAAQ0O,KAAKvoB,OAClDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW,WAC9BmB,EAAKnN,QAAQ8uC,EAAOk7F,eAAgB,SAAU/pI,EAAUmB,GAClD0tC,EAAO/kC,KAAKyC,KAAK2lB,OAAO2c,EAAO/kC,KAAKyC,KAAK2lB,MAAMlmB,IAAI7K,EAAOnB,WAEzD6uC,GAAO/kC,KAAKyyH,UAAUv5D,iBACtBn0B,GAAOk7F,eAAej9H,UACtB+hC,GAAOk7F,eAAe/7H,aACtB6gC,GAAOk7F,eAAen6H,aACtBi/B,GAAOk7F,oBAUlBlwI,IAAK,aACLgC,MAAO,SAAoB6K,GACzB,OAAgBnM,KAAZmM,EAAuB,CAEzB2sC,EAAKzgB,aAAav7B,KAAKqP,QAASA,GAAS,EAAMrP,KAAKs0B,gBAAgB,EAGpE,IAAImoB,IAAc,CAClB,QAAuBv5C,KAAnBmM,EAAQyuC,OACV,IAAK,GAAI2B,KAAUz/C,MAAKyS,KAAKooB,MACvB76B,KAAKyS,KAAKooB,MAAMr5B,eAAei+C,KACjChD,EAAcz8C,KAAKyS,KAAKooB,MAAM4kB,GAAQ/C,kBAAoBD,EAMhE,QAAqBv5C,KAAjBmM,EAAQ2rB,KACV,IAAK,GAAI83G,KAAW9yI,MAAKyS,KAAKooB,MACxB76B,KAAKyS,KAAKooB,MAAMr5B,eAAesxI,IACjC9yI,KAAKyS,KAAKooB,MAAMi4G,GAASn3G,wBAMRz4B,KAAnBmM,EAAQub,YAA4C1nB,KAApBmM,EAAQwsB,UAAyC,IAAhB4gB,GACnEz8C,KAAKyS,KAAK8c,QAAQ1a,KAAK,oBAa7BrS,IAAK,UACLgC,MAAO,SAAiBq2B,GACtB,GAAI+c,GAAS53C,KAETutI,EAAYhoI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAE3EwtI,EAAe/yI,KAAKyS,KAAKyC,KAAK2lB,KAElC,IAAIA,YAAiB5lB,IAAW4lB,YAAiBrhB,GAC/CxZ,KAAKyS,KAAKyC,KAAK2lB,MAAQA,MAClB,IAAIl1B,MAAMC,QAAQi1B,GACvB76B,KAAKyS,KAAKyC,KAAK2lB,MAAQ,GAAI5lB,GAC3BjV,KAAKyS,KAAKyC,KAAK2lB,MAAMplB,IAAIolB,OACpB,CAAA,GAAKA,EAGV,KAAM,IAAI/4B,WAAU,4BAFpB9B,MAAKyS,KAAKyC,KAAK2lB,MAAQ,GAAI5lB,GAiB7B,GAXI89H,GAEFl9H,EAAKnN,QAAQ1I,KAAK0yI,eAAgB,SAAU/pI,EAAUmB,GACpDipI,EAAap+H,IAAI7K,EAAOnB,KAK5B3I,KAAKyS,KAAKooB,SAGN76B,KAAKyS,KAAKyC,KAAK2lB,MAAO,CAExBhlB,EAAKnN,QAAQ1I,KAAK0yI,eAAgB,SAAU/pI,EAAUmB,GACpD8tC,EAAOnlC,KAAKyC,KAAK2lB,MAAMnmB,GAAG5K,EAAOnB,IAInC,IAAI0O,GAAMrX,KAAKyS,KAAKyC,KAAK2lB,MAAM9iB,QAC/B/X,MAAKyV,IAAI4B,GAAK,GAGhBrX,KAAKyS,KAAK8c,QAAQ1a,KAAK,sCACL,IAAd04H,GACFvtI,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAY3BrS,IAAK,MACLgC,MAAO,SAAa6S,GAMlB,IAAK,GALDk2H,GAAYhoI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAE3Es1B,EAAQ76B,KAAKyS,KAAKooB,MAClBm4G,EAAYhzI,KAAKyS,KAAKyC,KAAK2lB,MAEtBx6B,EAAI,EAAGA,EAAIgX,EAAIhV,OAAQhC,IAAK,CACnC,GAAIiW,GAAKe,EAAIhX,GAET4yI,EAAUp4G,EAAMvkB,EAChB28H,IACFA,EAAQh1F,YAGV,IAAI/oC,GAAO89H,EAAU9xI,IAAIoV,GAAM48H,iBAAmB,GAClDr4G,GAAMvkB,GAAMtW,KAAKo/B,OAAOlqB,GAG1BlV,KAAKyS,KAAK8c,QAAQ1a,KAAK,sCAEL,IAAd04H,GACFvtI,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAW3BrS,IAAK,SACLgC,MAAO,SAAgB6S,GAIrB,IAAK,GAHDwjB,GAAQ76B,KAAKyS,KAAKooB,MAClBm4G,EAAYhzI,KAAKyS,KAAKyC,KAAK2lB,MAC3B4hB,GAAc,EACTp8C,EAAI,EAAGA,EAAIgX,EAAIhV,OAAQhC,IAAK,CACnC,GAAIiW,GAAKe,EAAIhX,GACT6U,EAAO89H,EAAU9xI,IAAIoV,GACrB4kB,EAAOL,EAAMvkB,OACJpT,KAATg4B,GAEFA,EAAK+iB,aACLxB,EAAcvhB,EAAKxlB,WAAWR,IAASunC,EACvCvhB,EAAK0hB,YAGL58C,KAAKyS,KAAKooB,MAAMvkB,GAAMtW,KAAKo/B,OAAOlqB,GAClCunC,GAAc,IAIE,IAAhBA,GACFz8C,KAAKyS,KAAK8c,QAAQ1a,KAAK,qCACvB7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,iBAEvB7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAY3BrS,IAAK,SACLgC,MAAO,SAAgB6S,GACrB,GAAIxC,KAAOtP,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAE1E,IAAmB,IAAf8R,EAAIhV,OAAR,CAEA,GAAIw4B,GAAQ76B,KAAKyS,KAAKooB,KACtBhlB,GAAKnN,QAAQ2O,EAAK,SAAUf,GAC1B,GAAI4kB,GAAOL,EAAMvkB,OACJpT,KAATg4B,GACFA,EAAK3iB,WAIL1D,GACF7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,oBAS3BrS,IAAK,UACLgC,MAAO,WACL,GAAIwzC,GAASh4C,IAEb6V,GAAKnN,QAAQ1I,KAAKyS,KAAKooB,MAAO,SAAUK,EAAMukB,GAC5C,GAAIvqC,GAAO8iC,EAAOvlC,KAAKyC,KAAK2lB,MAAMzlB,MAAMqqC,OAC3Bv8C,KAATgS,GACFgmB,EAAKxlB,WAAWR,QAYtB1S,IAAK,SACLgC,MAAO,SAAgBwiC,GACrB,MAAO,IAAIgV,GAAKhV,EAAYhnC,KAAKyS,KAAMzS,KAAKqP,QAASrP,KAAKs0B,mBAS5D9xB,IAAK,iBACLgC,MAAO,WACL,GAAI8R,GACA4nC,EAAQl+C,KAAKyS,KAAKyrC,MAClBrjB,EAAQ76B,KAAKyS,KAAKooB,KAEtB,KAAKvkB,IAAM4nC,GACLA,EAAM18C,eAAe8U,KACvB4nC,EAAM5nC,GAAIukB,SAId,KAAKvkB,IAAMukB,GACT,GAAIA,EAAMr5B,eAAe8U,GAAK,CAC5B,GAAI4kB,GAAOL,EAAMvkB,EACjB4kB,GAAKmhB,KAAO,KACZnhB,EAAKohB,GAAK,KACVphB,EAAK0hB,cAYXp6C,IAAK,oBACLgC,MAAO,SAA2Bi7C,GAChC,GAAIuuF,KACJ,QAAgC9qI,KAA5BlD,KAAKyS,KAAKooB,MAAM4kB,GAAuB,CACzC,GAAIvkB,GAAOl7B,KAAKyS,KAAKooB,MAAM4kB,OACPv8C,KAAhBg4B,EAAK+gB,QACP+xF,EAAS5nI,KAAK80B,EAAK+gB,YAEH/4C,KAAdg4B,EAAKghB,MACP8xF,EAAS5nI,KAAK80B,EAAKghB,MAGvB,MAAO8xF,MASTxrI,IAAK,eACLgC,MAAO,WACLxE,KAAKmzI,mBACLnzI,KAAKozI,yBASP5wI,IAAK,sBACLgC,MAAO,WACL,GAAI4zC,GAASp4C,KAETqzI,IAEJx9H,GAAKnN,QAAQ1I,KAAKyS,KAAKooB,MAAO,SAAUK,EAAM5kB,GAC5C,GAAIuwH,GAASzuF,EAAO3lC,KAAKyrC,MAAMhjB,EAAKghB,MAChC0qF,EAAWxuF,EAAO3lC,KAAKyrC,MAAMhjB,EAAK+gB,YAGvB/4C,KAAX2jI,IAA6C,IAArBA,EAAOa,eAAmCxkI,KAAb0jI,IAAiD,IAAvBA,EAASc,eAI7ExkI,KAAX2jI,OAAqC3jI,KAAb0jI,GAC1ByM,EAAcjtI,KAAKkQ,KAIvBtW,KAAKuY,OAAO86H,GAAe,MAS7B7wI,IAAK,mBACLgC,MAAO,WACL,GAAIq2B,GAAQ76B,KAAKyS,KAAKooB,MAClBm4G,EAAYhzI,KAAKyS,KAAKyC,KAAK2lB,MAC3By4G,IAEJN,GAAUtqI,QAAQ,SAAUiqI,EAAUlzF,OAEvBv8C,KADF23B,EAAM4kB,IAEf6zF,EAAOltI,KAAKq5C,KAIhBz/C,KAAKyV,IAAI69H,GAAQ,OAGd/M,IAGT5mI,GAAiB,QAAI4mI,GAIf,SAAU3mI,EAAQD,EAASO,GAqCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAhCzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAI8sE,GAAkBpxE,EAAoB,IAEtCqxE,EAAkB5uE,EAAuB2uE,GAEzC1sD,EAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCuuH,EAAwBrzI,EAAoB,KAE5CszI,EAAwB7wI,EAAuB4wI,GAU/C33F,EAAkB,SAAU63F,GAQ9B,QAAS73F,GAAgBvsC,EAASoD,EAAMuP,GAEtC,OADA,EAAItF,EAA0B,SAAG1c,KAAM47C,IAChC,EAAI72B,EAAqC,SAAG/kB,MAAO47C,EAAgB5nC,YAAa,EAAI6Q,EAA0B,SAAG+2B,IAAkBr7C,KAAKP,KAAMqP,EAASoD,EAAMuP,IAuItK,OAhJA,EAAIiD,EAAoB,SAAG22B,EAAiB63F,IAqB5C,EAAI72H,EAAuB,SAAGg/B,IAC5Bp5C,IAAK,QACLgC,MAAO,SAAesb,EAAK7G,EAAQy6H,GAEjC,GAAIC,GAAOD,EAAS,GAChBE,EAAOF,EAAS,EACpB1zI,MAAK6zI,aAAa/zH,EAAK7G,EAAQ06H,EAAMC,MAUvCpxI,IAAK,qBACLgC,MAAO,WACL,GAAI47C,GAAKpgD,KAAKq8C,KAAK1sC,EAAI3P,KAAKs8C,GAAG3sC,EAC3BwwC,EAAKngD,KAAKq8C,KAAK1gC,EAAI3b,KAAKs8C,GAAG3gC,EAE3B4lC,MAAK,GACLC,MAAK,GACLC,MAAK,GACLC,MAAK,GACL07B,EAAYp9E,KAAKqP,QAAQyuC,OAAOs/B,SAepC,QAZK14E,KAAKge,IAAI09B,GAAM17C,KAAKge,IAAIy9B,KAA8C,IAAvCngD,KAAKqP,QAAQyuC,OAAOu/B,gBAAkE,eAAvCr9E,KAAKqP,QAAQyuC,OAAOu/B,iBAA2E,aAAvCr9E,KAAKqP,QAAQyuC,OAAOu/B,gBAC7J77B,EAAKxhD,KAAKq8C,KAAK1gC,EACf+lC,EAAK1hD,KAAKs8C,GAAG3gC,EACb4lC,EAAKvhD,KAAKq8C,KAAK1sC,EAAIytE,EAAYh9B,EAC/BqB,EAAKzhD,KAAKs8C,GAAG3sC,EAAIytE,EAAYh9B,IAE7BoB,EAAKxhD,KAAKq8C,KAAK1gC,EAAIyhE,EAAYj9B,EAC/BuB,EAAK1hD,KAAKs8C,GAAG3gC,EAAIyhE,EAAYj9B,EAC7BoB,EAAKvhD,KAAKq8C,KAAK1sC,EACf8xC,EAAKzhD,KAAKs8C,GAAG3sC,KAGLA,EAAG4xC,EAAI5lC,EAAG6lC,IAAQ7xC,EAAG8xC,EAAI9lC,EAAG+lC,OASxCl/C,IAAK,aACLgC,MAAO,WACL,MAAOxE,MAAKohD,wBAYd5+C,IAAK,sBACLgC,MAAO,SAA6Bw8C,EAAUlhC,GAC5C,MAAO9f,MAAK8zI,0BAA0B9yF,EAAUlhC,MAkBlDtd,IAAK,qBACLgC,MAAO,SAA4B+8C,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACrD,GAAImyF,GAAOxuI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKohD,qBAChF4yF,GAAQ,EAAIziE,EAAyB,SAAGwiE,EAAM,GAC9CJ,EAAOK,EAAM,GACbJ,EAAOI,EAAM,EAGjB,OAAOh0I,MAAKi0I,yBAAyB1yF,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI+xF,EAAMC,MAarEpxI,IAAK,WACLgC,MAAO,SAAkBykC,GACvB,GAAIirG,GAAQ3uI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKohD,qBACjF+yF,GAAQ,EAAI5iE,EAAyB,SAAG2iE,EAAO,GAC/CP,EAAOQ,EAAM,GACbP,EAAOO,EAAM,GAEb9lI,EAAI46B,EACJmrG,IAQJ,OAPAA,GAAI,GAAK1vI,KAAK48C,IAAI,EAAIjzC,EAAG,GACzB+lI,EAAI,GAAK,EAAI/lI,EAAI3J,KAAK48C,IAAI,EAAIjzC,EAAG,GACjC+lI,EAAI,GAAK,EAAI1vI,KAAK48C,IAAIjzC,EAAG,IAAM,EAAIA,GACnC+lI,EAAI,GAAK1vI,KAAK48C,IAAIjzC,EAAG,IAIZsB,EAHDykI,EAAI,GAAKp0I,KAAKy+C,UAAU9uC,EAAIykI,EAAI,GAAKT,EAAKhkI,EAAIykI,EAAI,GAAKR,EAAKjkI,EAAIykI,EAAI,GAAKp0I,KAAK0+C,QAAQ/uC,EAG/EgM,EAFPy4H,EAAI,GAAKp0I,KAAKy+C,UAAU9iC,EAAIy4H,EAAI,GAAKT,EAAKh4H,EAAIy4H,EAAI,GAAKR,EAAKj4H,EAAIy4H,EAAI,GAAKp0I,KAAK0+C,QAAQ/iC,OAK3FigC,GACP43F,EAA+B,QAEjC7zI,GAAiB,QAAIi8C,GAIf,SAAUh8C,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCqvH,EAAmBn0I,EAAoB,IAEvCo0I,EAAmB3xI,EAAuB0xI,GAU1CE,EAAsB,SAAUC,GAQlC,QAASD,GAAoBllI,EAASoD,EAAMuP,GAE1C,OADA,EAAItF,EAA0B,SAAG1c,KAAMu0I,IAChC,EAAIxvH,EAAqC,SAAG/kB,MAAOu0I,EAAoBvgI,YAAa,EAAI6Q,EAA0B,SAAG0vH,IAAsBh0I,KAAKP,KAAMqP,EAASoD,EAAMuP,IAqD9K,OA9DA,EAAIiD,EAAoB,SAAGsvH,EAAqBC,IA8BhD,EAAI53H,EAAuB,SAAG23H,IAC5B/xI,IAAK,2BACLgC,MAAO,SAAkC+8C,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI+xF,EAAMC,GAErE,GAAI9xF,GAAc,IACdtjC,MAAW,GACXne,MAAI,GACJgO,MAAI,GACJsB,MAAI,GACJgM,MAAI,GACJomC,EAAQR,EACRS,EAAQR,EACR4yF,GAAO,EAAG,EAAG,EAAG,EACpB,KAAK/zI,EAAI,EAAGA,EAAI,GAAIA,IAClBgO,EAAI,GAAMhO,EACV+zI,EAAI,GAAK1vI,KAAK48C,IAAI,EAAIjzC,EAAG,GACzB+lI,EAAI,GAAK,EAAI/lI,EAAI3J,KAAK48C,IAAI,EAAIjzC,EAAG,GACjC+lI,EAAI,GAAK,EAAI1vI,KAAK48C,IAAIjzC,EAAG,IAAM,EAAIA,GACnC+lI,EAAI,GAAK1vI,KAAK48C,IAAIjzC,EAAG,GACrBsB,EAAIykI,EAAI,GAAK7yF,EAAK6yF,EAAI,GAAKT,EAAKhkI,EAAIykI,EAAI,GAAKR,EAAKjkI,EAAIykI,EAAI,GAAK3yF,EAC/D9lC,EAAIy4H,EAAI,GAAK5yF,EAAK4yF,EAAI,GAAKT,EAAKh4H,EAAIy4H,EAAI,GAAKR,EAAKj4H,EAAIy4H,EAAI,GAAK1yF,EAC3DrhD,EAAI,IACNme,EAAWxe,KAAKiiD,mBAAmBF,EAAOC,EAAOryC,EAAGgM,EAAGgmC,EAAIC,GAC3DE,EAActjC,EAAWsjC,EAActjC,EAAWsjC,GAEpDC,EAAQpyC,EACRqyC,EAAQrmC,CAGV,OAAOmmC,OAGJyyF,GACPD,EAA0B,QAE5B30I,GAAiB,QAAI40I,GAIf,SAAU30I,EAAQD,EAASO,GAqCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAhCzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAI8sE,GAAkBpxE,EAAoB,IAEtCqxE,EAAkB5uE,EAAuB2uE,GAEzC1sD,EAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCqvH,EAAmBn0I,EAAoB,IAEvCo0I,EAAmB3xI,EAAuB0xI,GAW1Cx4F,EAAoB,SAAU24F,GAQhC,QAAS34F,GAAkBxsC,EAASoD,EAAMuP,IACxC,EAAItF,EAA0B,SAAG1c,KAAM67C,EAGvC,IAAIjG,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAO67C,EAAkB7nC,YAAa,EAAI6Q,EAA0B,SAAGg3B,IAAoBt7C,KAAKP,KAAMqP,EAASoD,EAAMuP,GAQ7K,OAJA4zB,GAAM6+F,eAAiB,WACrB7+F,EAAM8+F,sBAER9+F,EAAMnjC,KAAK8c,QAAQ7a,GAAG,yBAA0BkhC,EAAM6+F,gBAC/C7+F,EAgNT,OAnOA,EAAI3wB,EAAoB,SAAG42B,EAAmB24F,IA4B9C,EAAI53H,EAAuB,SAAGi/B,IAC5Br5C,IAAK,aACLgC,MAAO,SAAoB6K,GAEzB,GAAIslI,IAAgB,CAChB30I,MAAKqP,QAAQwsB,UAAYxsB,EAAQwsB,UACnC84G,GAAgB,GAIlB30I,KAAKqP,QAAUA,EACfrP,KAAKsW,GAAKtW,KAAKqP,QAAQiH,GACvBtW,KAAKq8C,KAAOr8C,KAAKyS,KAAKyrC,MAAMl+C,KAAKqP,QAAQgtC,MACzCr8C,KAAKs8C,GAAKt8C,KAAKyS,KAAKyrC,MAAMl+C,KAAKqP,QAAQitC,IAGvCt8C,KAAK40I,mBACL50I,KAAK48C,WAGiB,IAAlB+3F,IACF30I,KAAK6hD,IAAInsC,YAAammB,QAAS77B,KAAKqP,QAAQwsB,UAC5C77B,KAAK00I,yBASTlyI,IAAK,UACLgC,MAAO,WACLxE,KAAKq8C,KAAOr8C,KAAKyS,KAAKyrC,MAAMl+C,KAAKqP,QAAQgtC,MACzCr8C,KAAKs8C,GAAKt8C,KAAKyS,KAAKyrC,MAAMl+C,KAAKqP,QAAQitC,QACrBp5C,KAAdlD,KAAKq8C,UAAkCn5C,KAAZlD,KAAKs8C,KAA6C,IAAzBt8C,KAAKqP,QAAQwsB,QACnE77B,KAAK6hD,IAAInsC,YAAammB,SAAS,IAG3B77B,KAAKq8C,KAAK/lC,KAAOtW,KAAKs8C,GAAGhmC,GAC3BtW,KAAK6hD,IAAInsC,YAAammB,SAAS,IAE/B77B,KAAK6hD,IAAInsC,YAAammB,SAAS,OAWrCr5B,IAAK,UACLgC,MAAO,WAEL,MADAxE,MAAKyS,KAAK8c,QAAQ5a,IAAI,yBAA0B3U,KAAKy0I,oBACpCvxI,KAAblD,KAAK6hD,YACA7hD,MAAKyS,KAAKyrC,MAAMl+C,KAAK6hD,IAAIvrC,IAChCtW,KAAK6hD,QAAM3+C,IACJ,MAcXV,IAAK,mBACLgC,MAAO,WACL,OAAiBtB,KAAblD,KAAK6hD,IAAmB,CAC1B,GAAI3kB,GAAS,UAAYl9B,KAAKsW,GAC1B+qC,EAAOrhD,KAAKyS,KAAKyyH,UAAUC,YAC7B7uH,GAAI4mB,EACJ3X,MAAO,SACPsW,SAAS,EACTjR,QAAQ,GAEV5qB,MAAKyS,KAAKyrC,MAAMhhB,GAAUmkB,EAC1BrhD,KAAK6hD,IAAMR,EACXrhD,KAAK6hD,IAAIgzF,aAAe70I,KAAKsW,GAC7BtW,KAAK00I,yBASTlyI,IAAK,qBACLgC,MAAO,eACYtB,KAAblD,KAAK6hD,SAAmC3+C,KAAdlD,KAAKq8C,UAAkCn5C,KAAZlD,KAAKs8C,IAC5Dt8C,KAAK6hD,IAAIlyC,EAAI,IAAO3P,KAAKq8C,KAAK1sC,EAAI3P,KAAKs8C,GAAG3sC,GAC1C3P,KAAK6hD,IAAIlmC,EAAI,IAAO3b,KAAKq8C,KAAK1gC,EAAI3b,KAAKs8C,GAAG3gC,QACpBzY,KAAblD,KAAK6hD,MACd7hD,KAAK6hD,IAAIlyC,EAAI,EACb3P,KAAK6hD,IAAIlmC,EAAI,MAajBnZ,IAAK,QACLgC,MAAO,SAAesb,EAAK7G,EAAQqlC,GACjCt+C,KAAK6zI,aAAa/zH,EAAK7G,EAAQqlC,MASjC97C,IAAK,aACLgC,MAAO,WACL,MAAOxE,MAAK6hD,OAadr/C,IAAK,WACLgC,MAAO,SAAkBykC,GACvB,GAAIqV,GAAU/4C,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAK6hD,IAEnFxzC,EAAI46B,EACJt5B,MAAI,GACJgM,MAAI,EACR,IAAI3b,KAAKq8C,OAASr8C,KAAKs8C,GAAI,CACzB,GAAIw6B,GAAiB92E,KAAK82E,eAAe92E,KAAKq8C,MAC1Cw6B,GAAkB,EAAItF,EAAyB,SAAGuF,EAAgB,GAClE89B,EAAK/9B,EAAgB,GACrBg+B,EAAKh+B,EAAgB,GACrBi+D,EAAKj+D,EAAgB,GAErBh0E,EAAI,EAAI6B,KAAK47C,IAAM,EAAIjyC,EAC3BsB,GAAIilG,EAAKkgC,EAAKpwI,KAAKke,IAAI/f,GACvB8Y,EAAIk5F,EAAKigC,EAAKA,GAAM,EAAIpwI,KAAKie,IAAI9f,QAEjC8M,GAAIjL,KAAK48C,IAAI,EAAIjzC,EAAG,GAAKrO,KAAKy+C,UAAU9uC,EAAI,EAAItB,GAAK,EAAIA,GAAKiwC,EAAQ3uC,EAAIjL,KAAK48C,IAAIjzC,EAAG,GAAKrO,KAAK0+C,QAAQ/uC,EACxGgM,EAAIjX,KAAK48C,IAAI,EAAIjzC,EAAG,GAAKrO,KAAKy+C,UAAU9iC,EAAI,EAAItN,GAAK,EAAIA,GAAKiwC,EAAQ3iC,EAAIjX,KAAK48C,IAAIjzC,EAAG,GAAKrO,KAAK0+C,QAAQ/iC,CAG1G,QAAShM,EAAGA,EAAGgM,EAAGA,MAYpBnZ,IAAK,sBACLgC,MAAO,SAA6Bw8C,EAAUlhC,GAC5C,MAAO9f,MAAK8zI,0BAA0B9yF,EAAUlhC,EAAK9f,KAAK6hD,QAgB5Dr/C,IAAK,qBACLgC,MAAO,SAA4B+8C,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAErD,MAAO5hD,MAAKi0I,yBAAyB1yF,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI5hD,KAAK6hD,SAG/DhG,GACPy4F,EAA0B,QAE5B30I,GAAiB,QAAIk8C,GAIf,SAAUj8C,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCqvH,EAAmBn0I,EAAoB,IAEvCo0I,EAAmB3xI,EAAuB0xI,GAU1Cv4F,EAAmB,SAAU04F,GAQ/B,QAAS14F,GAAiBzsC,EAASoD,EAAMuP,GAEvC,OADA,EAAItF,EAA0B,SAAG1c,KAAM87C,IAChC,EAAI/2B,EAAqC,SAAG/kB,MAAO87C,EAAiB9nC,YAAa,EAAI6Q,EAA0B,SAAGi3B,IAAmBv7C,KAAKP,KAAMqP,EAASoD,EAAMuP,IA+MxK,OAxNA,EAAIiD,EAAoB,SAAG62B,EAAkB04F,IAqB7C,EAAI53H,EAAuB,SAAGk/B,IAC5Bt5C,IAAK,QACLgC,MAAO,SAAesb,EAAK7G,EAAQqlC,GACjCt+C,KAAK6zI,aAAa/zH,EAAK7G,EAAQqlC,MASjC97C,IAAK,aACLgC,MAAO,WACL,MAAOxE,MAAKohD,wBAUd5+C,IAAK,qBACLgC,MAAO,WAEL,GAAIuwI,OAAO7xI,GACP8xI,MAAO9xI,GACPq4C,EAASv7C,KAAKqP,QAAQyuC,OAAOs/B,UAC7B32E,EAAOzG,KAAKqP,QAAQyuC,OAAOr3C,KAC3B25C,EAAK17C,KAAKge,IAAI1iB,KAAKq8C,KAAK1sC,EAAI3P,KAAKs8C,GAAG3sC,GACpCwwC,EAAKz7C,KAAKge,IAAI1iB,KAAKq8C,KAAK1gC,EAAI3b,KAAKs8C,GAAG3gC,EACxC,IAAa,aAATlV,GAAgC,kBAATA,EAA0B,CACnD,GAAIwuI,OAAQ,GACRC,MAAQ,EAGVD,GAAQC,EADN90F,GAAMD,EACQ5E,EAAS4E,EAET5E,EAAS6E,EAGvBpgD,KAAKq8C,KAAK1sC,EAAI3P,KAAKs8C,GAAG3sC,IAAGslI,GAASA,GAClCj1I,KAAKq8C,KAAK1gC,GAAK3b,KAAKs8C,GAAG3gC,IAAGu5H,GAASA,GAEvCH,EAAO/0I,KAAKq8C,KAAK1sC,EAAIslI,EACrBD,EAAOh1I,KAAKq8C,KAAK1gC,EAAIu5H,EAER,aAATzuI,IACE25C,GAAMD,EACR40F,EAAO30F,EAAK7E,EAAS4E,EAAKngD,KAAKq8C,KAAK1sC,EAAIolI,EAExCC,EAAO70F,EAAK5E,EAAS6E,EAAKpgD,KAAKq8C,KAAK1gC,EAAIq5H,OAGvC,IAAa,kBAATvuI,EAA0B,CACnC,GAAI0uI,IAAU,EAAI55F,GAAU6E,EACxBg1F,GAAU,EAAI75F,GAAU4E,CAExBC,IAAMD,GAERg1F,EAAS,EACLn1I,KAAKq8C,KAAK1gC,EAAI3b,KAAKs8C,GAAG3gC,IAAGy5H,GAAUA,KAGnCp1I,KAAKq8C,KAAK1sC,EAAI3P,KAAKs8C,GAAG3sC,IAAGwlI,GAAUA,GACvCC,EAAS,GAEXL,EAAO/0I,KAAKs8C,GAAG3sC,EAAIwlI,EACnBH,EAAOh1I,KAAKs8C,GAAG3gC,EAAIy5H,MACd,IAAa,eAAT3uI,EAAuB,CAChC,GAAI4uI,IAAW,EAAI95F,GAAU6E,CACzBpgD,MAAKq8C,KAAK1sC,EAAI3P,KAAKs8C,GAAG3sC,IAAG0lI,GAAWA,GACxCN,EAAO/0I,KAAKs8C,GAAG3sC,EAAI0lI,EACnBL,EAAOh1I,KAAKq8C,KAAK1gC,MACZ,IAAa,aAATlV,EAAqB,CAC9B,GAAI6uI,IAAW,EAAI/5F,GAAU4E,CACzBngD,MAAKq8C,KAAK1gC,EAAI3b,KAAKs8C,GAAG3gC,IAAG25H,GAAWA,GACxCP,EAAO/0I,KAAKq8C,KAAK1sC,EACjBqlI,EAAOh1I,KAAKs8C,GAAG3gC,EAAI25H,MACd,IAAa,aAAT7uI,EAAqB,CAC9B25C,EAAKpgD,KAAKs8C,GAAG3sC,EAAI3P,KAAKq8C,KAAK1sC,EAC3BwwC,EAAKngD,KAAKq8C,KAAK1gC,EAAI3b,KAAKs8C,GAAG3gC,CAC3B,IAAIsG,GAASvd,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,GAClCo1F,EAAK7wI,KAAK47C,GAEVk1F,EAAgB9wI,KAAK27C,MAAMF,EAAIC,GAC/Bq1F,GAAWD,GAA0B,GAATj6F,EAAe,IAAOg6F,IAAO,EAAIA,EAEjER,GAAO/0I,KAAKq8C,KAAK1sC,GAAc,GAAT4rC,EAAe,IAAOt5B,EAASvd,KAAKke,IAAI6yH,GAC9DT,EAAOh1I,KAAKq8C,KAAK1gC,GAAc,GAAT4/B,EAAe,IAAOt5B,EAASvd,KAAKie,IAAI8yH,OACzD,IAAa,cAAThvI,EAAsB,CAC/B25C,EAAKpgD,KAAKs8C,GAAG3sC,EAAI3P,KAAKq8C,KAAK1sC,EAC3BwwC,EAAKngD,KAAKq8C,KAAK1gC,EAAI3b,KAAKs8C,GAAG3gC,CAC3B,IAAIg8D,GAAUjzE,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,GACnCu1F,EAAMhxI,KAAK47C,GAEXq1F,EAAiBjxI,KAAK27C,MAAMF,EAAIC,GAChCw1F,GAAYD,GAA4B,IAATp6F,EAAe,IAAOm6F,IAAQ,EAAIA,EAErEX,GAAO/0I,KAAKq8C,KAAK1sC,GAAc,GAAT4rC,EAAe,IAAOo8B,EAAUjzE,KAAKke,IAAIgzH,GAC/DZ,EAAOh1I,KAAKq8C,KAAK1gC,GAAc,GAAT4/B,EAAe,IAAOo8B,EAAUjzE,KAAKie,IAAIizH,OAC1D,CAEL,GAAIC,OAAU,GACVC,MAAU,EAGZD,GAAUC,EADR11F,GAAMD,EACY5E,EAAS4E,EAET5E,EAAS6E,EAG3BpgD,KAAKq8C,KAAK1sC,EAAI3P,KAAKs8C,GAAG3sC,IAAGkmI,GAAWA,GACpC71I,KAAKq8C,KAAK1gC,GAAK3b,KAAKs8C,GAAG3gC,IAAGm6H,GAAWA,GAEzCf,EAAO/0I,KAAKq8C,KAAK1sC,EAAIkmI,EACrBb,EAAOh1I,KAAKq8C,KAAK1gC,EAAIm6H,EAEjB11F,GAAMD,EAEN40F,EADE/0I,KAAKq8C,KAAK1sC,GAAK3P,KAAKs8C,GAAG3sC,EAClB3P,KAAKs8C,GAAG3sC,EAAIolI,EAAO/0I,KAAKs8C,GAAG3sC,EAAIolI,EAE/B/0I,KAAKs8C,GAAG3sC,EAAIolI,EAAO/0I,KAAKs8C,GAAG3sC,EAAIolI,EAItCC,EADEh1I,KAAKq8C,KAAK1gC,GAAK3b,KAAKs8C,GAAG3gC,EAClB3b,KAAKs8C,GAAG3gC,EAAIq5H,EAAOh1I,KAAKs8C,GAAG3gC,EAAIq5H,EAE/Bh1I,KAAKs8C,GAAG3gC,EAAIq5H,EAAOh1I,KAAKs8C,GAAG3gC,EAAIq5H,EAI5C,OAASrlI,EAAGolI,EAAMp5H,EAAGq5H,MAavBxyI,IAAK,sBACLgC,MAAO,SAA6Bw8C,EAAUlhC,GAC5C,GAAIzQ,GAAU9J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,KAE7E,OAAOvF,MAAK8zI,0BAA0B9yF,EAAUlhC,EAAKzQ,EAAQwyC,QAiB/Dr/C,IAAK,qBACLgC,MAAO,SAA4B+8C,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACrD,GAAItD,GAAU/4C,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKohD,oBAEvF,OAAOphD,MAAKi0I,yBAAyB1yF,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAItD,MAY/D97C,IAAK,WACLgC,MAAO,SAAkBykC,GACvB,GAAIqV,GAAU/4C,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKohD,qBAEnF/yC,EAAI46B,CAIR,QAASt5B,EAHDjL,KAAK48C,IAAI,EAAIjzC,EAAG,GAAKrO,KAAKy+C,UAAU9uC,EAAI,EAAItB,GAAK,EAAIA,GAAKiwC,EAAQ3uC,EAAIjL,KAAK48C,IAAIjzC,EAAG,GAAKrO,KAAK0+C,QAAQ/uC,EAG7FgM,EAFPjX,KAAK48C,IAAI,EAAIjzC,EAAG,GAAKrO,KAAKy+C,UAAU9iC,EAAI,EAAItN,GAAK,EAAIA,GAAKiwC,EAAQ3iC,EAAIjX,KAAK48C,IAAIjzC,EAAG,GAAKrO,KAAK0+C,QAAQ/iC,OAKzGmgC,GACPw4F,EAA0B,QAE5B30I,GAAiB,QAAIm8C,GAIf,SAAUl8C,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpC47B,EAAa1gD,EAAoB,KAEjC2gD,EAAal+C,EAAuBi+C,GASpC7E,EAAe,SAAUgF,GAQ3B,QAAShF,GAAa1sC,EAASoD,EAAMuP,GAEnC,OADA,EAAItF,EAA0B,SAAG1c,KAAM+7C,IAChC,EAAIh3B,EAAqC,SAAG/kB,MAAO+7C,EAAa/nC,YAAa,EAAI6Q,EAA0B,SAAGk3B,IAAex7C,KAAKP,KAAMqP,EAASoD,EAAMuP,IAuGhK,OAhHA,EAAIiD,EAAoB,SAAG82B,EAAcgF,IAoBzC,EAAInkC,EAAuB,SAAGm/B,IAC5Bv5C,IAAK,QACLgC,MAAO,SAAesb,EAAK7G,GAEzB6G,EAAIwiC,YACJxiC,EAAI8kB,OAAO5kC,KAAKy+C,UAAU9uC,EAAG3P,KAAKy+C,UAAU9iC,GAC5CmE,EAAI2iC,OAAOziD,KAAK0+C,QAAQ/uC,EAAG3P,KAAK0+C,QAAQ/iC,GAExC3b,KAAKqkB,aAAavE,EAAK7G,GACvB6G,EAAIoE,SACJlkB,KAAKukB,cAAczE,EAAK7G,MAS1BzW,IAAK,aACLgC,MAAO,eAaPhC,IAAK,WACLgC,MAAO,SAAkBykC,GACvB,OACEt5B,GAAI,EAAIs5B,GAAcjpC,KAAKy+C,UAAU9uC,EAAIs5B,EAAajpC,KAAK0+C,QAAQ/uC,EACnEgM,GAAI,EAAIstB,GAAcjpC,KAAKy+C,UAAU9iC,EAAIstB,EAAajpC,KAAK0+C,QAAQ/iC,MAavEnZ,IAAK,sBACLgC,MAAO,SAA6Bw8C,EAAUlhC,GAC5C,GAAIk/B,GAAQh/C,KAAKs8C,GACb2C,EAAQj/C,KAAKq8C,IACb2E,GAAS1qC,KAAOtW,KAAKq8C,KAAK/lC,KAC5B0oC,EAAQh/C,KAAKq8C,KACb4C,EAAQj/C,KAAKs8C,GAGf,IAAI/5B,GAAQ7d,KAAK27C,MAAMrB,EAAMrjC,EAAIsjC,EAAMtjC,EAAGqjC,EAAMrvC,EAAIsvC,EAAMtvC,GACtDywC,EAAKpB,EAAMrvC,EAAIsvC,EAAMtvC,EACrBwwC,EAAKnB,EAAMrjC,EAAIsjC,EAAMtjC,EACrBo6H,EAAoBrxI,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,GAC7C61F,EAAeh1F,EAASzkB,iBAAiBzc,EAAKyC,GAC9C0zH,GAAiBF,EAAoBC,GAAgBD,EAErDG,IAIJ,OAHAA,GAAUvmI,GAAK,EAAIsmI,GAAiBh3F,EAAMtvC,EAAIsmI,EAAgBj3F,EAAMrvC,EACpEumI,EAAUv6H,GAAK,EAAIs6H,GAAiBh3F,EAAMtjC,EAAIs6H,EAAgBj3F,EAAMrjC,EAE7Du6H,KAgBT1zI,IAAK,qBACLgC,MAAO,SAA4B+8C,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAErD,MAAO5hD,MAAKiiD,mBAAmBV,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,OAGhD7F,GACP8E,EAAoB,QAEtBlhD,GAAiB,QAAIo8C,GAIf,SAAUn8C,EAAQD,EAASO,GAqBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAhBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIjB,GAAQrD,EAAoB,GAE5BsD,EAASb,EAAuBY,GAEhCkZ,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC+8D,EAAkBx5E,EAAoB,KAAc,QACpDi2I,EAAYj2I,EAAoB,KAAc,QAC9Ck2I,EAAwBl2I,EAAoB,KAAc,QAC1Dm2I,EAAen2I,EAAoB,KAAc,QACjDo2I,EAA2Bp2I,EAAoB,KAAc,QAC7D08E,EAAuB18E,EAAoB,KAAc,QACzDq2I,EAAkCr2I,EAAoB,KAAc,QACpEs2I,EAAuCt2I,EAAoB,KAAc,QACzE2V,EAAO3V,EAAoB,GAC3Bo2E,EAAYp2E,EAAoB,KAAc,QAO9C4lI,EAAgB,WAIlB,QAASA,GAAcrzH,IACrB,EAAIiK,EAA0B,SAAG1c,KAAM8lI,GAEvC9lI,KAAKyS,KAAOA,EACZzS,KAAK25E,aAAgBQ,sBAAwBs8D,sBAAwBn7D,UAAYo7D,eAEjF12I,KAAK22I,gBAAiB,EACtB32I,KAAK42I,mBAAqB,IAAO,GACjC52I,KAAK62I,iBAAkB,EACvB72I,KAAK82I,kBACL92I,KAAK+2I,kBACL/2I,KAAKg3I,eACLh3I,KAAKi3I,gBAAc/zI,GAGnBlD,KAAKygF,kBAAmB,EACxBzgF,KAAKk3I,yBAA0B,EAC/Bl3I,KAAKm3I,gBAAkB,EACvBn3I,KAAKo3I,iBAAmB,EAExBp3I,KAAKq3I,YAAa,EAClBr3I,KAAKs3I,sBAAuB,EAC5Bt3I,KAAKu3I,wBAA0B,EAC/Bv3I,KAAKw3I,OAAQ,EAGbx3I,KAAKqP,WACLrP,KAAKs0B,gBACHxkB,SAAS,EACT4vE,WACE3F,MAAO,GACPG,uBAAwB,IACxB2C,eAAgB,GAChB8C,aAAc,GACdC,eAAgB,IAChBC,QAAS,IACT5F,aAAc,GAEhB6F,kBACE/F,MAAO,GACPG,uBAAwB,GACxB2C,eAAgB,IAChB+C,eAAgB,IAChBD,aAAc,IACdE,QAAS,GACT5F,aAAc,GAEhB8F,WACElD,eAAgB,GAChB8C,aAAc,IACdC,eAAgB,IAChBI,aAAc,IACdH,QAAS,IACT5F,aAAc,GAEhBgG,uBACEpD,eAAgB,EAChB8C,aAAc,IACdC,eAAgB,IAChBI,aAAc,IACdH,QAAS,KAEXK,YAAa,GACbC,YAAa,IACbjnC,OAAQ,YACRknC,eACEtwE,SAAS,EACTuwE,WAAY,IACZC,eAAgB,GAChBC,kBAAkB,EAClB33C,KAAK,GAEP43C,SAAU,GACVC,kBAAkB,GAEpB5qE,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBAC/Bt0B,KAAKwgF,SAAW,GAChBxgF,KAAKy3I,cAAe,EAEpBz3I,KAAKolI,qBA2vBP,OAnvBA,EAAIxoH,EAAuB,SAAGkpH,IAC5BtjI,IAAK,qBACLgC,MAAO,WACL,GAAIoxC,GAAQ51C,IAEZA,MAAKyS,KAAK8c,QAAQ7a,GAAG,cAAe,WAClCkhC,EAAM8hG,gBAER13I,KAAKyS,KAAK8c,QAAQ7a,GAAG,gBAAiB,WACpCkhC,EAAM6hG,cAAe,IAEvBz3I,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WACnCkhC,EAAMqzF,iBAAiBrzF,EAAM4hG,OAAQ,IAEvCx3I,KAAKyS,KAAK8c,QAAQ7a,GAAG,iBAAkB,WACrCkhC,EAAM+gG,gBAAiB,EAAM/gG,EAAMqzF,mBAErCjpI,KAAKyS,KAAK8c,QAAQ7a,GAAG,iBAAkB,WACrCkhC,EAAMlgC,WAAWkgC,EAAMvmC,UACH,IAAhBumC,EAAM4hG,OACR5hG,EAAMozF,oBAGVhpI,KAAKyS,KAAK8c,QAAQ7a,GAAG,kBAAmB,YAClB,IAAhBkhC,EAAM4hG,OACR5hG,EAAMozF,oBAGVhpI,KAAKyS,KAAK8c,QAAQ7a,GAAG,iBAAkB,WACrCkhC,EAAMqzF,mBAERjpI,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW,WAC9BkhC,EAAMqzF,gBAAe,GACrBrzF,EAAMnjC,KAAK8c,QAAQ5a,QAErB3U,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WAEnCkhC,EAAM+hG,yBAaVn1I,IAAK,aACLgC,MAAO,SAAoB6K,OACTnM,KAAZmM,KACc,IAAZA,GACFrP,KAAKqP,QAAQS,SAAU,EACvB9P,KAAK22I,gBAAiB,EACtB32I,KAAKipI,mBACgB,IAAZ55H,GACTrP,KAAKqP,QAAQS,SAAU,EACvB9P,KAAK22I,gBAAiB,EACtB32I,KAAKgpI,oBAELhpI,KAAK22I,gBAAiB,EACtB9gI,EAAK5P,wBAAwB,iBAAkBjG,KAAKqP,QAASA,GAC7DwG,EAAK1G,aAAanP,KAAKqP,QAASA,EAAS,qBAEjBnM,KAApBmM,EAAQS,UACV9P,KAAKqP,QAAQS,SAAU,IAGI,IAAzB9P,KAAKqP,QAAQS,UACf9P,KAAK22I,gBAAiB,EACtB32I,KAAKipI,kBAIPjpI,KAAKwgF,SAAWxgF,KAAKqP,QAAQmxE,WAGjCxgF,KAAKkxE,UAQP1uE,IAAK,OACLgC,MAAO,WACL,GAAI6K,EACwB,sBAAxBrP,KAAKqP,QAAQ6pC,QACf7pC,EAAUrP,KAAKqP,QAAQywE,iBACvB9/E,KAAK43I,YAAc,GAAIrB,GAAgCv2I,KAAKyS,KAAMzS,KAAK25E,YAAatqE,GACpFrP,KAAK63I,YAAc,GAAIxB,GAAar2I,KAAKyS,KAAMzS,KAAK25E,YAAatqE,GACjErP,KAAK83I,cAAgB,GAAItB,GAAqCx2I,KAAKyS,KAAMzS,KAAK25E,YAAatqE,IAC1D,cAAxBrP,KAAKqP,QAAQ6pC,QACtB7pC,EAAUrP,KAAKqP,QAAQ0wE,UACvB//E,KAAK43I,YAAc,GAAIzB,GAAUn2I,KAAKyS,KAAMzS,KAAK25E,YAAatqE,GAC9DrP,KAAK63I,YAAc,GAAIxB,GAAar2I,KAAKyS,KAAMzS,KAAK25E,YAAatqE,GACjErP,KAAK83I,cAAgB,GAAIl7D,GAAqB58E,KAAKyS,KAAMzS,KAAK25E,YAAatqE,IAC1C,0BAAxBrP,KAAKqP,QAAQ6pC,QACtB7pC,EAAUrP,KAAKqP,QAAQ4wE,sBACvBjgF,KAAK43I,YAAc,GAAIxB,GAAsBp2I,KAAKyS,KAAMzS,KAAK25E,YAAatqE,GAC1ErP,KAAK63I,YAAc,GAAIvB,GAAyBt2I,KAAKyS,KAAMzS,KAAK25E,YAAatqE,GAC7ErP,KAAK83I,cAAgB,GAAIl7D,GAAqB58E,KAAKyS,KAAMzS,KAAK25E,YAAatqE,KAG3EA,EAAUrP,KAAKqP,QAAQqwE,UACvB1/E,KAAK43I,YAAc,GAAIl+D,GAAgB15E,KAAKyS,KAAMzS,KAAK25E,YAAatqE,GACpErP,KAAK63I,YAAc,GAAIxB,GAAar2I,KAAKyS,KAAMzS,KAAK25E,YAAatqE,GACjErP,KAAK83I,cAAgB,GAAIl7D,GAAqB58E,KAAKyS,KAAMzS,KAAK25E,YAAatqE,IAG7ErP,KAAK+3I,aAAe1oI,KAQtB7M,IAAK,cACLgC,MAAO,YACuB,IAAxBxE,KAAK22I,iBAAoD,IAAzB32I,KAAKqP,QAAQS,SACJ,IAAvC9P,KAAKqP,QAAQ+wE,cAActwE,QAC7B9P,KAAKkpI,aAELlpI,KAAKq3I,YAAa,EAClBr3I,KAAKw3I,OAAQ,EACbx3I,KAAKyS,KAAK8c,QAAQ1a,KAAK,SAAW7U,KAAKy3I,cACvCz3I,KAAKgpI,oBAGPhpI,KAAKw3I,OAAQ,EACbx3I,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAS3BrS,IAAK,kBACLgC,MAAO,YACuB,IAAxBxE,KAAK22I,iBAAoD,IAAzB32I,KAAKqP,QAAQS,SAC/C9P,KAAKq3I,YAAa,EAGlBr3I,KAAKygF,kBAAmB,EAGxBzgF,KAAKyS,KAAK8c,QAAQ1a,KAAK,oBACG3R,KAAtBlD,KAAKg4I,eACPh4I,KAAKg4I,aAAeh4I,KAAKi4I,eAAe1vH,KAAKvoB,MAC7CA,KAAKyS,KAAK8c,QAAQ7a,GAAG,aAAc1U,KAAKg4I,cACxCh4I,KAAKyS,KAAK8c,QAAQ1a,KAAK,qBAGzB7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,cAU3BrS,IAAK,iBACLgC,MAAO,WACL,GAAIqQ,KAAOtP,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAE1EvF,MAAKq3I,YAAa,GACL,IAATxiI,GACF7U,KAAKk4I,sBAEmBh1I,KAAtBlD,KAAKg4I,eACPh4I,KAAKyS,KAAK8c,QAAQ5a,IAAI,aAAc3U,KAAKg4I,cACzCh4I,KAAKg4I,iBAAe90I,IACP,IAAT2R,GACF7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,sBAW7BrS,IAAK,iBACLgC,MAAO,WAEL,GAAI2zI,GAAYrzI,KAAKw7B,KACrBtgC,MAAKo4I,eACatzI,KAAKw7B,MAAQ63G,EAGZ,GAAMn4I,KAAK42I,qBAA8C,IAAxB52I,KAAKq4I,kBAAgD,IAApBr4I,KAAKq3I,aACxFr3I,KAAKo4I,cAGLp4I,KAAKq4I,gBAAiB,IAGA,IAApBr4I,KAAKq3I,YACPr3I,KAAKipI,oBAYTzmI,IAAK,kBACLgC,MAAO,WACL,GAAIgzC,GAASx3C,KAETs4I,EAAqB/yI,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKu3I,yBAE9Fv3I,KAAKu3I,wBAA0B,IAAmC,IAA9Bv3I,KAAKs3I,uBAC3CnkH,WAAW,WACTqkB,EAAO/kC,KAAK8c,QAAQ1a,KAAK,cAAgBwrE,WAAYi4D,IACrD9gG,EAAO8/F,sBAAuB,EAC9B9/F,EAAO+/F,wBAA0B,GAChC,MAUP/0I,IAAK,cACLgC,MAAO,WACLxE,KAAK83I,cAAcS,QACnBv4I,KAAK43I,YAAYW,QACjBv4I,KAAK63I,YAAYU,QACjBv4I,KAAKw4I,eAWPh2I,IAAK,iBACLgC,MAAO,YAI+B,IAAhCxE,KAAKy4I,uBACPz4I,KAAKwgF,SAJM,IAIcxgF,KAAKwgF,SAK1BxgF,KAAKwgF,SATE,IASkBxgF,KAAKqP,QAAQmxE,SACxCxgF,KAAKwgF,SAAWxgF,KAAKqP,QAAQmxE,UAI7BxgF,KAAKm3I,iBAAmB,EACxBn3I,KAAKwgF,SAAW97E,KAAKJ,IAAItE,KAAKqP,QAAQmxE,SAAUxgF,KAAKwgF,SAf5C,SA2Bfh+E,IAAK,cACLgC,MAAO,WAEL,GADAxE,KAAK04I,qBACmB,IAApB14I,KAAKq3I,WAAT,CAGA,IAA8B,IAA1Br3I,KAAKygF,mBAA8D,IAAjCzgF,KAAKk3I,wBAAkC,CAE1Dl3I,KAAKm3I,gBAAkBn3I,KAAKo3I,kBAAqB,GAIhEp3I,KAAKwgF,SAAW,EAAIxgF,KAAKwgF,SACzBxgF,KAAK24I,cACL34I,KAAK44I,SAGL54I,KAAKwgF,SAAW,GAAMxgF,KAAKwgF,SAG3BxgF,KAAK24I,cACL34I,KAAK24I,cAEL34I,KAAK64I,kBAEL74I,KAAK24I,cAGP34I,KAAKm3I,iBAAmB,MAGxBn3I,MAAKwgF,SAAWxgF,KAAKqP,QAAQmxE,SAC7BxgF,KAAK24I,eAGiB,IAApB34I,KAAKq3I,YAAqBr3I,KAAK44I,SACnC54I,KAAKu3I,8BAUP/0I,IAAK,oBACLgC,MAAO,WACLxE,KAAK25E,YAAY2B,UACjBt7E,KAAK25E,YAAYQ,sBACjBn6E,KAAK25E,YAAY88D,qBACjB,IAAIv4F,GAAQl+C,KAAKyS,KAAKyrC,MAClBrjB,EAAQ76B,KAAKyS,KAAKooB,KAGtB,KAAK,GAAIqC,KAAUghB,GACbA,EAAM18C,eAAe07B,KACe,IAAlCghB,EAAMhhB,GAAQ7tB,QAAQwsB,SACxB77B,KAAK25E,YAAYQ,mBAAmB/zE,KAAK83C,EAAMhhB,GAAQ5mB,GAM7D,KAAK,GAAImpC,KAAU5kB,GACbA,EAAMr5B,eAAei+C,KACe,IAAlC5kB,EAAM4kB,GAAQpwC,QAAQwsB,SACxB77B,KAAK25E,YAAY88D,mBAAmBrwI,KAAKy0B,EAAM4kB,GAAQnpC,GAM7D,KAAK,GAAIjW,GAAI,EAAGA,EAAIL,KAAK25E,YAAYQ,mBAAmB93E,OAAQhC,IAAK,CACnE,GAAI0vG,GAAU/vG,KAAK25E,YAAYQ,mBAAmB95E,EAClDL,MAAK25E,YAAY2B,OAAOy0B,IAAapgG,EAAG,EAAGgM,EAAG,OAGDzY,KAAzClD,KAAK25E,YAAY+8D,WAAW3mC,KAC9B/vG,KAAK25E,YAAY+8D,WAAW3mC,IAAapgG,EAAG,EAAGgM,EAAG,IAKtD,IAAK,GAAI2xH,KAAYttI,MAAK25E,YAAY+8D,eACZxzI,KAApBg7C,EAAMovF,UACDttI,MAAK25E,YAAY+8D,WAAWpJ,MAUzC9qI,IAAK,SACLgC,MAAO,WACL,GAAIs0I,IAAU,EAAIt1I,EAAgB,SAAGxD,KAAK82I,gBACtC54F,EAAQl+C,KAAKyS,KAAKyrC,MAClBw4F,EAAa12I,KAAK25E,YAAY+8D,UAClC12I,MAAK+2I,iBAEL,KAAK,GAAI12I,GAAI,EAAGA,EAAIy4I,EAAQz2I,OAAQhC,IAAK,CACvC,GAAI68B,GAAS47G,EAAQz4I,OACC6C,KAAlBg7C,EAAMhhB,IAC8B,IAAlCghB,EAAMhhB,GAAQ7tB,QAAQwsB,UACxB77B,KAAK+2I,eAAe75G,IAClB67G,WAAappI,EAAGuuC,EAAMhhB,GAAQvtB,EAAGgM,EAAGuiC,EAAMhhB,GAAQvhB,IAEpD+6H,EAAWx5G,GAAQvtB,EAAI3P,KAAK82I,eAAe55G,GAAQ87G,GACnDtC,EAAWx5G,GAAQvhB,EAAI3b,KAAK82I,eAAe55G,GAAQ+7G,GACnD/6F,EAAMhhB,GAAQvtB,EAAI3P,KAAK82I,eAAe55G,GAAQvtB,EAC9CuuC,EAAMhhB,GAAQvhB,EAAI3b,KAAK82I,eAAe55G,GAAQvhB,SAGzC3b,MAAK82I,eAAe55G,OAajC16B,IAAK,uBACLgC,MAAO,WACL,GAAI47C,OAAK,GACLD,MAAK,GAELjC,EAAQl+C,KAAKyS,KAAKyrC,MAClBg7F,EAAYl5I,KAAK+2I,cAGrB,KAAK,GAAI75G,KAAUl9B,MAAK+2I,eACtB,GAAI/2I,KAAK+2I,eAAev1I,eAAe07B,QAA6Bh6B,KAAlBg7C,EAAMhhB,KACtDkjB,EAAKlC,EAAMhhB,GAAQvtB,EAAIupI,EAAUh8G,GAAQ67G,UAAUppI,EACnDwwC,EAAKjC,EAAMhhB,GAAQvhB,EAAIu9H,EAAUh8G,GAAQ67G,UAAUp9H,EAE5CjX,KAAK2iB,KAAK3iB,KAAK48C,IAAIlB,EAAI,GAAK17C,KAAK48C,IAAInB,EAAI,IAPjC,IAUb,OAAO,CAIb,QAAO,KAQT39C,IAAK,YACLgC,MAAO,WAQL,IAAK,GAPD41E,GAAcp6E,KAAK25E,YAAYQ,mBAC/Bg/D,EAAkB,EAClBC,EAAsB,EAKjB/4I,EAAI,EAAGA,EAAI+5E,EAAY/3E,OAAQhC,IAAK,CAC3C,GAAI68B,GAASk9C,EAAY/5E,GACrBg5I,EAAer5I,KAAKs5I,aAAap8G,EAErCi8G,GAAkBz0I,KAAKJ,IAAI60I,EAAiBE,GAC5CD,GAAuBC,EAIzBr5I,KAAKk3I,wBAA0BkC,EAAsBh/D,EAAY/3E,OAXjC,EAYhCrC,KAAKq3I,WAAa8B,EAAkBn5I,KAAKqP,QAAQ8wE,eAcnD39E,IAAK,6BACLgC,MAAO,SAAoCkI,EAAGyB,EAAG3N,GAI/CkM,IAFSyB,EADAnO,KAAK+3I,aAAal4D,QAAUnzE,GAClBlM,EAEVR,KAAKwgF,QAGd,IAAI+4D,GAAOv5I,KAAKqP,QAAQ6wE,aAAe,GAKvC,OAJIx7E,MAAKge,IAAIhW,GAAK6sI,IAChB7sI,EAAIA,EAAI,EAAI6sI,GAAQA,GAGf7sI,KAYTlK,IAAK,eACLgC,MAAO,SAAsB04B,GAC3B,GAAImkB,GAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,GACvBu8B,EAAQz5D,KAAK25E,YAAY2B,OAAOp+C,GAChC8rF,EAAWhpH,KAAK25E,YAAY+8D,WAAWx5G,EAsB3C,OAnBAl9B,MAAK82I,eAAe55G,IAAYvtB,EAAG0xC,EAAK1xC,EAAGgM,EAAG0lC,EAAK1lC,EAAGq9H,GAAIhwB,EAASr5G,EAAGspI,GAAIjwB,EAASrtG,IAEtD,IAAzB0lC,EAAKhyC,QAAQmtB,MAAM7sB,GACrBq5G,EAASr5G,EAAI3P,KAAKw5I,2BAA2BxwB,EAASr5G,EAAG8pD,EAAM9pD,EAAG0xC,EAAKhyC,QAAQouB,MAC/E4jB,EAAK1xC,GAAKq5G,EAASr5G,EAAI3P,KAAKwgF,WAE5B/mB,EAAM9pD,EAAI,EACVq5G,EAASr5G,EAAI,IAGc,IAAzB0xC,EAAKhyC,QAAQmtB,MAAM7gB,GACrBqtG,EAASrtG,EAAI3b,KAAKw5I,2BAA2BxwB,EAASrtG,EAAG89C,EAAM99C,EAAG0lC,EAAKhyC,QAAQouB,MAC/E4jB,EAAK1lC,GAAKqtG,EAASrtG,EAAI3b,KAAKwgF,WAE5B/mB,EAAM99C,EAAI,EACVqtG,EAASrtG,EAAI,GAGKjX,KAAK2iB,KAAK3iB,KAAK48C,IAAI0nE,EAASr5G,EAAG,GAAKjL,KAAK48C,IAAI0nE,EAASrtG,EAAG,OAY/EnZ,IAAK,eACLgC,MAAO,WACL,GAAI05C,GAAQl+C,KAAKyS,KAAKyrC,KACtB,KAAK,GAAI5nC,KAAM4nC,GACb,GAAIA,EAAM18C,eAAe8U,IACnB4nC,EAAM5nC,GAAI3G,GAAKuuC,EAAM5nC,GAAIqF,EAAG,CAC9B,GAAI6gB,GAAQ0hB,EAAM5nC,GAAIjH,QAAQmtB,KAC9Bx8B,MAAKg3I,YAAY1gI,IAAQ3G,EAAG6sB,EAAM7sB,EAAGgM,EAAG6gB,EAAM7gB,GAC9C6gB,EAAM7sB,GAAI,EACV6sB,EAAM7gB,GAAI,MAalBnZ,IAAK,sBACLgC,MAAO,WACL,GAAI05C,GAAQl+C,KAAKyS,KAAKyrC,KACtB,KAAK,GAAI5nC,KAAM4nC,GACTA,EAAM18C,eAAe8U,QACMpT,KAAzBlD,KAAKg3I,YAAY1gI,KACnB4nC,EAAM5nC,GAAIjH,QAAQmtB,MAAM7sB,EAAI3P,KAAKg3I,YAAY1gI,GAAI3G,EACjDuuC,EAAM5nC,GAAIjH,QAAQmtB,MAAM7gB,EAAI3b,KAAKg3I,YAAY1gI,GAAIqF,EAIvD3b,MAAKg3I,kBAUPx0I,IAAK,YACLgC,MAAO,WACL,GAAIozC,GAAS53C,KAETqgF,EAAa96E,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKqP,QAAQ+wE,cAAcC,UAOhH,IAL0B,gBAAfA,KACTA,EAAargF,KAAKqP,QAAQ+wE,cAAcC,WACxCnpE,QAAQ0G,IAAI,oFAAqFyiE,IAGhD,IAA/CrgF,KAAK25E,YAAYQ,mBAAmB93E,OAEtC,YADArC,KAAKw3I,OAAQ,EAKfx3I,MAAKygF,iBAA2BzgF,KAAKqP,QAAQoxE,iBAG7CzgF,KAAKyS,KAAK8c,QAAQ1a,KAAK,gBAEvB7U,KAAKipI,iBACLjpI,KAAKq3I,YAAa,EAGlBr3I,KAAKyS,KAAK8c,QAAQ1a,KAAK,gBACvB7U,KAAKy5I,iBAAmBp5D,GAG4B,IAAhDrgF,KAAKqP,QAAQ+wE,cAAcG,kBAC7BvgF,KAAK05I,eAEP15I,KAAKu3I,wBAA0B,EAE/BpkH,WAAW,WACT,MAAOykB,GAAO+hG;gCACb,MAWLn3I,IAAK,oBACLgC,MAAO,WACL,OAAkC,IAA9BxE,KAAKs3I,uBAETt3I,KAAKyS,KAAK8c,QAAQ1a,KAAK,oBACvB7U,KAAKs3I,sBAAuB,GACrB,MAST90I,IAAK,sBACLgC,MAAO,WACL,GAAIwzC,GAASh4C,KAET45I,EAAU,WACZ,OAA6B,IAAtB5hG,EAAOq/F,YAAwBr/F,EAAOu/F,wBAA0Bv/F,EAAOyhG,kBAG5EI,EAAe,WACjB7hG,EAAOvlC,KAAK8c,QAAQ1a,KAAK,yBACvBwrE,WAAYroC,EAAOu/F,wBACnBhzI,MAAOyzC,EAAOyhG,mBAIdz5I,MAAK04I,qBACPmB,GAIF,KADA,GAAI1gI,GAAQ,EACLygI,KAAazgI,EAAQnZ,KAAKqP,QAAQ+wE,cAAcE,gBACrDtgF,KAAKo4I,cACLj/H,GAGF0gI,KAEID,IACFzmH,WAAWnzB,KAAK25I,oBAAoBpxH,KAAKvoB,MAAO,GAEhDA,KAAK85I,4BAUTt3I,IAAK,yBACLgC,MAAO,WACLxE,KAAKyS,KAAK8c,QAAQ1a,KAAK,iBACgB,IAAnC7U,KAAKqP,QAAQ+wE,cAAcx3C,KAC7B5oC,KAAKyS,KAAK8c,QAAQ1a,KAAK,QAG2B,IAAhD7U,KAAKqP,QAAQ+wE,cAAcG,kBAC7BvgF,KAAK+5I,sBAGP/5I,KAAKyS,KAAK8c,QAAQ1a,KAAK,+BACvB7U,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAEC,IAApB7U,KAAKq3I,WACPr3I,KAAKk4I,kBAELl4I,KAAKgpI,kBAGPhpI,KAAKw3I,OAAQ,KAgBfh1I,IAAK,cACLgC,MAAO,SAAqBsb,GAC1B,IAAK,GAAIzf,GAAI,EAAGA,EAAIL,KAAK25E,YAAYQ,mBAAmB93E,OAAQhC,IAAK,CACnE,GAAI86B,GAAQn7B,KAAK25E,YAAYQ,mBAAmB95E,GAC5CghD,EAAOrhD,KAAKyS,KAAKyrC,MAAM/iB,GACvBs+B,EAAQz5D,KAAK25E,YAAY2B,OAAOngD,GAGhC6+G,EAAYt1I,KAAK2iB,KAAK3iB,KAAK48C,IAAImY,EAAM9pD,EAAG,GAAKjL,KAAK48C,IAAImY,EAAM9pD,EAAG,IAE/DqM,EAAOtX,KAAKL,IAAIK,KAAKJ,IAAI,EAAG01I,GAAY,IACxCC,EAAY,EAAIj+H,EAEhBxQ,EAAQqK,EAAKhJ,UAAU,IAA0D,IAApDnI,KAAKL,IAAI,EAAGK,KAAKJ,IAAI,EANpC,IAMqD01I,KAAqB,IAAK,EAAG,GAEhGl+H,GACFnM,EAAG0xC,EAAK1xC,EAVG,GAUU8pD,EAAM9pD,EAC3BgM,EAAG0lC,EAAK1lC,EAXG,GAWU89C,EAAM99C,EAG7BmE,GAAI8D,UAAY5H,EAChB8D,EAAI+D,YAAcrY,EAClBsU,EAAIwiC,YACJxiC,EAAI8kB,OAAOyc,EAAK1xC,EAAG0xC,EAAK1lC,GACxBmE,EAAI2iC,OAAO3mC,EAAMnM,EAAGmM,EAAMH,GAC1BmE,EAAIoE,QAEJ,IAAI3B,GAAQ7d,KAAK27C,MAAMoZ,EAAM99C,EAAG89C,EAAM9pD,EACtCmQ,GAAIiE,UAAYvY,EAChB8qE,EAAUzwD,KAAK/F,GAAOrZ,KAAM,QAASqV,MAAOA,EAAOyG,MAAOA,EAAOlgB,OAAQ43I,IACzEn6H,EAAIwE,YAIHwhH,IAGTnmI,GAAiB,QAAImmI,GAIf,SAAUlmI,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAOvCu9H,EAAkB,WAMpB,QAASA,GAAgBznI,EAAMknE,EAAatqE,IAC1C,EAAIqN,EAA0B,SAAG1c,KAAMk6I,GAEvCl6I,KAAKyS,KAAOA,EACZzS,KAAK25E,YAAcA,EACnB35E,KAAK0V,WAAWrG,GA2ElB,OAlEA,EAAIuN,EAAuB,SAAGs9H,IAC5B13I,IAAK,aACLgC,MAAO,SAAoB6K,GACzBrP,KAAKqP,QAAUA,KAWjB7M,IAAK,QACLgC,MAAO,WAgBL,IAAK,GAfD47C,GAAID,EAAI3hC,EAAU48D,EAAIC,EAAI8+D,EAAgBn7F,EAAOC,EAEjDf,EAAQl+C,KAAKyS,KAAKyrC,MAClBk8B,EAAcp6E,KAAK25E,YAAYQ,mBAC/BmB,EAASt7E,KAAK25E,YAAY2B,OAG1B0E,EAAehgF,KAAKqP,QAAQ2wE,aAG5Bn9E,GAAK,EAAI,EAAIm9E,EAKR3/E,EAAI,EAAGA,EAAI+5E,EAAY/3E,OAAS,EAAGhC,IAAK,CAC/C2+C,EAAQd,EAAMk8B,EAAY/5E,GAC1B,KAAK,GAAI6O,GAAI7O,EAAI,EAAG6O,EAAIkrE,EAAY/3E,OAAQ6M,IAC1C+vC,EAAQf,EAAMk8B,EAAYlrE,IAE1BkxC,EAAKnB,EAAMtvC,EAAIqvC,EAAMrvC,EACrBwwC,EAAKlB,EAAMtjC,EAAIqjC,EAAMrjC,EACrB6C,EAAW9Z,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,GAGnB,IAAb3hC,IACFA,EAAW,GAAM9Z,KAAK2tB,SACtB+tB,EAAK5hC,GAGHA,EAAW,EAAIwhE,IAEfm6D,EADE37H,EAAW,GAAMwhE,EACF,EAEAn9E,EAAI2b,EAvBrB,EAAI,EAyBN27H,GAAkC37H,EAElC48D,EAAKh7B,EAAK+5F,EACV9+D,EAAKl7B,EAAKg6F,EAEV7+D,EAAOt8B,EAAM1oC,IAAI3G,GAAKyrE,EACtBE,EAAOt8B,EAAM1oC,IAAIqF,GAAK0/D,EACtBC,EAAOr8B,EAAM3oC,IAAI3G,GAAKyrE,EACtBE,EAAOr8B,EAAM3oC,IAAIqF,GAAK0/D,QAMzB6+D,IAGTv6I,GAAiB,QAAIu6I,GAIf,SAAUt6I,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAOvCy9H,EAA8B,WAMhC,QAASA,GAA4B3nI,EAAMknE,EAAatqE,IACtD,EAAIqN,EAA0B,SAAG1c,KAAMo6I,GAEvCp6I,KAAKyS,KAAOA,EACZzS,KAAK25E,YAAcA,EACnB35E,KAAK0V,WAAWrG,GAuElB,OA9DA,EAAIuN,EAAuB,SAAGw9H,IAC5B53I,IAAK,aACLgC,MAAO,SAAoB6K,GACzBrP,KAAKqP,QAAUA,KAWjB7M,IAAK,QACLgC,MAAO,WACL,GAAI47C,GAAID,EAAI3hC,EAAU48D,EAAIC,EAAI8+D,EAAgBn7F,EAAOC,EAAO5+C,EAAG6O,EAE3DgvC,EAAQl+C,KAAKyS,KAAKyrC,MAClBk8B,EAAcp6E,KAAK25E,YAAYQ,mBAC/BmB,EAASt7E,KAAK25E,YAAY2B,OAG1B0E,EAAehgF,KAAKqP,QAAQ2wE,YAIhC,KAAK3/E,EAAI,EAAGA,EAAI+5E,EAAY/3E,OAAS,EAAGhC,IAEtC,IADA2+C,EAAQd,EAAMk8B,EAAY/5E,IACrB6O,EAAI7O,EAAI,EAAG6O,EAAIkrE,EAAY/3E,OAAQ6M,IAItC,GAHA+vC,EAAQf,EAAMk8B,EAAYlrE,IAGtB8vC,EAAM48B,QAAU38B,EAAM28B,MAAO,CAC/Bx7B,EAAKnB,EAAMtvC,EAAIqvC,EAAMrvC,EACrBwwC,EAAKlB,EAAMtjC,EAAIqjC,EAAMrjC,EACrB6C,EAAW9Z,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,EAIlCg6F,GADE37H,EAAWwhE,GACKt7E,KAAK48C,IAFT,IAEyB9iC,EAAU,GAAK9Z,KAAK48C,IAF7C,IAE6D0+B,EAAc,GAExE,EAGF,IAAbxhE,EACFA,EAAW,IAEX27H,GAAkC37H,EAEpC48D,EAAKh7B,EAAK+5F,EACV9+D,EAAKl7B,EAAKg6F,EAEV7+D,EAAOt8B,EAAM1oC,IAAI3G,GAAKyrE,EACtBE,EAAOt8B,EAAM1oC,IAAIqF,GAAK0/D,EACtBC,EAAOr8B,EAAM3oC,IAAI3G,GAAKyrE,EACtBE,EAAOr8B,EAAM3oC,IAAIqF,GAAK0/D,OAMzB++D,IAGTz6I,GAAiB,QAAIy6I,GAIf,SAAUx6I,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAOvC05H,EAAe,WAMjB,QAASA,GAAa5jI,EAAMknE,EAAatqE,IACvC,EAAIqN,EAA0B,SAAG1c,KAAMq2I,GAEvCr2I,KAAKyS,KAAOA,EACZzS,KAAK25E,YAAcA,EACnB35E,KAAK0V,WAAWrG,GA2FlB,OAlFA,EAAIuN,EAAuB,SAAGy5H,IAC5B7zI,IAAK,aACLgC,MAAO,SAAoB6K,GACzBrP,KAAKqP,QAAUA,KAUjB7M,IAAK,QACLgC,MAAO,WAUL,IAAK,GATD61I,OAAa,GACbn/G,MAAO,GACPqpG,EAAcvkI,KAAK25E,YAAY88D,mBAC/B57G,EAAQ76B,KAAKyS,KAAKooB,MAClBmkB,MAAQ,GACRC,MAAQ,GACRq7F,MAAQ,GAGHj6I,EAAI,EAAGA,EAAIkkI,EAAYliI,OAAQhC,IACtC66B,EAAOL,EAAM0pG,EAAYlkI,KACF,IAAnB66B,EAAKshB,WAAsBthB,EAAKghB,OAAShhB,EAAK+gB,YAEb/4C,KAA/BlD,KAAKyS,KAAKyrC,MAAMhjB,EAAKghB,WAAwDh5C,KAAjClD,KAAKyS,KAAKyrC,MAAMhjB,EAAK+gB,cACzC/4C,KAAtBg4B,EAAKqhB,SAASsF,KAChBw4F,MAAqCn3I,KAAxBg4B,EAAK7rB,QAAQhN,OAAuBrC,KAAKqP,QAAQswE,aAAezkD,EAAK7rB,QAAQhN,OAC1F28C,EAAQ9jB,EAAKohB,GACb2C,EAAQ/jB,EAAKqhB,SAASsF,IACtBy4F,EAAQp/G,EAAKmhB,KAEbr8C,KAAKu6I,sBAAsBv7F,EAAOC,EAAO,GAAMo7F,GAC/Cr6I,KAAKu6I,sBAAsBt7F,EAAOq7F,EAAO,GAAMD,KAI/CA,MAAqCn3I,KAAxBg4B,EAAK7rB,QAAQhN,OAAmD,IAA5BrC,KAAKqP,QAAQswE,aAAqBzkD,EAAK7rB,QAAQhN,OAChGrC,KAAKu6I,sBAAsBr/G,EAAKmhB,KAAMnhB,EAAKohB,GAAI+9F,QAiBzD73I,IAAK,wBACLgC,MAAO,SAA+Bw6C,EAAOC,EAAOo7F,GAClD,GAAIj6F,GAAKpB,EAAMrvC,EAAIsvC,EAAMtvC,EACrBwwC,EAAKnB,EAAMrjC,EAAIsjC,EAAMtjC,EACrB6C,EAAW9Z,KAAKJ,IAAII,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,GAAK,KAGlDq6F,EAAcx6I,KAAKqP,QAAQuwE,gBAAkBy6D,EAAa77H,GAAYA,EAEtE48D,EAAKh7B,EAAKo6F,EACVn/D,EAAKl7B,EAAKq6F,MAG4Bt3I,KAAtClD,KAAK25E,YAAY2B,OAAOt8B,EAAM1oC,MAChCtW,KAAK25E,YAAY2B,OAAOt8B,EAAM1oC,IAAI3G,GAAKyrE,EACvCp7E,KAAK25E,YAAY2B,OAAOt8B,EAAM1oC,IAAIqF,GAAK0/D,OAGCn4E,KAAtClD,KAAK25E,YAAY2B,OAAOr8B,EAAM3oC,MAChCtW,KAAK25E,YAAY2B,OAAOr8B,EAAM3oC,IAAI3G,GAAKyrE,EACvCp7E,KAAK25E,YAAY2B,OAAOr8B,EAAM3oC,IAAIqF,GAAK0/D,OAItCg7D,IAGT12I,GAAiB,QAAI02I,GAIf,SAAUz2I,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAOvC25H,EAA2B,WAM7B,QAASA,GAAyB7jI,EAAMknE,EAAatqE,IACnD,EAAIqN,EAA0B,SAAG1c,KAAMs2I,GAEvCt2I,KAAKyS,KAAOA,EACZzS,KAAK25E,YAAcA,EACnB35E,KAAK0V,WAAWrG,GA6GlB,OApGA,EAAIuN,EAAuB,SAAG05H,IAC5B9zI,IAAK,aACLgC,MAAO,SAAoB6K,GACzBrP,KAAKqP,QAAUA,KAUjB7M,IAAK,QACLgC,MAAO,WAWL,IAAK,GAVD61I,GAAYn/G,EACZklB,EAAID,EAAIi7B,EAAIC,EAAIm/D,EAAah8H,EAC7Bqc,EAAQ76B,KAAKyS,KAAKooB,MAGlB0pG,EAAcvkI,KAAK25E,YAAY88D,mBAC/Br8D,EAAcp6E,KAAK25E,YAAYQ,mBAC/BmB,EAASt7E,KAAK25E,YAAY2B,OAGrBj7E,EAAI,EAAGA,EAAI+5E,EAAY/3E,OAAQhC,IAAK,CAC3C,GAAI68B,GAASk9C,EAAY/5E,EACzBi7E,GAAOp+C,GAAQu9G,SAAW,EAC1Bn/D,EAAOp+C,GAAQw9G,SAAW,EAI5B,IAAK,GAAIv7H,GAAK,EAAGA,EAAKolH,EAAYliI,OAAQ8c,IACxC+b,EAAOL,EAAM0pG,EAAYplH,KACF,IAAnB+b,EAAKshB,YACP69F,MAAqCn3I,KAAxBg4B,EAAK7rB,QAAQhN,OAAuBrC,KAAKqP,QAAQswE,aAAezkD,EAAK7rB,QAAQhN,OAE1F+9C,EAAKllB,EAAKmhB,KAAK1sC,EAAIurB,EAAKohB,GAAG3sC,EAC3BwwC,EAAKjlB,EAAKmhB,KAAK1gC,EAAIuf,EAAKohB,GAAG3gC,EAC3B6C,EAAW9Z,KAAK2iB,KAAK+4B,EAAKA,EAAKD,EAAKA,GACpC3hC,EAAwB,IAAbA,EAAiB,IAAOA,EAGnCg8H,EAAcx6I,KAAKqP,QAAQuwE,gBAAkBy6D,EAAa77H,GAAYA,EAEtE48D,EAAKh7B,EAAKo6F,EACVn/D,EAAKl7B,EAAKq6F,EAENt/G,EAAKohB,GAAGs/B,OAAS1gD,EAAKmhB,KAAKu/B,WACH14E,KAAtBo4E,EAAOpgD,EAAKghB,QACdo/B,EAAOpgD,EAAKghB,MAAMu+F,UAAYr/D,EAC9BE,EAAOpgD,EAAKghB,MAAMw+F,UAAYr/D,OAEJn4E,KAAxBo4E,EAAOpgD,EAAK+gB,UACdq/B,EAAOpgD,EAAK+gB,QAAQw+F,UAAYr/D,EAChCE,EAAOpgD,EAAK+gB,QAAQy+F,UAAYr/D,SAGRn4E,KAAtBo4E,EAAOpgD,EAAKghB,QACdo/B,EAAOpgD,EAAKghB,MAAMvsC,GAzCb,GAyC2ByrE,EAChCE,EAAOpgD,EAAKghB,MAAMvgC,GA1Cb,GA0C2B0/D,OAENn4E,KAAxBo4E,EAAOpgD,EAAK+gB,UACdq/B,EAAOpgD,EAAK+gB,QAAQtsC,GA7Cf,GA6C6ByrE,EAClCE,EAAOpgD,EAAK+gB,QAAQtgC,GA9Cf,GA8C6B0/D,IAO1Cm/D,GAAc,CAEd,KAAK,GADDC,GAAUC,EACL1L,EAAM,EAAGA,EAAM50D,EAAY/3E,OAAQ2sI,IAAO,CACjD,GAAIj/B,GAAU31B,EAAY40D,EAC1ByL,GAAW/1I,KAAKL,IAAIm2I,EAAa91I,KAAKJ,KAAKk2I,EAAal/D,EAAOy0B,GAAS0qC,WACxEC,EAAWh2I,KAAKL,IAAIm2I,EAAa91I,KAAKJ,KAAKk2I,EAAal/D,EAAOy0B,GAAS2qC,WAExEp/D,EAAOy0B,GAASpgG,GAAK8qI,EACrBn/D,EAAOy0B,GAASp0F,GAAK++H,EAMvB,IAAK,GAFDC,GAAU,EACVC,EAAU,EACLC,EAAM,EAAGA,EAAMzgE,EAAY/3E,OAAQw4I,IAAO,CACjD,GAAIvN,GAAWlzD,EAAYygE,EAC3BF,IAAWr/D,EAAOgyD,GAAU39H,EAC5BirI,GAAWt/D,EAAOgyD,GAAU3xH,EAK9B,IAAK,GAHDm/H,GAAeH,EAAUvgE,EAAY/3E,OACrC04I,EAAeH,EAAUxgE,EAAY/3E,OAEhC24I,EAAM,EAAGA,EAAM5gE,EAAY/3E,OAAQ24I,IAAO,CACjD,GAAIC,GAAW7gE,EAAY4gE,EAC3B1/D,GAAO2/D,GAAUtrI,GAAKmrI,EACtBx/D,EAAO2/D,GAAUt/H,GAAKo/H,OAIrBzE,IAGT32I,GAAiB,QAAI22I,GAIf,SAAU12I,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCk2H,EAAoBh7I,EAAoB,KAExCi7I,EAAoBx4I,EAAuBu4I,GAO3C3E,EAAkC,SAAU6E,GAQ9C,QAAS7E,GAAgC9jI,EAAMknE,EAAatqE,GAE1D,OADA,EAAIqN,EAA0B,SAAG1c,KAAMu2I,IAChC,EAAIxxH,EAAqC,SAAG/kB,MAAOu2I,EAAgCviI,YAAa,EAAI6Q,EAA0B,SAAG0xH,IAAkCh2I,KAAKP,KAAMyS,EAAMknE,EAAatqE,IAsC1M,OA/CA,EAAI4V,EAAoB,SAAGsxH,EAAiC6E,IAwB5D,EAAIx+H,EAAuB,SAAG25H,IAC5B/zI,IAAK,mBACLgC,MAAO,SAA0Bga,EAAU4hC,EAAID,EAAIkB,EAAMm5B,GACtC,IAAbh8D,IACFA,EAAW,GAAM9Z,KAAK2tB,SACtB+tB,EAAK5hC,GAGHxe,KAAKg6E,uBAAyB,GAAK34B,EAAK97B,MAAMtD,SAChDzD,EAAW9Z,KAAKJ,IAAI,GAAMtE,KAAKg6E,uBAAyB34B,EAAK97B,MAAMtD,OAAQzD,EAAW6iC,EAAK97B,MAAMtD,QAGnG,IAAIo5H,GAASh6F,EAAKxmB,MAAMx4B,OAAS,EAG7B84E,EAAen7E,KAAKqP,QAAQ6qE,sBAAwBM,EAAa/8C,KAAO4jB,EAAKhyC,QAAQouB,KAAO49G,EAAS32I,KAAK48C,IAAI9iC,EAAU,GACxH48D,EAAKh7B,EAAK+6B,EACVE,EAAKl7B,EAAKg7B,CAEdn7E,MAAK25E,YAAY2B,OAAOj6B,EAAK/qC,IAAI3G,GAAKyrE,EACtCp7E,KAAK25E,YAAY2B,OAAOj6B,EAAK/qC,IAAIqF,GAAK0/D,MAGnCk7D,GACP4E,EAA2B,QAE7Bx7I,GAAiB,QAAI42I,GAIf,SAAU32I,EAAQD,EAASO,GAiCjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GA5BzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCs2H,EAAyBp7I,EAAoB,KAE7Cq7I,EAAyB54I,EAAuB24I,GAOhD9E,EAAuC,SAAUgF,GAQnD,QAAShF,GAAqC/jI,EAAMknE,EAAatqE,GAE/D,OADA,EAAIqN,EAA0B,SAAG1c,KAAMw2I,IAChC,EAAIzxH,EAAqC,SAAG/kB,MAAOw2I,EAAqCxiI,YAAa,EAAI6Q,EAA0B,SAAG2xH,IAAuCj2I,KAAKP,KAAMyS,EAAMknE,EAAatqE,IA0BpN,OAnCA,EAAI4V,EAAoB,SAAGuxH,EAAsCgF,IAwBjE,EAAI5+H,EAAuB,SAAG45H,IAC5Bh0I,IAAK,mBACLgC,MAAO,SAA0Bga,EAAU4hC,EAAID,EAAIm7B,EAAQj6B,GACzD,GAAI7iC,EAAW,EAAG,CAChB,GAAI68H,GAASh6F,EAAKxmB,MAAMx4B,OAAS,EAC7B84E,EAAen7E,KAAKqP,QAAQwtE,eAAiBw+D,EAASh6F,EAAKhyC,QAAQouB,IACvE69C,GAAOj6B,EAAK/qC,IAAI3G,EAAIywC,EAAK+6B,EACzBG,EAAOj6B,EAAK/qC,IAAIqF,EAAIwkC,EAAKg7B,OAIxBq7D,GACP+E,EAAgC,QAElC57I,GAAiB,QAAI62I,GAIf,SAAU52I,EAAQD,EAASO,GAyBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GApBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIjB,GAAQrD,EAAoB,GAE5BsD,EAASb,EAAuBY,GAEhCE,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCgZ,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAgGvC9G,EAAO3V,EAAoB,GAC3BwiD,EAAcxiD,EAAoB,IAAa,QAC/Cu7I,EAAUv7I,EAAoB,KAAc,QAC5C87C,EAAO97C,EAAoB,IAAa,QACxCw6B,EAAOx6B,EAAoB,IAAa,QAMxCgmI,EAAgB,WAIlB,QAASA,GAAczzH,GACrB,GAAImjC,GAAQ51C,MAEZ,EAAI0c,EAA0B,SAAG1c,KAAMkmI,GAEvClmI,KAAKyS,KAAOA,EACZzS,KAAK07I,kBACL17I,KAAK27I,kBAEL37I,KAAKqP,WACLrP,KAAKs0B,kBACLze,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBAE/Bt0B,KAAKyS,KAAK8c,QAAQ7a,GAAG,aAAc,WACjCkhC,EAAM8lG,kBAAoB9lG,EAAM+lG,oBAo7CpC,OAz6CA,EAAI/+H,EAAuB,SAAGspH,IAC5B1jI,IAAK,mBACLgC,MAAO,SAA0Bo3I,EAASvsI,OACxBnM,KAAZ04I,EACFA,EAAU57I,KAAK67I,cACiF,gBAAnE,KAAZD,EAA0B,aAAc,EAAIl4I,EAAkB,SAAGk4I,MAClFvsI,EAAUrP,KAAK87I,cAAcF,GAC7BA,EAAU57I,KAAK67I,cAIjB,KAAK,GADDE,MACK17I,EAAI,EAAGA,EAAIL,KAAKyS,KAAK2nE,YAAY/3E,OAAQhC,IAAK,CACrD,GAAIghD,GAAOrhD,KAAKyS,KAAKyrC,MAAMl+C,KAAKyS,KAAK2nE,YAAY/5E,GAC7CghD,GAAKxmB,MAAMx4B,QAAUu5I,GACvBG,EAAe31I,KAAKi7C,EAAK/qC,IAI7B,IAAK,GAAI6I,GAAK,EAAGA,EAAK48H,EAAe15I,OAAQ8c,IAC3Cnf,KAAK8nI,oBAAoBiU,EAAe58H,GAAK9P,GAAS,EAGxDrP,MAAKyS,KAAK8c,QAAQ1a,KAAK,mBAUzBrS,IAAK,UACLgC,MAAO,WACL,GAAIgzC,GAASx3C,KAETqP,EAAU9J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,MACzEy2I,IAAcz2I,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAEjF,QAA8BrC,KAA1BmM,EAAQ4sI,cACV,KAAM,IAAIp2I,OAAM,iFAIlBwJ,GAAUrP,KAAK87I,cAAczsI,EAE7B,IAAI6sI,MACAC,IAGJtmI,GAAKnN,QAAQ1I,KAAKyS,KAAKyrC,MAAO,SAAUmD,EAAMnkB,GAC5C,GAAI+lB,GAAgBP,EAAY05F,aAAa/6F,IACA,IAAzChyC,EAAQ4sI,cAAch5F,KACxBi5F,EAAch/G,GAAUmkB,EAGxBxrC,EAAKnN,QAAQ24C,EAAKxmB,MAAO,SAAUK,OACMh4B,KAAnCs0C,EAAOmkG,eAAezgH,EAAK5kB,MAC7B6lI,EAAcjhH,EAAK5kB,IAAM4kB,QAMjCl7B,KAAKq8I,SAASH,EAAeC,EAAe9sI,EAAS2sI,MAWvDx5I,IAAK,qBACLgC,MAAO,SAA4B83I,EAAWjtI,GAC5C,GAAIuoC,GAAS53C,KAETg8I,IAAcz2I,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAEjF8J,GAAUrP,KAAK87I,cAAczsI,EAwG7B,KAAK,GAvGDktI,MACAC,KACAthH,MAAO,GACPL,MAAQ,GACR4hH,MAAoB,GAmGfp8I,EAAI,EAAGA,EAAIL,KAAKyS,KAAK2nE,YAAY/3E,OAAQhC,IAAK,CACrD,GAAIq8I,GACAC,EACAC,GAnGM,SAAev8I,GACzB,GAAI67I,MACAC,KACAj/G,EAAS0a,EAAOnlC,KAAK2nE,YAAY/5E,GACjCghD,EAAOzJ,EAAOnlC,KAAKyrC,MAAMhhB,EAG7B,QAA0Bh6B,KAAtBs5I,EAAUt/G,GAAuB,CACnCu/G,EAAoB,EACpB5hH,IACA,KAAK,GAAI3rB,GAAI,EAAGA,EAAImyC,EAAKxmB,MAAMx4B,OAAQ6M,IACrCgsB,EAAOmmB,EAAKxmB,MAAM3rB,OACqBhM,KAAnC00C,EAAO+jG,eAAezgH,EAAK5kB,MACzB4kB,EAAKghB,OAAShhB,EAAK+gB,QACrBwgG,IAEF5hH,EAAMz0B,KAAK80B,GAKf,IAAIuhH,IAAsBH,EAAW,CACnCI,EAAqB,SAA4Br7F,GAC/C,OAA8Bn+C,KAA1BmM,EAAQ4sI,eAAyD,OAA1B5sI,EAAQ4sI,cACjD,OAAO,CAGT,IAAIh5F,GAAgBP,EAAY05F,aAAa/6F,EAC7C,OAAOhyC,GAAQ4sI,cAAch5F,GAI/B,KAAK,GADD45F,IAAsB,EACjB39H,EAAK,EAAGA,EAAK2b,EAAMx4B,OAAQ6c,IAAM,CACxCgc,EAAOL,EAAM3b,EACb,IAAI49H,GAAcllG,EAAOmlG,gBAAgB7hH,EAAMgC,EAE/C,KAAIw/G,EAAmBr7F,GAKhB,CAELw7F,GAAsB,CACtB,OAPAV,EAAcjhH,EAAK5kB,IAAM4kB,EACzBghH,EAAch/G,GAAUmkB,EACxB66F,EAAcY,GAAellG,EAAOnlC,KAAKyrC,MAAM4+F,GAC/CN,EAAUt/G,IAAU,EASxB,IAAI,EAAI15B,EAAgB,SAAG04I,GAAe75I,OAAS,IAAK,EAAImB,EAAgB,SAAG24I,GAAe95I,OAAS,IAA6B,IAAxBw6I,EAwB1G,GAnBAF,EAAkB,WAChB,IAAK,GAAIx7I,GAAI,EAAGA,EAAIo7I,EAASl6I,SAAUlB,EAErC,IAAK,GAAIX,KAAK07I,GACZ,OAA6Bh5I,KAAzBq5I,EAASp7I,GAAG+8C,MAAM19C,GACpB,MAAO+7I,GAASp7I,QAcH+B,MAFrB05I,EAAeD,KAEiB,CAE9B,IAAK,GAAIn8I,KAAK07I,OACkBh5I,KAA1B05I,EAAa1+F,MAAM19C,KACrBo8I,EAAa1+F,MAAM19C,GAAK07I,EAAc17I,GAK1C,KAAK,GAAIw8I,KAAMb,OACkBj5I,KAA3B05I,EAAa/hH,MAAMmiH,KACrBJ,EAAa/hH,MAAMmiH,GAAMb,EAAca,QAK3CT,GAASn2I,MAAO83C,MAAOg+F,EAAerhH,MAAOshH,OAY/C97I,GAGR,IAAK,GAAIA,GAAI,EAAGA,EAAIk8I,EAASl6I,OAAQhC,IACnCL,KAAKq8I,SAASE,EAASl8I,GAAG69C,MAAOq+F,EAASl8I,GAAGw6B,MAAOxrB,GAAS,IAG3C,IAAhB2sI,GACFh8I,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAW3BrS,IAAK,kBACLgC,MAAO,SAAyB6K,GAC9B,GAAI2sI,KAAcz2I,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAEjFvF,MAAKi9I,mBAAmB,EAAG5tI,EAAS2sI,MAUtCx5I,IAAK,iBACLgC,MAAO,SAAwB6K,GAC7B,GAAI2sI,KAAcz2I,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAEjFvF,MAAKi9I,mBAAmB,EAAG5tI,EAAS2sI,MAWtCx5I,IAAK,sBACLgC,MAAO,SAA6B04B,EAAQ7tB,GAC1C,GAAI2sI,KAAcz2I,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAGjF,QAAerC,KAAXg6B,EACF,KAAM,IAAIr3B,OAAM,6CAElB,QAAgC3C,KAA5BlD,KAAKyS,KAAKyrC,MAAMhhB,GAClB,KAAM,IAAIr3B,OAAM,0DAGlB,IAAIw7C,GAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,EAC3B7tB,GAAUrP,KAAK87I,cAAczsI,EAASgyC,OACEn+C,KAApCmM,EAAQ6tI,sBAAsBvtI,IAChCN,EAAQ6tI,sBAAsBvtI,EAAI0xC,EAAK1xC,OAEDzM,KAApCmM,EAAQ6tI,sBAAsBvhI,IAChCtM,EAAQ6tI,sBAAsBvhI,EAAI0lC,EAAK1lC,OAEGzY,KAAxCmM,EAAQ6tI,sBAAsB1gH,QAChCntB,EAAQ6tI,sBAAsB1gH,SAC9BntB,EAAQ6tI,sBAAsB1gH,MAAM7sB,EAAI0xC,EAAKhyC,QAAQmtB,MAAM7sB,EAC3DN,EAAQ6tI,sBAAsB1gH,MAAM7gB,EAAI0lC,EAAKhyC,QAAQmtB,MAAM7gB,EAG7D,IAAIugI,MACAC,KACAgB,EAAe97F,EAAK/qC,GACpB8mI,EAAsB16F,EAAY05F,aAAa/6F,EACnD66F,GAAciB,GAAgB97F,CAG9B,KAAK,GAAIhhD,GAAI,EAAGA,EAAIghD,EAAKxmB,MAAMx4B,OAAQhC,IAAK,CAC1C,GAAI66B,GAAOmmB,EAAKxmB,MAAMx6B,EACtB,QAAqC6C,KAAjClD,KAAK27I,eAAezgH,EAAK5kB,IAAmB,CAC9C,GAAIwmI,GAAc98I,KAAK+8I,gBAAgB7hH,EAAMiiH,EAG7C,QAAyCj6I,KAArClD,KAAK07I,eAAeoB,GACtB,GAAIA,IAAgBK,EAClB,OAA8Bj6I,KAA1BmM,EAAQ4sI,cACVE,EAAcjhH,EAAK5kB,IAAM4kB,EACzBghH,EAAcY,GAAe98I,KAAKyS,KAAKyrC,MAAM4+F,OACxC,CAEL,GAAIO,GAAqB36F,EAAY05F,aAAap8I,KAAKyS,KAAKyrC,MAAM4+F,KACK,IAAnEztI,EAAQ4sI,cAAcmB,EAAqBC,KAC7ClB,EAAcjhH,EAAK5kB,IAAM4kB,EACzBghH,EAAcY,GAAe98I,KAAKyS,KAAKyrC,MAAM4+F,QAKjDX,GAAcjhH,EAAK5kB,IAAM4kB,GAKjC,GAAIoiH,IAAe,EAAI95I,EAAgB,SAAG04I,GAAe9vI,IAAI,SAAUmxI,GACrE,MAAOrB,GAAcqB,GAAWjnI,IAGlC,KAAKinI,IAAarB,GAChB,GAAKA,EAAc16I,eAAe+7I,GAGlC,IAAK,GADDA,GAAYrB,EAAcqB,GACrB5hI,EAAI,EAAGA,EAAI4hI,EAAU1iH,MAAMx4B,OAAQsZ,IAAK,CAC/C,GAAI6hI,GAAYD,EAAU1iH,MAAMlf,EAC5B2hI,GAAan3I,QAAQnG,KAAK+8I,gBAAgBS,EAAWD,EAAUjnI,MAAQ,IACzE6lI,EAAcqB,EAAUlnI,IAAMknI,GAIpCx9I,KAAKq8I,SAASH,EAAeC,EAAe9sI,EAAS2sI,MAevDx5I,IAAK,sBACLgC,MAAO,SAA6B03I,EAAeC,EAAee,EAAuBO,GAYvF,IAAK,GAXDviH,OAAO,GACP4hH,MAAc,GACdS,MAAY,GACZrhG,MAAO,GACPD,MAAS,GACTyhG,MAAc,GAIdC,GAAY,EAAIn6I,EAAgB,SAAG04I,GACnC0B,KACKv9I,EAAI,EAAGA,EAAIs9I,EAAUt7I,OAAQhC,IAAK,CACzCy8I,EAAca,EAAUt9I,GACxBk9I,EAAYrB,EAAcY,EAG1B,KAAK,GAAI5tI,GAAI,EAAGA,EAAIquI,EAAU1iH,MAAMx4B,OAAQ6M,IAC1CgsB,EAAOqiH,EAAU1iH,MAAM3rB,OAEchM,KAAjClD,KAAK27I,eAAezgH,EAAK5kB,MAEvB4kB,EAAKghB,MAAQhhB,EAAK+gB,OACpBkgG,EAAcjhH,EAAK5kB,IAAM4kB,EAGrBA,EAAKghB,MAAQ4gG,GAEf5gG,EAAOghG,EAAsB5mI,GAC7B2lC,EAAS/gB,EAAK+gB,OACdyhG,EAAczhG,IAEdC,EAAOhhB,EAAKghB,KACZD,EAASihG,EAAsB5mI,GAC/BonI,EAAcxhG,OAKiBh5C,KAA/Bg5I,EAAcwB,IAChBE,EAAYx3I,MAAO80B,KAAMA,EAAM+gB,OAAQA,EAAQC,KAAMA,KAqC7D,IAAK,GAvBD2hG,MAuBKC,EAAM,EAAGA,EAAMF,EAAYv7I,OAAQy7I,IAAO,CACjD,GAAIC,GAAcH,EAAYE,GAC1BE,EAAQD,EAAY7iH,KACpB+iH,EAnBW,SAAoBF,GACnC,IAAK,GAAI3+H,GAAM,EAAGA,EAAMy+H,EAASx7I,OAAQ+c,IAAO,CAC9C,GAAI6+H,GAAUJ,EAASz+H,GAGnB8+H,EAAmBH,EAAY9hG,SAAWgiG,EAAQhiG,QAAU8hG,EAAY7hG,OAAS+hG,EAAQ/hG,KACzFiiG,EAAqBJ,EAAY9hG,SAAWgiG,EAAQ/hG,MAAQ6hG,EAAY7hG,OAAS+hG,EAAQhiG,MAE7F,IAAIiiG,GAAoBC,EACtB,MAAOF,GAIX,MAAO,OAMkBF,EAET,QAAZE,GAEFA,EAAUj+I,KAAKo+I,qBAAqBL,EAAY9hG,OAAQ8hG,EAAY7hG,KAAM8hG,EAAOP,GAEjFI,EAASz3I,KAAK63I,IAEdA,EAAQI,2BAA2Bj4I,KAAK43I,EAAM1nI,IAIhDtW,KAAKyS,KAAKooB,MAAMmjH,EAAM1nI,IAAIgoI,iBAAmBL,EAAQ3nI,GAGrDtW,KAAKu+I,mBAAmBP,GACxBA,EAAMtoI,YAAammB,SAAS,QAahCr5B,IAAK,gBACLgC,MAAO,WACL,GAAI6K,GAAU9J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,KAS7E,YAPsCrC,KAAlCmM,EAAQouI,wBACVpuI,EAAQouI,8BAE4Bv6I,KAAlCmM,EAAQ6tI,wBACV7tI,EAAQ6tI,0BAGH7tI,KAaT7M,IAAK,WACLgC,MAAO,SAAkB03I,EAAeC,EAAe9sI,GACrD,GAAI2sI,KAAcz2I,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,GAG7Ei5I,IACJ,KAAK,GAAIzuC,KAAWmsC,GACdA,EAAc16I,eAAeuuG,QACM7sG,KAAjClD,KAAK07I,eAAe3rC,IACtByuC,EAAiBp4I,KAAK2pG,EAK5B,KAAK,GAAI5uG,GAAI,EAAGA,EAAIq9I,EAAiBn8I,SAAUlB,QACtC+6I,GAAcsC,EAAiBr9I,GAIxC,IAAoD,IAAhD,EAAIqC,EAAgB,SAAG04I,GAAe75I,SAKU,IAAhD,EAAImB,EAAgB,SAAG04I,GAAe75I,QAAuE,GAAxDgN,EAAQ6tI,sBAAsBuB,wBAAvF,CAIA,GAAIvB,GAAwBrnI,EAAK7P,cAAeqJ,EAAQ6tI,sBAGxD,QAAkCh6I,KAA9BmM,EAAQqvI,kBAAiC,CAE3C,GAAIC,KACJ,KAAK,GAAIrR,KAAY4O,GACnB,GAAIA,EAAc16I,eAAe8rI,GAAW,CAC1C,GAAIrqF,GAAgBP,EAAY05F,aAAaF,EAAc5O,GAC3DqR,GAAkBv4I,KAAK68C,GAK3B,GAAI27F,KACJ,KAAK,GAAIn/F,KAAU08F,GACjB,GAAIA,EAAc36I,eAAei+C,IAEF,iBAAzBA,EAAO9zC,OAAO,EAAG,IAAwB,CAC3C,GAAIkzI,GAAiBn8F,EAAY05F,aAAaD,EAAc18F,GAAS,OACrEm/F,GAAkBx4I,KAAKy4I,GAM7B,KADA3B,EAAwB7tI,EAAQqvI,kBAAkBxB,EAAuByB,EAAmBC,IAE1F,KAAM,IAAI/4I,OAAM,kEAKa3C,KAA7Bg6I,EAAsB5mI,KACxB4mI,EAAsB5mI,GAAK,WAAaT,EAAK1Q,aAE/C,IAAI25I,GAAY5B,EAAsB5mI,OAEFpT,KAAhCg6I,EAAsBjhI,QACxBihI,EAAsBjhI,MAAQ,UAIhC,IAAIglC,OAAM/9C,OACsBA,KAA5Bg6I,EAAsBvtI,IACxBsxC,EAAMjhD,KAAK++I,oBAAoB7C,GAC/BgB,EAAsBvtI,EAAIsxC,EAAItxC,OAEAzM,KAA5Bg6I,EAAsBvhI,QACZzY,KAAR+9C,IACFA,EAAMjhD,KAAK++I,oBAAoB7C,IAEjCgB,EAAsBvhI,EAAIslC,EAAItlC,GAIhCuhI,EAAsB5mI,GAAKwoI,CAI3B,IAAIE,GAAch/I,KAAKyS,KAAKyyH,UAAUC,WAAW+X,EAAuBzB,EACxEuD,GAAYC,eAAiB/C,EAC7B8C,EAAYE,eAAiB/C,EAE7B6C,EAAYvB,sBAAwBpuI,EAAQouI,sBAG5Cz9I,KAAKyS,KAAKyrC,MAAMg/F,EAAsB5mI,IAAM0oI,EAE5Ch/I,KAAKm/I,cAAcjD,EAAeC,EAAee,EAAuB7tI,EAAQouI,uBAGhFP,EAAsB5mI,OAAKpT,IAGP,IAAhB84I,GACFh8I,KAAKyS,KAAK8c,QAAQ1a,KAAK,oBAW3BrS,IAAK,qBACLgC,MAAO,SAA4B02B,OACIh4B,KAAjClD,KAAK27I,eAAezgH,EAAK5kB,MAC3BtW,KAAK27I,eAAezgH,EAAK5kB,KAAQulB,QAASX,EAAK7rB,QAAQwsB,aAW3Dr5B,IAAK,eACLgC,MAAO,SAAsB02B,GAC3B,GAAIkkH,GAAkBp/I,KAAK27I,eAAezgH,EAAK5kB,QACvBpT,KAApBk8I,IACFlkH,EAAKxlB,YAAammB,QAASujH,EAAgBvjH,gBACpC77B,MAAK27I,eAAezgH,EAAK5kB,QAWpC9T,IAAK,YACLgC,MAAO,SAAmB04B,GACxB,WAAgCh6B,KAA5BlD,KAAKyS,KAAKyrC,MAAMhhB,IAC2B,IAAtCl9B,KAAKyS,KAAKyrC,MAAMhhB,GAAQwqG,WAE/BxwH,QAAQ0G,IAAI,yBACL,MAYXpb,IAAK,sBACLgC,MAAO,SAA6B03I,GAOlC,IAAK,GANDyB,IAAY,EAAIn6I,EAAgB,SAAG04I,GACnCn5F,EAAOm5F,EAAcyB,EAAU,IAAIhuI,EACnCqzC,EAAOk5F,EAAcyB,EAAU,IAAIhuI,EACnCkzC,EAAOq5F,EAAcyB,EAAU,IAAIhiI,EACnCmnC,EAAOo5F,EAAcyB,EAAU,IAAIhiI,EACnC0lC,MAAO,GACFhhD,EAAI,EAAGA,EAAIs9I,EAAUt7I,OAAQhC,IACpCghD,EAAO66F,EAAcyB,EAAUt9I,IAC/B0iD,EAAO1B,EAAK1xC,EAAIozC,EAAO1B,EAAK1xC,EAAIozC,EAChCC,EAAO3B,EAAK1xC,EAAIqzC,EAAO3B,EAAK1xC,EAAIqzC,EAChCH,EAAOxB,EAAK1lC,EAAIknC,EAAOxB,EAAK1lC,EAAIknC,EAChCC,EAAOzB,EAAK1lC,EAAImnC,EAAOzB,EAAK1lC,EAAImnC,CAGlC,QAASnzC,EAAG,IAAOozC,EAAOC,GAAOrnC,EAAG,IAAOknC,EAAOC,OAWpDtgD,IAAK,cACLgC,MAAO,SAAqB66I,EAAehwI,GACzC,GAAI2sI,KAAcz2I,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAGjF,QAAsBrC,KAAlBm8I,EACF,KAAM,IAAIx5I,OAAM,4CAGlB,IAAIm5I,GAAch/I,KAAKyS,KAAKyrC,MAAMmhG,EAElC,QAAoBn8I,KAAhB87I,EACF,KAAM,IAAIn5I,OAAM,4DAElB,KAA8B,IAA1Bm5I,EAAYtX,eAAqDxkI,KAA/B87I,EAAYC,oBAA+D/7I,KAA/B87I,EAAYE,eAC5F,KAAM,IAAIr5I,OAAM,YAAcw5I,EAAgB,2BAIhD,IAAIhxH,GAAQruB,KAAKynI,SAAS4X,GACtBC,EAAcjxH,EAAMloB,QAAQk5I,GAAiB,CACjD,IAAIC,GAAe,EAAG,CAEpB,GAAIC,GAAsBlxH,EAAMixH,EAYhC,OAXwBt/I,MAAKyS,KAAKyrC,MAAMqhG,GAGtBC,kBAAkBH,SAG7Br/I,MAAKyS,KAAKyrC,MAAMmhG,SACH,IAAhBrD,GACFh8I,KAAKyS,KAAK8c,QAAQ1a,KAAK,iBAO3B,GAAIoqI,GAAiBD,EAAYC,eAC7BC,EAAiBF,EAAYE,cAGjC,QAAgBh8I,KAAZmM,OAAqDnM,KAA5BmM,EAAQowI,iBAAoE,kBAA5BpwI,GAAQowI,gBAAgC,CACnH,GAAI1G,MACA2G,GAAoB/vI,EAAGqvI,EAAYrvI,EAAGgM,EAAGqjI,EAAYrjI,EACzD,KAAK,GAAIs/H,KAAYgE,GACnB,GAAIA,EAAez9I,eAAey5I,GAAW,CAC3C,GAAI1+D,GAAgBv8E,KAAKyS,KAAKyrC,MAAM+8F,EACpClC,GAAUkC,IAActrI,EAAG4sE,EAAc5sE,EAAGgM,EAAG4gE,EAAc5gE,GAGjE,GAAIgkI,GAAetwI,EAAQowI,gBAAgBC,EAAiB3G,EAE5D,KAAK,GAAI6G,KAAYX,GACnB,GAAIA,EAAez9I,eAAeo+I,GAAW,CAC3C,GAAIC,GAAiB7/I,KAAKyS,KAAKyrC,MAAM0hG,OACN18I,KAA3By8I,EAAaC,KACfC,EAAelwI,MAAiCzM,KAA7By8I,EAAaC,GAAUjwI,EAAkBqvI,EAAYrvI,EAAIgwI,EAAaC,GAAUjwI,EACnGkwI,EAAelkI,MAAiCzY,KAA7By8I,EAAaC,GAAUjkI,EAAkBqjI,EAAYrjI,EAAIgkI,EAAaC,GAAUjkI,QAMzG9F,GAAKnN,QAAQu2I,EAAgB,SAAU1iE,IAEC,IAAlCA,EAAcltE,QAAQmtB,MAAM7sB,IAC9B4sE,EAAc5sE,EAAIqvI,EAAYrvI,IAEM,IAAlC4sE,EAAcltE,QAAQmtB,MAAM7gB,IAC9B4gE,EAAc5gE,EAAIqjI,EAAYrjI,IAMpC,KAAK,GAAImkI,KAAYb,GACnB,GAAIA,EAAez9I,eAAes+I,GAAW,CAC3C,GAAIC,GAAkB//I,KAAKyS,KAAKyrC,MAAM4hG,EAGtCC,GAAgB/G,GAAKgG,EAAYhG,GACjC+G,EAAgB9G,GAAK+F,EAAY/F,GAEjC8G,EAAgBrqI,YAAammB,SAAS,UAE/B77B,MAAK07I,eAAeoE,GAM/B,IAAK,GADDE,MACK3/I,EAAI,EAAGA,EAAI2+I,EAAYnkH,MAAMx4B,OAAQhC,IAC5C2/I,EAAiB55I,KAAK44I,EAAYnkH,MAAMx6B,GAI1C,KAAK,GAAI2uI,GAAM,EAAGA,EAAMgR,EAAiB39I,OAAQ2sI,IAAO,CAKtD,IAAK,GAJD9zG,GAAO8kH,EAAiBhR,GACxB0O,EAAc19I,KAAK+8I,gBAAgB7hH,EAAMmkH,GACzCY,EAAYjgJ,KAAK07I,eAAegC,GAE3BxuI,EAAI,EAAGA,EAAIgsB,EAAKmjH,2BAA2Bh8I,OAAQ6M,IAAK,CAC/D,GAAIgxI,GAAahlH,EAAKmjH,2BAA2BnvI,GAC7CixI,EAAengJ,KAAKyS,KAAKooB,MAAMqlH,EACnC,QAAqBh9I,KAAjBi9I,EAGJ,OAAkBj9I,KAAd+8I,EAAyB,CAE3B,GAAIG,GAAepgJ,KAAKyS,KAAKyrC,MAAM+hG,EAAUnB,UAC7CsB,GAAalB,eAAeiB,EAAa7pI,IAAM6pI,QAGxCjB,GAAeiB,EAAa7pI,GAGnC,IAAI2lC,GAASkkG,EAAalkG,OACtBC,EAAOikG,EAAajkG,IACpBikG,GAAajkG,MAAQwhG,EACvBxhG,EAAO+jG,EAAUnB,UAEjB7iG,EAASgkG,EAAUnB,UAIrB9+I,KAAKo+I,qBAAqBniG,EAAQC,EAAMikG,EAAcC,EAAa3C,uBAAyB7yH,QAAQ,EAAOiR,SAAS,QAEpH77B,MAAKqgJ,aAAaF,GAItBjlH,EAAK3iB,SAIP,IAAK,GAAIknC,KAAUy/F,GACbA,EAAe19I,eAAei+C,IAChCz/C,KAAKqgJ,aAAanB,EAAez/F,UAK9Bz/C,MAAKyS,KAAKyrC,MAAMmhG,IAEH,IAAhBrD,GACFh8I,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAW3BrS,IAAK,oBACLgC,MAAO,SAA2Bs6I,GAChC,GAAIwB,KACJ,KAAkC,IAA9BtgJ,KAAK0nI,UAAUoX,GAAqB,CACtC,GAAIG,GAAiBj/I,KAAKyS,KAAKyrC,MAAM4gG,GAAWG,cAChD,KAAK,GAAIsB,KAAYtB,GACfA,EAAez9I,eAAe++I,IAChCD,EAAWl6I,KAAKpG,KAAKyS,KAAKyrC,MAAMqiG,GAAUjqI,IAKhD,MAAOgqI,MAaT99I,IAAK,WACLgC,MAAO,SAAkB04B,GAMvB,IALA,GAAI7O,MAEAwnB,EAAU,EACVwL,MAAO,OAE4Bn+C,KAAhClD,KAAK07I,eAAex+G,IAAyB2Y,EAJ1C,KAIyD,CAEjE,OAAa3yC,MADbm+C,EAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,IACC,QACxB7O,GAAMjoB,KAAKi7C,EAAK/qC,IAEhB4mB,EAASl9B,KAAK07I,eAAex+G,GAAQ4hH,UACrCjpG,IAIF,WAAa3yC,MADbm+C,EAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,QAEvB7O,EAAMjoB,KAAKi7C,EAAK/qC,IAEhB+X,EAAMmyH,UACCnyH,MAUT7rB,IAAK,sBACLgC,MAAO,SAA6Bi8I,EAAiBpjH,GACnD,OAAwBn6B,KAApBu9I,EACF,KAAM,IAAI56I,OAAM,sDAElB,QAAmB3C,KAAfm6B,EACF,KAAM,IAAIx3B,OAAM,iDAElB,QAAyC3C,KAArClD,KAAKyS,KAAKyrC,MAAMuiG,GAClB,KAAM,IAAI56I,OAAM,sEAGlB7F,MAAKyS,KAAKyrC,MAAMuiG,GAAiB/qI,WAAW2nB,GAC5Cr9B,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAUzBrS,IAAK,aACLgC,MAAO,SAAoBk8I,EAAarjH,GACtC,OAAoBn6B,KAAhBw9I,EACF,KAAM,IAAI76I,OAAM,yCAElB,QAAmB3C,KAAfm6B,EACF,KAAM,IAAIx3B,OAAM,wCAElB,QAAqC3C,KAAjClD,KAAKyS,KAAKooB,MAAM6lH,GAClB,KAAM,IAAI76I,OAAM,yDAIlB,KAAK,GADD86I,GAAa3gJ,KAAK4gJ,kBAAkBF,GAC/BrgJ,EAAI,EAAGA,EAAIsgJ,EAAWt+I,OAAQhC,IAAK,CAC/BL,KAAKyS,KAAKooB,MAAM8lH,EAAWtgJ,IACjCqV,WAAW2nB,GAElBr9B,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAUzBrS,IAAK,oBACLgC,MAAO,SAA2Bi7C,GAKhC,IAJA,GAAIpxB,MAEAwnB,EAAU,MAEI3yC,KAAXu8C,OAAoDv8C,KAA5BlD,KAAKyS,KAAKooB,MAAM4kB,IAAyB5J,EAH9D,KAIRxnB,EAAMjoB,KAAKpG,KAAKyS,KAAKooB,MAAM4kB,GAAQnpC,IACnCmpC,EAASz/C,KAAKyS,KAAKooB,MAAM4kB,GAAQ6+F,iBACjCzoG,GAGF,OADAxnB,GAAMmyH,UACCnyH,KAYT7rB,IAAK,cACLgC,MAAO,SAAqBq8I,GAE1B,MAAO7gJ,MAAK8gJ,aAAaD,GAAiB,MAW5Cr+I,IAAK,eACLgC,MAAO,SAAsBq8I,GAO3B,IANA,GAAIE,IAAeF,GACfG,KACAC,KAEAprG,EAAU,EAEPkrG,EAAY1+I,OAAS,GAAKwzC,EAHvB,KAGsC,CAC9C,GAAIqrG,GAASH,EAAYppH,KACzB,QAAez0B,KAAXg+I,EAAJ,CACA,GAAIC,GAAWnhJ,KAAKyS,KAAKooB,MAAMqmH,EAC/B,QAAiBh+I,KAAbi+I,EAAJ,CACAtrG,GAEA,IAAIurG,GAAeD,EAAS9C,0BAC5B,QAAqBn7I,KAAjBk+I,EAEFH,EAAS76I,KAAK86I,OAGd,KAAK,GAAI7gJ,GAAI,EAAGA,EAAI+gJ,EAAa/+I,SAAUhC,EAAG,CAC5C,GAAIghJ,GAAcD,EAAa/gJ,IAIY,IAAvC0gJ,EAAY56I,QAAQi7I,KAA2D,IAAnCJ,EAAQ76I,QAAQi7I,IAIhEL,EAAY36I,KAAKi7I,GAIrBL,EAAQ56I,KAAK86I,KAGf,MAAOD,MAYTz+I,IAAK,kBACLgC,MAAO,SAAyB02B,EAAMgC,GACpC,MAAIhC,GAAKghB,MAAQhf,EACRhC,EAAKghB,MACHhhB,EAAK+gB,OACP/gB,EAAK+gB,WAehBz5C,IAAK,cACLgC,MAAO,WAML,IAAK,GALD88I,GAAU,EACVC,EAAiB,EACjBC,EAAa,EACbC,EAAa,EAERphJ,EAAI,EAAGA,EAAIL,KAAKyS,KAAK2nE,YAAY/3E,OAAQhC,IAAK,CACrD,GAAIk7E,GAAQv7E,KAAKyS,KAAKyrC,MAAMl+C,KAAKyS,KAAK2nE,YAAY/5E,GAC9Ck7E,GAAM1gD,MAAMx4B,OAASo/I,IACvBA,EAAalmE,EAAM1gD,MAAMx4B,QAE3Bi/I,GAAW/lE,EAAM1gD,MAAMx4B,OACvBk/I,GAAkB78I,KAAK48C,IAAIi6B,EAAM1gD,MAAMx4B,OAAQ,GAC/Cm/I,GAAc,EAEhBF,GAAoBE,EACpBD,GAAkCC,CAElC,IAAIE,GAAWH,EAAiB78I,KAAK48C,IAAIggG,EAAS,GAC9CK,EAAoBj9I,KAAK2iB,KAAKq6H,GAE9BE,EAAel9I,KAAKwJ,MAAMozI,EAAU,EAAIK,EAO5C,OAJIC,GAAeH,IACjBG,EAAeH,GAGVG,KAgBTp/I,IAAK,uBACLgC,MAAO,SAA8By3C,EAAQC,EAAM2lG,EAAUpE,EAAuBqE,GAElF,GAAI7+F,GAAgBP,EAAY05F,aAAayF,EAAU,OAEvDhsI,GAAK7P,WAAWi9C,EAAew6F,GAG/Bx6F,EAAc5G,KAAOJ,EACrBgH,EAAc3G,GAAKJ,EACnB+G,EAAc3sC,GAAK,eAAiBT,EAAK1Q,iBAGpBjC,KAAjB4+I,GACFjsI,EAAK7P,WAAWi9C,EAAe6+F,EAGjC,IAAI7D,GAAUj+I,KAAKyS,KAAKyyH,UAAUv5D,WAAW1oB,EAO7C,OANAg7F,GAAQI,4BAA8BwD,EAASvrI,IAC/C2nI,EAAQrhG,UAGR58C,KAAKyS,KAAKooB,MAAMojH,EAAQ3nI,IAAM2nI,EAEvBA,KAcTz7I,IAAK,gBACLgC,MAAO,SAAuBszB,EAAYiqH,EAAY/C,EAAavB,GACjE,GAAIsE,YAAsB/lG,GAAM,CAC9B,GAAI9gB,GAAO6mH,EACP9/I,IACJA,GAAIi5B,EAAK5kB,IAAM4kB,EACf6mH,EAAa9/I,EAGf,GAAI61B,YAAsB4C,GAAM,CAC9B,GAAIqzG,GAASj2G,EACTkqH,IACJA,GAAKjU,EAAOz3H,IAAMy3H,EAClBj2G,EAAakqH,EAGf,OAAoB9+I,KAAhB87I,GAA6C,OAAhBA,EAC/B,KAAM,IAAIn5I,OAAM,qDAGY3C,KAA1Bu6I,IAEFA,EAAwBuB,EAAYvB,uBAKtCz9I,KAAKiiJ,oBAAoBnqH,EAAYiqH,EAAY/C,EAAavB,EAG9D,KAAK,GAAIh+F,KAAUsiG,GACjB,GAAIA,EAAWvgJ,eAAei+C,QACIv8C,KAA5BlD,KAAKyS,KAAKooB,MAAM4kB,GAAuB,CACzC,GAAIyiG,GAASliJ,KAAKyS,KAAKooB,MAAM4kB,EAE7Bz/C,MAAKu+I,mBAAmB2D,GAExBA,EAAOxsI,YAAammB,SAAS,IAMnC,IAAK,GAAIsmH,KAAYrqH,GACfA,EAAWt2B,eAAe2gJ,KAC5BniJ,KAAK07I,eAAeyG,IAAcrD,UAAWE,EAAY1oI,GAAI+qC,KAAMrhD,KAAKyS,KAAKyrC,MAAMikG,IACnFniJ,KAAKyS,KAAKyrC,MAAMikG,GAAUzsI,YAAammB,SAAS,QAkBtDr5B,IAAK,yBACLgC,MAAO,SAAgC04B,GACrC,OAAeh6B,KAAXg6B,EAAJ,CACA,GAAIklH,GAAgBpiJ,KAAK07I,eAAex+G,EAGxC,QAAsBh6B,KAAlBk/I,EAAJ,CACA,GAAItD,GAAYsD,EAActD,SAC9B,QAAkB57I,KAAd47I,EAEJ,MAAO9+I,MAAKyS,KAAKyrC,MAAM4gG,QAezBt8I,IAAK,UACLgC,MAAO,SAAiB2C,EAAKwB,GAC3B,GAAIm0B,KAQJ,OANAjnB,GAAKnN,QAAQvB,EAAK,SAAUuJ,GACtB/H,EAAS+H,IACXosB,EAAI12B,KAAKsK,KAINosB,KAcTt6B,IAAK,eACLgC,MAAO,WACL,GAAIwzC,GAASh4C,KAETk9B,MAAS,GACTmlH,KACAC,KAOAC,EAAkB,SAAyB55I,GAC7CkN,EAAKnN,QAAQsvC,EAAOvlC,KAAKyrC,MAAO,SAAUmD,IACjB,IAAnBA,EAAKqmF,WACP/+H,EAAS04C,KAUf,KAAKnkB,IAAUl9B,MAAK07I,eAClB,GAAK17I,KAAK07I,eAAel6I,eAAe07B,GAAxC,CACA,GAAIslH,GAASxiJ,KAAKyS,KAAKyrC,MAAMhhB,OAEdh6B,KAAXs/I,GACFH,EAAej8I,KAAK82B,GAKxBqlH,EAAgB,SAAUvD,GACxB,IAAK,GAAI79I,GAAI,EAAGA,EAAIkhJ,EAAehgJ,OAAQlB,UAClC69I,GAAYC,eAAeoD,EAAelhJ,KAKrD,KAAK,GAAIA,GAAI,EAAGA,EAAIkhJ,EAAehgJ,OAAQlB,UAClCnB,MAAK07I,eAAe2G,EAAelhJ,GAQ5C0U,GAAKnN,QAAQ1I,KAAK27I,eAAgB,SAAUl8F,GAC1C,GAAIvkB,GAAO8c,EAAOvlC,KAAKooB,MAAM4kB,OAChBv8C,KAATg4B,GAAuBA,EAAKunH,kBAC9BH,EAAel8I,KAAKq5C,KAOxB8iG,EAAgB,SAAUvD,GACxBnpI,EAAKnN,QAAQs2I,EAAYE,eAAgB,SAAUhkH,EAAMukB,GAClDvkB,EAAKunH,mBAAwD,IAApCH,EAAen8I,QAAQs5C,IACnD6iG,EAAel8I,KAAKq5C,OAO1B5pC,EAAKnN,QAAQ1I,KAAKyS,KAAKooB,MAAO,SAAUK,EAAMukB,GAE5C,GAAI+nC,IAAU,EACVk7D,EAAcxnH,EAAKmjH,0BACvB,QAAoBn7I,KAAhBw/I,EAA2B,CAC7B,GAAIC,GAAW,CAEf9sI,GAAKnN,QAAQg6I,EAAa,SAAUE,GAClC,GAAIC,GAAgB7qG,EAAOvlC,KAAKooB,MAAM+nH,OAEhB1/I,KAAlB2/I,GAA+BA,EAAcJ,mBAC/CE,GAAY,KAIhBn7D,EAAUm7D,EAAW,EAGlBznH,EAAKunH,kBAAqBj7D,GAC7B86D,EAAel8I,KAAKq5C,KAKxB8iG,EAAgB,SAAUvD,GACxBnpI,EAAKnN,QAAQ45I,EAAgB,SAAUQ,SAC9B9D,GAAYE,eAAe4D,GAElCjtI,EAAKnN,QAAQs2I,EAAYnkH,MAAO,SAAUK,EAAM16B,GAC9C,GAAI06B,EAAK5kB,KAAOwsI,EAEd,YADA9D,EAAYnkH,MAAMr6B,GAAK,KAIzB06B,GAAKmjH,2BAA6BrmG,EAAO+qG,QAAQ7nH,EAAKmjH,2BAA4B,SAAU/nI,GAC1F,OAAuC,IAAhCgsI,EAAen8I,QAAQmQ,OAKlC0oI,EAAYnkH,MAAQmd,EAAO+qG,QAAQ/D,EAAYnkH,MAAO,SAAUnqB,GAC9D,MAAgB,QAATA,QAMbmF,EAAKnN,QAAQ45I,EAAgB,SAAU7iG,SAC9BzH,GAAO2jG,eAAel8F,KAM/B5pC,EAAKnN,QAAQ45I,EAAgB,SAAU7iG,SAC9BzH,GAAOvlC,KAAKooB,MAAM4kB,IAQ3B,IAAIpoC,IAAM,EAAI7T,EAAgB,SAAGxD,KAAKyS,KAAKooB,MAC3ChlB,GAAKnN,QAAQ2O,EAAK,SAAUooC,GAC1B,GAAIvkB,GAAO8c,EAAOvlC,KAAKooB,MAAM4kB,GAEzBujG,EAAoBhrG,EAAO2uF,iBAAiBzrG,EAAK+gB,SAAWjE,EAAO2uF,iBAAiBzrG,EAAKghB,KAC7F,IAAI8mG,IAAsBhrG,EAAO+uF,iBAAiB7rG,EAAK5kB,IAAvD,CAIA,IAAI0sI,EAoBF,KAAM,IAAIn9I,OAAM,+CAlBhB,IAAIo9I,GAAcjrG,EAAOkrG,uBAAuBhoH,EAAK+gB,YACjC/4C,KAAhB+/I,GACFjrG,EAAOmnG,cAAcnnG,EAAOvlC,KAAKyrC,MAAMhjB,EAAK+gB,QAAS/gB,EAAM+nH,EAG7D,IAAIE,GAAYnrG,EAAOkrG,uBAAuBhoH,EAAKghB,UACjCh5C,KAAdigJ,GACFnrG,EAAOmnG,cAAcnnG,EAAOvlC,KAAKyrC,MAAMhjB,EAAKghB,MAAOhhB,EAAMioH,KAwC/D,KAxBA,GAAIrgH,IAAU,EACVsgH,GAAe,EAuBZA,IArBM,WACX,GAAIC,KAGJd,GAAgB,SAAUvD,GACxB,GAAIsE,IAAW,EAAI9/I,EAAgB,SAAGw7I,EAAYC,gBAAgB58I,OAC9DkhJ,GAA6D,IAA/CvE,EAAY3vI,QAAQovI,wBAClC8E,GAAeD,EAAW,IAAMC,GAAeD,EAAW,IAC5DD,EAAej9I,KAAK44I,EAAY1oI,KAKpC,KAAK,GAAIgQ,GAAK,EAAGA,EAAK+8H,EAAehhJ,SAAUikB,EAC7C0xB,EAAO2vF,YAAY0b,EAAe/8H,OAAS,EAG7C88H,GAAeC,EAAehhJ,OAAS,EACvCygC,EAAUA,GAAWsgH,IAOnBtgH,IACF9iC,KAAKgnI,kBAYTxkI,IAAK,mBACLgC,MAAO,SAA0B04B,GAC/B,WAAuCh6B,KAAhClD,KAAK07I,eAAex+G,MAe7B16B,IAAK,mBACLgC,MAAO,SAA0Bi7C,GAC/B,WAAuCv8C,KAAhClD,KAAK27I,eAAel8F,OAGxBymF,IAGTvmI,GAAiB,QAAIumI,GAIf,SAAUtmI,EAAQD,EAASO,GA6BjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAxBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIogB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CnI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvCmI,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAIpCnP,EAAO3V,EAAoB,GAC3Bw6B,EAAOx6B,EAAoB,IAAa,QASxCu7I,EAAU,SAAU+H,GAWtB,QAAS/H,GAAQpsI,EAASoD,EAAMkoB,EAAWC,EAAWtrB,EAAeglB,IACnE,EAAI5X,EAA0B,SAAG1c,KAAMy7I,EAEvC,IAAI7lG,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAOy7I,EAAQznI,YAAa,EAAI6Q,EAA0B,SAAG42H,IAAUl7I,KAAKP,KAAMqP,EAASoD,EAAMkoB,EAAWC,EAAWtrB,EAAeglB,GAK9L,OAHAshB,GAAM8xF,WAAY,EAClB9xF,EAAMqpG,kBACNrpG,EAAMspG,kBACCtpG,EAgET,OAlFA,EAAI3wB,EAAoB,SAAGw2H,EAAS+H,IA8BpC,EAAI5mI,EAAuB,SAAG6+H,IAC5Bj5I,IAAK,oBACLgC,MAAO,SAA2Bi/I,GAChC,GAAIjsG,GAASx3C,KAET0jJ,EAAe1jJ,KAAKyS,KAAKyrC,MAAMulG,EACnC,QAA4CvgJ,KAAxClD,KAAKi/I,eAAewE,GACtB,KAAM,IAAI59I,OAAM,iBAAmB49I,EAAiB,0BAEtD,KAAKC,EAAahc,UAChB,KAAM,IAAI7hI,OAAM,iBAAmB49I,EAAiB,2BAI/CzjJ,MAAKi/I,eAAewE,GAC3B5tI,EAAKnN,QAAQg7I,EAAa7oH,MAAO,SAAUK,SAClCsc,GAAO0nG,eAAehkH,EAAK5kB,MAIpCT,EAAKnN,QAAQg7I,EAAazE,eAAgB,SAAU59F,EAAMnkB,GACxDsa,EAAOynG,eAAe/hH,GAAUmkB,IAElCqiG,EAAazE,kBAEbppI,EAAKnN,QAAQg7I,EAAaxE,eAAgB,SAAUhkH,EAAMukB,GACxDjI,EAAO0nG,eAAez/F,GAAUvkB,IAElCwoH,EAAaxE,kBAGbrpI,EAAKnN,QAAQg7I,EAAa7oH,MAAO,SAAU8oH,GACzC9tI,EAAKnN,QAAQ8uC,EAAO3c,MAAO,SAAU+oH,GAGnC,GAAIzoH,GAAQyoH,EAAkBvF,2BAA2Bl4I,QAAQw9I,EAAYrtI,KAC9D,IAAX6kB,IAEJtlB,EAAKnN,QAAQi7I,EAAYtF,2BAA4B,SAAUwF,GAC7DD,EAAkBvF,2BAA2Bj4I,KAAKy9I,GAGlDrsG,EAAO/kC,KAAKooB,MAAMgpH,GAAOvF,iBAAmBsF,EAAkBttI,KAIhEstI,EAAkBvF,2BAA2BzqH,OAAOuH,EAAO,QAG/DuoH,EAAa7oH,aAGV4gH,GACP/gH,EAEF/6B,GAAiB,QAAI87I,GAIf,SAAU77I,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAuBzF,QAAS6hJ,KACP,GAAIj3D,OAEW3pF,KAAX6G,SACF8iF,EAAO9iF,OAAOb,uBAAyBa,OAAOg6I,0BAA4Bh6I,OAAOi6I,6BAA+Bj6I,OAAOk6I,yBAKvHl6I,OAAOb,0BAFIhG,KAAT2pF,EAE6B,SAAUlkF,GAEvCA,KAG6BkkF,EAjDnC/rF,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GA2CvC9G,EAAO3V,EAAoB,GAM3B2lI,EAAiB,WAKnB,QAASA,GAAepzH,EAAMmjG,IAC5B,EAAIl5F,EAA0B,SAAG1c,KAAM6lI,GAEvCie,IACA9jJ,KAAKyS,KAAOA,EACZzS,KAAK41G,OAASA,EAEd51G,KAAKkkJ,iBAAkB,EACvBlkJ,KAAKi3I,gBAAc/zI,GACnBlD,KAAK62I,iBAAkB,EACvB72I,KAAKmkJ,iBAAkB,EACvBnkJ,KAAKokJ,eAAiB,EACtBpkJ,KAAKqkJ,aAAc,EAEnBrkJ,KAAKq5B,UAAW,EAChBr5B,KAAKqP,WACLrP,KAAKs0B,gBACHqpD,iBAAiB,EACjBC,iBAAiB,GAEnB/nE,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBAE/Bt0B,KAAKskJ,0BACLtkJ,KAAKolI,qBA8XP,OAtXA,EAAIxoH,EAAuB,SAAGipH,IAC5BrjI,IAAK,qBACLgC,MAAO,WACL,GAAIoxC,GAAQ51C,IAEZA,MAAKyS,KAAK8c,QAAQ7a,GAAG,YAAa,WAChCkhC,EAAMvc,UAAW,IAEnBr5B,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW,WAC9BkhC,EAAMvc,UAAW,IAEnBr5B,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WACnCkhC,EAAM2uG,iBAERvkJ,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW,YACA,IAA1BkhC,EAAMuuG,iBACRvuG,EAAMtQ,YAGVtlC,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WACnCkhC,EAAMyuG,aAAc,IAEtBrkJ,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WACnCkhC,EAAMyuG,aAAc,EAAKzuG,EAAMsuG,iBAAkB,IAEnDlkJ,KAAKyS,KAAK8c,QAAQ7a,GAAG,iBAAkB1U,KAAKwkJ,eAAej8H,KAAKvoB,OAChEA,KAAKyS,KAAK8c,QAAQ7a,GAAG,kBAAmB,WACtCkhC,EAAMwuG,gBAAkB,EACxBxuG,EAAMuuG,iBAAkB,EACxBvuG,EAAM6uG,oBAERzkJ,KAAKyS,KAAK8c,QAAQ7a,GAAG,iBAAkB,WACrCkhC,EAAMwuG,gBAAkB,EACxBxuG,EAAMuuG,gBAAkBvuG,EAAMwuG,eAAiB,EAC/CxuG,EAAMqhG,gBAAc/zI,KAEtBlD,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW,WAC9BkhC,EAAMwuG,eAAiB,EACvBxuG,EAAMyuG,aAAc,EACpBzuG,EAAMuuG,iBAAkB,GACM,IAA1BvuG,EAAMihG,gBACR3jH,aAAa0iB,EAAMqhG,aAEnBltI,OAAO26I,qBAAqB9uG,EAAMqhG,aAEpCrhG,EAAMnjC,KAAK8c,QAAQ5a,WAUvBnS,IAAK,aACLgC,MAAO,SAAoB6K,GACzB,OAAgBnM,KAAZmM,EAAuB,CACzB,GAAIX,IAAU,kBAAmB,kBACjCmH,GAAK/P,oBAAoB4I,EAAQ1O,KAAKqP,QAASA,OAgBnD7M,IAAK,oBACLgC,MAAO,SAA2BmE,EAAU4pB,GAY1C,GAAsB,mBAAXxoB,QAAX,CAEA,GAAI46I,OAAQ,GAERC,EAAW76I,MAYf,QAT6B,IAAzB/J,KAAK62I,gBAEP8N,EAAQC,EAASzxH,WAAWxqB,EAAU4pB,GAElCqyH,EAAS17I,wBACXy7I,EAAQC,EAAS17I,sBAAsBP,IAIpCg8I,MASTniJ,IAAK,kBACLgC,MAAO,YACwB,IAAzBxE,KAAKmkJ,qBACkBjhJ,KAArBlD,KAAKi3I,cACPj3I,KAAKi3I,YAAcj3I,KAAK6kJ,kBAAkB7kJ,KAAK8kJ,YAAYv8H,KAAKvoB,MAAOA,KAAK42I,wBAWlFp0I,IAAK,cACLgC,MAAO,YACwB,IAAzBxE,KAAKmkJ,kBAEPnkJ,KAAKi3I,gBAAc/zI,IAEU,IAAzBlD,KAAK62I,iBAEP72I,KAAKykJ,kBAGPzkJ,KAAKslC,WAEwB,IAAzBtlC,KAAK62I,iBAEP72I,KAAKykJ,sBAWXjiJ,IAAK,SACLgC,MAAO,WACLxE,KAAKyS,KAAK8c,QAAQ1a,KAAK,WACvB7U,KAAKslC,aASP9iC,IAAK,iBACLgC,MAAO,WACL,GAAIgzC,GAASx3C,MAEgB,IAAzBA,KAAKkkJ,kBAAqD,IAAzBlkJ,KAAKmkJ,kBAAkD,IAArBnkJ,KAAKqkJ,cAC1ErkJ,KAAKkkJ,iBAAkB,EACvBlkJ,KAAK6kJ,kBAAkB,WACrBrtG,EAAOlS,SAAQ,IACd,OAYP9iC,IAAK,UACLgC,MAAO,WACL,GAAIomB,GAASrlB,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAE5E,KAAyB,IAArBvF,KAAKqkJ,YAAsB,CAC7BrkJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,cAEvB7U,KAAKkkJ,iBAAkB,EAGgB,IAAnClkJ,KAAK41G,OAAO1iE,MAAM0iE,OAAO1jG,OAAmD,IAApClS,KAAK41G,OAAO1iE,MAAM0iE,OAAOzjG,QACnEnS,KAAK41G,OAAOgL,UAGd5gH,KAAK41G,OAAOusB,cAEZ,IAAIriH,GAAM9f,KAAK41G,OAAO8D,aAGlBv0B,EAAInlF,KAAK41G,OAAO1iE,MAAM0iE,OAAO/iG,YAC7BpG,EAAIzM,KAAK41G,OAAO1iE,MAAM0iE,OAAO59E,YAIjC,IAHAlY,EAAI65F,UAAU,EAAG,EAAGx0B,EAAG14E,GAGe,IAAlCzM,KAAK41G,OAAO1iE,MAAMrgC,YACpB,MAIFiN,GAAIkE,OACJlE,EAAIu/B,UAAUr/C,KAAKyS,KAAKkR,KAAK4wF,YAAY5kG,EAAG3P,KAAKyS,KAAKkR,KAAK4wF,YAAY54F,GACvEmE,EAAIrb,MAAMzE,KAAKyS,KAAKkR,KAAKlf,MAAOzE,KAAKyS,KAAKkR,KAAKlf,OAE/Cqb,EAAIwiC,YACJtiD,KAAKyS,KAAK8c,QAAQ1a,KAAK,gBAAiBiL,GACxCA,EAAIs5D,aAEW,IAAXxuD,KACoB,IAAlB5qB,KAAKq5B,WAAwC,IAAlBr5B,KAAKq5B,WAAsD,IAAjCr5B,KAAKqP,QAAQsuE,kBACpE39E,KAAK+kJ,WAAWjlI,KAIE,IAAlB9f,KAAKq5B,WAAwC,IAAlBr5B,KAAKq5B,WAAsD,IAAjCr5B,KAAKqP,QAAQuuE,kBACpE59E,KAAKglJ,WAAWllI,EAAK8K,GAGvB9K,EAAIwiC,YACJtiD,KAAKyS,KAAK8c,QAAQ1a,KAAK,eAAgBiL,GACvCA,EAAIs5D,YAGJt5D,EAAIsE,WACW,IAAXwG,GACF9K,EAAI65F,UAAU,EAAG,EAAGx0B,EAAG14E,OAc7BjK,IAAK,eACLgC,MAAO,WACLxE,KAAK41G,OAAOusB,cACZ,IAAIriH,GAAM9f,KAAK41G,OAAO8D,YACtB55F,GAAIkE,OACJlE,EAAIu/B,UAAUr/C,KAAKyS,KAAKkR,KAAK4wF,YAAY5kG,EAAG3P,KAAKyS,KAAKkR,KAAK4wF,YAAY54F,GACvEmE,EAAIrb,MAAMzE,KAAKyS,KAAKkR,KAAKlf,MAAOzE,KAAKyS,KAAKkR,KAAKlf,MAE/C,IAAIy5C,GAAQl+C,KAAKyS,KAAKyrC,MAClBmD,MAAO,EAGX,KAAK,GAAInkB,KAAUghB,GACbA,EAAM18C,eAAe07B,KACvBmkB,EAAOnD,EAAMhhB,GACbmkB,EAAK5+B,OAAO3C,GACZuhC,EAAKv7B,kBAAkBhG,EAAKuhC,EAAK59B,UAKrC3D,GAAIsE,aAYN5hB,IAAK,aACLgC,MAAO,SAAoBsb,GAgBzB,IAAK,GAfDmlI,GAAa1/I,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAE5E24C,EAAQl+C,KAAKyS,KAAKyrC,MAClBk8B,EAAcp6E,KAAKyS,KAAK2nE,YACxB/4B,MAAO,GACP59B,KAEAyhI,EAAUllJ,KAAK41G,OAAO4xB,aAAc73H,GAD3B,GACuCgM,GADvC,KAETwpI,EAAcnlJ,KAAK41G,OAAO4xB,aAC5B73H,EAAG3P,KAAK41G,OAAO1iE,MAAM0iE,OAAO/iG,YAHjB,GAIX8I,EAAG3b,KAAK41G,OAAO1iE,MAAM0iE,OAAO59E,aAJjB,KAMTotH,GAAiBt9I,IAAKo9I,EAAQvpI,EAAGjU,KAAMw9I,EAAQv1I,EAAG0S,OAAQ8iI,EAAYxpI,EAAG/T,MAAOu9I,EAAYx1I,GAGvFtP,EAAI,EAAGA,EAAI+5E,EAAY/3E,OAAQhC,IACtCghD,EAAOnD,EAAMk8B,EAAY/5E,IAErBghD,EAAKgkG,aACP5hI,EAASrd,KAAKg0E,EAAY/5E,KAEP,IAAf4kJ,EACF5jG,EAAKx7B,KAAK/F,IACmD,IAApDuhC,EAAKikG,6BAA6BF,GAC3C/jG,EAAKx7B,KAAK/F,GAEVuhC,EAAKv7B,kBAAkBhG,EAAKuhC,EAAK59B,SAMvC,KAAK,GAAItE,GAAK,EAAGA,EAAKsE,EAASphB,OAAQ8c,IACrCkiC,EAAOnD,EAAMz6B,EAAStE,IACtBkiC,EAAKx7B,KAAK/F,MAWdtd,IAAK,aACLgC,MAAO,SAAoBsb,GAKzB,IAAK,GAJD+a,GAAQ76B,KAAKyS,KAAKooB,MAClB0pG,EAAcvkI,KAAKyS,KAAK8xH,YACxBrpG,MAAO,GAEF76B,EAAI,EAAGA,EAAIkkI,EAAYliI,OAAQhC,IACtC66B,EAAOL,EAAM0pG,EAAYlkI,KACF,IAAnB66B,EAAKshB,WACPthB,EAAKrV,KAAK/F,MAYhBtd,IAAK,0BACLgC,MAAO,WACL,GAAsB,mBAAXuF,QAAwB,CACjC,GAAIw7I,GAAc/7I,UAAUC,UAAUoV,aACtC7e,MAAK62I,iBAAkB,GACiB,GAApC0O,EAAYp/I,QAAQ,YAEtBnG,KAAK62I,iBAAkB,GACoB,GAAlC0O,EAAYp/I,QAAQ,WAEzBo/I,EAAYp/I,QAAQ,YAAc,IACpCnG,KAAK62I,iBAAkB,OAI3B72I,MAAK62I,iBAAkB,MAItBhR,IAGTlmI,GAAiB,QAAIkmI,GAIf,SAAUjmI,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC3H,EAAS9U,EAAoB,IAC7B2kC,EAAa3kC,EAAoB,IAEjC2V,EAAO3V,EAAoB,GAS3BolI,EAAS,WAIX,QAASA,GAAO7yH,IACd,EAAIiK,EAA0B,SAAG1c,KAAMslI,GAEvCtlI,KAAKyS,KAAOA,EACZzS,KAAK60C,WAAa,EAClB70C,KAAKwlJ,gBAActiJ,GACnBlD,KAAKylJ,eAAiBzlJ,KAAK+qC,UAAUxiB,KAAKvoB,MAC1CA,KAAK0lJ,eACL1lJ,KAAKg1C,aAAc,EACnBh1C,KAAK2lJ,oBAEL3lJ,KAAKqP,WACLrP,KAAKs0B,gBACHuW,YAAY,EACZ14B,OAAQ,OACRD,MAAO,QAET2D,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBAE/Bt0B,KAAKolI,qBAygBP,OAjgBA,EAAIxoH,EAAuB,SAAG0oH,IAC5B9iI,IAAK,qBACLgC,MAAO,WACL,GAAIoxC,GAAQ51C,IAGZA,MAAKyS,KAAK8c,QAAQgE,KAAK,SAAU,SAAUtxB,GACvB,IAAdA,EAAIiQ,QACN0jC,EAAMnjC,KAAKkR,KAAK4wF,YAAY5kG,EAAgB,GAAZ1N,EAAIiQ,OAEnB,IAAfjQ,EAAIkQ,SACNyjC,EAAMnjC,KAAKkR,KAAK4wF,YAAY54F,EAAiB,GAAb1Z,EAAIkQ,UAGxCnS,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW1U,KAAK4gH,QAAQr4F,KAAKvoB,OAClDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW,WAC9BkhC,EAAMgwG,YAAYhxI,UAClBghC,EAAMxoB,OAAOxY,UACbghC,EAAMiwG,gBASVrjJ,IAAK,aACLgC,MAAO,SAAoB6K,GACzB,GAAImoC,GAASx3C,IAEb,QAAgBkD,KAAZmM,EAAuB,CACzB,GAAIX,IAAU,QAAS,SAAU,aACjCmH,GAAK/P,oBAAoB4I,EAAQ1O,KAAKqP,QAASA,IAGjB,IAA5BrP,KAAKqP,QAAQw7B,aAEf7qC,KAAK6lJ,WACL7lJ,KAAKwlJ,YAAcr6G,YAAY,YAEb,IADFqM,EAAOopE,WAEnBppE,EAAO/kC,KAAK8c,QAAQ1a,KAAK,mBAE1B,KACH7U,KAAKylJ,eAAiBzlJ,KAAK+qC,UAAUxiB,KAAKvoB,MAC1C6V,EAAK1M,iBAAiBY,OAAQ,SAAU/J,KAAKylJ,oBASjDjjJ,IAAK,WACLgC,MAAO,eAEoBtB,KAArBlD,KAAKwlJ,aACPp6G,cAAcprC,KAAKwlJ,aAErB3vI,EAAKlM,oBAAoBI,OAAQ,SAAU/J,KAAKylJ,gBAChDzlJ,KAAKylJ,mBAAiBviJ,MAQxBV,IAAK,YACLgC,MAAO,WACLxE,KAAK4gH,UACL5gH,KAAKyS,KAAK8c,QAAQ1a,KAAK,cAWzBrS,IAAK,kBACLgC,MAAO,WACL,GAAIqwC,GAAatvC,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAK60C,YAEjE,IAArB70C,KAAKg1C,cACPh1C,KAAK0lJ,YAAYI,cAAgB9lJ,KAAKkzC,MAAM0iE,OAAO1jG,MAAQ2iC,EAC3D70C,KAAK0lJ,YAAYK,eAAiB/lJ,KAAKkzC,MAAM0iE,OAAOzjG,OAAS0iC,EAC7D70C,KAAK0lJ,YAAYjhJ,MAAQzE,KAAKyS,KAAKkR,KAAKlf,MACxCzE,KAAK0lJ,YAAYrzI,SAAWrS,KAAKwnI,aAC/B73H,EAAG,GAAM3P,KAAKkzC,MAAM0iE,OAAO1jG,MAAQ2iC,EACnCl5B,EAAG,GAAM3b,KAAKkzC,MAAM0iE,OAAOzjG,OAAS0iC,QAW1CryC,IAAK,kBACLgC,MAAO,WACL,OAA+BtB,KAA3BlD,KAAK0lJ,YAAYjhJ,OAAyD,IAAlCzE,KAAKkzC,MAAM0iE,OAAO/iG,aAAwD,IAAnC7S,KAAKkzC,MAAM0iE,OAAO59E,cAA0C,IAApBh4B,KAAK60C,YAAoB70C,KAAK0lJ,YAAYI,cAAgB,EAAG,CAEtL,GAAIE,GAAahmJ,KAAKkzC,MAAM0iE,OAAO1jG,MAAQlS,KAAK60C,WAAa70C,KAAK0lJ,YAAYI,cAC1EG,EAAcjmJ,KAAKkzC,MAAM0iE,OAAOzjG,OAASnS,KAAK60C,WAAa70C,KAAK0lJ,YAAYK,eAC5EG,EAAWlmJ,KAAK0lJ,YAAYjhJ,KAEd,IAAduhJ,GAAkC,GAAfC,EACrBC,EAAoC,GAAzBlmJ,KAAK0lJ,YAAYjhJ,OAAeuhJ,EAAaC,GACjC,GAAdD,EACTE,EAAWlmJ,KAAK0lJ,YAAYjhJ,MAAQuhJ,EACZ,GAAfC,IACTC,EAAWlmJ,KAAK0lJ,YAAYjhJ,MAAQwhJ,GAGtCjmJ,KAAKyS,KAAKkR,KAAKlf,MAAQyhJ,CAEvB,IAAIC,GAAoBnmJ,KAAKwnI,aAC3B73H,EAAG,GAAM3P,KAAKkzC,MAAM0iE,OAAO/iG,YAC3B8I,EAAG,GAAM3b,KAAKkzC,MAAM0iE,OAAO59E,eAGzBouH,GACFz2I,EAAGw2I,EAAkBx2I,EAAI3P,KAAK0lJ,YAAYrzI,SAAS1C,EACnDgM,EAAGwqI,EAAkBxqI,EAAI3b,KAAK0lJ,YAAYrzI,SAASsJ,EAErD3b,MAAKyS,KAAKkR,KAAK4wF,YAAY5kG,GAAKy2I,EAAmBz2I,EAAI3P,KAAKyS,KAAKkR,KAAKlf,MACtEzE,KAAKyS,KAAKkR,KAAK4wF,YAAY54F,GAAKyqI,EAAmBzqI,EAAI3b,KAAKyS,KAAKkR,KAAKlf,UAY1EjC,IAAK,gBACLgC,MAAO,SAAuBA,GAC5B,GAAqB,gBAAVA,GACT,MAAOA,GAAQ,IACV,IAAqB,gBAAVA,GAAoB,CACpC,IAA4B,IAAxBA,EAAM2B,QAAQ,OAAwC,IAAzB3B,EAAM2B,QAAQ,MAC7C,MAAO3B,EACF,KAA4B,IAAxBA,EAAM2B,QAAQ,KACvB,MAAO3B,GAAQ,KAGnB,KAAM,IAAIqB,OAAM,wDAA0DrB,MAQ5EhC,IAAK,UACLgC,MAAO,WAEL,KAAOxE,KAAKyS,KAAKiV,UAAUzjB,iBACzBjE,KAAKyS,KAAKiV,UAAUvjB,YAAYnE,KAAKyS,KAAKiV,UAAUxjB,WAetD,IAZAlE,KAAKkzC,MAAQlhC,SAASC,cAAc,OACpCjS,KAAKkzC,MAAMhrC,UAAY,cACvBlI,KAAKkzC,MAAMzlC,MAAM4E,SAAW,WAC5BrS,KAAKkzC,MAAMzlC,MAAM8E,SAAW,SAC5BvS,KAAKkzC,MAAMmzG,SAAW,IAItBrmJ,KAAKkzC,MAAM0iE,OAAS5jG,SAASC,cAAc;mDAC3CjS,KAAKkzC,MAAM0iE,OAAOnoG,MAAM4E,SAAW,WACnCrS,KAAKkzC,MAAM1gC,YAAYxS,KAAKkzC,MAAM0iE,QAE7B51G,KAAKkzC,MAAM0iE,OAAO8D,WAQrB15G,KAAKsmJ,iBACLtmJ,KAAKmiI,mBAT4B,CACjC,GAAIlrB,GAAWjlG,SAASC,cAAc,MACtCglG,GAASxpG,MAAMjC,MAAQ,MACvByrG,EAASxpG,MAAMypG,WAAa,OAC5BD,EAASxpG,MAAMotD,QAAU,OACzBo8C,EAASpmF,UAAY,mDACrB7wB,KAAKkzC,MAAM0iE,OAAOpjG,YAAYykG,GAOhCj3G,KAAKyS,KAAKiV,UAAUlV,YAAYxS,KAAKkzC,OAErClzC,KAAKyS,KAAKkR,KAAKlf,MAAQ,EACvBzE,KAAKyS,KAAKkR,KAAK4wF,aAAgB5kG,EAAG,GAAM3P,KAAKkzC,MAAM0iE,OAAO/iG,YAAa8I,EAAG,GAAM3b,KAAKkzC,MAAM0iE,OAAO59E,cAElGh4B,KAAKm4H,iBASP31H,IAAK,cACLgC,MAAO,WACL,GAAIozC,GAAS53C,SAEOkD,KAAhBlD,KAAKotB,QACPptB,KAAKotB,OAAOxY,UAEd5U,KAAKy4B,QACLz4B,KAAKwjI,SAGLxjI,KAAKotB,OAAS,GAAIpY,GAAOhV,KAAKkzC,MAAM0iE,QACpC51G,KAAKotB,OAAOlsB,IAAI,SAAS4T,KAAMoyB,QAAQ,IAEvClnC,KAAKotB,OAAOlsB,IAAI,OAAO4T,KAAM+jB,UAAW,EAAG5L,UAAWjY,EAAOm1B,gBAE7DtF,EAAW1X,QAAQntB,KAAKotB,OAAQ,SAAUtjB,GACxC8tC,EAAOnlC,KAAK+xH,eAAer3G,QAAQrjB,KAErC9J,KAAKotB,OAAO1Y,GAAG,MAAO,SAAU5K,GAC9B8tC,EAAOnlC,KAAK+xH,eAAeC,MAAM36H,KAEnC9J,KAAKotB,OAAO1Y,GAAG,YAAa,SAAU5K,GACpC8tC,EAAOnlC,KAAK+xH,eAAeE,YAAY56H,KAEzC9J,KAAKotB,OAAO1Y,GAAG,QAAS,SAAU5K,GAChC8tC,EAAOnlC,KAAK+xH,eAAeG,OAAO76H,KAEpC9J,KAAKotB,OAAO1Y,GAAG,WAAY,SAAU5K,GACnC8tC,EAAOnlC,KAAK+xH,eAAeI,YAAY96H,KAEzC9J,KAAKotB,OAAO1Y,GAAG,UAAW,SAAU5K,GAClC8tC,EAAOnlC,KAAK+xH,eAAeK,OAAO/6H,KAEpC9J,KAAKotB,OAAO1Y,GAAG,SAAU,SAAU5K,GACjC8tC,EAAOnlC,KAAK+xH,eAAeM,UAAUh7H,KAEvC9J,KAAKotB,OAAO1Y,GAAG,QAAS,SAAU5K,GAChC8tC,EAAOnlC,KAAK+xH,eAAeO,QAAQj7H,KAIrC9J,KAAKkzC,MAAM0iE,OAAOzsG,iBAAiB,aAAc,SAAUW,GACzD8tC,EAAOnlC,KAAK+xH,eAAelsG,aAAaxuB,KAE1C9J,KAAKkzC,MAAM0iE,OAAOzsG,iBAAiB,iBAAkB,SAAUW,GAC7D8tC,EAAOnlC,KAAK+xH,eAAelsG,aAAaxuB,KAG1C9J,KAAKkzC,MAAM0iE,OAAOzsG,iBAAiB,YAAa,SAAUW,GACxD8tC,EAAOnlC,KAAK+xH,eAAeQ,YAAYl7H,KAEzC9J,KAAKkzC,MAAM0iE,OAAOzsG,iBAAiB,cAAe,SAAUW,GAC1D8tC,EAAOnlC,KAAK+xH,eAAeS,UAAUn7H,KAGvC9J,KAAK4lJ,YAAc,GAAI5wI,GAAOhV,KAAKkzC,OACnCrO,EAAWtX,UAAUvtB,KAAK4lJ,YAAa,SAAU97I,GAC/C8tC,EAAOnlC,KAAK+xH,eAAej3G,UAAUzjB,QAczCtH,IAAK,UACLgC,MAAO,WACL,GAAI0N,GAAQ3M,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKqP,QAAQ6C,MACzFC,EAAS5M,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKqP,QAAQ8C,MAE9FD,GAAQlS,KAAKumJ,cAAcr0I,GAC3BC,EAASnS,KAAKumJ,cAAcp0I,EAE5B,IAAIq0I,IAAY,EACZC,EAAWzmJ,KAAKkzC,MAAM0iE,OAAO1jG,MAC7Bw0I,EAAY1mJ,KAAKkzC,MAAM0iE,OAAOzjG,OAc9Bw0I,EAAgB3mJ,KAAK60C,UAGzB,IAFA70C,KAAKsmJ,iBAEDp0I,GAASlS,KAAKqP,QAAQ6C,OAASC,GAAUnS,KAAKqP,QAAQ8C,QAAUnS,KAAKkzC,MAAMzlC,MAAMyE,OAASA,GAASlS,KAAKkzC,MAAMzlC,MAAM0E,QAAUA,EAChInS,KAAK4mJ,gBAAgBD,GAErB3mJ,KAAKkzC,MAAMzlC,MAAMyE,MAAQA,EACzBlS,KAAKkzC,MAAMzlC,MAAM0E,OAASA,EAE1BnS,KAAKkzC,MAAM0iE,OAAOnoG,MAAMyE,MAAQ,OAChClS,KAAKkzC,MAAM0iE,OAAOnoG,MAAM0E,OAAS,OAEjCnS,KAAKkzC,MAAM0iE,OAAO1jG,MAAQxN,KAAKwoC,MAAMltC,KAAKkzC,MAAM0iE,OAAO/iG,YAAc7S,KAAK60C,YAC1E70C,KAAKkzC,MAAM0iE,OAAOzjG,OAASzN,KAAKwoC,MAAMltC,KAAKkzC,MAAM0iE,OAAO59E,aAAeh4B,KAAK60C,YAE5E70C,KAAKqP,QAAQ6C,MAAQA,EACrBlS,KAAKqP,QAAQ8C,OAASA,EAEtBnS,KAAK2lJ,kBACHh2I,EAAG,GAAM3P,KAAKkzC,MAAMrgC,YACpB8I,EAAG,GAAM3b,KAAKkzC,MAAMlb,cAGtBwuH,GAAY,MACP,CAIL,GAAIK,GAAWniJ,KAAKwoC,MAAMltC,KAAKkzC,MAAM0iE,OAAO/iG,YAAc7S,KAAK60C,YAC3DiyG,EAAYpiJ,KAAKwoC,MAAMltC,KAAKkzC,MAAM0iE,OAAO59E,aAAeh4B,KAAK60C,WAG7D70C,MAAKkzC,MAAM0iE,OAAO1jG,QAAU20I,GAAY7mJ,KAAKkzC,MAAM0iE,OAAOzjG,SAAW20I,GACvE9mJ,KAAK4mJ,gBAAgBD,GAGnB3mJ,KAAKkzC,MAAM0iE,OAAO1jG,QAAU20I,IAC9B7mJ,KAAKkzC,MAAM0iE,OAAO1jG,MAAQ20I,EAC1BL,GAAY,GAEVxmJ,KAAKkzC,MAAM0iE,OAAOzjG,SAAW20I,IAC/B9mJ,KAAKkzC,MAAM0iE,OAAOzjG,OAAS20I,EAC3BN,GAAY,GAkBhB,OAdkB,IAAdA,IACFxmJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,UACrB3C,MAAOxN,KAAKwoC,MAAMltC,KAAKkzC,MAAM0iE,OAAO1jG,MAAQlS,KAAK60C,YACjD1iC,OAAQzN,KAAKwoC,MAAMltC,KAAKkzC,MAAM0iE,OAAOzjG,OAASnS,KAAK60C,YACnD4xG,SAAU/hJ,KAAKwoC,MAAMu5G,EAAWzmJ,KAAK60C,YACrC6xG,UAAWhiJ,KAAKwoC,MAAMw5G,EAAY1mJ,KAAK60C,cAIzC70C,KAAK+mJ,mBAIP/mJ,KAAKg1C,aAAc,EACZwxG,KASThkJ,IAAK,aACLgC,MAAO,WACL,MAAOxE,MAAKkzC,MAAM0iE,OAAO8D,WAAW,SAWtCl3G,IAAK,uBACLgC,MAAO,WACL,GAAIsb,GAAM9f,KAAK05G,YACf,QAAYx2G,KAAR4c,EACF,KAAM,IAAIja,OAAM,+BAGlB,IAAImhJ,GAAY,CAShB,OARsB,mBAAXj9I,UAGTi9I,EAAYj9I,OAAO83H,kBAAoB,GAKlCmlB,GAFWlnI,EAAIgiH,8BAAgChiH,EAAIiiH,2BAA6BjiH,EAAIkiH,0BAA4BliH,EAAImiH,yBAA2BniH,EAAIoiH,wBAA0B,MAYtL1/H,IAAK,iBACLgC,MAAO,WACLxE,KAAK60C,WAAa70C,KAAKinJ,0BAQzBzkJ,IAAK,eACLgC,MAAO,WACL,GAAIsb,GAAM9f,KAAK05G,YACf,QAAYx2G,KAAR4c,EACF,KAAM,IAAIja,OAAM,+BAGlBia,GAAIqiH,aAAaniI,KAAK60C,WAAY,EAAG,EAAG70C,KAAK60C,WAAY,EAAG,MAY9DryC,IAAK,uBACLgC,MAAO,SAA8BmL,GACnC,OAAQA,EAAI3P,KAAKyS,KAAKkR,KAAK4wF,YAAY5kG,GAAK3P,KAAKyS,KAAKkR,KAAKlf,SAY7DjC,IAAK,uBACLgC,MAAO,SAA8BmL,GACnC,MAAOA,GAAI3P,KAAKyS,KAAKkR,KAAKlf,MAAQzE,KAAKyS,KAAKkR,KAAK4wF,YAAY5kG,KAY/DnN,IAAK,uBACLgC,MAAO,SAA8BmX,GACnC,OAAQA,EAAI3b,KAAKyS,KAAKkR,KAAK4wF,YAAY54F,GAAK3b,KAAKyS,KAAKkR,KAAKlf,SAY7DjC,IAAK,uBACLgC,MAAO,SAA8BmX,GACnC,MAAOA,GAAI3b,KAAKyS,KAAKkR,KAAKlf,MAAQzE,KAAKyS,KAAKkR,KAAK4wF,YAAY54F,KAS/DnZ,IAAK,cACLgC,MAAO,SAAqBy8C,GAC1B,OAAStxC,EAAG3P,KAAKknJ,qBAAqBjmG,EAAItxC,GAAIgM,EAAG3b,KAAKmnJ,qBAAqBlmG,EAAItlC,OAUjFnZ,IAAK,cACLgC,MAAO,SAAqBy8C,GAC1B,OAAStxC,EAAG3P,KAAKonJ,qBAAqBnmG,EAAItxC,GAAIgM,EAAG3b,KAAKqnJ,qBAAqBpmG,EAAItlC,QAG5E2pH,IAGT3lI,GAAiB,QAAI2lI,GAIf,SAAU1lI,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAE3BwiD,EAAcxiD,EAAoB,IAAa,QAM/CylI,EAAO,WAKT,QAASA,GAAKlzH,EAAMmjG,GAClB,GAAIhgE,GAAQ51C,MAEZ,EAAI0c,EAA0B,SAAG1c,KAAM2lI,GAEvC3lI,KAAKyS,KAAOA,EACZzS,KAAK41G,OAASA,EAEd51G,KAAKsnJ,eAAiB,EAAItnJ,KAAKunJ,kBAC/BvnJ,KAAKwnJ,wBAA0B,iBAC/BxnJ,KAAKynJ,WAAa,EAClBznJ,KAAK0nJ,YAAc,EACnB1nJ,KAAK2nJ,YAAc,EACnB3nJ,KAAK4nJ,kBAAoB,EACzB5nJ,KAAK6nJ,kBAAoB,EACzB7nJ,KAAK8nJ,mBAAiB5kJ,GACtBlD,KAAK+nJ,uBAAqB7kJ,GAC1BlD,KAAKgoJ,UAAY,EAEjBhoJ,KAAKg4I,iBAAe90I,GAEpBlD,KAAKyS,KAAK8c,QAAQ7a,GAAG,MAAO1U,KAAK4oC,IAAIrgB,KAAKvoB,OAC1CA,KAAKyS,KAAK8c,QAAQ7a,GAAG,oBAAqB,WACxCkhC,EAAMnjC,KAAK8c,QAAQ1a,KAAK,oBAE1B7U,KAAKyS,KAAK8c,QAAQ7a,GAAG,aAAc1U,KAAK0pI,YAAYnhH,KAAKvoB,OA8T3D,OArTA,EAAI4c,EAAuB,SAAG+oH,IAC5BnjI,IAAK,aACLgC,MAAO,WACL,GAAI6K,GAAU9J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,KAE7EvF,MAAKqP,QAAUA,KAUjB7M,IAAK,MACLgC,MAAO,WACL,GAAI6K,GAAU9J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,IAAO24C,UAChF+pG,EAAc1iJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAE7E+jB,MAAQ,GACR4+H,MAAY,EAKhB,QAJsBhlJ,KAAlBmM,EAAQ6uC,OAAgD,IAAzB7uC,EAAQ6uC,MAAM77C,SAC/CgN,EAAQ6uC,MAAQl+C,KAAKyS,KAAK2nE,cAGR,IAAhB6tE,EAAsB,CAExB,GAAIE,GAAkB,CACtB,KAAK,GAAIjrH,KAAUl9B,MAAKyS,KAAKyrC,MAC3B,GAAIl+C,KAAKyS,KAAKyrC,MAAM18C,eAAe07B,GAAS,CAC1C,GAAImkB,GAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,IACK,IAA5BmkB,EAAKpmB,qBACPktH,GAAmB,GAIzB,GAAIA,EAAkB,GAAMnoJ,KAAKyS,KAAK2nE,YAAY/3E,OAEhD,WADArC,MAAK4oC,IAAIv5B,GAAS,EAIpBia,GAAQo5B,EAAYvf,SAASnjC,KAAKyS,KAAKyrC,MAAO7uC,EAAQ6uC,MAGtDgqG,GAAY,QADQloJ,KAAKyS,KAAK2nE,YAAY/3E,OACJ,QAAU,QAIhD6lJ,IADaxjJ,KAAKL,IAAIrE,KAAK41G,OAAO1iE,MAAM0iE,OAAO/iG,YAAc,IAAK7S,KAAK41G,OAAO1iE,MAAM0iE,OAAO59E,aAAe,SAErG,CACLh4B,KAAKyS,KAAK8c,QAAQ1a,KAAK,gBACvByU,EAAQo5B,EAAYvf,SAASnjC,KAAKyS,KAAKyrC,MAAO7uC,EAAQ6uC,MAEtD,IAAI+hB,GAAgD,IAApCv7D,KAAKge,IAAI4G,EAAM05B,KAAO15B,EAAMy5B,MACxCqlG,EAAgD,IAApC1jJ,KAAKge,IAAI4G,EAAMw5B,KAAOx5B,EAAMu5B,MAExCwlG,EAAaroJ,KAAK41G,OAAO1iE,MAAM0iE,OAAO/iG,YAAcotD,EACpDqoF,EAAatoJ,KAAK41G,OAAO1iE,MAAM0iE,OAAO59E,aAAeowH,CAEzDF,GAAYG,GAAcC,EAAaD,EAAaC,EAGlDJ,EAAY,EACdA,EAAY,EACW,IAAdA,IACTA,EAAY,EAGd,IAAIlmH,GAAS0gB,EAAY6lG,WAAWj/H,GAChCk/H,GAAqBn2I,SAAU2vB,EAAQv9B,MAAOyjJ,EAAWnmH,UAAW1yB,EAAQ0yB,UAChF/hC,MAAK4kC,OAAO4jH,MAadhmJ,IAAK,QACLgC,MAAO,SAAe04B,GACpB,GAAI7tB,GAAU9J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,KAE7E,QAAgCrC,KAA5BlD,KAAKyS,KAAKyrC,MAAMhhB,GAAuB,CACzC,GAAIurH,IAAiB94I,EAAG3P,KAAKyS,KAAKyrC,MAAMhhB,GAAQvtB,EAAGgM,EAAG3b,KAAKyS,KAAKyrC,MAAMhhB,GAAQvhB,EAC9EtM,GAAQgD,SAAWo2I,EACnBp5I,EAAQq5I,aAAexrH,EAEvBl9B,KAAK4kC,OAAOv1B,OAEZ6H,SAAQ0G,IAAI,SAAWsf,EAAS,wBAapC16B,IAAK,SACLgC,MAAO,SAAgB6K,GACrB,OAAgBnM,KAAZmM,EAEF,YADAA,UAGqBnM,KAAnBmM,EAAQua,SACVva,EAAQua,QAAWja,EAAG,EAAGgM,EAAG,QAELzY,KAArBmM,EAAQua,OAAOja,IACjBN,EAAQua,OAAOja,EAAI,OAEIzM,KAArBmM,EAAQua,OAAOjO,IACjBtM,EAAQua,OAAOjO,EAAI,OAECzY,KAAlBmM,EAAQ5K,QACV4K,EAAQ5K,MAAQzE,KAAKyS,KAAKkR,KAAKlf,WAERvB,KAArBmM,EAAQgD,WACVhD,EAAQgD,SAAWrS,KAAKypI,uBAEAvmI,KAAtBmM,EAAQ0yB,YACV1yB,EAAQ0yB,WAAcpY,SAAU,KAER,IAAtBta,EAAQ0yB,YACV1yB,EAAQ0yB,WAAcpY,SAAU,KAER,IAAtBta,EAAQ0yB,YACV1yB,EAAQ0yB,kBAEyB7+B,KAA/BmM,EAAQ0yB,UAAUpY,WACpBta,EAAQ0yB,UAAUpY,SAAW,SAEUzmB,KAArCmM,EAAQ0yB,UAAUW,iBACpBrzB,EAAQ0yB,UAAUW,eAAiB,iBAGrC1iC,KAAK2oJ,YAAYt5I,MAgBnB7M,IAAK,cACLgC,MAAO,SAAqB6K,GAC1B,OAAgBnM,KAAZmM,EAAJ,CAGArP,KAAKwnJ,wBAA0Bn4I,EAAQ0yB,UAAUW,eAEjD1iC,KAAK0pI,eACkB,IAAnBr6H,EAAQu5I,SACV5oJ,KAAK8nJ,eAAiBz4I,EAAQq5I,aAC9B1oJ,KAAK+nJ,mBAAqB14I,EAAQua,QAIb,GAAnB5pB,KAAKynJ,YACPznJ,KAAK6oJ,mBAAkB,GAGzB7oJ,KAAK0nJ,YAAc1nJ,KAAKyS,KAAKkR,KAAKlf,MAClCzE,KAAK4nJ,kBAAoB5nJ,KAAKyS,KAAKkR,KAAK4wF,YACxCv0G,KAAK2nJ,YAAct4I,EAAQ5K,MAI3BzE,KAAKyS,KAAKkR,KAAKlf,MAAQzE,KAAK2nJ,WAC5B,IAAImB,GAAa9oJ,KAAK41G,OAAO4xB,aAAc73H,EAAG,GAAM3P,KAAK41G,OAAO1iE,MAAM0iE,OAAO/iG,YAAa8I,EAAG,GAAM3b,KAAK41G,OAAO1iE,MAAM0iE,OAAO59E,eAExHouH,GACFz2I,EAAGm5I,EAAWn5I,EAAIN,EAAQgD,SAAS1C,EACnCgM,EAAGmtI,EAAWntI,EAAItM,EAAQgD,SAASsJ,EAErC3b,MAAK6nJ,mBACHl4I,EAAG3P,KAAK4nJ,kBAAkBj4I,EAAIy2I,EAAmBz2I,EAAI3P,KAAK2nJ,YAAct4I,EAAQua,OAAOja,EACvFgM,EAAG3b,KAAK4nJ,kBAAkBjsI,EAAIyqI,EAAmBzqI,EAAI3b,KAAK2nJ,YAAct4I,EAAQua,OAAOjO,GAItD,IAA/BtM,EAAQ0yB,UAAUpY,aACOzmB,IAAvBlD,KAAK8nJ,gBACP9nJ,KAAKg4I,aAAeh4I,KAAK+oJ,cAAcxgI,KAAKvoB,MAC5CA,KAAKyS,KAAK8c,QAAQ7a,GAAG,aAAc1U,KAAKg4I,gBAExCh4I,KAAKyS,KAAKkR,KAAKlf,MAAQzE,KAAK2nJ,YAC5B3nJ,KAAKyS,KAAKkR,KAAK4wF,YAAcv0G,KAAK6nJ,kBAClC7nJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,oBAGzB7U,KAAKsnJ,eAAiB,GAAK,GAAKj4I,EAAQ0yB,UAAUpY,SAAW,OAAU,EAAI,GAC3E3pB,KAAKwnJ,wBAA0Bn4I,EAAQ0yB,UAAUW,eAEjD1iC,KAAKg4I,aAAeh4I,KAAK6oJ,kBAAkBtgI,KAAKvoB,MAChDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,aAAc1U,KAAKg4I,cACxCh4I,KAAKyS,KAAK8c,QAAQ1a,KAAK,wBAU3BrS,IAAK,gBACLgC,MAAO,WACL,GAAIikJ,IAAiB94I,EAAG3P,KAAKyS,KAAKyrC,MAAMl+C,KAAK8nJ,gBAAgBn4I,EAAGgM,EAAG3b,KAAKyS,KAAKyrC,MAAMl+C,KAAK8nJ,gBAAgBnsI,GACpGmtI,EAAa9oJ,KAAK41G,OAAO4xB,aAAc73H,EAAG,GAAM3P,KAAK41G,OAAO1iE,MAAM0iE,OAAO/iG,YAAa8I,EAAG,GAAM3b,KAAK41G,OAAO1iE,MAAM0iE,OAAO59E,eACxHouH,GACFz2I,EAAGm5I,EAAWn5I,EAAI84I,EAAa94I,EAC/BgM,EAAGmtI,EAAWntI,EAAI8sI,EAAa9sI,GAE7BisI,EAAoB5nJ,KAAKyS,KAAKkR,KAAK4wF,YACnCszC,GACFl4I,EAAGi4I,EAAkBj4I,EAAIy2I,EAAmBz2I,EAAI3P,KAAKyS,KAAKkR,KAAKlf,MAAQzE,KAAK+nJ,mBAAmBp4I,EAC/FgM,EAAGisI,EAAkBjsI,EAAIyqI,EAAmBzqI,EAAI3b,KAAKyS,KAAKkR,KAAKlf,MAAQzE,KAAK+nJ,mBAAmBpsI,EAGjG3b,MAAKyS,KAAKkR,KAAK4wF,YAAcszC,KAQ/BrlJ,IAAK,cACLgC,MAAO,eACuBtB,KAAxBlD,KAAK8nJ,oBAAsD5kJ,KAAtBlD,KAAKg4I,eAC5Ch4I,KAAKyS,KAAK8c,QAAQ5a,IAAI,aAAc3U,KAAKg4I,cACzCh4I,KAAK8nJ,mBAAiB5kJ,GACtBlD,KAAK+nJ,uBAAqB7kJ,OAU9BV,IAAK,oBACLgC,MAAO,WACL,GAAIwkJ,GAAWzjJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,EAE9EvF,MAAKynJ,YAAcznJ,KAAKsnJ,eACxBtnJ,KAAKynJ,YAA0B,IAAbuB,EAAoB,EAAMhpJ,KAAKynJ,UAEjD,IAAIl4F,GAAW15C,EAAK7E,gBAAgBhR,KAAKwnJ,yBAAyBxnJ,KAAKynJ,WAEvEznJ,MAAKyS,KAAKkR,KAAKlf,MAAQzE,KAAK0nJ,aAAe1nJ,KAAK2nJ,YAAc3nJ,KAAK0nJ,aAAen4F,EAClFvvD,KAAKyS,KAAKkR,KAAK4wF,aACb5kG,EAAG3P,KAAK4nJ,kBAAkBj4I,GAAK3P,KAAK6nJ,kBAAkBl4I,EAAI3P,KAAK4nJ,kBAAkBj4I,GAAK4/C,EACtF5zC,EAAG3b,KAAK4nJ,kBAAkBjsI,GAAK3b,KAAK6nJ,kBAAkBlsI,EAAI3b,KAAK4nJ,kBAAkBjsI,GAAK4zC,GAIpFvvD,KAAKynJ,YAAc,IACrBznJ,KAAKyS,KAAK8c,QAAQ5a,IAAI,aAAc3U,KAAKg4I,cACzCh4I,KAAKynJ,WAAa,MACSvkJ,IAAvBlD,KAAK8nJ,iBACP9nJ,KAAKg4I,aAAeh4I,KAAK+oJ,cAAcxgI,KAAKvoB,MAC5CA,KAAKyS,KAAK8c,QAAQ7a,GAAG,aAAc1U,KAAKg4I,eAE1Ch4I,KAAKyS,KAAK8c,QAAQ1a,KAAK,yBAU3BrS,IAAK,WACLgC,MAAO,WACL,MAAOxE,MAAKyS,KAAKkR,KAAKlf,SASxBjC,IAAK,kBACLgC,MAAO,WACL,MAAOxE,MAAK41G,OAAO4xB,aAAc73H,EAAG,GAAM3P,KAAK41G,OAAO1iE,MAAM0iE,OAAO/iG,YAAa8I,EAAG,GAAM3b,KAAK41G,OAAO1iE,MAAM0iE,OAAO59E,mBAG/G2tG,IAGThmI,GAAiB,QAAIgmI,GAIf,SAAU/lI,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAC3B+oJ,EAAoB/oJ,EAAoB,KAAc,QACtDwyD,EAAQxyD,EAAoB,KAAc,QAM1CwlI,EAAqB,WAMvB,QAASA,GAAmBjzH,EAAMmjG,EAAQ2vB,IACxC,EAAI7oH,EAA0B,SAAG1c,KAAM0lI,GAEvC1lI,KAAKyS,KAAOA,EACZzS,KAAK41G,OAASA,EACd51G,KAAKulI,iBAAmBA,EACxBvlI,KAAKkpJ,kBAAoB,GAAID,GAAkBx2I,EAAMmjG,GAGrD51G,KAAKyS,KAAK+xH,eAAeC,MAAQzkI,KAAKykI,MAAMl8G,KAAKvoB,MACjDA,KAAKyS,KAAK+xH,eAAer3G,QAAUntB,KAAKmtB,QAAQ5E,KAAKvoB,MACrDA,KAAKyS,KAAK+xH,eAAeE,YAAc1kI,KAAK0kI,YAAYn8G,KAAKvoB,MAC7DA,KAAKyS,KAAK+xH,eAAeG,OAAS3kI,KAAK2kI,OAAOp8G,KAAKvoB,MACnDA,KAAKyS,KAAK+xH,eAAeI,YAAc5kI,KAAK4kI,YAAYr8G,KAAKvoB,MAC7DA,KAAKyS,KAAK+xH,eAAeK,OAAS7kI,KAAK6kI,OAAOt8G,KAAKvoB,MACnDA,KAAKyS,KAAK+xH,eAAeM,UAAY9kI,KAAK8kI,UAAUv8G,KAAKvoB,MACzDA,KAAKyS,KAAK+xH,eAAelsG,aAAet4B,KAAKs4B,aAAa/P,KAAKvoB,MAC/DA,KAAKyS,KAAK+xH,eAAeO,QAAU/kI,KAAK+kI,QAAQx8G,KAAKvoB,MACrDA,KAAKyS,KAAK+xH,eAAeQ,YAAchlI,KAAKglI,YAAYz8G,KAAKvoB,MAC7DA,KAAKyS,KAAK+xH,eAAej3G,UAAYvtB,KAAKutB,UAAUhF,KAAKvoB,MACzDA,KAAKyS,KAAK+xH,eAAeS,UAAYjlI,KAAKilI,UAAU18G,KAAKvoB,MAEzDA,KAAKgoJ,UAAY,EACjBhoJ,KAAKy4B,QACLz4B,KAAKwjI,SACLxjI,KAAKqyD,UAAQnvD,GACblD,KAAKmpJ,aAAWjmJ,GAChBlD,KAAKopJ,eAAalmJ,GAElBlD,KAAKyS,KAAKyyH,UAAU/gG,WAAankC,KAAKmkC,WAAW5b,KAAKvoB,MAEtDA,KAAKqP,WACLrP,KAAKs0B,gBACHmpD,WAAW,EACXC,UAAU,EACVxwE,OAAO,EACP2wE,UACE/tE,SAAS,EACTguE,OAASnuE,EAAG,GAAIgM,EAAG,GAAI4oB,KAAM,KAC7Bw5C,cAAc,GAEhBC,mBAAmB,EACnBG,aAAc,IACdC,UAAU,GAEZvoE,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBAE/Bt0B,KAAKolI,qBAmsBP,OA3rBA,EAAIxoH,EAAuB,SAAG8oH,IAC5BljI,IAAK,qBACLgC,MAAO,WACL,GAAIoxC,GAAQ51C,IAEZA,MAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW,WAC9Bwe,aAAa0iB,EAAMwzG,kBACZxzG,GAAMnjC,KAAKyyH,UAAU/gG,gBAUhC3hC,IAAK,aACLgC,MAAO,SAAoB6K,GACzB,OAAgBnM,KAAZmM,EAAuB,CAEzB,GAAIX,IAAU,kBAAmB,kBAAmB,WAAY,cAAe,aAAc,uBAC7FmH,GAAK5P,uBAAuByI,EAAQ1O,KAAKqP,QAASA,GAGlDwG,EAAK1G,aAAanP,KAAKqP,QAASA,EAAS,YAErCA,EAAQi7C,UACVz0C,EAAKrQ,OAAOxF,KAAKqP,QAAQi7C,QAASj7C,EAAQi7C,SACtCj7C,EAAQi7C,QAAQ9+C,QAClBxL,KAAKqP,QAAQi7C,QAAQ9+C,MAAQqK,EAAK3J,WAAWmD,EAAQi7C,QAAQ9+C,SAKnExL,KAAKkpJ,kBAAkBxzI,WAAW1V,KAAKqP,YAWzC7M,IAAK,aACLgC,MAAO,SAAoB68B,GACzB,OACE1xB,EAAG0xB,EAAM1xB,EAAIkG,EAAKtO,gBAAgBvH,KAAK41G,OAAO1iE,MAAM0iE,QACpDj6F,EAAG0lB,EAAM1lB,EAAI9F,EAAKhO,eAAe7H,KAAK41G,OAAO1iE,MAAM0iE,YAWvDpzG,IAAK,UACLgC,MAAO,SAAiBsF,IAClB,GAAIhF,OAAO8B,UAAY5G,KAAKgoJ,UAAY,KAC1ChoJ,KAAKy4B,KAAKyL,QAAUlkC,KAAKmkC,WAAWr6B,EAAMk4B,QAC1ChiC,KAAKy4B,KAAK4wH,SAAU,EACpBrpJ,KAAKwjI,MAAM/+H,MAAQzE,KAAKyS,KAAKkR,KAAKlf,MAElCzE,KAAKgoJ,WAAY,GAAIljJ,OAAO8B,cAWhCpE,IAAK,QACLgC,MAAO,SAAesF,GACpB,GAAIo6B,GAAUlkC,KAAKmkC,WAAWr6B,EAAMk4B,QAChCuuB,EAAcvwD,KAAKulI,iBAAiBl2H,QAAQkhD,cAAgBzmD,EAAMm9G,gBAAgB,GAAGzwD,SAAW1sD,EAAMm9G,gBAAgB,GAAGxwD,QAE7Hz2D,MAAKspJ,sBAAsBplH,EAASp6B,EAAOymD,GAC3CvwD,KAAKulI,iBAAiBgkB,oBAAoB,QAASz/I,EAAOo6B,MAU5D1hC,IAAK,cACLgC,MAAO,SAAqBsF,GAC1B,GAAIo6B,GAAUlkC,KAAKmkC,WAAWr6B,EAAMk4B,OACpChiC,MAAKulI,iBAAiBgkB,oBAAoB,cAAez/I,EAAOo6B,MAUlE1hC,IAAK,SACLgC,MAAO,SAAgBsF,GACrB,GAAIo6B,GAAUlkC,KAAKmkC,WAAWr6B,EAAMk4B,QAChCuuB,EAAcvwD,KAAKulI,iBAAiBl2H,QAAQkhD,WAEhDvwD,MAAKspJ,sBAAsBplH,EAASp6B,EAAOymD,GAE3CvwD,KAAKulI,iBAAiBgkB,oBAAoB,QAASz/I,EAAOo6B,GAC1DlkC,KAAKulI,iBAAiBgkB,oBAAoB,OAAQz/I,EAAOo6B,MAW3D1hC,IAAK,YACLgC,MAAO,SAAmBsF,GACxB,IAAI,GAAIhF,OAAO8B,UAAY5G,KAAKgoJ,UAAY,GAAI,CAC9C,GAAI9jH,GAAUlkC,KAAKmkC,WAAWr6B,EAAMk4B,OACpChiC,MAAKulI,iBAAiBgkB,oBAAoB,UAAWz/I,EAAOo6B,GAE5DlkC,KAAKgoJ,WAAY,GAAIljJ,OAAO8B,cAUhCpE,IAAK,YACLgC,MAAO,SAAmBsF,GACxB,GAAIo6B,GAAUlkC,KAAKmkC,YAAax0B,EAAG7F,EAAMs6B,QAASzoB,EAAG7R,EAAMu6B,SAC3DrkC,MAAKulI,iBAAiBgkB,oBAAoB,YAAaz/I,EAAOo6B,MAoBhE1hC,IAAK,wBACLgC,MAAO,SAA+B0/B,EAASp6B,GAC7C,GAAI2L,GAAMlQ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAErEikJ,EAAoBxpJ,KAAKulI,iBAAiB3xE,eAC1CnwC,GAAW,CAEbA,IADU,IAARhO,EACSzV,KAAKulI,iBAAiBkkB,wBAAwBvlH,GAE9ClkC,KAAKulI,iBAAiBmkB,cAAcxlH,EAEjD,IAAIylH,GAAmB3pJ,KAAKulI,iBAAiB3xE,eAGzCg2F,EAAkB5pJ,KAAK6pJ,qBAAqBL,EAAmBG,GAC/DG,EAAgB9pJ,KAAK6pJ,qBAAqBF,EAAkBH,EAE5DI,GAAgB/uH,MAAMx4B,OAAS,IACjCrC,KAAKulI,iBAAiBgkB,oBAAoB,eAAgBz/I,EAAOo6B,EAASslH,GAC1E/lI,GAAW,GAGTmmI,EAAgB1rG,MAAM77C,OAAS,IACjCrC,KAAKulI,iBAAiBgkB,oBAAoB,eAAgBz/I,EAAOo6B,EAASslH,GAC1E/lI,GAAW,GAGTqmI,EAAc5rG,MAAM77C,OAAS,IAC/BrC,KAAKulI,iBAAiBgkB,oBAAoB,aAAcz/I,EAAOo6B,GAC/DzgB,GAAW,GAGTqmI,EAAcjvH,MAAMx4B,OAAS,IAC/BrC,KAAKulI,iBAAiBgkB,oBAAoB,aAAcz/I,EAAOo6B,GAC/DzgB,GAAW,IAII,IAAbA,GAEFzjB,KAAKulI,iBAAiBgkB,oBAAoB,SAAUz/I,EAAOo6B,MAc/D1hC,IAAK,uBACLgC,MAAO,SAA8BulJ,EAAUC,GAC7C,GAAIC,GAAY,SAAmBC,EAAUC,GAG3C,IAAK,GAFD9+I,MAEKhL,EAAI,EAAGA,EAAI6pJ,EAAS7nJ,OAAQhC,IAAK,CACxC,GAAImE,GAAQ0lJ,EAAS7pJ,IACa,IAA9B8pJ,EAAUhkJ,QAAQ3B,IACpB6G,EAAOjF,KAAK5B,GAIhB,MAAO6G,GAGT,QACE6yC,MAAO+rG,EAAUF,EAAS7rG,MAAO8rG,EAAU9rG,OAC3CrjB,MAAOovH,EAAUF,EAASlvH,MAAOmvH,EAAUnvH,WAa/Cr4B,IAAK,cACLgC,MAAO,SAAqBsF,OAEA5G,KAAtBlD,KAAKy4B,KAAKyL,SACZlkC,KAAKmtB,QAAQrjB,EAIf,IAAIu3C,GAAOrhD,KAAKulI,iBAAiB8D,UAAUrpI,KAAKy4B,KAAKyL,QAOrD,IALAlkC,KAAKy4B,KAAKY,UAAW,EACrBr5B,KAAKy4B,KAAK25B,aACVpyD,KAAKy4B,KAAK87E,YAAc1+F,EAAKrQ,UAAWxF,KAAKyS,KAAKkR,KAAK4wF,aACvDv0G,KAAKy4B,KAAKyE,WAASh6B,OAENA,KAATm+C,IAAiD,IAA3BrhD,KAAKqP,QAAQouE,UAAoB,CACzDz9E,KAAKy4B,KAAKyE,OAASmkB,EAAK/qC,IAEE,IAAtB+qC,EAAKgkG,eACPrlJ,KAAKulI,iBAAiB2B,cACtBlnI,KAAKulI,iBAAiB6kB,aAAa/oG,IAIrCrhD,KAAKulI,iBAAiBgkB,oBAAoB,YAAaz/I,EAAO9J,KAAKy4B,KAAKyL,QAExE,IAAIkuB,GAAYpyD,KAAKulI,iBAAiB8kB,aAAansG,KAEnD,KAAK,GAAIhhB,KAAUk1B,GACjB,GAAIA,EAAU5wD,eAAe07B,GAAS,CACpC,GAAI77B,GAAS+wD,EAAUl1B,GACnBx7B,GACF4U,GAAIjV,EAAOiV,GACX+qC,KAAMhgD,EAGNsO,EAAGtO,EAAOsO,EACVgM,EAAGta,EAAOsa,EACV2uI,OAAQjpJ,EAAOgO,QAAQmtB,MAAM7sB,EAC7B46I,OAAQlpJ,EAAOgO,QAAQmtB,MAAM7gB,EAG/Bta,GAAOgO,QAAQmtB,MAAM7sB,GAAI,EACzBtO,EAAOgO,QAAQmtB,MAAM7gB,GAAI,EAEzB3b,KAAKy4B,KAAK25B,UAAUhsD,KAAK1E,QAK7B1B,MAAKulI,iBAAiBgkB,oBAAoB,YAAaz/I,EAAO9J,KAAKy4B,KAAKyL,YAAShhC,IAAW,MAWhGV,IAAK,SACLgC,MAAO,SAAgBsF,GACrB,GAAI0tC,GAASx3C,IAEb,KAA0B,IAAtBA,KAAKy4B,KAAK4wH,QAAd,CAKArpJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,aAEvB,IAAIqvB,GAAUlkC,KAAKmkC,WAAWr6B,EAAMk4B,QAEhCowB,EAAYpyD,KAAKy4B,KAAK25B,SAC1B,IAAIA,GAAaA,EAAU/vD,SAAqC,IAA3BrC,KAAKqP,QAAQouE,UAAoB,CACpEz9E,KAAKulI,iBAAiBgkB,oBAAoB,WAAYz/I,EAAOo6B,EAG7D,IAAI5K,GAAS4K,EAAQv0B,EAAI3P,KAAKy4B,KAAKyL,QAAQv0B,EACvC+zB,EAASQ,EAAQvoB,EAAI3b,KAAKy4B,KAAKyL,QAAQvoB,CAG3Cy2C,GAAU1pD,QAAQ,SAAU0pD,GAC1B,GAAI/Q,GAAO+Q,EAAU/Q,MAEI,IAArB+Q,EAAUk4F,SACZjpG,EAAK1xC,EAAI6nC,EAAOo+D,OAAOwxC,qBAAqB5vG,EAAOo+D,OAAOsxC,qBAAqB90F,EAAUziD,GAAK2pB,KAGvE,IAArB84B,EAAUm4F,SACZlpG,EAAK1lC,EAAI67B,EAAOo+D,OAAOyxC,qBAAqB7vG,EAAOo+D,OAAOuxC,qBAAqB/0F,EAAUz2C,GAAK+nB,MAKlG1jC,KAAKyS,KAAK8c,QAAQ1a,KAAK,uBAGvB,KAA8B,IAA1B7U,KAAKqP,QAAQquE,SAAmB,CAIlC,GAHA19E,KAAKulI,iBAAiBgkB,oBAAoB,WAAYz/I,EAAOo6B,MAAShhC,IAAW,OAGvDA,KAAtBlD,KAAKy4B,KAAKyL,QAEZ,WADAlkC,MAAK4kI,YAAY96H,EAGnB,IAAI00G,GAAQt6E,EAAQv0B,EAAI3P,KAAKy4B,KAAKyL,QAAQv0B,EACtC8uG,EAAQv6E,EAAQvoB,EAAI3b,KAAKy4B,KAAKyL,QAAQvoB,CAE1C3b,MAAKyS,KAAKkR,KAAK4wF,aAAgB5kG,EAAG3P,KAAKy4B,KAAK87E,YAAY5kG,EAAI6uG,EAAO7iG,EAAG3b,KAAKy4B,KAAK87E,YAAY54F,EAAI8iG,GAChGz+G,KAAKyS,KAAK8c,QAAQ1a,KAAK,uBAY7BrS,IAAK,YACLgC,MAAO,SAAmBsF,GACxB9J,KAAKy4B,KAAKY,UAAW,CACrB,IAAI+4B,GAAYpyD,KAAKy4B,KAAK25B,SACtBA,IAAaA,EAAU/vD,QACzB+vD,EAAU1pD,QAAQ,SAAUhH,GAE1BA,EAAE2/C,KAAKhyC,QAAQmtB,MAAM7sB,EAAIjO,EAAE4oJ,OAC3B5oJ,EAAE2/C,KAAKhyC,QAAQmtB,MAAM7gB,EAAIja,EAAE6oJ,SAE7BvqJ,KAAKulI,iBAAiBgkB,oBAAoB,UAAWz/I,EAAO9J,KAAKmkC,WAAWr6B,EAAMk4B,SAClFhiC,KAAKyS,KAAK8c,QAAQ1a,KAAK,qBAEvB7U,KAAKulI,iBAAiBgkB,oBAAoB,UAAWz/I,EAAO9J,KAAKmkC,WAAWr6B,EAAMk4B,YAAS9+B,IAAW,GACtGlD,KAAKyS,KAAK8c,QAAQ1a,KAAK,sBAW3BrS,IAAK,UACLgC,MAAO,SAAiBsF,GACtB,GAAIo6B,GAAUlkC,KAAKmkC,WAAWr6B,EAAMk4B,OAEpChiC,MAAKy4B,KAAK4wH,SAAU,MACQnmJ,KAAxBlD,KAAKwjI,MAAa,QACpBxjI,KAAKwjI,MAAM/+H,MAAQ,EAIrB,IAAIA,GAAQzE,KAAKwjI,MAAM/+H,MAAQqF,EAAMrF,KACrCzE,MAAKukC,KAAK9/B,EAAOy/B,MAWnB1hC,IAAK,OACLgC,MAAO,SAAcC,EAAOy/B,GAC1B,IAA8B,IAA1BlkC,KAAKqP,QAAQ+uE,SAAmB,CAClC,GAAIosE,GAAWxqJ,KAAKyS,KAAKkR,KAAKlf,KAC1BA,GAAQ,OACVA,EAAQ,MAENA,EAAQ,KACVA,EAAQ,GAGV,IAAIgmJ,OAAsBvnJ,OACRA,KAAdlD,KAAKy4B,OACoB,IAAvBz4B,KAAKy4B,KAAKY,WACZoxH,EAAsBzqJ,KAAK41G,OAAO4xB,YAAYxnI,KAAKy4B,KAAKyL,SAI5D,IAAIqwE,GAAcv0G,KAAKyS,KAAKkR,KAAK4wF,YAE7Bm2C,EAAYjmJ,EAAQ+lJ,EACpBG,GAAM,EAAID,GAAaxmH,EAAQv0B,EAAI4kG,EAAY5kG,EAAI+6I,EACnDE,GAAM,EAAIF,GAAaxmH,EAAQvoB,EAAI44F,EAAY54F,EAAI+uI,CAKvD,IAHA1qJ,KAAKyS,KAAKkR,KAAKlf,MAAQA,EACvBzE,KAAKyS,KAAKkR,KAAK4wF,aAAgB5kG,EAAGg7I,EAAIhvI,EAAGivI,OAEd1nJ,IAAvBunJ,EAAkC,CACpC,GAAII,GAAuB7qJ,KAAK41G,OAAO2xB,YAAYkjB,EACnDzqJ,MAAKy4B,KAAKyL,QAAQv0B,EAAIk7I,EAAqBl7I,EAC3C3P,KAAKy4B,KAAKyL,QAAQvoB,EAAIkvI,EAAqBlvI,EAG7C3b,KAAKyS,KAAK8c,QAAQ1a,KAAK,kBAEnB21I,EAAW/lJ,EACbzE,KAAKyS,KAAK8c,QAAQ1a,KAAK,QAAUoY,UAAW,IAAKxoB,MAAOzE,KAAKyS,KAAKkR,KAAKlf,MAAOy/B,QAASA,IAEvFlkC,KAAKyS,KAAK8c,QAAQ1a,KAAK,QAAUoY,UAAW,IAAKxoB,MAAOzE,KAAKyS,KAAKkR,KAAKlf,MAAOy/B,QAASA,QAc7F1hC,IAAK,eACLgC,MAAO,SAAsBsF,GAC3B,IAA8B,IAA1B9J,KAAKqP,QAAQ+uE,SAAmB,CAElC,GAAI36C,GAAQ,CAcZ,IAbI35B,EAAMg6B,WAERL,EAAQ35B,EAAMg6B,WAAa,IAClBh6B,EAAMi6B,SAIfN,GAAS35B,EAAMi6B,OAAS,GAMZ,IAAVN,EAAa,CAGf,GAAIh/B,GAAQzE,KAAKyS,KAAKkR,KAAKlf,MACvB8/B,EAAOd,EAAQ,EACfA,GAAQ,IACVc,GAAe,EAAIA,GAErB9/B,GAAS,EAAI8/B,CAGb,IAAIL,GAAUlkC,KAAKmkC,YAAax0B,EAAG7F,EAAMs6B,QAASzoB,EAAG7R,EAAMu6B,SAG3DrkC,MAAKukC,KAAK9/B,EAAOy/B,GAInBp6B,EAAMD,qBAWVrH,IAAK,cACLgC,MAAO,SAAqBsF,GAC1B,GAAI8tC,GAAS53C,KAETkkC,EAAUlkC,KAAKmkC,YAAax0B,EAAG7F,EAAMs6B,QAASzoB,EAAG7R,EAAMu6B,UACvDymH,GAAe,MAGA5nJ,KAAflD,KAAKqyD,SACmB,IAAtBryD,KAAKqyD,MAAMznC,QACb5qB,KAAK+qJ,gBAAgB7mH,IAIG,IAAtBlkC,KAAKqyD,MAAMznC,SACbkgI,GAAe,EACf9qJ,KAAKqyD,MAAMyG,YAAY50B,EAAQv0B,EAAI,EAAGu0B,EAAQvoB,EAAI,GAClD3b,KAAKqyD,MAAMtjC,UAK4B,IAAvC/uB,KAAKqP,QAAQwuE,SAASE,eAA4D,IAAlC/9E,KAAKqP,QAAQwuE,SAAS/tE,SACxE9P,KAAK41G,OAAO1iE,MAAMsjF,SAIC,IAAjBs0B,QACsB5nJ,KAApBlD,KAAKopJ,aACPh+G,cAAcprC,KAAKopJ,YACnBppJ,KAAKopJ,eAAalmJ,IAEflD,KAAKy4B,KAAKY,WACbr5B,KAAKopJ,WAAaj2H,WAAW,WAC3B,MAAOykB,GAAOozG,gBAAgB9mH,IAC7BlkC,KAAKqP,QAAQ8uE,iBAKO,IAAvBn+E,KAAKqP,QAAQnC,OACflN,KAAKulI,iBAAiB0lB,YAAYnhJ,EAAOo6B,MAc7C1hC,IAAK,kBACLgC,MAAO,SAAyB0/B,GAC9B,GAAIv0B,GAAI3P,KAAK41G,OAAOwxC,qBAAqBljH,EAAQv0B,GAC7CgM,EAAI3b,KAAK41G,OAAOyxC,qBAAqBnjH,EAAQvoB,GAC7CuvI,GACFxjJ,KAAMiI,EACN7H,IAAK6T,EACL/T,MAAO+H,EACP0S,OAAQ1G,GAGNwvI,MAAuCjoJ,KAAlBlD,KAAKmpJ,aAAyBjmJ,GAAYlD,KAAKmpJ,SAAS7yI,GAC7E80I,GAAkB,EAClBC,EAAY,MAGhB,QAAsBnoJ,KAAlBlD,KAAKmpJ,SAAwB,CAM/B,IAAK,GAJD/uE,GAAcp6E,KAAKyS,KAAK2nE,YACxBl8B,EAAQl+C,KAAKyS,KAAKyrC,MAClBmD,MAAO,GACPiqG,KACKjrJ,EAAI,EAAGA,EAAI+5E,EAAY/3E,OAAQhC,IACtCghD,EAAOnD,EAAMk8B,EAAY/5E,KACkB,IAAvCghD,EAAK3B,kBAAkBwrG,QACDhoJ,KAApBm+C,EAAKnvB,YACPo5H,EAAiBllJ,KAAKg0E,EAAY/5E,GAKpCirJ,GAAiBjpJ,OAAS,IAE5BrC,KAAKmpJ,SAAWjrG,EAAMotG,EAAiBA,EAAiBjpJ,OAAS,IAEjE+oJ,GAAkB,GAItB,OAAsBloJ,KAAlBlD,KAAKmpJ,WAA8C,IAApBiC,EAA2B,CAM5D,IAAK,GAJD7mB,GAAcvkI,KAAKyS,KAAK8xH,YACxB1pG,EAAQ76B,KAAKyS,KAAKooB,MAClBK,MAAO,GACPqwH,KACKpsI,EAAK,EAAGA,EAAKolH,EAAYliI,OAAQ8c,IACxC+b,EAAOL,EAAM0pG,EAAYplH,KACkB,IAAvC+b,EAAKwkB,kBAAkBwrG,KACF,IAAnBhwH,EAAKshB,eAA0Ct5C,KAApBg4B,EAAKhJ,YAClCq5H,EAAiBnlJ,KAAKm+H,EAAYplH,GAKpCosI,GAAiBlpJ,OAAS,IAC5BrC,KAAKmpJ,SAAWtuH,EAAM0wH,EAAiBA,EAAiBlpJ,OAAS,IACjEgpJ,EAAY,YAIMnoJ,KAAlBlD,KAAKmpJ,SAEHnpJ,KAAKmpJ,SAAS7yI,KAAO60I,QACJjoJ,KAAflD,KAAKqyD,QACPryD,KAAKqyD,MAAQ,GAAIK,GAAM1yD,KAAK41G,OAAO1iE,QAGrClzC,KAAKqyD,MAAMm5F,gBAAkBH,EAC7BrrJ,KAAKqyD,MAAMo5F,cAAgBzrJ,KAAKmpJ,SAAS7yI,GAKzCtW,KAAKqyD,MAAMyG,YAAY50B,EAAQv0B,EAAI,EAAGu0B,EAAQvoB,EAAI,GAClD3b,KAAKqyD,MAAMwG,QAAQ74D,KAAKmpJ,SAASj3H,YACjClyB,KAAKqyD,MAAMtjC,OACX/uB,KAAKyS,KAAK8c,QAAQ1a,KAAK,YAAa7U,KAAKmpJ,SAAS7yI,SAGjCpT,KAAflD,KAAKqyD,QACPryD,KAAKqyD,MAAMtyC,OACX/f,KAAKyS,KAAK8c,QAAQ1a,KAAK,iBAa7BrS,IAAK,kBACLgC,MAAO,SAAyB0/B,GAC9B,GAAIgnH,GAAalrJ,KAAKulI,iBAAiBmmB,yBAAyBxnH,GAE5DynH,GAAa,CACjB,IAAmC,SAA/B3rJ,KAAKqyD,MAAMm5F,iBACb,OAAkDtoJ,KAA9ClD,KAAKyS,KAAKyrC,MAAMl+C,KAAKqyD,MAAMo5F,iBAKV,KAJnBE,EAAa3rJ,KAAKyS,KAAKyrC,MAAMl+C,KAAKqyD,MAAMo5F,eAAe/rG,kBAAkBwrG,IAIhD,CACvB,GAAIU,GAAW5rJ,KAAKulI,iBAAiB8D,UAAUnlG,EAC/CynH,OAA0BzoJ,KAAb0oJ,GAAiCA,EAASt1I,KAAOtW,KAAKqyD,MAAMo5F,wBAI5BvoJ,KAA7ClD,KAAKulI,iBAAiB8D,UAAUnlG,QACgBhhC,KAA9ClD,KAAKyS,KAAKooB,MAAM76B,KAAKqyD,MAAMo5F,iBAC7BE,EAAa3rJ,KAAKyS,KAAKooB,MAAM76B,KAAKqyD,MAAMo5F,eAAe/rG,kBAAkBwrG,KAK5D,IAAfS,IACF3rJ,KAAKmpJ,aAAWjmJ,GAChBlD,KAAKqyD,MAAMtyC,OACX/f,KAAKyS,KAAK8c,QAAQ1a,KAAK,kBAItB6wH,IAGT/lI,GAAiB,QAAI+lI,GAIf,SAAU9lI,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC3H,EAAS9U,EAAoB,IAC7B2kC,EAAa3kC,EAAoB,IACjCunB,EAAWvnB,EAAoB,IAM/B+oJ,EAAoB,WAKtB,QAASA,GAAkBx2I,EAAMmjG,GAC/B,GAAIhgE,GAAQ51C,MAEZ,EAAI0c,EAA0B,SAAG1c,KAAMipJ,GAEvCjpJ,KAAKyS,KAAOA,EACZzS,KAAK41G,OAASA,EAEd51G,KAAK6rJ,cAAe,EACpB7rJ,KAAK8rJ,qBACL9rJ,KAAK+rJ,kBACL/rJ,KAAKgoJ,UAAY,EACjBhoJ,KAAKgsJ,WAAY,EAEjBhsJ,KAAKyS,KAAK8c,QAAQ7a,GAAG,WAAY,WAC/BkhC,EAAMo2G,WAAY,EAAKp2G,EAAMq2G,8BAE/BjsJ,KAAKyS,KAAK8c,QAAQ7a,GAAG,aAAc,WACjCkhC,EAAMo2G,WAAY,EAAMp2G,EAAMq2G,8BAEhCjsJ,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW,eACPxR,KAAnB0yC,EAAMnuB,UACRmuB,EAAMnuB,SAAS7S,YAInB5U,KAAKqP,WAgWP,OAvVA,EAAIuN,EAAuB,SAAGqsI,IAC5BzmJ,IAAK,aACLgC,MAAO,SAAoB6K,OACTnM,KAAZmM,IACFrP,KAAKqP,QAAUA,EACfrP,KAAKo/B,aAST58B,IAAK,SACLgC,MAAO,YACkC,IAAnCxE,KAAKqP,QAAQ2uE,mBACW,IAAtBh+E,KAAK6rJ,cACP7rJ,KAAKksJ,0BAEwB,IAAtBlsJ,KAAK6rJ,cACd7rJ,KAAKmsJ,kBAGPnsJ,KAAKisJ,+BAQPzpJ,IAAK,kBACLgC,MAAO,WAEL,GAAqC,GAAjCxE,KAAK8rJ,kBAAkBzpJ,OAAa,CACtC,IAAK,GAAIhC,GAAI,EAAGA,EAAIL,KAAK8rJ,kBAAkBzpJ,OAAQhC,IACjDL,KAAK8rJ,kBAAkBzrJ,GAAGuU,SAE5B5U,MAAK8rJ,qBAIH9rJ,KAAKosJ,eAAiBpsJ,KAAKosJ,cAAuB,SAAKpsJ,KAAKosJ,cAAuB,QAAEhiJ,YACvFpK,KAAKosJ,cAAuB,QAAEhiJ,WAAWjG,YAAYnE,KAAKosJ,cAAuB,SAGnFpsJ,KAAK6rJ,cAAe,KAatBrpJ,IAAK,yBACLgC,MAAO,WACL,GAAIgzC,GAASx3C,IAEbA,MAAKmsJ,kBAELnsJ,KAAKosJ,gBACL,IAAIC,IAAkB,KAAM,OAAQ,OAAQ,QAAS,SAAU,UAAW,eACtEC,GAAwB,UAAW,YAAa,YAAa,aAAc,UAAW,WAAY,OAEtGtsJ,MAAKosJ,cAAuB,QAAIp6I,SAASC,cAAc,OACvDjS,KAAKosJ,cAAuB,QAAElkJ,UAAY,iBAC1ClI,KAAK41G,OAAO1iE,MAAM1gC,YAAYxS,KAAKosJ,cAAuB,QAE1D,KAAK,GAAI/rJ,GAAI,EAAGA,EAAIgsJ,EAAehqJ,OAAQhC,IAAK,CAC9CL,KAAKosJ,cAAcC,EAAehsJ,IAAM2R,SAASC,cAAc,OAC/DjS,KAAKosJ,cAAcC,EAAehsJ,IAAI6H,UAAY,kBAAoBmkJ,EAAehsJ,GACrFL,KAAKosJ,cAAuB,QAAE55I,YAAYxS,KAAKosJ,cAAcC,EAAehsJ,IAE5E,IAAI+sB,GAAS,GAAIpY,GAAOhV,KAAKosJ,cAAcC,EAAehsJ,IAC1B,UAA5BisJ,EAAqBjsJ,GACvBwkC,EAAW1X,QAAQC,EAAQptB,KAAKusJ,KAAKhkI,KAAKvoB,OAE1C6kC,EAAW1X,QAAQC,EAAQptB,KAAKwsJ,aAAajkI,KAAKvoB,KAAMssJ,EAAqBjsJ,KAG/EL,KAAK8rJ,kBAAkB1lJ,KAAKgnB,GAK9B,GAAIw4H,GAAc,GAAI5wI,GAAOhV,KAAK41G,OAAO1iE,MACzCrO,GAAWtX,UAAUq4H,EAAa,WAChCpuG,EAAOi1G,kBAETzsJ,KAAK8rJ,kBAAkB1lJ,KAAKw/I,GAE5B5lJ,KAAK6rJ,cAAe,KAStBrpJ,IAAK,eACLgC,MAAO,SAAsB6E,OACSnG,KAAhClD,KAAK+rJ,eAAe1iJ,KACtBrJ,KAAK+rJ,eAAe1iJ,GAAUrJ,KAAKqJ,GAAQkf,KAAKvoB,MAChDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,aAAc1U,KAAK+rJ,eAAe1iJ,IACvDrJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,uBAU3BrS,IAAK,mBACLgC,MAAO,SAA0B6E,OACKnG,KAAhClD,KAAK+rJ,eAAe1iJ,KACtBrJ,KAAKyS,KAAK8c,QAAQ5a,IAAI,aAAc3U,KAAK+rJ,eAAe1iJ,IACxDrJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,wBAChB7U,MAAK+rJ,eAAe1iJ,OAW/B7G,IAAK,OACLgC,MAAO,YACD,GAAIM,OAAO8B,UAAY5G,KAAKgoJ,UAAY,MAE1ChoJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,OAAS8U,SAAU,MAC1C3pB,KAAKgoJ,WAAY,GAAIljJ,OAAO8B,cAWhCpE,IAAK,gBACLgC,MAAO,WACL,IAAK,GAAIkoJ,KAAe1sJ,MAAK+rJ,eACvB/rJ,KAAK+rJ,eAAevqJ,eAAekrJ,KACrC1sJ,KAAKyS,KAAK8c,QAAQ5a,IAAI,aAAc3U,KAAK+rJ,eAAeW,IACxD1sJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,kBAG3B7U,MAAK+rJ,qBAQPvpJ,IAAK,UACLgC,MAAO,WACLxE,KAAKyS,KAAKkR,KAAK4wF,YAAY54F,GAAK3b,KAAKqP,QAAQwuE,SAASC,MAAMniE,KAQ9DnZ,IAAK,YACLgC,MAAO,WACLxE,KAAKyS,KAAKkR,KAAK4wF,YAAY54F,GAAK3b,KAAKqP,QAAQwuE,SAASC,MAAMniE,KAQ9DnZ,IAAK,YACLgC,MAAO,WACLxE,KAAKyS,KAAKkR,KAAK4wF,YAAY5kG,GAAK3P,KAAKqP,QAAQwuE,SAASC,MAAMnuE,KAQ9DnN,IAAK,aACLgC,MAAO,WACLxE,KAAKyS,KAAKkR,KAAK4wF,YAAY5kG,GAAK3P,KAAKqP,QAAQwuE,SAASC,MAAMnuE,KAQ9DnN,IAAK,UACLgC,MAAO,WACL,GAAIgmJ,GAAWxqJ,KAAKyS,KAAKkR,KAAKlf,MAC1BA,EAAQzE,KAAKyS,KAAKkR,KAAKlf,OAAS,EAAIzE,KAAKqP,QAAQwuE,SAASC,MAAMv5C,MAChEgwE,EAAcv0G,KAAKyS,KAAKkR,KAAK4wF,YAC7Bm2C,EAAYjmJ,EAAQ+lJ,EACpBG,GAAM,EAAID,GAAa1qJ,KAAK41G,OAAO+vC,iBAAiBh2I,EAAI4kG,EAAY5kG,EAAI+6I,EACxEE,GAAM,EAAIF,GAAa1qJ,KAAK41G,OAAO+vC,iBAAiBhqI,EAAI44F,EAAY54F,EAAI+uI,CAE5E1qJ,MAAKyS,KAAKkR,KAAKlf,MAAQA,EACvBzE,KAAKyS,KAAKkR,KAAK4wF,aAAgB5kG,EAAGg7I,EAAIhvI,EAAGivI,GACzC5qJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,QAAUoY,UAAW,IAAKxoB,MAAOzE,KAAKyS,KAAKkR,KAAKlf,MAAOy/B,QAAS,UASzF1hC,IAAK,WACLgC,MAAO,WACL,GAAIgmJ,GAAWxqJ,KAAKyS,KAAKkR,KAAKlf,MAC1BA,EAAQzE,KAAKyS,KAAKkR,KAAKlf,OAAS,EAAIzE,KAAKqP,QAAQwuE,SAASC,MAAMv5C,MAChEgwE,EAAcv0G,KAAKyS,KAAKkR,KAAK4wF,YAC7Bm2C,EAAYjmJ,EAAQ+lJ,EACpBG,GAAM,EAAID,GAAa1qJ,KAAK41G,OAAO+vC,iBAAiBh2I,EAAI4kG,EAAY5kG,EAAI+6I,EACxEE,GAAM,EAAIF,GAAa1qJ,KAAK41G,OAAO+vC,iBAAiBhqI,EAAI44F,EAAY54F,EAAI+uI,CAE5E1qJ,MAAKyS,KAAKkR,KAAKlf,MAAQA,EACvBzE,KAAKyS,KAAKkR,KAAK4wF,aAAgB5kG,EAAGg7I,EAAIhvI,EAAGivI,GACzC5qJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,QAAUoY,UAAW,IAAKxoB,MAAOzE,KAAKyS,KAAKkR,KAAKlf,MAAOy/B,QAAS,UAQzF1hC,IAAK,4BACLgC,MAAO,WACL,GAAIozC,GAAS53C,SAESkD,KAAlBlD,KAAKynB,UACPznB,KAAKynB,SAAS7S,WAGsB,IAAlC5U,KAAKqP,QAAQwuE,SAAS/tE,WACmB,IAAvC9P,KAAKqP,QAAQwuE,SAASE,aACxB/9E,KAAKynB,SAAWA,GAAWC,UAAW3d,OAAQF,gBAAgB,IAE9D7J,KAAKynB,SAAWA,GAAWC,UAAW1nB,KAAK41G,OAAO1iE,MAAOrpC,gBAAgB,IAG3E7J,KAAKynB,SAASmB,SAES,IAAnB5oB,KAAKgsJ,YACPhsJ,KAAKynB,SAASc,KAAK,KAAM,WACvBqvB,EAAO40G,aAAa,YACnB,WACHxsJ,KAAKynB,SAASc,KAAK,OAAQ,WACzBqvB,EAAO40G,aAAa,cACnB,WACHxsJ,KAAKynB,SAASc,KAAK,OAAQ,WACzBqvB,EAAO40G,aAAa,cACnB,WACHxsJ,KAAKynB,SAASc,KAAK,QAAS,WAC1BqvB,EAAO40G,aAAa,eACnB,WACHxsJ,KAAKynB,SAASc,KAAK,IAAK,WACtBqvB,EAAO40G,aAAa,YACnB,WACHxsJ,KAAKynB,SAASc,KAAK,OAAQ,WACzBqvB,EAAO40G,aAAa,YACnB,WACHxsJ,KAAKynB,SAASc,KAAK,OAAQ,WACzBqvB,EAAO40G,aAAa,aACnB,WACHxsJ,KAAKynB,SAASc,KAAK,IAAK,WACtBqvB,EAAO40G,aAAa,aACnB,WACHxsJ,KAAKynB,SAASc,KAAK,IAAK,WACtBqvB,EAAO40G,aAAa,aACnB,WACHxsJ,KAAKynB,SAASc,KAAK,IAAK,WACtBqvB,EAAO40G,aAAa,YACnB,WACHxsJ,KAAKynB,SAASc,KAAK,SAAU,WAC3BqvB,EAAO40G,aAAa,YACnB,WACHxsJ,KAAKynB,SAASc,KAAK,WAAY,WAC7BqvB,EAAO40G,aAAa,aACnB,WAEHxsJ,KAAKynB,SAASc,KAAK,KAAM,WACvBqvB,EAAO+0G,iBAAiB,YACvB,SACH3sJ,KAAKynB,SAASc,KAAK,OAAQ,WACzBqvB,EAAO+0G,iBAAiB,cACvB,SACH3sJ,KAAKynB,SAASc,KAAK,OAAQ,WACzBqvB,EAAO+0G,iBAAiB,cACvB,SACH3sJ,KAAKynB,SAASc,KAAK,QAAS,WAC1BqvB,EAAO+0G,iBAAiB,eACvB,SACH3sJ,KAAKynB,SAASc,KAAK,IAAK,WACtBqvB,EAAO+0G,iBAAiB,YACvB,SACH3sJ,KAAKynB,SAASc,KAAK,OAAQ,WACzBqvB,EAAO+0G,iBAAiB,YACvB,SACH3sJ,KAAKynB,SAASc,KAAK,OAAQ,WACzBqvB,EAAO+0G,iBAAiB,aACvB,SACH3sJ,KAAKynB,SAASc,KAAK,IAAK,WACtBqvB,EAAO+0G,iBAAiB,aACvB,SACH3sJ,KAAKynB,SAASc,KAAK,IAAK,WACtBqvB,EAAO+0G,iBAAiB,aACvB,SACH3sJ,KAAKynB,SAASc,KAAK,IAAK,WACtBqvB,EAAO+0G,iBAAiB,YACvB,SACH3sJ,KAAKynB,SAASc,KAAK,SAAU,WAC3BqvB,EAAO+0G,iBAAiB,YACvB,SACH3sJ,KAAKynB,SAASc,KAAK,WAAY,WAC7BqvB,EAAO+0G,iBAAiB,aACvB,eAKJ1D,IAGTtpJ,GAAiB,QAAIspJ,GAIf,SAAUrpJ,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC+d,EAAOx6B,EAAoB,IAAa,QACxC87C,EAAO97C,EAAoB,IAAa,QAExC2V,EAAO3V,EAAoB,GAM3BslI,EAAmB,WAKrB,QAASA,GAAiB/yH,EAAMmjG,GAC9B,GAAIhgE,GAAQ51C,MAEZ,EAAI0c,EAA0B,SAAG1c,KAAMwlI,GAEvCxlI,KAAKyS,KAAOA,EACZzS,KAAK41G,OAASA,EACd51G,KAAKqqJ,cAAiBnsG,SAAWrjB,UACjC76B,KAAK4sJ,UAAa1uG,SAAWrjB,UAE7B76B,KAAKqP,WACLrP,KAAKs0B,gBACHi8B,aAAa,EACbD,YAAY,EACZ2tB,sBAAsB,EACtBC,qBAAqB,GAEvBroE,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBAE/Bt0B,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WACnCkhC,EAAMi3G,oBAk5BV,OAx4BA,EAAIjwI,EAAuB,SAAG4oH,IAC5BhjI,IAAK,aACLgC,MAAO,SAAoB6K,GACzB,OAAgBnM,KAAZmM,EAAuB,CACzB,GAAIX,IAAU,cAAe,sBAAuB,aAAc,uBAClEmH,GAAK/P,oBAAoB4I,EAAQ1O,KAAKqP,QAASA,OAYnD7M,IAAK,gBACLgC,MAAO,SAAuB0/B,GAC5B,GAAIzgB,IAAW,CACf,KAAgC,IAA5BzjB,KAAKqP,QAAQihD,WAAqB,CACpC,GAAIruD,GAAMjC,KAAKqpI,UAAUnlG,IAAYlkC,KAAKspI,UAAUplG,EAGpDlkC,MAAKknI,kBAEOhkI,KAARjB,IACFwhB,EAAWzjB,KAAKoqJ,aAAanoJ,IAE/BjC,KAAKyS,KAAK8c,QAAQ1a,KAAK,kBAEzB,MAAO4O,MAUTjhB,IAAK,0BACLgC,MAAO,SAAiC0/B,GACtC,GAAI4oH,IAAmB,CACvB,KAAgC,IAA5B9sJ,KAAKqP,QAAQihD,WAAqB,CACpC,GAAIruD,GAAMjC,KAAKqpI,UAAUnlG,IAAYlkC,KAAKspI,UAAUplG,OAExChhC,KAARjB,IACF6qJ,GAAmB,GACM,IAArB7qJ,EAAIojJ,aACNrlJ,KAAK+sJ,eAAe9qJ,GAEpBjC,KAAKoqJ,aAAanoJ,GAGpBjC,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBAG3B,MAAOi4I,MAaTtqJ,IAAK,iBACLgC,MAAO,SAAwBsF,EAAOo6B,GACpC,GAAI8C,KAQJ,OANAA,GAAoB,SAClBgmH,KAAOr9I,EAAGu0B,EAAQv0B,EAAGgM,EAAGuoB,EAAQvoB,GAChCi6F,OAAQ51G,KAAK41G,OAAO4xB,YAAYtjG,IAElC8C,EAAkB,MAAIl9B,EAEfk9B,KAiBTxkC,IAAK,sBACLgC,MAAO,SAA6Bm/G,EAAW75G,EAAOo6B,EAASw0B,GAC7D,GAAIu0F,GAAiB1nJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAEhFyhC,EAAahnC,KAAKktJ,eAAepjJ,EAAOo6B,EAE5C,KAAuB,IAAnB+oH,EACFjmH,EAAWkX,SACXlX,EAAWnM,aACN,CACL,GAAImD,GAAMh+B,KAAK4zD,cACf5sB,GAAWkX,MAAQlgB,EAAIkgB,MACvBlX,EAAWnM,MAAQmD,EAAInD,UAGJ33B,KAAjBw1D,IACF1xB,EAA8B,kBAAI0xB,GAGnB,SAAbirD,IAGF38E,EAAWtwB,MAAQ1W,KAAKmtJ,gBAAgBjpH,IAG1ClkC,KAAKyS,KAAK8c,QAAQ1a,KAAK8uG,EAAW38E,MAWpCxkC,IAAK,eACLgC,MAAO,SAAsBvC,GAC3B,GAAImrJ,GAAiB7nJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAKvF,KAAKqP,QAAQ4uE,oBAEtG,YAAY/6E,KAARjB,IACEA,YAAey4B,KACM,IAAnB0yH,GACFptJ,KAAKqtJ,sBAAsBprJ,GAG/BA,EAAIqsB,SACJtuB,KAAKstJ,gBAAgBrrJ,IACd,MAWXO,IAAK,iBACLgC,MAAO,SAAwBvC,IACJ,IAArBA,EAAIojJ,eACNpjJ,EAAIwhB,UAAW,EACfzjB,KAAKutJ,qBAAqBtrJ,OAY9BO,IAAK,8BACLgC,MAAO,SAAqCnD,GAG1C,IAAK,GAFDiqJ,MACAptG,EAAQl+C,KAAKyS,KAAKyrC,MACb79C,EAAI,EAAGA,EAAIL,KAAKyS,KAAK2nE,YAAY/3E,OAAQhC,IAAK,CACrD,GAAI68B,GAASl9B,KAAKyS,KAAK2nE,YAAY/5E,EAC/B69C,GAAMhhB,GAAQwiB,kBAAkBr+C,IAClCiqJ,EAAiBllJ,KAAK82B,GAG1B,MAAOouH,MAYT9oJ,IAAK,2BACLgC,MAAO,SAAkC0/B,GACvC,GAAIspH,GAAYxtJ,KAAK41G,OAAO4xB,YAAYtjG,EACxC,QACEx8B,KAAM8lJ,EAAU79I,EAAI,EACpB7H,IAAK0lJ,EAAU7xI,EAAI,EACnB/T,MAAO4lJ,EAAU79I,EAAI,EACrB0S,OAAQmrI,EAAU7xI,EAAI,MAa1BnZ,IAAK,YACLgC,MAAO,SAAmB0/B,GACxB,GAAIupH,KAAaloJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,GAG5EmoJ,EAAiB1tJ,KAAK0rJ,yBAAyBxnH,GAC/ConH,EAAmBtrJ,KAAK2tJ,4BAA4BD,EAGxD,OAAIpC,GAAiBjpJ,OAAS,GACT,IAAforJ,EACKztJ,KAAKyS,KAAKyrC,MAAMotG,EAAiBA,EAAiBjpJ,OAAS,IAE3DipJ,EAAiBA,EAAiBjpJ,OAAS,OAGpD,MAYJG,IAAK,2BACLgC,MAAO,SAAkCnD,EAAQkqJ,GAE/C,IAAK,GADD1wH,GAAQ76B,KAAKyS,KAAKooB,MACbx6B,EAAI,EAAGA,EAAIL,KAAKyS,KAAK8xH,YAAYliI,OAAQhC,IAAK,CACrD,GAAIo/C,GAASz/C,KAAKyS,KAAK8xH,YAAYlkI,EAC/Bw6B,GAAM4kB,GAAQC,kBAAkBr+C,IAClCkqJ,EAAiBnlJ,KAAKq5C,OAa5Bj9C,IAAK,8BACLgC,MAAO,SAAqCnD,GAC1C,GAAIkqJ,KAEJ,OADAvrJ,MAAK4tJ,yBAAyBvsJ,EAAQkqJ,GAC/BA,KAYT/oJ,IAAK,YACLgC,MAAO,SAAmB0/B,GAQxB,IAAK,GAPD2pH,KAAatoJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,GAG5EioJ,EAAYxtJ,KAAK41G,OAAO4xB,YAAYtjG,GACpC4pH,EAAU,GACVC,EAAkB,KAClBlzH,EAAQ76B,KAAKyS,KAAKooB,MACbx6B,EAAI,EAAGA,EAAIL,KAAKyS,KAAK8xH,YAAYliI,OAAQhC,IAAK,CACrD,GAAIo/C,GAASz/C,KAAKyS,KAAK8xH,YAAYlkI,GAC/B66B,EAAOL,EAAM4kB,EACjB,IAAIvkB,EAAKshB,UAAW,CAClB,GAAImD,GAAQzkB,EAAKmhB,KAAK1sC,EAClBiwC,EAAQ1kB,EAAKmhB,KAAK1gC,EAClBkkC,EAAM3kB,EAAKohB,GAAG3sC,EACdmwC,EAAM5kB,EAAKohB,GAAG3gC,EACdu6F,EAAOh7E,EAAKqhB,SAAS0D,kBAAkBN,EAAOC,EAAOC,EAAKC,EAAK0tG,EAAU79I,EAAG69I,EAAU7xI,EACtFu6F,GAAO43C,IACTC,EAAkBtuG,EAClBquG,EAAU53C,IAIhB,MAAwB,QAApB63C,GACiB,IAAfF,EACK7tJ,KAAKyS,KAAKooB,MAAMkzH,GAEhBA,MAGT,MAYJvrJ,IAAK,kBACLgC,MAAO,SAAyBvC,GAC1BA,YAAey4B,GACjB16B,KAAKqqJ,aAAansG,MAAMj8C,EAAIqU,IAAMrU,EAElCjC,KAAKqqJ,aAAaxvH,MAAM54B,EAAIqU,IAAMrU,KAYtCO,IAAK,cACLgC,MAAO,SAAqBvC,GACtBA,YAAey4B,GACjB16B,KAAK4sJ,SAAS1uG,MAAMj8C,EAAIqU,IAAMrU,EAE9BjC,KAAK4sJ,SAAS/xH,MAAM54B,EAAIqU,IAAMrU,KAYlCO,IAAK,uBACLgC,MAAO,SAA8BvC,GAC/BA,YAAey4B,UACV16B,MAAKqqJ,aAAansG,MAAMj8C,EAAIqU,IACnCtW,KAAKguJ,wBAAwB/rJ,UAEtBjC,MAAKqqJ,aAAaxvH,MAAM54B,EAAIqU,OASvC9T,IAAK,cACLgC,MAAO,WACL,IAAK,GAAI04B,KAAUl9B,MAAKqqJ,aAAansG,MAC/Bl+C,KAAKqqJ,aAAansG,MAAM18C,eAAe07B,IACzCl9B,KAAKqqJ,aAAansG,MAAMhhB,GAAQ3O,UAGpC,KAAK,GAAIkxB,KAAUz/C,MAAKqqJ,aAAaxvH,MAC/B76B,KAAKqqJ,aAAaxvH,MAAMr5B,eAAei+C,IACzCz/C,KAAKqqJ,aAAaxvH,MAAM4kB,GAAQlxB,UAIpCvuB,MAAKqqJ,cAAiBnsG,SAAWrjB,aAWnCr4B,IAAK,wBACLgC,MAAO,WACL,GAAI2U,GAAQ,CACZ,KAAK,GAAI+jB,KAAUl9B,MAAKqqJ,aAAansG,MAC/Bl+C,KAAKqqJ,aAAansG,MAAM18C,eAAe07B,KACzC/jB,GAAS,EAGb,OAAOA,MAWT3W,IAAK,mBACLgC,MAAO,WACL,IAAK,GAAI04B,KAAUl9B,MAAKqqJ,aAAansG,MACnC,GAAIl+C,KAAKqqJ,aAAansG,MAAM18C,eAAe07B,GACzC,MAAOl9B,MAAKqqJ,aAAansG,MAAMhhB,MAcrC16B,IAAK,mBACLgC,MAAO,WACL,IAAK,GAAIi7C,KAAUz/C,MAAKqqJ,aAAaxvH,MACnC,GAAI76B,KAAKqqJ,aAAaxvH,MAAMr5B,eAAei+C,GACzC,MAAOz/C,MAAKqqJ,aAAaxvH,MAAM4kB,MAcrCj9C,IAAK,wBACLgC,MAAO,WACL,GAAI2U,GAAQ,CACZ,KAAK,GAAIsmC,KAAUz/C,MAAKqqJ,aAAaxvH,MAC/B76B,KAAKqqJ,aAAaxvH,MAAMr5B,eAAei+C,KACzCtmC,GAAS,EAGb,OAAOA,MAWT3W,IAAK,0BACLgC,MAAO,WACL,GAAI2U,GAAQ,CACZ,KAAK,GAAI+jB,KAAUl9B,MAAKqqJ,aAAansG,MAC/Bl+C,KAAKqqJ,aAAansG,MAAM18C,eAAe07B,KACzC/jB,GAAS;uFAGb,KAAK,GAAIsmC,KAAUz/C,MAAKqqJ,aAAaxvH,MAC/B76B,KAAKqqJ,aAAaxvH,MAAMr5B,eAAei+C,KACzCtmC,GAAS,EAGb,OAAOA,MAWT3W,IAAK,oBACLgC,MAAO,WACL,IAAK,GAAI04B,KAAUl9B,MAAKqqJ,aAAansG,MACnC,GAAIl+C,KAAKqqJ,aAAansG,MAAM18C,eAAe07B,GACzC,OAAO,CAGX,KAAK,GAAIuiB,KAAUz/C,MAAKqqJ,aAAaxvH,MACnC,GAAI76B,KAAKqqJ,aAAaxvH,MAAMr5B,eAAei+C,GACzC,OAAO,CAGX,QAAO,KAWTj9C,IAAK,sBACLgC,MAAO,WACL,IAAK,GAAI04B,KAAUl9B,MAAKqqJ,aAAansG,MACnC,GAAIl+C,KAAKqqJ,aAAansG,MAAM18C,eAAe07B,IACrCl9B,KAAKqqJ,aAAansG,MAAMhhB,GAAQ+wH,YAAc,EAChD,OAAO,CAIb,QAAO,KAWTzrJ,IAAK,wBACLgC,MAAO,SAA+B68C,GACpC,IAAK,GAAIhhD,GAAI,EAAGA,EAAIghD,EAAKxmB,MAAMx4B,OAAQhC,IAAK,CAC1C,GAAI66B,GAAOmmB,EAAKxmB,MAAMx6B,EACtB66B,GAAK5M,SACLtuB,KAAKstJ,gBAAgBpyH,OAYzB14B,IAAK,uBACLgC,MAAO,SAA8B68C,GACnC,IAAK,GAAIhhD,GAAI,EAAGA,EAAIghD,EAAKxmB,MAAMx4B,OAAQhC,IAAK,CAC1C,GAAI66B,GAAOmmB,EAAKxmB,MAAMx6B,EACtB66B,GAAKhuB,OAAQ,EACblN,KAAKkuJ,YAAYhzH,OAYrB14B,IAAK,0BACLgC,MAAO,SAAiC68C,GACtC,IAAK,GAAIhhD,GAAI,EAAGA,EAAIghD,EAAKxmB,MAAMx4B,OAAQhC,IAAK,CAC1C,GAAI66B,GAAOmmB,EAAKxmB,MAAMx6B,EACtB66B,GAAK3M,WACLvuB,KAAKutJ,qBAAqBryH,OAc9B14B,IAAK,gBACLgC,MAAO,SAAuBsF,EAAOo6B,EAAS7iC,GAC5C,GAAI2lC,GAAahnC,KAAKktJ,eAAepjJ,EAAOo6B,IAEvB,IAAjB7iC,EAAO6L,QACT7L,EAAO6L,OAAQ,EACX7L,YAAkBq5B,IACpBsM,EAAWqa,KAAOhgD,EAAOiV,GACzBtW,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAYmyB,KAEnCA,EAAW9L,KAAO75B,EAAOiV,GACzBtW,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAYmyB,QAgBzCxkC,IAAK,iBACLgC,MAAO,SAAwBsF,EAAOo6B,EAAS7iC,GAC7C,GAAI2lC,GAAahnC,KAAKktJ,eAAepjJ,EAAOo6B,GACxCiqH,GAAe,CAenB,QAbqB,IAAjB9sJ,EAAO6L,QACT7L,EAAO6L,OAAQ,EACflN,KAAKkuJ,YAAY7sJ,GACjB8sJ,GAAe,EACX9sJ,YAAkBq5B,IACpBsM,EAAWqa,KAAOhgD,EAAOiV,GACzBtW,KAAKyS,KAAK8c,QAAQ1a,KAAK,YAAamyB,KAEpCA,EAAW9L,KAAO75B,EAAOiV,GACzBtW,KAAKyS,KAAK8c,QAAQ1a,KAAK,YAAamyB,KAIjCmnH,KAWT3rJ,IAAK,cACLgC,MAAO,SAAqBsF,EAAOo6B,GACjC,GAAI7iC,GAASrB,KAAKqpI,UAAUnlG,OACbhhC,KAAX7B,IACFA,EAASrB,KAAKspI,UAAUplG,GAG1B,IAAIiqH,IAAe,CAEnB,KAAK,GAAIjxH,KAAUl9B,MAAK4sJ,SAAS1uG,MAC3Bl+C,KAAK4sJ,SAAS1uG,MAAM18C,eAAe07B,SACtBh6B,KAAX7B,GAAwBA,YAAkBq5B,IAAQr5B,EAAOiV,IAAM4mB,GAAU77B,YAAkB26C,MAC7Fh8C,KAAKouJ,cAActkJ,EAAOo6B,EAASlkC,KAAK4sJ,SAAS1uG,MAAMhhB,UAChDl9B,MAAK4sJ,SAAS1uG,MAAMhhB,GAC3BixH,GAAe,EAMrB,KAAK,GAAI1uG,KAAUz/C,MAAK4sJ,SAAS/xH,MAC3B76B,KAAK4sJ,SAAS/xH,MAAMr5B,eAAei+C,MAGhB,IAAjB0uG,GACFnuJ,KAAK4sJ,SAAS/xH,MAAM4kB,GAAQvyC,OAAQ,QAC7BlN,MAAK4sJ,SAAS/xH,MAAM4kB,SAITv8C,KAAX7B,GAAwBA,YAAkB26C,IAAQ36C,EAAOiV,IAAMmpC,GAAUp+C,YAAkBq5B,KAASr5B,EAAO6L,SAChHlN,KAAKouJ,cAActkJ,EAAOo6B,EAASlkC,KAAK4sJ,SAAS/xH,MAAM4kB,UAChDz/C,MAAK4sJ,SAAS/xH,MAAM4kB,GAC3B0uG,GAAe,QAKRjrJ,KAAX7B,IACF8sJ,EAAeA,GAAgBnuJ,KAAKquJ,eAAevkJ,EAAOo6B,EAAS7iC,GAC/DA,YAAkBq5B,KAA6C,IAArC16B,KAAKqP,QAAQ6uE,qBACzCl+E,KAAKsuJ,qBAAqBjtJ,KAIT,IAAjB8sJ,GACFnuJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,qBAW3BrS,IAAK,eACLgC,MAAO,WAGL,OAAS05C,MAFKl+C,KAAKmpI,mBAEMtuG,MADX76B,KAAKopI,uBAYrB5mI,IAAK,mBACLgC,MAAO,WACL,GAAI+pJ,KACJ,KAAgC,IAA5BvuJ,KAAKqP,QAAQihD,WACf,IAAK,GAAIpzB,KAAUl9B,MAAKqqJ,aAAansG,MAC/Bl+C,KAAKqqJ,aAAansG,MAAM18C,eAAe07B,IACzCqxH,EAAQnoJ,KAAKpG,KAAKqqJ,aAAansG,MAAMhhB,GAAQ5mB,GAInD,OAAOi4I,MAWT/rJ,IAAK,mBACLgC,MAAO,WACL,GAAI+pJ,KACJ,KAAgC,IAA5BvuJ,KAAKqP,QAAQihD,WACf,IAAK,GAAI7Q,KAAUz/C,MAAKqqJ,aAAaxvH,MAC/B76B,KAAKqqJ,aAAaxvH,MAAMr5B,eAAei+C,IACzC8uG,EAAQnoJ,KAAKpG,KAAKqqJ,aAAaxvH,MAAM4kB,GAAQnpC,GAInD,OAAOi4I,MAUT/rJ,IAAK,eACLgC,MAAO,SAAsB4tD,GAC3B,GAAI/iD,GAAU9J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,MAEzElF,MAAI,GACJiW,MAAK,EAET,KAAK87C,IAAcA,EAAUlU,QAAUkU,EAAUv3B,MAAO,KAAM,gEAK9D,KAHIxrB,EAAQ63H,iBAAuChkI,KAAxBmM,EAAQ63H,cACjClnI,KAAKknI,cAEH90E,EAAUlU,MACZ,IAAK79C,EAAI,EAAGA,EAAI+xD,EAAUlU,MAAM77C,OAAQhC,IAAK,CAC3CiW,EAAK87C,EAAUlU,MAAM79C,EAErB,IAAIghD,GAAOrhD,KAAKyS,KAAKyrC,MAAM5nC,EAC3B,KAAK+qC,EACH,KAAM,IAAImtG,YAAW,iBAAmBl4I,EAAK,cAG/CtW,MAAKoqJ,aAAa/oG,EAAMhyC,EAAQ+9I,gBAIpC,GAAIh7F,EAAUv3B,MACZ,IAAKx6B,EAAI,EAAGA,EAAI+xD,EAAUv3B,MAAMx4B,OAAQhC,IAAK,CAC3CiW,EAAK87C,EAAUv3B,MAAMx6B,EAErB,IAAI66B,GAAOl7B,KAAKyS,KAAKooB,MAAMvkB,EAC3B,KAAK4kB,EACH,KAAM,IAAIszH,YAAW,iBAAmBl4I,EAAK,cAE/CtW,MAAKoqJ,aAAalvH,GAGtBl7B,KAAKyS,KAAK8c,QAAQ1a,KAAK,qBAWzBrS,IAAK,cACLgC,MAAO,SAAqB4tD,GAC1B,GAAIg7F,KAAiB7nJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,KAAmBA,UAAU,EAEpF,KAAK6sD,OAAkClvD,KAArBkvD,EAAU/vD,OAAsB,KAAM,qCAExDrC,MAAK2zD,cAAezV,MAAOkU,IAAeg7F,eAAgBA,OAU5D5qJ,IAAK,cACLgC,MAAO,SAAqB4tD,GAC1B,IAAKA,OAAkClvD,KAArBkvD,EAAU/vD,OAAsB,KAAM,qCAExDrC,MAAK2zD,cAAe94B,MAAOu3B,OAS7B5vD,IAAK,kBACLgC,MAAO,WACL,IAAK,GAAI04B,KAAUl9B,MAAKqqJ,aAAansG,MAC/Bl+C,KAAKqqJ,aAAansG,MAAM18C,eAAe07B,KACpCl9B,KAAKyS,KAAKyrC,MAAM18C,eAAe07B,UAC3Bl9B,MAAKqqJ,aAAansG,MAAMhhB,GAIrC,KAAK,GAAIuiB,KAAUz/C,MAAKqqJ,aAAaxvH,MAC/B76B,KAAKqqJ,aAAaxvH,MAAMr5B,eAAei+C,KACpCz/C,KAAKyS,KAAKooB,MAAMr5B,eAAei+C,UAC3Bz/C,MAAKqqJ,aAAaxvH,MAAM4kB,OAiCvCj9C,IAAK,kBACLgC,MAAO,SAAyB0/B,GAQ9B,IAAK,GAPDpoB,GAAQ9b,KAAK41G,OAAO4xB,YAAYtjG,GAChCxtB,KAIA0jE,EAAcp6E,KAAKyS,KAAK2nE,YACxBl8B,EAAQl+C,KAAKyS,KAAKyrC,MACb79C,EAAI+5E,EAAY/3E,OAAS,EAAGhC,GAAK,EAAGA,IAAK,CAChD,GAAIghD,GAAOnD,EAAMk8B,EAAY/5E,IACzBy8B,EAAMukB,EAAKotG,gBAAgB3yI,EAC/BpF,GAAMtQ,KAAKuT,MAAMjD,EAAOomB,GAK1B,IAAK,GAFDynG,GAAcvkI,KAAKyS,KAAK8xH,YACxB1pG,EAAQ76B,KAAKyS,KAAKooB,MACb1b,EAAKolH,EAAYliI,OAAS,EAAG8c,GAAM,EAAGA,IAAM,CACnD,GAAI+b,GAAOL,EAAM0pG,EAAYplH,IACzBuvI,EAAOxzH,EAAKuzH,gBAAgB3yI,EAChCpF,GAAMtQ,KAAKuT,MAAMjD,EAAOg4I,GAG1B,MAAOh4I,OAGJ8uH,IAGT7lI,GAAiB,QAAI6lI,GAIf,SAAU5lI,EAAQD,EAASO,GA4DjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAxBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAI8sE,GAAkBpxE,EAAoB,IAEtCqxE,EAAkB5uE,EAAuB2uE,GAEzC7tE,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCF,EAAQrD,EAAoB,GAE5BsD,EAASb,EAAuBY,GAEhCkZ,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAC3BwiD,EAAcxiD,EAAoB,IAAa,QAE/Cu6B,EAAWv6B,EAAoB,KAC/ByuJ,EAAqBl0H,EAASk0H,mBAC9BC,EAAmBn0H,EAASm0H,iBAS5BC,EAAqB,WAIvB,QAASA,MACP,EAAInyI,EAA0B,SAAG1c,KAAM6uJ,GAEvC7uJ,KAAK8uJ,qBACL9uJ,KAAK+uJ,mBACL/uJ,KAAKgvJ,SAELhvJ,KAAKivJ,wBACLjvJ,KAAKkvJ,UACLlvJ,KAAKmvJ,qBAELnvJ,KAAKovJ,QAAS,EACdpvJ,KAAKqvJ,WAAa,EAoSpB,OAzRA,EAAIzyI,EAAuB,SAAGiyI,IAC5BrsJ,IAAK,cACLgC,MAAO,SAAqB24I,EAAcL,OACK55I,KAAzClD,KAAK8uJ,kBAAkB3R,KACzBn9I,KAAK8uJ,kBAAkB3R,OAEzBn9I,KAAK8uJ,kBAAkB3R,GAAc/2I,KAAK02I,OAEA55I,KAAtClD,KAAK+uJ,gBAAgBjS,KACvB98I,KAAK+uJ,gBAAgBjS,OAEvB98I,KAAK+uJ,gBAAgBjS,GAAa12I,KAAK+2I,MAYzC36I,IAAK,cACLgC,MAAO,WACL,IAAK,GAAInE,KAAKL,MAAK+uJ,gBACjB,GAAI/uJ,KAAK+uJ,gBAAgB1uJ,GAAGgC,OAAS,EAEnC,YADArC,KAAKovJ,QAAS,EAKlBpvJ,MAAKovJ,QAAS,KAShB5sJ,IAAK,WACLgC,MAAO,WACL,MAAOxE,MAAKqvJ,UAAY,KAU1B7sJ,IAAK,eACLgC,MAAO,SAAsB68C,EAAMiuG,OAClBpsJ,KAAXosJ,OAEwBpsJ,KAAxBlD,KAAKgvJ,MAAM3tG,EAAK/qC,MAClBtW,KAAKgvJ,MAAM3tG,EAAK/qC,IAAMg5I,EACtBtvJ,KAAKqvJ,UAAY3qJ,KAAKJ,IAAIgrJ,EAAQtvJ,KAAKqvJ,eAa3C7sJ,IAAK,cACLgC,MAAO,SAAqB04B,OACEh6B,KAAxBlD,KAAKkvJ,OAAOhyH,KACdl9B,KAAKkvJ,OAAOhyH,GAAU,MAa1B16B,IAAK,cACLgC,MAAO,SAAqB04B,GAC1B,GAAI0Y,GAAQ51C,KAERuvJ,IAmBJ,OAjBmB,SAASC,GAAatyH,GACvC,OAA4Bh6B,KAAxBqsJ,EAAYryH,GACd,MAAOqyH,GAAYryH,EAErB,IAAI0+C,GAAQhmC,EAAMs5G,OAAOhyH,EACzB,IAAI0Y,EAAMk5G,kBAAkB5xH,GAAS,CACnC,GAAIw9C,GAAW9kC,EAAMk5G,kBAAkB5xH,EACvC,IAAIw9C,EAASr4E,OAAS,EACpB,IAAK,GAAIhC,GAAI,EAAGA,EAAIq6E,EAASr4E,OAAQhC,IACnCu7E,EAAQl3E,KAAKJ,IAAIs3E,EAAO4zE,EAAa90E,EAASr6E,KAKpD,MADAkvJ,GAAYryH,GAAU0+C,EACfA,GAGW1+C,MAUtB16B,IAAK,kBACLgC,MAAO,SAAyBirJ,EAAOC,OACPxsJ,KAA1BlD,KAAKkvJ,OAAOQ,EAAMp5I,UAEUpT,KAA1BlD,KAAKkvJ,OAAOO,EAAMn5I,MACpBtW,KAAKkvJ,OAAOO,EAAMn5I,IAAM,GAG1BtW,KAAKkvJ,OAAOQ,EAAMp5I,IAAMtW,KAAKkvJ,OAAOO,EAAMn5I,IAAM,MAWpD9T,IAAK,oBACLgC,MAAO,SAA2B05C,GAChC,GAAIyxG,GAAW,GAEf,KAAK,GAAIzyH,KAAUghB,GACbA,EAAM18C,eAAe07B,QACKh6B,KAAxBlD,KAAKkvJ,OAAOhyH,KACdyyH,EAAWjrJ,KAAKL,IAAIrE,KAAKkvJ,OAAOhyH,GAASyyH,GAM/C,KAAK,GAAI5/C,KAAW7xD,GACdA,EAAM18C,eAAeuuG,QACM7sG,KAAzBlD,KAAKkvJ,OAAOn/C,KACd/vG,KAAKkvJ,OAAOn/C,IAAY4/C,MAehCntJ,IAAK,cACLgC,MAAO,SAAqB05C,EAAO/iB,GACjC,GAAIy0H,GAAQ,IACRC,GAAS,IACTC,EAAQ,IACRC,GAAS,GAEb,KAAK,GAAI7yH,KAAUl9B,MAAKgvJ,MACtB,GAAIhvJ,KAAKgvJ,MAAMxtJ,eAAe07B,IACxBl9B,KAAKgvJ,MAAM9xH,KAAY/B,EAAO,CAChC,GAAIkmB,GAAOnD,EAAMhhB,EACjB0yH,GAAQlrJ,KAAKL,IAAIg9C,EAAK1xC,EAAGigJ,GACzBC,EAAQnrJ,KAAKJ,IAAI+8C,EAAK1xC,EAAGkgJ,GACzBC,EAAQprJ,KAAKL,IAAIg9C,EAAK1lC,EAAGm0I,GACzBC,EAAQrrJ,KAAKJ,IAAI+8C,EAAK1lC,EAAGo0I,GAK/B,OACEH,MAAOA,EACPC,MAAOA,EACPC,MAAOA,EACPC,MAAOA,MAaXvtJ,IAAK,gBACLgC,MAAO,SAAuBw6C,EAAOC,GACnC,GAAI+wG,GAAWhwJ,KAAK+uJ,gBAAgB/vG,EAAM1oC,IACtC25I,EAAWjwJ,KAAK+uJ,gBAAgB9vG,EAAM3oC,GAC1C,QAAiBpT,KAAb8sJ,OAAuC9sJ,KAAb+sJ,EAC5B,OAAO,CAGT,KAAK,GAAI5vJ,GAAI,EAAGA,EAAI2vJ,EAAS3tJ,OAAQhC,IACnC,IAAK,GAAI6O,GAAI,EAAGA,EAAI+gJ,EAAS5tJ,OAAQ6M,IACnC,GAAI8gJ,EAAS3vJ,IAAM4vJ,EAAS/gJ,GAC1B,OAAO,CAIb,QAAO,KAYT1M,IAAK,mBACLgC,MAAO,SAA0Bw6C,EAAOC,GACtC,MAAOj/C,MAAKgvJ,MAAMhwG,EAAM1oC,MAAQtW,KAAKgvJ,MAAM/vG,EAAM3oC,OAUnD9T,IAAK,YACLgC,MAAO,WACL,OAAO,EAAIhB,EAAgB,SAAGxD,KAAKivJ,yBAWrCzsJ,IAAK,gBACLgC,MAAO,SAAuB68C,EAAMu6B,OACO14E,KAArClD,KAAKivJ,qBAAqBrzE,KAC5B57E,KAAKivJ,qBAAqBrzE,MAG5B,IAAIrsE,IAAY,EACZ2gJ,EAAWlwJ,KAAKivJ,qBAAqBrzE,EACzC,KAAK,GAAIz6E,KAAK+uJ,GAEZ,GAAIA,EAAS/uJ,KAAOkgD,EAAM,CACxB9xC,GAAY,CACZ,OAICA,IACHvP,KAAKivJ,qBAAqBrzE,GAAOx1E,KAAKi7C,GACtCrhD,KAAKmvJ,kBAAkB9tG,EAAK/qC,IAAMtW,KAAKivJ,qBAAqBrzE,GAAOv5E,OAAS,OAI3EwsJ,KAQL7oB,EAAe,WAIjB,QAASA,GAAavzH,IACpB,EAAIiK,EAA0B,SAAG1c,KAAMgmI,GAEvChmI,KAAKyS,KAAOA,EAEZzS,KAAKmwJ,kBAAoBzrJ,KAAKwoC,MAAsB,IAAhBxoC,KAAK2tB,UACzCryB,KAAK65E,WAAa75E,KAAKmwJ,kBACvBnwJ,KAAKowJ,YAAa,EAClBpwJ,KAAKqP,WACLrP,KAAKqwJ,eAAkBx0H,YAEvB77B,KAAKs0B,gBACHulD,eAAY32E,GACZo7E,gBAAgB,EAChBC,cACEzuE,SAAS,EACT0uE,gBAAiB,IACjBC,YAAa,IACbC,YAAa,IACbC,eAAe,EACfC,kBAAkB,EAClBC,sBAAsB,EACtB5xD,UAAW,KACX6xD,WAAY,YAGhBjpE,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBAC/Bt0B,KAAKolI,qBA08CP,OAl8CA,EAAIxoH,EAAuB,SAAGopH,IAC5BxjI,IAAK,qBACLgC,MAAO,WACL,GAAIgzC,GAASx3C,IAEbA,MAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB,WACnC8iC,EAAO84G,4BAETtwJ,KAAKyS,KAAK8c,QAAQ7a,GAAG,cAAe,WAClC8iC,EAAO+4G,kBAETvwJ,KAAKyS,KAAK8c,QAAQ7a,GAAG,2BAA4B,WAC/C8iC,EAAO84G,4BAETtwJ,KAAKyS,KAAK8c,QAAQ7a,GAAG,oCAAqC,WACxD,IAA4C,IAAxC8iC,EAAOnoC,QAAQkvE,aAAazuE,QAAhC,CAIA,GAAIrJ,GAAO+wC,EAAOvqB,UAAUujI,WAG5Bh5G,GAAO/kC,KAAK8c,QAAQ1a,KAAK,6BAA8BpO,GAAM,SAYjEjE,IAAK,aACLgC,MAAO,SAAoB6K,EAASyN,GAClC,OAAgB5Z,KAAZmM,EAAuB,CACzB,GAAIkvE,GAAev+E,KAAKqP,QAAQkvE,aAC5BkyE,EAAwBlyE,EAAazuE,OAOzC,IANA+F,EAAK/P,qBAAqB,aAAc,kBAAmB9F,KAAKqP,QAASA,GACzEwG,EAAK1G,aAAanP,KAAKqP,QAASA,EAAS,oBACdnM,KAAvBmM,EAAQwqE,aACV75E,KAAKmwJ,kBAAoB9gJ,EAAQwqE,aAGN,IAAzB0E,EAAazuE,QAsBf,OArB8B,IAA1B2gJ,GAEFzwJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,WAAW,GAIL,OAA3B0pE,EAAatxD,WAAiD,OAA3BsxD,EAAatxD,UAC9CsxD,EAAaC,gBAAkB,IACjCD,EAAaC,kBAAoB,GAG/BD,EAAaC,gBAAkB,IACjCD,EAAaC,kBAAoB,GAIrCx+E,KAAK0wJ,uBAEL1wJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,4BAGhB7U,KAAK2wJ,qCAAqC7zI,EAEjD,KAA8B,IAA1B2zI,EAGF,MADAzwJ,MAAKyS,KAAK8c,QAAQ1a,KAAK,WAChBgB,EAAK7P,WAAW8W,EAAY9c,KAAKqwJ,eAI9C,MAAOvzI,MAUTta,IAAK,uCACLgC,MAAO,SAA8CsY,GACnD,IAA0C,IAAtC9c,KAAKqP,QAAQkvE,aAAazuE,QAAkB,CAC9C,GAAI8gJ,GAAgB5wJ,KAAKqwJ,cAAcx0H,YAGZ34B,KAAvB4Z,EAAW+e,UAAgD,IAAvB/e,EAAW+e,SACjD/e,EAAW+e,SACT/rB,YAAmC5M,KAA1B0tJ,EAAc9gJ,SAA+B8gJ,EAAc9gJ,QACpEopC,OAAQ,yBAEV03G,EAAc9gJ,YAAoC5M,KAA1B0tJ,EAAc9gJ,SAA+B8gJ,EAAc9gJ,QACnF8gJ,EAAc13G,OAAS03G,EAAc13G,QAAU,aACW,YAAjD,EAAIx1C,EAAkB,SAAGoZ,EAAW+e,UAC7C+0H,EAAc9gJ,YAAyC5M,KAA/B4Z,EAAW+e,QAAQ/rB,SAA+BgN,EAAW+e,QAAQ/rB,QAC7F8gJ,EAAc13G,OAASp8B,EAAW+e,QAAQqd,QAAU,YACpDp8B,EAAW+e,QAAQqd,OAAS,0BACI,IAAvBp8B,EAAW+e,UACpB+0H,EAAc13G,OAAS,YACvBp8B,EAAW+e,SAAYqd,OAAQ,yBAIjC,IAAIzyC,GAAOzG,KAAKitB,UAAUujI,WAI1B,QAAyBttJ,KAArB4Z,EAAW+d,MACb76B,KAAKqwJ,cAAcx1H,OAAUijB,QAAUhuC,SAAS,EAAMrJ,KAAM,YAC5DqW,EAAW+d,OAAUijB,QAAQ,OACxB,QAAgC56C,KAA5B4Z,EAAW+d,MAAMijB,OAC1B99C,KAAKqwJ,cAAcx1H,OAAUijB,QAAUhuC,SAAS,EAAMrJ,KAAM,YAC5DqW,EAAW+d,MAAMijB,QAAS,MAE1B,IAAuC,iBAA5BhhC,GAAW+d,MAAMijB,OAC1B99C,KAAKqwJ,cAAcx1H,OAAUijB,OAAQhhC,EAAW+d,MAAMijB,QACtDhhC,EAAW+d,MAAMijB,QAAWhuC,QAASgN,EAAW+d,MAAMijB,OAAQr3C,KAAMA,OAC/D,CACL,GAAIq3C,GAAShhC,EAAW+d,MAAMijB,WAGV56C,KAAhB46C,EAAOr3C,MAAsC,YAAhBq3C,EAAOr3C,OACtCA,EAAOq3C,EAAOr3C,MAIhBzG,KAAKqwJ,cAAcx1H,OACjBijB,WAA2B56C,KAAnB46C,EAAOhuC,SAA+BguC,EAAOhuC,QACrDrJ,SAAsBvD,KAAhB46C,EAAOr3C,KAAqB,UAAYq3C,EAAOr3C,KACrD22E,cAAgCl6E,KAArB46C,EAAOs/B,UAA0B,GAAMt/B,EAAOs/B,UACzDC,mBAA0Cn6E,KAA1B46C,EAAOu/B,gBAAuCv/B,EAAOu/B,gBAIvEvgE,EAAW+d,MAAMijB,QACfhuC,YAA4B5M,KAAnB46C,EAAOhuC,SAA+BguC,EAAOhuC,QACtDrJ,KAAMA,EACN22E,cAAgCl6E,KAArB46C,EAAOs/B,UAA0B,GAAMt/B,EAAOs/B,UACzDC,mBAA0Cn6E,KAA1B46C,EAAOu/B,gBAAuCv/B,EAAOu/B,gBAO3Er9E,KAAKyS,KAAK8c,QAAQ1a,KAAK,6BAA8BpO,GAGvD,MAAOqW,MASTta,IAAK,eACLgC,MAAO,WACL,GAAImL,GAAkC,IAA9BjL,KAAKke,IAAI5iB,KAAK65E,aACtB,OAAOlqE,GAAIjL,KAAKwJ,MAAMyB,MASxBnN,IAAK,oBACLgC,MAAO,SAA2B87I,GAChC,IAA0C,IAAtCtgJ,KAAKqP,QAAQkvE,aAAazuE,QAAkB,CAC9C9P,KAAK65E,WAAa75E,KAAKmwJ,iBAEvB,KAAK,GADDluI,GAASq+H,EAAWj+I,OAAS,GACxBhC,EAAI,EAAGA,EAAIigJ,EAAWj+I,OAAQhC,IAAK,CAC1C,GAAIghD,GAAOi/F,EAAWjgJ,GAClBkiB,EAAQ,EAAI7d,KAAK47C,GAAKtgD,KAAKs8E,mBAChBp5E,KAAXm+C,EAAK1xC,IACP0xC,EAAK1xC,EAAIsS,EAASvd,KAAKie,IAAIJ,QAEdrf,KAAXm+C,EAAK1lC,IACP0lC,EAAK1lC,EAAIsG,EAASvd,KAAKke,IAAIL,SAYnC/f,IAAK,gBACLgC,MAAO,WACL,IAA0C,IAAtCxE,KAAKqP,QAAQkvE,aAAazuE,UAAoD,IAAhC9P,KAAKqP,QAAQivE,eAAyB,CAMtF,IAAK,GALDuyE,GAAU7wJ,KAAKyS,KAAK2nE,YAIpB+tE,EAAkB,EACb9nJ,EAAI,EAAGA,EAAIwwJ,EAAQxuJ,OAAQhC,IAAK,EAEP,IADrBL,KAAKyS,KAAKyrC,MAAM2yG,EAAQxwJ,IAC1B46B,qBACPktH,GAAmB,GAKvB,GAAIA,EAAkB,GAAM0I,EAAQxuJ,OAAQ,CAC1C,GACIu5E,GAAQ,EAeRk1E,GACF5T,uBACE33H,MAAO,UACPtJ,MAAO,GACPuS,MAAO,GACPwM,MAAQ+hD,OAAO,IAEjB0gE,uBACExhI,MAAO,GACP+e,MAAQ+hD,OAAO,GACfj/B,QACEhuC,SAAS,IASf,IAAI+gJ,EAAQxuJ,OAlCW,IAkCgB,CAErC,IADA,GAAI0uJ,GAAcF,EAAQxuJ,OACnBwuJ,EAAQxuJ,OApCM,KAoCuBu5E,GAtC7B,IAsCkD,CAE/DA,GAAS,CACT,IAAIo1E,GAASH,EAAQxuJ,MAEjBu5E,GAAQ,GAAM,EAChB57E,KAAKyS,KAAKxS,QAAQgmI,WAAWgrB,eAAeH,GAE5C9wJ,KAAKyS,KAAKxS,QAAQgmI,WAAW+B,gBAAgB8oB,EAG/C,IAAIE,GADQH,EAAQxuJ,QACGu5E,EAAQ,GAAM,EAInC,MAHA57E,MAAKkxJ,gBACLlxJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,qBACvBqC,SAAQqjG,KAAK,gJAOjBv6G,KAAKyS,KAAKxS,QAAQkxJ,YAAYz7I,YAAaiqE,aAAcj7E,KAAKJ,IAAI,IAAK,EAAIysJ,KAEzEn1E,EA7Da,IA8Df1kE,QAAQqjG,KAAK,4GAIfv6G,KAAKyS,KAAKxS,QAAQkxJ,YAAY5Y,MAAMsY,EAAS7wJ,KAAKyS,KAAK8xH,aAAa,GAGpEvkI,KAAKoxJ,gBAIL,KAAK,GAAIjyI,GAAK,EAAGA,EAAK0xI,EAAQxuJ,OAAQ8c,IAAM,CAE1C,GAAIo8D,GAAQv7E,KAAKyS,KAAKyrC,MAAM2yG,EAAQ1xI,KACH,IAA7Bo8D,EAAMtgD,qBACRsgD,EAAM5rE,GALG,IAKG,GAAM3P,KAAKs8E,gBACvBf,EAAM5/D,GANG,IAMG,GAAM3b,KAAKs8E,iBAK3Bt8E,KAAKkxJ,gBAGLlxJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,+BAW7BrS,IAAK,iBACLgC,MAAO,WAGL,IAAK,GAFD8kB,GAAQo5B,EAAY2uG,aAAarxJ,KAAKyS,KAAKyrC,MAAOl+C,KAAKyS,KAAK2nE,aAC5Dp4C,EAAS0gB,EAAY6lG,WAAWj/H,GAC3BjpB,EAAI,EAAGA,EAAIL,KAAKyS,KAAK2nE,YAAY/3E,OAAQhC,IAAK,CACrD,GAAIghD,GAAOrhD,KAAKyS,KAAKyrC,MAAMl+C,KAAKyS,KAAK2nE,YAAY/5E,GACjDghD,GAAK1xC,GAAKqyB,EAAOryB,EACjB0xC,EAAK1lC,GAAKqmB,EAAOrmB,MAUrBnZ,IAAK,gBACLgC,MAAO,WAEL,IADA,GAAI8sJ,IAAkB,GACK,IAApBA,GAA0B,CAC/BA,GAAkB,CAClB,KAAK,GAAIjxJ,GAAI,EAAGA,EAAIL,KAAKyS,KAAK2nE,YAAY/3E,OAAQhC,KACY,IAAxDL,KAAKyS,KAAKyrC,MAAMl+C,KAAKyS,KAAK2nE,YAAY/5E,IAAIqnI,YAC5C4pB,GAAkB,EAClBtxJ,KAAKyS,KAAKxS,QAAQgmI,WAAW0B,YAAY3nI,KAAKyS,KAAK2nE,YAAY/5E,OAAQ,KAGnD,IAApBixJ,GACFtxJ,KAAKyS,KAAK8c,QAAQ1a,KAAK,oBAW7BrS,IAAK,UACLgC,MAAO,WACL,MAAOxE,MAAKmwJ,qBAWd3tJ,IAAK,0BACLgC,MAAO,WACL,IAA0C,IAAtCxE,KAAKqP,QAAQkvE,aAAazuE,SAAoB9P,KAAKyS,KAAK2nE,YAAY/3E,OAAS,EAAG,CAElF,GAAIg/C,OAAO,GACPnkB,MAAS,GACTq0H,GAAe,EACfC,GAAiB,CACrBxxJ,MAAKyxJ,mBACLzxJ,KAAKu+E,aAAe,GAAIswE,EAExB,KAAK3xH,IAAUl9B,MAAKyS,KAAKyrC,MACnBl+C,KAAKyS,KAAKyrC,MAAM18C,eAAe07B,KACjCmkB,EAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,OACIh6B,KAAvBm+C,EAAKhyC,QAAQusE,OACf21E,GAAe,EACfvxJ,KAAKu+E,aAAa2wE,OAAOhyH,GAAUmkB,EAAKhyC,QAAQusE,OAEhD41E,GAAiB,EAMvB,KAAuB,IAAnBA,IAA4C,IAAjBD,EAC7B,KAAM,IAAI1rJ,OAAM,wHAGhB,KAAuB,IAAnB2rJ,EAAyB,CAC3B,GAAI1yE,GAAa9+E,KAAKqP,QAAQkvE,aAAaO,UACxB,aAAfA,EACF9+E,KAAK0xJ,4BACmB,aAAf5yE,EACT9+E,KAAK2xJ,2BACmB,WAAf7yE,GACT9+E,KAAK4xJ,iCAKT,IAAK,GAAItkB,KAAYttI,MAAKyS,KAAKyrC,MACzBl+C,KAAKyS,KAAKyrC,MAAM18C,eAAe8rI,IACjCttI,KAAKu+E,aAAaszE,YAAYvkB,EAIlC,IAAIwkB,GAAe9xJ,KAAK+xJ,kBAGxB/xJ,MAAKgyJ,eAGLhyJ,KAAKiyJ,uBAAuBH,GAG5B9xJ,KAAKkyJ,qBAGLlyJ,KAAKoxJ,qBAUX5uJ,IAAK,qBACLgC,MAAO,WACL,GAAIozC,GAAS53C,KAGTmyJ,GAAgB,EAChBC,KAcAC,EAAY,SAAmBl3H,EAAOvR,GACxC,GAAIolI,GAAQp3G,EAAO2mC,aAAaywE,KAEhC,KAAK,GAAI9xH,KAAU8xH,GACbA,EAAMxtJ,eAAe07B,IACnB8xH,EAAM9xH,KAAY/B,GACpByc,EAAO3qB,UAAU5R,MAAM6hB,EAAQtT,IAOnC0oI,EAAe,WAEjB,IAAK,GADDC,MACKlyJ,EAAI,EAAGA,EAAIu3C,EAAO2mC,aAAai0E,WAAYnyJ,IAClDkyJ,EAAWnsJ,KAAKwxC,EAAO3qB,UAAUwlI,YAAYpyJ,GAE/C,OAAOkyJ,IAILG,EAAiB,QAASA,GAAexyI,EAAQ9T,GACnD,IAAIA,EAAI8T,EAAO5J,MAGflK,EAAI8T,EAAO5J,KAAM,EACbshC,EAAO2mC,aAAauwE,kBAAkB5uI,EAAO5J,KAAK,CACpD,GAAIokE,GAAW9iC,EAAO2mC,aAAauwE,kBAAkB5uI,EAAO5J,GAC5D,IAAIokE,EAASr4E,OAAS,EACpB,IAAK,GAAIhC,GAAI,EAAGA,EAAIq6E,EAASr4E,OAAQhC,IACnCqyJ,EAAe96G,EAAOnlC,KAAKyrC,MAAMw8B,EAASr6E,IAAK+L,KAQnDumJ,EAAoB,SAA2BC,GACjD,GAAIC,GAAWttJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,IAE/EutJ,EAAW,IACXC,EAAW,IACX1uJ,EAAM,IACNC,GAAO,GACX,KAAK,GAAI0uJ,KAAcJ,GACrB,GAAIA,EAAUpxJ,eAAewxJ,GAAa,CACxC,GAAI3xG,GAAOzJ,EAAOnlC,KAAKyrC,MAAM80G,GACzBp3E,EAAQhkC,EAAO2mC,aAAa2wE,OAAO7tG,EAAK/qC,IACxCjE,EAAWulC,EAAO3qB,UAAUgmI,YAAY5xG,GAIxC6xG,EAAuBt7G,EAAOu7G,oBAAoB9xG,EAAMuxG,GACxDQ,GAAuB,EAAI7hF,EAAyB,SAAG2hF,EAAsB,GAC7EG,EAAeD,EAAqB,GACpCE,EAAeF,EAAqB,EAExCN,GAAWpuJ,KAAKL,IAAIgvJ,EAAcP,GAClCC,EAAWruJ,KAAKL,IAAIivJ,EAAcP,GAG9Bn3E,GAASi3E,IACXxuJ,EAAMK,KAAKL,IAAIgO,EAAUhO,GACzBC,EAAMI,KAAKJ,IAAI+N,EAAU/N,IAK/B,OAAQD,EAAKC,EAAKwuJ,EAAUC,IAI1BQ,EAAoB,SAA2Bv0G,EAAOC,GACxD,GAAIu0G,GAAY57G,EAAO2mC,aAAak1E,YAAYz0G,EAAM1oC,IAClDo9I,EAAY97G,EAAO2mC,aAAak1E,YAAYx0G,EAAM3oC,GACtD,OAAO5R,MAAKL,IAAImvJ,EAAWE,IAUzBC,EAAsB,SAA6BhrJ,EAAUumJ,EAAQ0E,GAGvE,IAAK,GAFDC,GAAOj8G,EAAO2mC,aAETl+E,EAAI,EAAGA,EAAI6uJ,EAAO7sJ,OAAQhC,IAAK,CACtC,GAAIu7E,GAAQszE,EAAO7uJ,GACfyzJ,EAAaD,EAAK5E,qBAAqBrzE,EAC3C,IAAIk4E,EAAWzxJ,OAAS,EACtB,IAAK,GAAI6M,GAAI,EAAGA,EAAI4kJ,EAAWzxJ,OAAS,EAAG6M,IAAK,CAC9C,GAAI8vC,GAAQ80G,EAAW5kJ,GACnB+vC,EAAQ60G,EAAW5kJ,EAAI,EAIvB2kJ,GAAKE,cAAc/0G,EAAOC,IAAU40G,EAAKG,iBAAiBh1G,EAAOC,IACnEt2C,EAASq2C,EAAOC,EAAO20G,MAQ7BK,EAAsB,SAA6Bj1G,EAAOC,GAC5D,GAAIi1G,GAAe3uJ,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAG9E+lG,EAAO1zD,EAAO3qB,UAAUgmI,YAAYj0G,GACpCusD,EAAO3zD,EAAO3qB,UAAUgmI,YAAYh0G,GACpCk1G,EAAUzvJ,KAAKge,IAAI6oF,EAAOD,GAC1B7sB,EAAc7mC,EAAOvoC,QAAQkvE,aAAaE,WAE9C,IAAI01E,EAAU11E,EAAa,CACzB,GAAI21E,MACAC,IAEJ3B,GAAe1zG,EAAOo1G,GACtB1B,EAAezzG,EAAOo1G,EAGtB,IAAIxB,GAAWU,EAAkBv0G,EAAOC,GACpCq1G,EAAsB3B,EAAkByB,EAAcvB,GACtD0B,EAAsB5B,EAAkB0B,EAAcxB,GACtD2B,EAAOF,EAAoB,GAC3BG,EAAOF,EAAoB,GAC3BG,EAAYH,EAAoB,EAKpC,IADiB7vJ,KAAKge,IAAI8xI,EAAOC,GAChBh2E,EAAa,CAC5B,GAAI70D,GAAS4qI,EAAOC,EAAOh2E,CACvB70D,IAAU8qI,EAAYj2E,IACxB70D,GAAU8qI,EAAYj2E,GAGpB70D,EAAS,IAEXguB,EAAO+8G,YAAY11G,EAAM3oC,GAAIsT,GAC7BuoI,GAAgB,GAEK,IAAjB+B,GAAuBt8G,EAAOg9G,cAAc31G,OAOpD41G,EAAqB,SAA4Bx0E,EAAYh/B,GAW/D,IAAK,GARDnkB,GAASmkB,EAAK/qC,GACdw+I,EAAWzzG,EAAKxmB,MAChBk6H,EAAYn9G,EAAO2mC,aAAa2wE,OAAO7tG,EAAK/qC,IAG5C0+I,EAAKp9G,EAAOvoC,QAAQkvE,aAAaC,gBAAkB5mC,EAAOvoC,QAAQkvE,aAAaC,gBAC/Ey2E,KACAC,KACK70J,EAAI,EAAGA,EAAIy0J,EAASzyJ,OAAQhC,IAAK,CACxC,GAAI66B,GAAO45H,EAASz0J,EACpB,IAAI66B,EAAKghB,MAAQhhB,EAAK+gB,OAAQ,CAC5B,GAAIgkG,GAAY/kH,EAAKghB,MAAQhf,EAAShC,EAAKmhB,KAAOnhB,EAAKohB,EACvD24G,GAAeH,EAASz0J,GAAGiW,IAAM2pI,EAC7BroG,EAAO2mC,aAAa2wE,OAAOjP,EAAU3pI,IAAMy+I,GAC7CG,EAAW9uJ,KAAK80B,IAMtB,GAAIi6H,GAAQ,SAAer5I,EAAO+e,GAEhC,IAAK,GADD5T,GAAM,EACD+nH,EAAM,EAAGA,EAAMn0G,EAAMx4B,OAAQ2sI,IACpC,OAAsC9rI,KAAlC+xJ,EAAep6H,EAAMm0G,GAAK14H,IAAmB,CAC/C,GAAIzT,GAAI+0C,EAAO3qB,UAAUgmI,YAAYgC,EAAep6H,EAAMm0G,GAAK14H,KAAOwF,CACtEmL,IAAOpkB,EAAI6B,KAAK2iB,KAAKxkB,EAAIA,EAAImyJ,GAGjC,MAAO/tI,IAILmuI,EAAS,SAAgBt5I,EAAO+e,GAElC,IAAK,GADD5T,GAAM,EACD4zH,EAAM,EAAGA,EAAMhgH,EAAMx4B,OAAQw4I,IACpC,OAAsC33I,KAAlC+xJ,EAAep6H,EAAMggH,GAAKvkI,IAAmB,CAC/C,GAAIzT,GAAI+0C,EAAO3qB,UAAUgmI,YAAYgC,EAAep6H,EAAMggH,GAAKvkI,KAAOwF,CACtEmL,IAAO+tI,EAAKtwJ,KAAK48C,IAAIz+C,EAAIA,EAAImyJ,GAAK,KAGtC,MAAO/tI,IAGLouI,EAAW,SAAkBh1E,EAAYxlD,GAI3C,IAAK,GAHDy6H,GAAQ19G,EAAO3qB,UAAUgmI,YAAY5xG,GAErCk0G,KACKva,EAAM,EAAGA,EAAM36D,EAAY26D,IAAO,CACzC,GAAI5/D,GAAK+5E,EAAMG,EAAOz6H,GAClB26H,EAAMJ,EAAOE,EAAOz6H,EAOxB,IAFAy6H,GADY5wJ,KAAKJ,KADL,GACiBI,KAAKL,IADtB,GACiCK,KAAKwoC,MAAMkuC,EAAKo6E,SAGrCtyJ,KAApBqyJ,EAASD,GACX,KAEFC,GAASD,GAASta,EAEpB,MAAOsa,IA8DLA,EAAQD,EAASh1E,EAAY60E,IA3DhB,SAAoBI,GAEnC,GAAI7M,GAAe7wG,EAAO3qB,UAAUgmI,YAAY5xG,EAGhD,QAA0Bn+C,KAAtBkvJ,EAAS/wG,EAAK/qC,IAAmB,CACnC,GAAIm/I,KACJ/C,GAAerxG,EAAMo0G,GACrBrD,EAAS/wG,EAAK/qC,IAAMm/I,EAEtB,GAAIC,GAAiB/C,EAAkBP,EAAS/wG,EAAK/qC,KACjDq/I,EAAiBD,EAAe,GAChCE,EAAiBF,EAAe,GAEhCvrI,EAAOmrI,EAAQ7M,EAGfoN,EAAe,CACf1rI,GAAO,EACT0rI,EAAenxJ,KAAKL,IAAI8lB,EAAMyrI,EAAiBh+G,EAAOvoC,QAAQkvE,aAAaE,aAClEt0D,EAAO,IAChB0rI,GAAgBnxJ,KAAKL,KAAK8lB,EAAMwrI,EAAiB/9G,EAAOvoC,QAAQkvE,aAAaE,cAG3D,GAAhBo3E,IAEFj+G,EAAO+8G,YAAYtzG,EAAK/qC,GAAIu/I,GAE5B1D,GAAgB,IAgCTmD,GACXA,EAAQD,EAASh1E,EAAYy0E,GA7Bd,SAAkBQ,GAC/B,GAAI7M,GAAe7wG,EAAO3qB,UAAUgmI,YAAY5xG,GAI5Cy0G,EAAuBl+G,EAAOu7G,oBAAoB9xG,GAClD00G,GAAuB,EAAIxkF,EAAyB,SAAGukF,EAAsB,GAC7EhD,EAAWiD,EAAqB,GAChChD,EAAWgD,EAAqB,GAEhC5rI,EAAOmrI,EAAQ7M,EAEfuN,EAAcvN,CACdt+H,GAAO,EACT6rI,EAActxJ,KAAKL,IAAIokJ,GAAgBsK,EAAWn7G,EAAOvoC,QAAQkvE,aAAaE,aAAc62E,GACnFnrI,EAAO,IAChB6rI,EAActxJ,KAAKJ,IAAImkJ,GAAgBqK,EAAWl7G,EAAOvoC,QAAQkvE,aAAaE,aAAc62E,IAG1FU,IAAgBvN,IAElB7wG,EAAO3qB,UAAU6rC,YAAYzX,EAAM20G,GAEnC7D,GAAgB,IAOXmD,KA2DqC,IAA5Ct1J,KAAKqP,QAAQkvE,aAAaI,gBAlCI,SAAqC0B,GACrE,GAAI6uE,GAASt3G,EAAO2mC,aAAa03E,WACjC/G,GAASA,EAAO1O,SAChB,KAAK,GAAIngJ,GAAI,EAAGA,EAAIggF,IAClB8xE,GAAgB,EAChBwB,EAAoBM,EAAqB/E,GAAQ,IAC3B,IAAlBiD,GAH0B9xJ,OAgCJ,GArBP,WACrB,IAAK,GAAI68B,KAAU0a,GAAOnlC,KAAKyrC,MACzBtG,EAAOnlC,KAAKyrC,MAAM18C,eAAe07B,IAAS0a,EAAOg9G,cAAch9G,EAAOnlC,KAAKyrC,MAAMhhB,SAwBtC,IAA/Cl9B,KAAKqP,QAAQkvE,aAAaK,kBA5DG,SAAoCyB,GACnE,GAAI6uE,GAASt3G,EAAO2mC,aAAa03E,WACjC/G,GAASA,EAAO1O,SAChB,KAAK,GAAIngJ,GAAI,EAAGA,EAAIggF,EAAYhgF,IAAK,CACnC8xJ,GAAgB,CAChB,KAAK,GAAIjjJ,GAAI,EAAGA,EAAIggJ,EAAO7sJ,OAAQ6M,IAGjC,IAAK,GAFD0sE,GAAQszE,EAAOhgJ,GACf4kJ,EAAal8G,EAAO2mC,aAAa0wE,qBAAqBrzE,GACjD3sE,EAAI,EAAGA,EAAI6kJ,EAAWzxJ,OAAQ4M,IACrC4lJ,EAAmB,IAAMf,EAAW7kJ,GAGxC,KAAsB,IAAlBkjJ,EAEF,QA+CuB,KAG0B,IAAnDnyJ,KAAKqP,QAAQkvE,aAAaM,sBAvBC,WAC7B,GAAIqwE,GAASt3G,EAAO2mC,aAAa03E,WACjC/G,GAASA,EAAO1O,SAChB,KAAK,GAAIngJ,GAAI,EAAGA,EAAI6uJ,EAAO7sJ,OAAQhC,IAGjC,IAAK,GAFDu7E,GAAQszE,EAAO7uJ,GACfyzJ,EAAal8G,EAAO2mC,aAAa0wE,qBAAqBrzE,GACjD1sE,EAAI,EAAGA,EAAI4kJ,EAAWzxJ,OAAQ6M,IACrC0oC,EAAOg9G,cAAcd,EAAW5kJ,OA3VrB,WAGf,IAAK,GAFDgnJ,GAAY5D,IACZ6D,EAAU,EACL91J,EAAI,EAAGA,EAAI61J,EAAU7zJ,OAAS,EAAGhC,IAAK,CAE7C81J,GADWD,EAAU71J,GAAGiE,IAAM4xJ,EAAU71J,EAAI,GAAGgE,IAC7BuzC,EAAOvoC,QAAQkvE,aAAaG,YAC9C2zE,EAAUhyJ,EAAI,EAAG81J,UAsXvB3zJ,IAAK,sBACLgC,MAAO,SAA6B68C,EAAMj1C,GACxC,GAAIgqJ,IAAS,MACDlzJ,KAARkJ,IACFgqJ,GAAS,EAEX,IAAIx6E,GAAQ57E,KAAKu+E,aAAa2wE,OAAO7tG,EAAK/qC,GAC1C,QAAcpT,KAAV04E,EAAqB,CACvB,GAAIzgD,GAAQn7B,KAAKu+E,aAAa4wE,kBAAkB9tG,EAAK/qC,IACjDjE,EAAWrS,KAAKitB,UAAUgmI,YAAY5xG,GACtCm8C,EAAWx9F,KAAKu+E,aAAa0wE,qBAAqBrzE,GAClDk3E,EAAW,IACXC,EAAW,GACf,IAAc,IAAV53H,EAAa,CACf,GAAIk7H,GAAW74D,EAASriE,EAAQ,EAChC,KAAe,IAAXi7H,OAAwClzJ,KAArBkJ,EAAIiqJ,EAAS//I,MAAgC,IAAX8/I,EAAkB,CAEzEtD,EAAWzgJ,EADGrS,KAAKitB,UAAUgmI,YAAYoD,IAK7C,GAAIl7H,GAASqiE,EAASn7F,OAAS,EAAG,CAChC,GAAIi0J,GAAW94D,EAASriE,EAAQ,EAChC,KAAe,IAAXi7H,OAAwClzJ,KAArBkJ,EAAIkqJ,EAAShgJ,MAAgC,IAAX8/I,EAAkB,CACzE,GAAIG,GAAUv2J,KAAKitB,UAAUgmI,YAAYqD,EACzCvD,GAAWruJ,KAAKL,IAAI0uJ,EAAUwD,EAAUlkJ,IAI5C,OAAQygJ,EAAUC,GAElB,OAAQ,EAAG,MAWfvwJ,IAAK,gBACLgC,MAAO,SAAuB68C,GAC5B,GAAIrhD,KAAKu+E,aAAawwE,gBAAgB1tG,EAAK/qC,IAEzC,IAAK,GADDkgJ,GAAUx2J,KAAKu+E,aAAawwE,gBAAgB1tG,EAAK/qC,IAC5CjW,EAAI,EAAGA,EAAIm2J,EAAQn0J,OAAQhC,IAAK,CACvC,GAAIo2J,GAAWD,EAAQn2J,GACnB+J,EAAapK,KAAKyS,KAAKyrC,MAAMu4G,GAC7B/7E,EAAW16E,KAAKu+E,aAAauwE,kBAAkB2H,EAEnD,QAAiBvzJ,KAAbw3E,EAAwB,CAE1B,GAAIs7E,GAAch2J,KAAK02J,mBAAmBh8E,GAEtCroE,EAAWrS,KAAKitB,UAAUgmI,YAAY7oJ,GAEtCusJ,EAAuB32J,KAAKmzJ,oBAAoB/oJ,GAChDwsJ,GAAuB,EAAIrlF,EAAyB,SAAGolF,EAAsB,GAC7E7D,EAAW8D,EAAqB,GAChC7D,EAAW6D,EAAqB,GAEhCzsI,EAAO9X,EAAW2jJ,GAClB7rI,EAAO,GAAKzlB,KAAKge,IAAIyH,GAAQ4oI,EAAW/yJ,KAAKqP,QAAQkvE,aAAaE,aAAet0D,EAAO,GAAKzlB,KAAKge,IAAIyH,GAAQ2oI,EAAW9yJ,KAAKqP,QAAQkvE,aAAaE,cACrJz+E,KAAKitB,UAAU6rC,YAAY1uD,EAAY4rJ,QAejDxzJ,IAAK,yBACLgC,MAAO,SAAgCstJ,GACrC9xJ,KAAK62J,kBAEL,KAAK,GAAIj7E,KAASk2E,GAChB,GAAIA,EAAatwJ,eAAeo6E,GAAQ,CAEtC,GAAIk7E,IAAY,EAAItzJ,EAAgB,SAAGsuJ,EAAal2E,GACpDk7E,GAAY92J,KAAK+2J,mBAAmBD,GACpC92J,KAAKitB,UAAU7U,KAAK0+I,EAGpB,KAAK,GAFDE,GAAmB,EAEd32J,EAAI,EAAGA,EAAIy2J,EAAUz0J,OAAQhC,IAAK,CACzC,GAAIghD,GAAOy1G,EAAUz2J,EACrB,QAAsC6C,KAAlClD,KAAK62J,gBAAgBx1G,EAAK/qC,IAAmB,CAC/C,GAAI64H,GAAUnvI,KAAKqP,QAAQkvE,aAAaE,YACpCx9B,EAAMkuF,EAAU6nB,CAGhBA,GAAmB,IACrB/1G,EAAMjhD,KAAKitB,UAAUgmI,YAAY6D,EAAUz2J,EAAI,IAAM8uI,GAEvDnvI,KAAKitB,UAAU6rC,YAAYzX,EAAMJ,EAAK26B,GACtC57E,KAAKi3J,6BAA6B51G,EAAMu6B,EAAO36B,GAE/C+1G,UAiBVx0J,IAAK,oBACLgC,MAAO,SAA2BiyJ,EAAUS,GAC1C,GAAIC,GAAWn3J,KAAKu+E,aAAauwE,kBAAkB2H,EAGnD,QAAiBvzJ,KAAbi0J,EAAJ,CAMA,IAAK,GADDr/H,MACKz3B,EAAI,EAAGA,EAAI82J,EAAS90J,OAAQhC,IACnCy3B,EAAW1xB,KAAKpG,KAAKyS,KAAKyrC,MAAMi5G,EAAS92J,IAI3CL,MAAKitB,UAAU7U,KAAK0f,EAGpB,KAAK,GAAIs/H,GAAM,EAAGA,EAAMt/H,EAAWz1B,OAAQ+0J,IAAO,CAChD,GAAI7Z,GAAYzlH,EAAWs/H,GACvBC,EAAiBr3J,KAAKu+E,aAAa2wE,OAAO3R,EAAUjnI,GAExD,MAAI+gJ,EAAiBH,OAAsDh0J,KAAvClD,KAAK62J,gBAAgBtZ,EAAUjnI,KAejE,MAbA,IAAI64H,GAAUnvI,KAAKqP,QAAQkvE,aAAaE,YACpCx9B,MAAM,EAKRA,GADU,IAARm2G,EACIp3J,KAAKitB,UAAUgmI,YAAYjzJ,KAAKyS,KAAKyrC,MAAMu4G,IAE3Cz2J,KAAKitB,UAAUgmI,YAAYn7H,EAAWs/H,EAAM,IAAMjoB,EAE1DnvI,KAAKitB,UAAU6rC,YAAYykF,EAAWt8F,EAAKo2G,GAC3Cr3J,KAAKi3J,6BAA6B1Z,EAAW8Z,EAAgBp2G,GAOjE,GAAIjf,GAAShiC,KAAK02J,mBAAmB5+H,EACrC93B,MAAKitB,UAAU6rC,YAAY94D,KAAKyS,KAAKyrC,MAAMu4G,GAAWz0H,EAAQk1H,OAahE10J,IAAK,+BACLgC,MAAO,SAAsC68C,EAAMu6B,EAAO36B,GAGxD,GAAKjhD,KAAKu+E,aAAa6wE,OAAvB,CAGA,OAAoClsJ,KAAhClD,KAAKyxJ,gBAAgB71E,GAAsB,CAC7C,GAAI07E,GAAct3J,KAAKitB,UAAUgmI,YAAYjzJ,KAAKyS,KAAKyrC,MAAMl+C,KAAKyxJ,gBAAgB71E,IAClF,IAAI36B,EAAMq2G,EAAct3J,KAAKqP,QAAQkvE,aAAaE,YAAa,CAC7D,GAAIt0D,GAAOmtI,EAAct3J,KAAKqP,QAAQkvE,aAAaE,YAAcx9B,EAC7Ds2G,EAAev3J,KAAKw3J,kBAAkBx3J,KAAKyxJ,gBAAgB71E,GAAQv6B,EAAK/qC,GAC5EtW,MAAK20J,YAAY4C,EAAaE,UAAWttI,IAI7CnqB,KAAKyxJ,gBAAgB71E,GAASv6B,EAAK/qC,GACnCtW,KAAK62J,gBAAgBx1G,EAAK/qC,KAAM,EAChCtW,KAAK03J,kBAAkBr2G,EAAK/qC,GAAIslE,OAWlCp5E,IAAK,qBACLgC,MAAO,SAA4B+pJ,GAEjC,IAAK,GADD1lJ,MACKxI,EAAI,EAAGA,EAAIkuJ,EAAQlsJ,OAAQhC,IAClCwI,EAAMzC,KAAKpG,KAAKyS,KAAKyrC,MAAMqwG,EAAQluJ,IAErC,OAAOwI,MAWTrG,IAAK,mBACLgC,MAAO,WACL,GAAIstJ,MACA50H,MAAS,GACTmkB,MAAO,EAKX,KAAKnkB,IAAUl9B,MAAKyS,KAAKyrC,MACvB,GAAIl+C,KAAKyS,KAAKyrC,MAAM18C,eAAe07B,GAAS,CAC1CmkB,EAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,EACvB,IAAI0+C,OAA6C14E,KAArClD,KAAKu+E,aAAa2wE,OAAOhyH,GAAwB,EAAIl9B,KAAKu+E,aAAa2wE,OAAOhyH,EAC1Fl9B,MAAKitB,UAAU0qI,IAAIt2G,EAAMu6B,OACG14E,KAAxB4uJ,EAAal2E,KACfk2E,EAAal2E,OAEfk2E,EAAal2E,GAAO1+C,GAAUmkB,EAGlC,MAAOywG,MAYTtvJ,IAAK,kBACLgC,MAAO,SAAyB68C,GAC9B,GAAIrJ,GAASh4C,KAETqL,IAQJ,OANAwK,GAAKnN,QAAQ24C,EAAKxmB,MAAO,SAAUK,IACiB,IAA9C8c,EAAOvlC,KAAK8xH,YAAYp+H,QAAQ+0B,EAAK5kB,KACvCjL,EAAOjF,KAAK80B,KAIT7vB,KAWT7I,IAAK,eACLgC,MAAO,WACL,GAAI4zC,GAASp4C,KAET43J,KACA9e,EAAU94I,KAAKyS,KAAK2nE,WAExBvkE,GAAKnN,QAAQowI,EAAS,SAAU57G,GAC9B,GAAImkB,GAAOjJ,EAAO3lC,KAAKyrC,MAAMhhB,GACzB26H,EAAUz/G,EAAO0/G,gBAAgBz2G,GAAMh/C,MAC3Cu1J,GAASC,IAAW,GAItB,IAAIxsJ,KASJ,OARAwK,GAAKnN,QAAQkvJ,EAAU,SAAU57I,GAC/B3Q,EAAOjF,KAAKtC,OAAOkY,MAGrB3Q,EAAO+M,KAAK,SAAUvV,EAAGC,GACvB,MAAOA,GAAID,IAGNwI,KAUT7I,IAAK,4BACLgC,MAAO,WAsBL,IAAK,GArBDuzJ,GAAS/3J,KAETg4J,EAAkB,SAAyBvI,EAAOC,GACpDqI,EAAOx5E,aAAay5E,gBAAgBvI,EAAOC,IAGzCkI,EAAW53J,KAAKi4J,eAeX53J,EAAI,EAAGA,EAAIu3J,EAASv1J,SAAUhC,EAAG,CAGxC,GAAa,UAhBH,SAAeA,GACzB,GAAIw3J,GAAUD,EAASv3J,EACvB,IAAgB,IAAZw3J,EAAe,MAAO,OAE1BhiJ,GAAKnN,QAAQqvJ,EAAOtlJ,KAAK2nE,YAAa,SAAUl9C,GAC9C,GAAImkB,GAAO02G,EAAOtlJ,KAAKyrC,MAAMhhB,EAEzB26H,KAAYE,EAAOD,gBAAgBz2G,GAAMh/C,QAC3C01J,EAAOG,cAAcF,EAAiB96H,MAMzB78B,GAEK,UAY1BmC,IAAK,iCACLgC,MAAO,WACL,GAAI2zJ,GAASn4J,KAWTo4J,EAAmB,SAA0B3I,EAAOC,EAAOx0H,GAC7D,GAAIm9H,GAASF,EAAO55E,aAAa2wE,OAAOO,EAAMn5I,QAE/BpT,KAAXm1J,IACFA,EAASF,EAAO55E,aAAa2wE,OAAOO,EAAMn5I,IAb/B,IAgBb,IAAI6T,IAAsBu4B,EAAY05F,aAAaqT,EAAO,QAAS/sG,EAAY05F,aAAasT,EAAO,YAAShtG,GAAY05F,aAAalhH,EAAM,QAE3Ii9H,GAAO55E,aAAa2wE,OAAOQ,EAAMp5I,IAAM+hJ,EAASluI,EAGlDnqB,MAAKk4J,cAAcE,GACnBp4J,KAAKu+E,aAAa+5E,kBAAkBt4J,KAAKyS,KAAKyrC,UAUhD17C,IAAK,2BACLgC,MAAO,WACL,GAAI+zJ,GAASv4J,KAUTw4J,EAAkB,SAAyBt9H,GAO7C,MANArlB,GAAKnN,QAAQ6vJ,EAAO9lJ,KAAKooB,MAAO,SAAU49H,GACxC,GAAIA,EAAUv8G,OAAShhB,EAAK+gB,QAAUw8G,EAAUx8G,SAAW/gB,EAAKghB,KAC9D,OAAO,KAIJ,GAGLk8G,EAAmB,SAA0B3I,EAAOC,EAAOx0H,GAC7D,GAAIm9H,GAASE,EAAOh6E,aAAa2wE,OAAOO,EAAMn5I,IAC1CoiJ,EAASH,EAAOh6E,aAAa2wE,OAAOQ,EAAMp5I,GAE1CkiJ,GAAgBt9H,QAAoBh4B,KAAXm1J,OAAmCn1J,KAAXw1J,QAMtCx1J,KAAXm1J,IACFA,EAASE,EAAOh6E,aAAa2wE,OAAOO,EAAMn5I,IA7B/B,KA+BT4kB,EAAKghB,MAAQwzG,EAAMp5I,GACrBiiJ,EAAOh6E,aAAa2wE,OAAOQ,EAAMp5I,IAAM+hJ,EAAS,EAEhDE,EAAOh6E,aAAa2wE,OAAOQ,EAAMp5I,IAAM+hJ,EAAS,GAIpDr4J,MAAKk4J,cAAcE,GACnBp4J,KAAKu+E,aAAa+5E,kBAAkBt4J,KAAKyS,KAAKyrC,UAShD17C,IAAK,eACLgC,MAAO,WACL,GAAIm0J,GAAS34J,KAET44J,EAAkB,SAAyBxuJ,EAAYmzI,GACrDob,EAAOp6E,aAAa2wE,OAAO3R,EAAUjnI,IAAMqiJ,EAAOp6E,aAAa2wE,OAAO9kJ,EAAWkM,KACnFqiJ,EAAOp6E,aAAas6E,YAAYzuJ,EAAWkM,GAAIinI,EAAUjnI,IAI7DtW,MAAKk4J,cAAcU,GACnB54J,KAAKu+E,aAAau6E,iBAWpBt2J,IAAK,gBACLgC,MAAO,WACL,GAAIu0J,GAAU/4J,KAEV2I,EAAWpD,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,aAC/EyzJ,EAAiBzzJ,UAAU,GAE3BgqD,KAEA0pG,EAAU,QAASA,GAAQ53G,EAAM63G,GACnC,OAA0Bh2J,KAAtBqsD,EAASlO,EAAK/qC,IAAmB,CACnCyiJ,EAAQx6E,aAAa46E,aAAa93G,EAAM63G,GAExC3pG,EAASlO,EAAK/qC,KAAM,CAGpB,KAAK,GAFDinI,OAAY,GACZ1iH,EAAQk+H,EAAQjB,gBAAgBz2G,GAC3BhhD,EAAI,EAAGA,EAAIw6B,EAAMx4B,OAAQhC,IAAK,CACrC,GAAI66B,GAAOL,EAAMx6B,IACM,IAAnB66B,EAAKshB,YAGL+gG,EAFEriH,EAAKghB,MAAQmF,EAAK/qC,GAER4kB,EAAKmhB,KAELnhB,EAAKohB,GAGf+E,EAAK/qC,IAAMinI,EAAUjnI,KAEvB3N,EAAS04C,EAAMk8F,EAAWriH,GAC1B+9H,EAAQ1b,EAAW2b,OAO7B,QAAuBh2J,KAAnB81J,EAIF,IAAK,GAFD3J,GAAY,EAEPhvJ,EAAI,EAAGA,EAAIL,KAAKyS,KAAK2nE,YAAY/3E,OAAQhC,IAAK,CACrD,GAAI68B,GAASl9B,KAAKyS,KAAK2nE,YAAY/5E,EAEnC,QAAyB6C,KAArBqsD,EAASryB,GAAuB,CAClC,GAAImkB,GAAOrhD,KAAKyS,KAAKyrC,MAAMhhB,EAC3B+7H,GAAQ53G,EAAMguG,GACdA,GAAa,OAGZ,CAEL,GAAIthB,GAAS/tI,KAAKyS,KAAKyrC,MAAM86G,EAC7B,QAAe91J,KAAX6qI,EAEF,WADA72H,SAAQoiC,MAAM,kBAAmB0/G,EAGnCC,GAAQlrB,OAYZvrI,IAAK,cACLgC,MAAO,SAAqBiyJ,EAAUtsI,GACpC,GAAIivI,GAAUp5J,KAEVuvD,MACU,QAAS8pG,GAAQ5C,GAC7B,IAAIlnG,EAASknG,GAAb,CAGAlnG,EAASknG,IAAY,EACrB2C,EAAQnsI,UAAU5R,MAAMo7I,EAAUtsI,EAElC,IAAIgtI,GAAWiC,EAAQ76E,aAAauwE,kBAAkB2H,EACtD,QAAiBvzJ,KAAbi0J,EACF,IAAK,GAAI92J,GAAI,EAAGA,EAAI82J,EAAS90J,OAAQhC,IACnCg5J,EAAQlC,EAAS92J,MAIfo2J,MAYVj0J,IAAK,oBACLgC,MAAO,SAA2B80J,EAAQC,GACxC,GAAIC,GAAUx5J,KAEVw2J,IA6BJ,OA5BqB,SAASiD,GAAejD,EAASpyC,GACpD,GAAIs1C,GAAYF,EAAQj7E,aAAawwE,gBAAgB3qC,EACrD,QAAkBlhH,KAAdw2J,EACF,IAAK,GAAIr5J,GAAI,EAAGA,EAAIq5J,EAAUr3J,OAAQhC,IAAK,CACzC,GAAIiK,GAASovJ,EAAUr5J,EACvBm2J,GAAQlsJ,IAAU,EAClBmvJ,EAAejD,EAASlsJ,KAqBfksJ,EAAS8C,GAjBP,QAASK,GAAWnD,EAASpyC,GAC5C,GAAIs1C,GAAYF,EAAQj7E,aAAawwE,gBAAgB3qC,EACrD,QAAkBlhH,KAAdw2J,EACF,IAAK,GAAIr5J,GAAI,EAAGA,EAAIq5J,EAAUr3J,OAAQhC,IAAK,CACzC,GAAIiK,GAASovJ,EAAUr5J,EACvB,QAAwB6C,KAApBszJ,EAAQlsJ,GACV,OAASsvJ,YAAatvJ,EAAQmtJ,UAAWrzC,EAE3C,IAAIznC,GAASg9E,EAAWnD,EAASlsJ,EACjC,IAA2B,OAAvBqyE,EAAOi9E,YACT,MAAOj9E,GAIb,OAASi9E,YAAa,KAAMnC,UAAWrzC,IAIvBoyC,EAAS+C,MAgB7B/2J,IAAK,uBACLgC,MAAO,WACL,GAAIq1J,GAAqD,OAAxC75J,KAAKqP,QAAQkvE,aAAatxD,WAA8D,OAAxCjtB,KAAKqP,QAAQkvE,aAAatxD,SAGzFjtB,MAAKitB,UADH4sI,EACe,GAAIjL,GAAiB5uJ,MAErB,GAAI2uJ,GAAmB3uJ,SAc5CwC,IAAK,qBACLgC,MAAO,SAA4BszB,GAIjC,IAAK,GAHDgiI,GAAS,IACTC,GAAU,IAEL15J,EAAI,EAAGA,EAAIy3B,EAAWz1B,OAAQhC,IAAK,CAC1C,GAAIk9I,OAAY,EAChB,QAAyBr6I,KAArB40B,EAAWz3B,GAAGiW,GAChBinI,EAAYzlH,EAAWz3B,OAClB,CACL,GAAIy8I,GAAchlH,EAAWz3B,EAC7Bk9I,GAAYv9I,KAAKyS,KAAKyrC,MAAM4+F,GAG9B,GAAIzqI,GAAWrS,KAAKitB,UAAUgmI,YAAY1V,EAC1Cuc,GAASp1J,KAAKL,IAAIy1J,EAAQznJ,GAC1B0nJ,EAASr1J,KAAKJ,IAAIy1J,EAAQ1nJ,GAG5B,MAAO,IAAOynJ,EAASC,OAGpB/zB,IAGTrmI,GAAiB,QAAIqmI,GAIf,SAAUpmI,EAAQD,EAASO,GA8BjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAzBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,IAET7E,EAAQivJ,iBAAmBjvJ,EAAQgvJ,uBAAqBzrJ,EAExD,IAAI0hB,GAAkB1kB,EAAoB,GAEtC2kB,EAAmBliB,EAAuBiiB,GAE1CE,EAA8B5kB,EAAoB,GAElD6kB,EAA8BpiB,EAAuBmiB,GAErDE,EAAa9kB,EAAoB,GAEjC+kB,EAAatiB,EAAuBqiB,GAEpCvI,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GA8BvCq9I,EAAqB,WACvB,QAASA,MACP,EAAIt9I,EAA0B,SAAG1c,KAAMg6J,GA0HzC,OAvHA,EAAIp9I,EAAuB,SAAGo9I,IAC5Bx3J,IAAK,WAGLgC,MAAO,WACL,KAAM,IAAIqB,OAAM,wCAYlBrD,IAAK,WACLgC,MAAO,eAcPhC,IAAK,YACLgC,MAAO,WACL,MAAOxE,MAAKi6J,cAWdz3J,IAAK,cACLgC,MAAO,SAAqB68C,GACN,MAApBrhD,MAAKk6J,SAAS74G,GAAarhD,KAAKi6J,cAYlCz3J,IAAK,cACLgC,MAAO,SAAqB68C,EAAMhvC,GAChC,GAAIupE,GAAQr2E,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,OAAKrC,EAChFlD,MAAKk6J,SAAS74G,EAAMhvC,EAAUupE,GAAO57E,KAAKi6J,cAc5Cz3J,IAAK,cACLgC,MAAO,SAAqB22B,GACL,MAArBn7B,MAAKk6J,SAAS/+H,GAAcn7B,KAAKi6J,cAUnCz3J,IAAK,OACLgC,MAAO,SAAcsyJ,GACnB92J,KAAKk6J,SAASpD,GAAW92J,KAAKi6J,cAWhCz3J,IAAK,MACLgC,MAAO,SAAa68C,EAAMu6B,GACxB57E,KAAKk6J,SAAS74G,EAAMu6B,GAAO57E,KAAKi6J,cAWlCz3J,IAAK,QACLgC,MAAO,SAAe04B,EAAQ/S,GAC5BnqB,KAAKk6J,SAASh9H,EAAQ/S,GAAMnqB,KAAKi6J,eAG9BD,KAaLpL,EAAmB,SAAUuL,GAQ/B,QAASvL,GAAiBvwE,IACxB,EAAI3hE,EAA0B,SAAG1c,KAAM4uJ,EAEvC,IAAIh5G,IAAQ,EAAI7wB,EAAqC,SAAG/kB,MAAO4uJ,EAAiB56I,YAAa,EAAI6Q,EAA0B,SAAG+pI,IAAmBruJ,KAAKP,MAGtJ,OADA41C,GAAMyoC,OAASA,EACRzoC,EAuET,OApFA,EAAI3wB,EAAoB,SAAG2pI,EAAkBuL,IAmB7C,EAAIv9I,EAAuB,SAAGgyI,IAC5BpsJ,IAAK,YACLgC,MAAO,WACL,MAAO,gBAMThC,IAAK,cACLgC,MAAO,SAAqB68C,GAC1B,MAAOA,GAAK1xC,KAMdnN,IAAK,cACLgC,MAAO,SAAqB68C,EAAMhvC,GAChC,GAAIupE,GAAQr2E,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,OAAKrC,OAElEA,KAAV04E,GACF57E,KAAKq+E,OAAOE,aAAa67E,cAAc/4G,EAAMu6B,GAE/Cv6B,EAAK1xC,EAAI0C,KAMX7P,IAAK,cACLgC,MAAO,SAAqB22B,GAC1B,GAAIgrD,GAAMnmF,KAAKq+E,OAAOE,aAAak0E,YAAYzyJ,KAAKq+E,OAAO5rE,KAAKyrC,MAAO/iB,EACvE,QAAS92B,IAAK8hF,EAAIypE,MAAOtrJ,IAAK6hF,EAAI0pE,UAMpCrtJ,IAAK,OACLgC,MAAO,SAAcsyJ,GACnBA,EAAU1+I,KAAK,SAAUvV,EAAGC,GAE1B,WAAYI,KAARL,EAAE8M,OAA2BzM,KAARJ,EAAE6M,EAAwB,EAC5C9M,EAAE8M,EAAI7M,EAAE6M,OAOnBnN,IAAK,MACLgC,MAAO,SAAa68C,EAAMu6B,GACxBv6B,EAAK1lC,EAAI3b,KAAKq+E,OAAOhvE,QAAQkvE,aAAaC,gBAAkB5C,EAC5Dv6B,EAAKhyC,QAAQmtB,MAAM7gB,GAAI,KAMzBnZ,IAAK,QACLgC,MAAO,SAAe04B,EAAQ/S,GAC5BnqB,KAAKq+E,OAAO5rE,KAAKyrC,MAAMhhB,GAAQvtB,GAAKwa,MAGjCykI,GACPoL,GAYErL,EAAqB,SAAU0L,GAQjC,QAAS1L,GAAmBtwE,IAC1B,EAAI3hE,EAA0B,SAAG1c,KAAM2uJ,EAEvC,IAAIn3G,IAAS,EAAIzyB,EAAqC,SAAG/kB,MAAO2uJ,EAAmB36I,YAAa,EAAI6Q,EAA0B,SAAG8pI,IAAqBpuJ,KAAKP,MAG3J,OADAw3C,GAAO6mC,OAASA,EACT7mC,EAuET,OApFA,EAAIvyB,EAAoB,SAAG0pI,EAAoB0L,IAmB/C,EAAIz9I,EAAuB,SAAG+xI,IAC5BnsJ,IAAK,YACLgC,MAAO,WACL,MAAO,cAMThC,IAAK,cACLgC,MAAO,SAAqB68C,GAC1B,MAAOA,GAAK1lC,KAMdnZ,IAAK,cACLgC,MAAO,SAAqB68C,EAAMhvC,GAChC,GAAIupE,GAAQr2E,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,OAAKrC,OAElEA,KAAV04E,GACF57E,KAAKq+E,OAAOE,aAAa67E,cAAc/4G,EAAMu6B,GAE/Cv6B,EAAK1lC,EAAItJ,KAMX7P,IAAK,cACLgC,MAAO,SAAqB22B,GAC1B,GAAIgrD,GAAMnmF,KAAKq+E,OAAOE,aAAak0E,YAAYzyJ,KAAKq+E,OAAO5rE,KAAKyrC,MAAO/iB,EACvE,QAAS92B,IAAK8hF,EAAI2pE,MAAOxrJ,IAAK6hF,EAAI4pE,UAMpCvtJ,IAAK,OACLgC,MAAO,SAAcsyJ,GACnBA,EAAU1+I,KAAK,SAAUvV,EAAGC,GAE1B,WAAYI,KAARL,EAAE8Y,OAA2BzY,KAARJ,EAAE6Y,EAAwB,EAC5C9Y,EAAE8Y,EAAI7Y,EAAE6Y,OAOnBnZ,IAAK,MACLgC,MAAO,SAAa68C,EAAMu6B,GACxBv6B,EAAK1xC,EAAI3P,KAAKq+E,OAAOhvE,QAAQkvE,aAAaC,gBAAkB5C,EAC5Dv6B,EAAKhyC,QAAQmtB,MAAM7sB,GAAI,KAMzBnN,IAAK,QACLgC,MAAO,SAAe04B,EAAQ/S,GAC5BnqB,KAAKq+E,OAAO5rE,KAAKyrC,MAAMhhB,GAAQvhB,GAAKwO,MAGjCwkI,GACPqL,EAEFr6J,GAAQgvJ,mBAAqBA,EAC7BhvJ,EAAQivJ,iBAAmBA,GAIrB,SAAUhvJ,EAAQD,EAASO,GA6BjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAxBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIjB,GAAQrD,EAAoB,GAE5BsD,EAASb,EAAuBY,GAEhCoS,EAAazV,EAAoB,IAEjC0V,EAAcjT,EAAuBgT,GAErClS,EAAWvD,EAAoB,GAE/BwD,EAAWf,EAAuBc,GAElCgZ,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAIvC9G,EAAO3V,EAAoB,GAC3B8U,EAAS9U,EAAoB,IAC7B2kC,EAAa3kC,EAAoB,IAQjCimI,EAAqB,WAMvB,QAASA,GAAmB1zH,EAAMmjG,EAAQ2vB,GACxC,GAAI3vF,GAAQ51C,MAEZ,EAAI0c,EAA0B,SAAG1c,KAAMmmI,GAEvCnmI,KAAKyS,KAAOA,EACZzS,KAAK41G,OAASA,EACd51G,KAAKulI,iBAAmBA,EAExBvlI,KAAKs6J,UAAW,EAChBt6J,KAAKu6J,oBAAkBr3J,GACvBlD,KAAKw6J,gBAAct3J,GACnBlD,KAAKy6J,aAAWv3J,GAEhBlD,KAAK06J,uBACL16J,KAAK26J,wBACL36J,KAAK46J,2BAEL56J,KAAKgoJ,UAAY,EACjBhoJ,KAAK66J,cAAiB38G,SAAWrjB,UACjC76B,KAAK86J,YAAa,EAClB96J,KAAK+6J,QAAS,EACd/6J,KAAKg7J,wBAAsB93J,GAE3BlD,KAAKqP,WACLrP,KAAKs0B,gBACHxkB,SAAS,EACTkvE,iBAAiB,EACjBzT,SAAS,EACTG,SAAS,EACTuT,aAAU/7E,GACVg8E,UAAU,EACVE,YAAY,EACZC,YAAY,EACZC,kBACE/5D,MAAO,MACPvJ,KAAM,EACNxQ,OAASuB,WAAY,UAAWC,OAAQ,UAAWC,WAAaF,WAAY,UAAWC,OAAQ,YAC/FwV,YAAa,EACb+8D,oBAAqB,IAGzB1pE,EAAKrQ,OAAOxF,KAAKqP,QAASrP,KAAKs0B,gBAE/Bt0B,KAAKyS,KAAK8c,QAAQ7a,GAAG,UAAW,WAC9BkhC,EAAMD,WAER31C,KAAKyS,KAAK8c,QAAQ7a,GAAG,eAAgB1U,KAAKi7J,SAAS1yI,KAAKvoB,OACxDA,KAAKyS,KAAK8c,QAAQ7a,GAAG,aAAc1U,KAAKi7J,SAAS1yI,KAAKvoB,OA4wCxD,OAnwCA,EAAI4c,EAAuB,SAAGupH,IAC5B3jI,IAAK,WACLgC,MAAO,YACe,IAAhBxE,KAAK+6J,UAC8B,IAAjC/6J,KAAKqP,QAAQ2vE,gBACfh/E,KAAKkoI,iBAELloI,KAAKmoI,sBAcX3lI,IAAK,aACLgC,MAAO,SAAoB6K,EAASyN,EAAYxN,OAC3BpM,KAAf4Z,QACwB5Z,KAAtB4Z,EAAWiY,OACb/0B,KAAKqP,QAAQ0lB,OAASjY,EAAWiY,OAEjC/0B,KAAKqP,QAAQ0lB,OAASzlB,EAAcylB,WAEX7xB,KAAvB4Z,EAAWqb,QACbn4B,KAAKqP,QAAQ8oB,QAAUrb,EAAWqb,QAElCn4B,KAAKqP,QAAQ8oB,QAAU7oB,EAAc6oB,aAIzBj1B,KAAZmM,IACqB,iBAAZA,GACTrP,KAAKqP,QAAQS,QAAUT,GAEvBrP,KAAKqP,QAAQS,SAAU,EACvB+F,EAAK7P,WAAWhG,KAAKqP,QAASA,KAEK,IAAjCrP,KAAKqP,QAAQ2vE,kBACfh/E,KAAKs6J,UAAW,GAElBt6J,KAAKk7J,aAWT14J,IAAK,iBACLgC,MAAO,YACiB,IAAlBxE,KAAKs6J,SACPt6J,KAAKmoI,kBAELnoI,KAAKkoI,oBAST1lI,IAAK,iBACLgC,MAAO,WACLxE,KAAKs6J,UAAW,EAEhBt6J,KAAK21C,UACmB,IAApB31C,KAAK86J,aACP96J,KAAKu6J,gBAAgB9sJ,MAAMqxB,QAAU,QACrC9+B,KAAKy6J,SAAShtJ,MAAMqxB,QAAU,QAC9B9+B,KAAKw6J,YAAY/sJ,MAAMqxB,QAAU,OACjC9+B,KAAKm7J,6BAST34J,IAAK,kBACLgC,MAAO,WACLxE,KAAKs6J,UAAW,EAEhBt6J,KAAK21C,UACmB,IAApB31C,KAAK86J,aACP96J,KAAKu6J,gBAAgB9sJ,MAAMqxB,QAAU,OACrC9+B,KAAKy6J,SAAShtJ,MAAMqxB,QAAU,OAC9B9+B,KAAKw6J,YAAY/sJ,MAAMqxB,QAAU,QACjC9+B,KAAKo7J,wBAWT54J,IAAK,yBACLgC,MAAO,WAQL,GANAxE,KAAK21C,SAGL31C,KAAKq7J,oBAGmB,IAApBr7J,KAAK86J,WAAqB,CAE5B96J,KAAKs6J,UAAW,EAChBt6J,KAAKu6J,gBAAgB9sJ,MAAMqxB,QAAU,QACrC9+B,KAAKy6J,SAAShtJ,MAAMqxB,QAAU,OAE9B,IAAIw8H,GAAoBt7J,KAAKulI,iBAAiBg2B,wBAC1CC,EAAoBx7J,KAAKulI,iBAAiBk2B,wBAC1CC,EAAqBJ,EAAoBE,EACzCzmI,EAAS/0B,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,QAC3C4mI,GAAgB,GAES,IAAzB37J,KAAKqP,QAAQk8D,UACfvrE,KAAK47J,qBAAqB7mI,GAC1B4mI,GAAgB,IAEW,IAAzB37J,KAAKqP,QAAQq8D,WACO,IAAlBiwF,EACF37J,KAAK67J,iBAAiB,GAEtBF,GAAgB,EAElB37J,KAAK87J,qBAAqB/mI,IAGF,IAAtBumI,GAA4D,kBAA1Bt7J,MAAKqP,QAAQ4vE,WAC3B,IAAlB08E,EACF37J,KAAK67J,iBAAiB,GAEtBF,GAAgB,EAElB37J,KAAK+7J,sBAAsBhnI,IACI,IAAtBymI,GAAiD,IAAtBF,IAAqD,IAA1Bt7J,KAAKqP,QAAQ6vE,YACtD,IAAlBy8E,EACF37J,KAAK67J,iBAAiB,GAEtBF,GAAgB,EAElB37J,KAAKg8J,sBAAsBjnI,IAIF,IAAvB2mI,IACEJ,EAAoB,IAAiC,IAA5Bt7J,KAAKqP,QAAQ+vE,aAClB,IAAlBu8E,GACF37J,KAAK67J,iBAAiB,GAExB77J,KAAKi8J,oBAAoBlnI,IACM,IAAtBumI,IAAuD,IAA5Bt7J,KAAKqP,QAAQgwE,cAC3B,IAAlBs8E,GACF37J,KAAK67J,iBAAiB,GAExB77J,KAAKi8J,oBAAoBlnI,KAK7B/0B,KAAKk8J,iBAAiBl8J,KAAKy6J,SAAUz6J,KAAKm8J,eAAe5zI,KAAKvoB,OAG9DA,KAAKo8J,oBAAoB,SAAUp8J,KAAKm7J,uBAAuB5yI,KAAKvoB,OAItEA,KAAKyS,KAAK8c,QAAQ1a,KAAK,cAQzBrS,IAAK,cACLgC,MAAO,WAUL,IARsB,IAAlBxE,KAAKs6J,UACPt6J,KAAKkoI,iBAIPloI,KAAK21C,SAEL31C,KAAK+6J,OAAS,WACU,IAApB/6J,KAAK86J,WAAqB,CAC5B,GAAI/lI,GAAS/0B,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,OAC/C/0B,MAAKq7J,mBACLr7J,KAAKq8J,kBAAkBtnI,GACvB/0B,KAAK67J,mBACL77J,KAAKs8J,mBAAmBvnI,EAAuB,gBAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAkB,gBAG/Fn4B,KAAKk8J,iBAAiBl8J,KAAKy6J,SAAUz6J,KAAKm8J,eAAe5zI,KAAKvoB,OAGhEA,KAAKo8J,oBAAoB,QAASp8J,KAAKu8J,gBAAgBh0I,KAAKvoB,UAQ9DwC,IAAK,WACLgC,MAAO,WACL,GAAIgzC,GAASx3C,MAGS,IAAlBA,KAAKs6J,UACPt6J,KAAKkoI,iBAIPloI,KAAK21C,QACL,IAAI0L,GAAOrhD,KAAKulI,iBAAiBi3B,kBACjC,QAAat5J,KAATm+C,EAAoB,CAEtB,GADArhD,KAAK+6J,OAAS,WACuB,kBAA1B/6J,MAAKqP,QAAQ4vE,SAqBtB,KAAM,IAAIp5E,OAAM,kEApBhB,KAAuB,IAAnBw7C,EAAKqmF,UAAoB,CAC3B,GAAIxyH,GAAOW,EAAK7P,cAAeq7C,EAAKhyC,SAAS,EAI7C,IAHA6F,EAAKvF,EAAI0xC,EAAK1xC,EACduF,EAAKyG,EAAI0lC,EAAK1lC,EAEuB,IAAjC3b,KAAKqP,QAAQ4vE,SAAS58E,OASxB,KAAM,IAAIwD,OAAM,wEARhB7F,MAAKqP,QAAQ4vE,SAAS/pE,EAAM,SAAUunJ,GACd,OAAlBA,OAA4Cv5J,KAAlBu5J,GAAiD,aAAlBjlH,EAAOujH,QAElEvjH,EAAO/kC,KAAKyC,KAAKgpC,MAAMlmC,aAAarB,OAAO8lJ,GAE7CjlH,EAAO2jH,+BAMX35B,OAAMxhI,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,QAA0B,kBAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAoB,sBAMxHn4B,MAAKm7J,4BAST34J,IAAK,cACLgC,MAAO,WAUL,IARsB,IAAlBxE,KAAKs6J,UACPt6J,KAAKkoI,iBAIPloI,KAAK21C,SAEL31C,KAAK+6J,OAAS,WACU,IAApB/6J,KAAK86J,WAAqB,CAC5B,GAAI/lI,GAAS/0B,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,OAC/C/0B,MAAKq7J,mBACLr7J,KAAKq8J,kBAAkBtnI,GACvB/0B,KAAK67J;wBACL77J,KAAKs8J,mBAAmBvnI,EAAwB,iBAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAmB,iBAGjGn4B,KAAKk8J,iBAAiBl8J,KAAKy6J,SAAUz6J,KAAKm8J,eAAe5zI,KAAKvoB,OAIhEA,KAAK08J,iBAAiB,UAAW18J,KAAK28J,eAAep0I,KAAKvoB,OAC1DA,KAAK08J,iBAAiB,YAAa18J,KAAK48J,eAAer0I,KAAKvoB,OAC5DA,KAAK08J,iBAAiB,SAAU18J,KAAK68J,iBAAiBt0I,KAAKvoB,OAC3DA,KAAK08J,iBAAiB,YAAa18J,KAAK48J,eAAer0I,KAAKvoB,OAC5DA,KAAK08J,iBAAiB,cAAe18J,KAAK88J,eAAev0I,KAAKvoB,OAC9DA,KAAK08J,iBAAiB,SAAU,iBAQlCl6J,IAAK,eACLgC,MAAO,WAUL,IARsB,IAAlBxE,KAAKs6J,UACPt6J,KAAKkoI,iBAIPloI,KAAK21C,SAEL31C,KAAK+6J,OAAS,WAC0C,YAApD,EAAIr3J,EAAkB,SAAG1D,KAAKqP,QAAQ6vE,WAA2E,kBAA1Cl/E,MAAKqP,QAAQ6vE,SAASC,kBAC/Fn/E,KAAK+8J,kBAAoB/8J,KAAKulI,iBAAiB6D,mBAAmB,OACnClmI,KAA3BlD,KAAK+8J,mBAAiC,CACxC,GAAI7hI,GAAOl7B,KAAKyS,KAAKooB,MAAM76B,KAAK+8J,kBAEhC,YADA/8J,MAAKg9J,iBAAiB9hI,EAAKmhB,KAAMnhB,EAAKohB,IAI1C,IAAwB,IAApBt8C,KAAK86J,WAAqB,CAC5B,GAAI/lI,GAAS/0B,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,OAC/C/0B,MAAKq7J,mBACLr7J,KAAKq8J,kBAAkBtnI,GACvB/0B,KAAK67J,mBACL77J,KAAKs8J,mBAAmBvnI,EAA4B,qBAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAuB,qBAGzGn4B,KAAKk8J,iBAAiBl8J,KAAKy6J,SAAUz6J,KAAKm8J,eAAe5zI,KAAKvoB,OAIhE,GADAA,KAAK+8J,kBAAoB/8J,KAAKulI,iBAAiB6D,mBAAmB,OACnClmI,KAA3BlD,KAAK+8J,kBAAiC,CACxC,GAAI/e,GAAQh+I,KAAKyS,KAAKooB,MAAM76B,KAAK+8J,mBAG7BE,EAAkBj9J,KAAKk9J,kBAAkBlf,EAAM3hG,KAAK1sC,EAAGquI,EAAM3hG,KAAK1gC,GAClEwhJ,EAAgBn9J,KAAKk9J,kBAAkBlf,EAAM1hG,GAAG3sC,EAAGquI,EAAM1hG,GAAG3gC,EAEhE3b,MAAK66J,aAAa38G,MAAM93C,KAAK62J,EAAgB3mJ,IAC7CtW,KAAK66J,aAAa38G,MAAM93C,KAAK+2J,EAAc7mJ,IAE3CtW,KAAKyS,KAAKyrC,MAAM++G,EAAgB3mJ,IAAM2mJ,EACtCj9J,KAAKyS,KAAK2nE,YAAYh0E,KAAK62J,EAAgB3mJ,IAC3CtW,KAAKyS,KAAKyrC,MAAMi/G,EAAc7mJ,IAAM6mJ,EACpCn9J,KAAKyS,KAAK2nE,YAAYh0E,KAAK+2J,EAAc7mJ,IAGzCtW,KAAK08J,iBAAiB,UAAW18J,KAAKo9J,kBAAkB70I,KAAKvoB,OAC7DA,KAAK08J,iBAAiB,QAAS,cAC/B18J,KAAK08J,iBAAiB,SAAU,cAChC18J,KAAK08J,iBAAiB,cAAe18J,KAAKq9J,sBAAsB90I,KAAKvoB,OACrEA,KAAK08J,iBAAiB,SAAU18J,KAAKs9J,iBAAiB/0I,KAAKvoB,OAC3DA,KAAK08J,iBAAiB,YAAa18J,KAAKu9J,oBAAoBh1I,KAAKvoB,OACjEA,KAAK08J,iBAAiB,cAAe,cAIrC18J,KAAKo8J,oBAAoB,gBAAiB,SAAUt8I,GAClD,GAAIi5H,GAAYiF,EAAMzhG,SAASihH,oBAAoB19I,IAClB,IAA7Bm9I,EAAgBx5I,WAClBw5I,EAAgBttJ,EAAIopI,EAAU18F,KAAK1sC,EACnCstJ,EAAgBthJ,EAAIo9H,EAAU18F,KAAK1gC,IAEN,IAA3BwhJ,EAAc15I,WAChB05I,EAAcxtJ,EAAIopI,EAAUz8F,GAAG3sC,EAC/BwtJ,EAAcxhJ,EAAIo9H,EAAUz8F,GAAG3gC,KAInC3b,KAAKyS,KAAK8c,QAAQ1a,KAAK,eAEvB7U,MAAKm7J,4BAST34J,IAAK,iBACLgC,MAAO,WACL,GAAIozC,GAAS53C,MAGS,IAAlBA,KAAKs6J,UACPt6J,KAAKkoI,iBAIPloI,KAAK21C,SAEL31C,KAAK+6J,OAAS,QACd,IAAI0C,GAAgBz9J,KAAKulI,iBAAiB4D,mBACtCu0B,EAAgB19J,KAAKulI,iBAAiB6D,mBACtCu0B,MAAiBz6J,EACrB,IAAIu6J,EAAcp7J,OAAS,EAAG,CAC5B,IAAK,GAAIhC,GAAI,EAAGA,EAAIo9J,EAAcp7J,OAAQhC,IACxC,IAAoD,IAAhDL,KAAKyS,KAAKyrC,MAAMu/G,EAAcp9J,IAAIqnI,UAEpC,WADAlG,OAAMxhI,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,QAA4B,oBAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAsB,mBAKrF,mBAA5Bn4B,MAAKqP,QAAQ+vE,aACtBu+E,EAAiB39J,KAAKqP,QAAQ+vE,gBAEvBs+E,GAAcr7J,OAAS,GACO,kBAA5BrC,MAAKqP,QAAQgwE,aACtBs+E,EAAiB39J,KAAKqP,QAAQgwE,WAIlC,IAA8B,kBAAnBs+E,GAA+B,CACxC,GAAIzoJ,IAASgpC,MAAOu/G,EAAe5iI,MAAO6iI,EAC1C,IAA8B,IAA1BC,EAAet7J,OAcjB,KAAM,IAAIwD,OAAM,0EAbhB83J,GAAezoJ,EAAM,SAAUunJ,GACP,OAAlBA,OAA4Cv5J,KAAlBu5J,GAAiD,WAAlB7kH,EAAOmjH,QAElEnjH,EAAOnlC,KAAKyC,KAAK2lB,MAAM7iB,aAAaO,OAAOkkJ,EAAc5hI,OACzD+c,EAAOnlC,KAAKyC,KAAKgpC,MAAMlmC,aAAaO,OAAOkkJ,EAAcv+G,OACzDtG,EAAOnlC,KAAK8c,QAAQ1a,KAAK,mBACzB+iC,EAAOujH,2BAEPvjH,EAAOnlC,KAAK8c,QAAQ1a,KAAK,mBACzB+iC,EAAOujH,gCAObn7J,MAAKyS,KAAKyC,KAAK2lB,MAAM7iB,aAAaO,OAAOmlJ,GACzC19J,KAAKyS,KAAKyC,KAAKgpC,MAAMlmC,aAAaO,OAAOklJ,GACzCz9J,KAAKyS,KAAK8c,QAAQ1a,KAAK,mBACvB7U,KAAKm7J,4BAYT34J,IAAK,SACLgC,MAAO,YACwB,IAAzBxE,KAAKqP,QAAQS,SAEf9P,KAAK86J,YAAa,EAElB96J,KAAK49J,mBACiB,IAAlB59J,KAAKs6J,SACPt6J,KAAKo7J,oBAELp7J,KAAKm7J,2BAGPn7J,KAAK69J,yBAGL79J,KAAK86J,YAAa,MAUtBt4J,IAAK,kBACLgC,MAAO,eAEwBtB,KAAzBlD,KAAKu6J,kBACPv6J,KAAKu6J,gBAAkBvoJ,SAASC,cAAc,OAC9CjS,KAAKu6J,gBAAgBryJ,UAAY,oBACX,IAAlBlI,KAAKs6J,SACPt6J,KAAKu6J,gBAAgB9sJ,MAAMqxB,QAAU,QAErC9+B,KAAKu6J,gBAAgB9sJ,MAAMqxB,QAAU,OAEvC9+B,KAAK41G,OAAO1iE,MAAM1gC,YAAYxS,KAAKu6J,sBAIZr3J,KAArBlD,KAAKw6J,cACPx6J,KAAKw6J,YAAcxoJ,SAASC,cAAc,OAC1CjS,KAAKw6J,YAAYtyJ,UAAY,iBACP,IAAlBlI,KAAKs6J,SACPt6J,KAAKw6J,YAAY/sJ,MAAMqxB,QAAU,OAEjC9+B,KAAKw6J,YAAY/sJ,MAAMqxB,QAAU,QAEnC9+B,KAAK41G,OAAO1iE,MAAM1gC,YAAYxS,KAAKw6J,kBAIft3J,KAAlBlD,KAAKy6J,WACPz6J,KAAKy6J,SAAWzoJ,SAASC,cAAc,OACvCjS,KAAKy6J,SAASvyJ,UAAY,YAC1BlI,KAAKy6J,SAAShtJ,MAAMqxB,QAAU9+B,KAAKu6J,gBAAgB9sJ,MAAMqxB,QACzD9+B,KAAK41G,OAAO1iE,MAAM1gC,YAAYxS,KAAKy6J,cAcvCj4J,IAAK,oBACLgC,MAAO,SAA2BmL,EAAGgM,GACnC,GAAI2jE,GAAmBzpE,EAAK7P,cAAehG,KAAKqP,QAAQiwE,iBAExDA,GAAiBhpE,GAAK,aAAeT,EAAK1Q,aAC1Cm6E,EAAiB10D,QAAS,EAC1B00D,EAAiBzjD,SAAU,EAC3ByjD,EAAiB3vE,EAAIA,EACrB2vE,EAAiB3jE,EAAIA,CAGrB,IAAI0lC,GAAOrhD,KAAKyS,KAAKyyH,UAAUC,WAAW7lD,EAG1C,OAFAj+B,GAAK97B,MAAMnD,aAAgB1a,KAAMiI,EAAG/H,MAAO+H,EAAG7H,IAAK6T,EAAG0G,OAAQ1G,GAEvD0lC,KAQT7+C,IAAK,oBACLgC,MAAO,WAELxE,KAAK21C,SAGL31C,KAAKq7J,mBAGLxlJ,EAAK9R,mBAAmB/D,KAAKw6J,YAG7B,IAAIzlI,GAAS/0B,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,QAC3CsyB,EAASrnD,KAAK89J,cAAc,WAAY,oCAAqC/oI,EAAa,MAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAQ,KACpIn4B,MAAKw6J,YAAYhoJ,YAAY60C,GAG7BrnD,KAAKk8J,iBAAiB70G,EAAQrnD,KAAKm8J,eAAe5zI,KAAKvoB,UASzDwC,IAAK,SACLgC,MAAO,WAELxE,KAAK+6J,QAAS,GAGU,IAApB/6J,KAAK86J,aACPjlJ,EAAK9R,mBAAmB/D,KAAKw6J,aAC7B3kJ,EAAK9R,mBAAmB/D,KAAKu6J,iBAG7Bv6J,KAAK+9J,4BAIP/9J,KAAKg+J,iCAGLh+J,KAAKi+J,sBAGLj+J,KAAKk+J,yBAGLl+J,KAAKyS,KAAK8c,QAAQ1a,KAAK,qBASzBrS,IAAK,2BACLgC,MAAO,WAEL,GAAuC,GAAnCxE,KAAK06J,oBAAoBr4J,OAAa,CACxC,IAAK,GAAIhC,GAAI,EAAGA,EAAIL,KAAK06J,oBAAoBr4J,OAAQhC,IACnDL,KAAK06J,oBAAoBr6J,GAAGuU,SAE9B5U,MAAK06J,2BAUTl4J,IAAK,yBACLgC,MAAO,WAELxE,KAAK21C,SAGL9/B,EAAK9R,mBAAmB/D,KAAKu6J,iBAC7B1kJ,EAAK9R,mBAAmB/D,KAAKw6J,aAC7B3kJ,EAAK9R,mBAAmB/D,KAAKy6J,UAGzBz6J,KAAKu6J,iBACPv6J,KAAK41G,OAAO1iE,MAAM/uC,YAAYnE,KAAKu6J,iBAEjCv6J,KAAKw6J,aACPx6J,KAAK41G,OAAO1iE,MAAM/uC,YAAYnE,KAAKw6J,aAEjCx6J,KAAKy6J,UACPz6J,KAAK41G,OAAO1iE,MAAM/uC,YAAYnE,KAAKy6J,UAIrCz6J,KAAKu6J,oBAAkBr3J,GACvBlD,KAAKw6J,gBAAct3J,GACnBlD,KAAKy6J,aAAWv3J,MAUlBV,IAAK,mBACLgC,MAAO,WACL,GAAI22B,GAAQ51B,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,CAEhFvF,MAAKq7J,gBAAgB,mBAAqBlgI,GAASnpB,SAASC,cAAc,OAC1EjS,KAAKq7J,gBAAgB,mBAAqBlgI,GAAOjzB,UAAY,qBAC7DlI,KAAKu6J,gBAAgB/nJ,YAAYxS,KAAKq7J,gBAAgB,mBAAqBlgI,OAY7E34B,IAAK,uBACLgC,MAAO,SAA8BuwB,GACnC,GAAIsyB,GAASrnD,KAAK89J,cAAc,UAAW,qBAAsB/oI,EAAgB,SAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAW,QAC1Hn4B,MAAKu6J,gBAAgB/nJ,YAAY60C,GACjCrnD,KAAKk8J,iBAAiB70G,EAAQrnD,KAAKooI,YAAY7/G,KAAKvoB,UAUtDwC,IAAK,uBACLgC,MAAO,SAA8BuwB,GACnC,GAAIsyB,GAASrnD,KAAK89J,cAAc,UAAW,yBAA0B/oI,EAAgB,SAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAW,QAC9Hn4B,MAAKu6J,gBAAgB/nJ,YAAY60C,GACjCrnD,KAAKk8J,iBAAiB70G,EAAQrnD,KAAKsoI,YAAY//G,KAAKvoB,UAUtDwC,IAAK,wBACLgC,MAAO,SAA+BuwB,GACpC,GAAIsyB,GAASrnD,KAAK89J,cAAc,WAAY,sBAAuB/oI,EAAiB,UAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAY,SAC9Hn4B,MAAKu6J,gBAAgB/nJ,YAAY60C,GACjCrnD,KAAKk8J,iBAAiB70G,EAAQrnD,KAAKi/E,SAAS12D,KAAKvoB,UAUnDwC,IAAK,wBACLgC,MAAO,SAA+BuwB,GACpC,GAAIsyB,GAASrnD,KAAK89J,cAAc,WAAY,sBAAuB/oI,EAAiB,UAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAY,SAC9Hn4B,MAAKu6J,gBAAgB/nJ,YAAY60C,GACjCrnD,KAAKk8J,iBAAiB70G,EAAQrnD,KAAKuoI,aAAahgH,KAAKvoB,UAUvDwC,IAAK,sBACLgC,MAAO,SAA6BuwB,GAClC,GAAIopI,EAEFA,GADEn+J,KAAKqP,QAAQ2gB,IACE,4BAEA,uBAEnB,IAAIq3B,GAASrnD,KAAK89J,cAAc,SAAUK,EAAgBppI,EAAY,KAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAO,IAC3Gn4B,MAAKu6J,gBAAgB/nJ,YAAY60C,GACjCrnD,KAAKk8J,iBAAiB70G,EAAQrnD,KAAKwoI,eAAejgH,KAAKvoB,UAUzDwC,IAAK,oBACLgC,MAAO,SAA2BuwB,GAChC,GAAIsyB,GAASrnD,KAAK89J,cAAc,OAAQ,sBAAuB/oI,EAAa,MAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAQ,KAClHn4B,MAAKu6J,gBAAgB/nJ,YAAY60C,GACjCrnD,KAAKk8J,iBAAiB70G,EAAQrnD,KAAKm7J,uBAAuB5yI,KAAKvoB,UAcjEwC,IAAK,gBACLgC,MAAO,SAAuB8R,EAAIpO,EAAW+T,GAC3C,GAAImiJ,GAAiB74J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,GAAmBA,UAAU,GAAK,WASzF,OANAvF,MAAKq7J,gBAAgB/kJ,EAAK,OAAStE,SAASC,cAAc,OAC1DjS,KAAKq7J,gBAAgB/kJ,EAAK,OAAOpO,UAAYA,EAC7ClI,KAAKq7J,gBAAgB/kJ,EAAK,SAAWtE,SAASC,cAAc,OAC5DjS,KAAKq7J,gBAAgB/kJ,EAAK,SAASpO,UAAYk2J,EAC/Cp+J,KAAKq7J,gBAAgB/kJ,EAAK,SAASua,UAAY5U,EAC/Cjc,KAAKq7J,gBAAgB/kJ,EAAK,OAAO9D,YAAYxS,KAAKq7J,gBAAgB/kJ,EAAK,UAChEtW,KAAKq7J,gBAAgB/kJ,EAAK,UAUnC9T,IAAK,qBACLgC,MAAO,SAA4ByX,GACjCjc,KAAKu6J,gBAAgB/nJ,YAAYxS,KAAK89J,cAAc,cAAe,sBAAuB7hJ,OAa5FzZ,IAAK,sBACLgC,MAAO,SAA6BsF,EAAOu0J,GACzCr+J,KAAK46J,wBAAwBx0J,MAAO0D,MAAOA,EAAOw0J,cAAeD,IACjEr+J,KAAKyS,KAAK8c,QAAQ7a,GAAG5K,EAAOu0J,MAW9B77J,IAAK,mBACLgC,MAAO,SAA0B+5J,EAAgBF,GAC/C,OAAiDn7J,KAA7ClD,KAAKyS,KAAK+xH,eAAe+5B,GAI3B,KAAM,IAAI14J,OAAM,qDAAuD04J,EAAiB,mBAAoB,EAAI3oJ,EAAqB,UAAG,EAAIpS,EAAgB,SAAGxD,KAAKyS,KAAK+xH,iBAHzKxkI,MAAK26J,qBAAqB4D,GAAkBv+J,KAAKyS,KAAK+xH,eAAe+5B,GACrEv+J,KAAKyS,KAAK+xH,eAAe+5B,GAAkBF,KAa/C77J,IAAK,sBACLgC,MAAO,WACL,IAAK,GAAIg6J,KAAgBx+J,MAAK26J,qBACxB36J,KAAK26J,qBAAqBn5J,eAAeg9J,KAC3Cx+J,KAAKyS,KAAK+xH,eAAeg6B,GAAgBx+J,KAAK26J,qBAAqB6D,SAC5Dx+J,MAAK26J,qBAAqB6D,GAGrCx+J,MAAK26J,2BASPn4J,IAAK,yBACLgC,MAAO,WACL,IAAK,GAAInE,GAAI,EAAGA,EAAIL,KAAK46J,wBAAwBv4J,OAAQhC,IAAK,CAC5D,GAAIo+J,GAAYz+J,KAAK46J,wBAAwBv6J,GAAGyJ,MAC5Cw0J,EAAgBt+J,KAAK46J,wBAAwBv6J,GAAGi+J,aACpDt+J,MAAKyS,KAAK8c,QAAQ5a,IAAI8pJ,EAAWH,GAEnCt+J,KAAK46J,8BAWPp4J,IAAK,mBACLgC,MAAO,SAA0Bk6J,EAAYJ,GAC3C,GAAIlxI,GAAS,GAAIpY,GAAO0pJ,KACxB75H,GAAW1X,QAAQC,EAAQkxI,GAC3Bt+J,KAAK06J,oBAAoBt0J,KAAKgnB,MAShC5qB,IAAK,iCACLgC,MAAO,WAEL,IAAK,GAAInE,GAAI,EAAGA,EAAIL,KAAK66J,aAAahgI,MAAMx4B,OAAQhC,IAAK,CACvDL,KAAKyS,KAAKooB,MAAM76B,KAAK66J,aAAahgI,MAAMx6B,IAAI49C,mBACrCj+C,MAAKyS,KAAKooB,MAAM76B,KAAK66J,aAAahgI,MAAMx6B,GAC/C,IAAIs+J,GAAgB3+J,KAAKyS,KAAK8xH,YAAYp+H,QAAQnG,KAAK66J,aAAahgI,MAAMx6B,KACnD,IAAnBs+J,GACF3+J,KAAKyS,KAAK8xH,YAAY3wG,OAAO+qI,EAAe,GAKhD,IAAK,GAAIx/I,GAAK,EAAGA,EAAKnf,KAAK66J,aAAa38G,MAAM77C,OAAQ8c,IAAM,OACnDnf,MAAKyS,KAAKyrC,MAAMl+C,KAAK66J,aAAa38G,MAAM/+B,GAC/C,IAAIy/I,GAAgB5+J,KAAKyS,KAAK2nE,YAAYj0E,QAAQnG,KAAK66J,aAAa38G,MAAM/+B,KACnD,IAAnBy/I,GACF5+J,KAAKyS,KAAK2nE,YAAYxmD,OAAOgrI,EAAe,GAIhD5+J,KAAK66J,cAAiB38G,SAAWrjB,aAYnCr4B,IAAK,oBACLgC,MAAO,SAA2BsF,GAChC9J,KAAKulI,iBAAiB2B,cACtBlnI,KAAK0rH,UAAY1rH,KAAKyS,KAAKyyH,UAAU/gG,WAAWr6B,EAAMk4B,QACtDhiC,KAAK0rH,UAAUnX,YAAc1+F,EAAKrQ,UAAWxF,KAAKyS,KAAKkR,KAAK4wF,gBAU9D/xG,IAAK,wBACLgC,MAAO,SAA+BsF,GAEpC,GAAIo6B,GAAUlkC,KAAK0rH,UACfw/B,EAAalrJ,KAAKulI,iBAAiBmmB,yBAAyBxnH,GAC5DmY,EAAOr8C,KAAKyS,KAAKyrC,MAAMl+C,KAAK66J,aAAa38G,MAAM,IAC/C5B,EAAKt8C,KAAKyS,KAAKyrC,MAAMl+C,KAAK66J,aAAa38G,MAAM,IAC7ChjB,EAAOl7B,KAAKyS,KAAKooB,MAAM76B,KAAK+8J,kBAChC/8J,MAAKg7J,wBAAsB93J,EAE3B,IAAI27J,GAAaxiH,EAAKqD,kBAAkBwrG,GACpC4T,EAAWxiH,EAAGoD,kBAAkBwrG,IAEjB,IAAf2T,GACF7+J,KAAKg7J,oBAAsB3+G,EAC3BnhB,EAAKqhB,SAASF,KAAOA,IACC,IAAbyiH,IACT9+J,KAAKg7J,oBAAsB1+G,EAC3BphB,EAAKqhB,SAASD,GAAKA,OAIYp5C,KAA7BlD,KAAKg7J,qBACPh7J,KAAKulI,iBAAiB6kB,aAAapqJ,KAAKg7J,qBAG1Ch7J,KAAKyS,KAAK8c,QAAQ1a,KAAK,cAUzBrS,IAAK,mBACLgC,MAAO,SAA0BsF,GAC/B9J,KAAKyS,KAAK8c,QAAQ1a,KAAK,iBACvB,IAAIqvB,GAAUlkC,KAAKyS,KAAKyyH,UAAU/gG,WAAWr6B,EAAMk4B,QAC/Cif,EAAMjhD,KAAK41G,OAAO4xB,YAAYtjG,EAClC,QAAiChhC,KAA7BlD,KAAKg7J,oBACPh7J,KAAKg7J,oBAAoBrrJ,EAAIsxC,EAAItxC,EACjC3P,KAAKg7J,oBAAoBr/I,EAAIslC,EAAItlC,MAC5B,CAEL,GAAI6iG,GAAQt6E,EAAQv0B,EAAI3P,KAAK0rH,UAAU/7G,EACnC8uG,EAAQv6E,EAAQvoB,EAAI3b,KAAK0rH,UAAU/vG,CACvC3b,MAAKyS,KAAKkR,KAAK4wF,aAAgB5kG,EAAG3P,KAAK0rH,UAAUnX,YAAY5kG,EAAI6uG,EAAO7iG,EAAG3b,KAAK0rH,UAAUnX,YAAY54F,EAAI8iG,GAE5Gz+G,KAAKyS,KAAK8c,QAAQ1a,KAAK,cAUzBrS,IAAK,sBACLgC,MAAO,SAA6BsF,GAClC,GAAIo6B,GAAUlkC,KAAKyS,KAAKyyH,UAAU/gG,WAAWr6B,EAAMk4B,QAC/CkpH,EAAalrJ,KAAKulI,iBAAiBmmB,yBAAyBxnH,GAC5DhJ,EAAOl7B,KAAKyS,KAAKooB,MAAM76B,KAAK+8J,kBAEhC,QAAiC75J,KAA7BlD,KAAKg7J,oBAAT,CAKAh7J,KAAKulI,iBAAiB2B,aAGtB,KAAK,GAFD63B,GAAqB/+J,KAAKulI,iBAAiBooB,4BAA4BzC,GACvE7pG,MAAOn+C,GACF7C,EAAI0+J,EAAmB18J,OAAS,EAAGhC,GAAK,EAAGA,IAClD,GAAI0+J,EAAmB1+J,KAAOL,KAAKg7J,oBAAoB1kJ,GAAI,CACzD+qC,EAAOrhD,KAAKyS,KAAKyrC,MAAM6gH,EAAmB1+J,GAC1C,OAIJ,OAAa6C,KAATm+C,OAAmDn+C,KAA7BlD,KAAKg7J,oBAC7B,IAAuB,IAAnB35G,EAAKqmF,UACPlG,MAAMxhI,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,QAAyB,iBAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAmB,qBAC7G,CACL,GAAIkkB,GAAOr8C,KAAKyS,KAAKyrC,MAAMl+C,KAAK66J,aAAa38G,MAAM,GAC/Cl+C,MAAKg7J,oBAAoB1kJ,KAAO+lC,EAAK/lC,GACvCtW,KAAKg9J,iBAAiB37G,EAAK/qC,GAAI4kB,EAAKohB,GAAGhmC,IAEvCtW,KAAKg9J,iBAAiB9hI,EAAKmhB,KAAK/lC,GAAI+qC,EAAK/qC,QAI7C4kB,GAAKwhB,iBACL18C,KAAKyS,KAAK8c,QAAQ1a,KAAK,iBAGzB7U,MAAKyS,KAAK8c,QAAQ1a,KAAK,eAgBzBrS,IAAK,iBACLgC,MAAO,SAAwBsF,GAE7B,IAAI,GAAIhF,OAAO8B,UAAY5G,KAAKgoJ,UAAY,IAAK,CAC/ChoJ,KAAK0rH,UAAY1rH,KAAKyS,KAAKyyH,UAAU/gG,WAAWr6B,EAAMk4B,QACtDhiC,KAAK0rH,UAAUnX,YAAc1+F,EAAKrQ,UAAWxF,KAAKyS,KAAKkR,KAAK4wF,YAE5D,IAAIrwE,GAAUlkC,KAAK0rH,UACfrqE,EAAOrhD,KAAKulI,iBAAiB8D,UAAUnlG,EAE3C,QAAahhC,KAATm+C,EACF,IAAuB,IAAnBA,EAAKqmF,UACPlG,MAAMxhI,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,QAAyB,iBAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAmB,qBAC7G,CAEL,GAAI6mI,GAAah/J,KAAKk9J,kBAAkB77G,EAAK1xC,EAAG0xC,EAAK1lC,EACrD3b,MAAKyS,KAAKyrC,MAAM8gH,EAAW1oJ,IAAM0oJ,EACjCh/J,KAAKyS,KAAK2nE,YAAYh0E,KAAK44J,EAAW1oJ,GAGtC,IAAI2oJ,GAAiBj/J,KAAKyS,KAAKyyH,UAAUv5D,YACvCr1D,GAAI,iBAAmBT,EAAK1Q,aAC5Bk3C,KAAMgF,EAAK/qC,GACXgmC,GAAI0iH,EAAW1oJ,GACfulB,SAAS,EACTiiB,QACEhuC,SAAS,EACTrJ,KAAM,aACN22E,UAAW,KAGfp9E,MAAKyS,KAAKooB,MAAMokI,EAAe3oJ,IAAM2oJ,EACrCj/J,KAAKyS,KAAK8xH,YAAYn+H,KAAK64J,EAAe3oJ,IAE1CtW,KAAK66J,aAAa38G,MAAM93C,KAAK44J,EAAW1oJ,IACxCtW,KAAK66J,aAAahgI,MAAMz0B,KAAK64J,EAAe3oJ,IAGhDtW,KAAKgoJ,WAAY,GAAIljJ,OAAO8B,cAWhCpE,IAAK,mBACLgC,MAAO,SAA0BsF,GAC/B,GAAIo6B,GAAUlkC,KAAKyS,KAAKyyH,UAAU/gG,WAAWr6B,EAAMk4B,OACnD,QAAmC9+B,KAA/BlD,KAAK66J,aAAa38G,MAAM,GAAkB,CAC5C,GAAI8gH,GAAah/J,KAAKyS,KAAKyrC,MAAMl+C,KAAK66J,aAAa38G,MAAM,GACzD8gH,GAAWrvJ,EAAI3P,KAAK41G,OAAOwxC,qBAAqBljH,EAAQv0B,GACxDqvJ,EAAWrjJ,EAAI3b,KAAK41G,OAAOyxC,qBAAqBnjH,EAAQvoB,GACxD3b,KAAKyS,KAAK8c,QAAQ1a,KAAK,eAClB,CACL,GAAI2pG,GAAQt6E,EAAQv0B,EAAI3P,KAAK0rH,UAAU/7G,EACnC8uG,EAAQv6E,EAAQvoB,EAAI3b,KAAK0rH,UAAU/vG,CACvC3b,MAAKyS,KAAKkR,KAAK4wF,aAAgB5kG,EAAG3P,KAAK0rH,UAAUnX,YAAY5kG,EAAI6uG,EAAO7iG,EAAG3b,KAAK0rH,UAAUnX,YAAY54F,EAAI8iG,OAW9Gj8G,IAAK,iBACLgC,MAAO,SAAwBsF,GAC7B,GAAIo6B,GAAUlkC,KAAKyS,KAAKyyH,UAAU/gG,WAAWr6B,EAAMk4B,QAC/CkpH,EAAalrJ,KAAKulI,iBAAiBmmB,yBAAyBxnH,GAG5Dg7H,MAAgBh8J,OACeA,KAA/BlD,KAAK66J,aAAahgI,MAAM,KAC1BqkI,EAAgBl/J,KAAKyS,KAAKooB,MAAM76B,KAAK66J,aAAahgI,MAAM,IAAIohB,OAM9D,KAAK,GAFD8iH,GAAqB/+J,KAAKulI,iBAAiBooB,4BAA4BzC,GACvE7pG,MAAOn+C,GACF7C,EAAI0+J,EAAmB18J,OAAS,EAAGhC,GAAK,EAAGA,IAElD,IAAgE,IAA5DL,KAAK66J,aAAa38G,MAAM/3C,QAAQ44J,EAAmB1+J,IAAY,CACjEghD,EAAOrhD,KAAKyS,KAAKyrC,MAAM6gH,EAAmB1+J,GAC1C,OAKJL,KAAKg+J,qCAGQ96J,KAATm+C,KACqB,IAAnBA,EAAKqmF,UACPlG,MAAMxhI,KAAKqP,QAAQ8oB,QAAQn4B,KAAKqP,QAAQ0lB,QAAyB,iBAAK/0B,KAAKqP,QAAQ8oB,QAAY,GAAmB,qBAE3Ej1B,KAAnClD,KAAKyS,KAAKyrC,MAAMghH,QAA6Dh8J,KAA7BlD,KAAKyS,KAAKyrC,MAAMmD,EAAK/qC,KACvEtW,KAAKm/J,gBAAgBD,EAAe79G,EAAK/qC,KAM/CtW,KAAKyS,KAAK8c,QAAQ1a,KAAK,cAUzBrS,IAAK,iBACLgC,MAAO,SAAwBsF,GAC7B,GAAIo6B,GAAUlkC,KAAK0rH,SACnB1rH,MAAKulI,iBAAiBgkB,oBAAoB,YAAaz/I,EAAOo6B,MAAShhC,IAAW,MAgBpFV,IAAK,kBACLgC,MAAO,SAAyB46J,GAC9B,GAAIpnH,GAASh4C,KAETq/J,GACF/oJ,GAAIT,EAAK1Q,aACTwK,EAAGyvJ,EAAUl7H,QAAQ0xE,OAAOjmG,EAC5BgM,EAAGyjJ,EAAUl7H,QAAQ0xE,OAAOj6F,EAC5BM,MAAO,MAGT,IAAoC,kBAAzBjc,MAAKqP,QAAQk8D,QAAwB,CAC9C,GAAoC,IAAhCvrE,KAAKqP,QAAQk8D,QAAQlpE,OAUvB,KADArC,MAAKm7J,yBACC,GAAIt1J,OAAM,sEAThB7F,MAAKqP,QAAQk8D,QAAQ8zF,EAAa,SAAU5C,GACpB,OAAlBA,OAA4Cv5J,KAAlBu5J,GAAiD,YAAlBzkH,EAAO+iH,SAElE/iH,EAAOvlC,KAAKyC,KAAKgpC,MAAMlmC,aAAavC,IAAIgnJ,GACxCzkH,EAAOmjH,gCAQbn7J,MAAKyS,KAAKyC,KAAKgpC,MAAMlmC,aAAavC,IAAI4pJ,GACtCr/J,KAAKm7J,4BAaT34J,IAAK,kBACLgC,MAAO,SAAyB86J,EAAcC,GAC5C,GAAInnH,GAASp4C,KAETq/J,GAAgBhjH,KAAMijH,EAAchjH,GAAIijH,EAC5C,IAAoC,kBAAzBv/J,MAAKqP,QAAQq8D,QAAwB,CAC9C,GAAoC,IAAhC1rE,KAAKqP,QAAQq8D,QAAQrpE,OAUvB,KAAM,IAAIwD,OAAM,0EAThB7F,MAAKqP,QAAQq8D,QAAQ2zF,EAAa,SAAU5C,GACpB,OAAlBA,OAA4Cv5J,KAAlBu5J,GAAiD,YAAlBrkH,EAAO2iH,SAElE3iH,EAAO3lC,KAAKyC,KAAK2lB,MAAM7iB,aAAavC,IAAIgnJ,GACxCrkH,EAAOmtF,iBAAiB2B,cACxB9uF,EAAO+iH,gCAObn7J,MAAKyS,KAAKyC,KAAK2lB,MAAM7iB,aAAavC,IAAI4pJ,GACtCr/J,KAAKulI,iBAAiB2B,cACtBlnI,KAAKm7J,4BAaT34J,IAAK,mBACLgC,MAAO,SAA0B86J,EAAcC,GAC7C,GAAIxH,GAAS/3J,KAETq/J,GAAgB/oJ,GAAItW,KAAK+8J,kBAAmB1gH,KAAMijH,EAAchjH,GAAIijH,EAActjJ,MAAOjc,KAAKyS,KAAKyC,KAAK2lB,MAAMzlB,MAAMpV,KAAK+8J,mBAAmB9gJ,OAC5IujJ,EAAUx/J,KAAKqP,QAAQ6vE,QAI3B,IAH2F,gBAAnE,KAAZsgF,EAA0B,aAAc,EAAI97J,EAAkB,SAAG87J,MAC3EA,EAAUA,EAAQrgF,iBAEG,kBAAZqgF,GAAwB,CACjC,GAAuB,IAAnBA,EAAQn9J,OAcV,KAAM,IAAIwD,OAAM,wEAbhB25J,GAAQH,EAAa,SAAU5C,GACP,OAAlBA,OAA4Cv5J,KAAlBu5J,GAAiD,aAAlB1E,EAAOgD,QAElEhD,EAAOtlJ,KAAKooB,MAAMwkI,EAAY/oJ,IAAIomC,iBAClCq7G,EAAOtlJ,KAAK8c,QAAQ1a,KAAK,WACzBkjJ,EAAOoD,2BAEPpD,EAAOtlJ,KAAKyC,KAAK2lB,MAAM7iB,aAAarB,OAAO8lJ,GAC3C1E,EAAOxyB,iBAAiB2B,cACxB6wB,EAAOoD,gCAObn7J,MAAKyS,KAAKyC,KAAK2lB,MAAM7iB,aAAarB,OAAO0oJ,GACzCr/J,KAAKulI,iBAAiB2B,cACtBlnI,KAAKm7J,6BAIJh1B,IAGTxmI,GAAiB,QAAIwmI,GAIf,SAAUvmI,EAAQD,EAASO,GAyBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GApBzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAI8sE,GAAkBpxE,EAAoB,IAEtCqxE,EAAkB5uE,EAAuB2uE,GAEzC70D,EAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GAEvC8iJ,EAAiBv/J,EAAoB,KAErCw/J,EAAkB/8J,EAAuB88J,GAYzCj5B,EAAc,WAMhB,QAASA,GAAY/zH,EAAM4nI,EAAYslB,IACrC,EAAIjjJ,EAA0B,SAAG1c,KAAMwmI,GAEvCxmI,KAAKyS,KAAOA,EACZzS,KAAK2/E,aAAe06D,EACpBr6I,KAAK4/E,eAAiB+/E,EACtB3/J,KAAK4/J,eAAiB,GAAIF,GAAyB,QAwUrD,OA/TA,EAAI9iJ,EAAuB,SAAG4pH,IAC5BhkI,IAAK,aACLgC,MAAO,SAAoB6K,GACrBA,IACEA,EAAQswE,eACV3/E,KAAK2/E,aAAetwE,EAAQswE,cAE1BtwE,EAAQuwE,iBACV5/E,KAAK4/E,eAAiBvwE,EAAQuwE,oBAapCp9E,IAAK,QACLgC,MAAO,SAAe87I,EAAYuf,GAChC,GAAIC,GAAiBv6J,UAAUlD,OAAS,OAAsBa,KAAjBqC,UAAU,IAAmBA,UAAU,GAGhFw6J,EAAW//J,KAAK4/J,eAAeI,aAAahgK,KAAKyS,KAAM6tI,EAAYuf,EAGvE7/J,MAAKigK,gBAAgBF,GAGrB//J,KAAKkgK,gBAAgBH,GAGrB//J,KAAKmgK,iBAgBL,KAbA,GAEI9/E,GAAa,EACb+/E,EAAgB17J,KAAKJ,IAAI,IAAMI,KAAKL,IAAI,GAAKrE,KAAKyS,KAAK2nE,YAAY/3E,OAAQ,MAG3Eg+J,EAAY,IACZC,EAAe,EACfC,EAAQ,EACRC,EAAQ,EACRC,EAAU,EACVC,EAAgB,EAEbL,EAbS,KAagBhgF,EAAa+/E,GAAe,CAC1D//E,GAAc,CAEd,IAAIsgF,GAAyB3gK,KAAK4gK,sBAAsBd,GAEpDe,GAAyB,EAAItvF,EAAyB,SAAGovF,EAAwB,EASrF,KAPAL,EAAeO,EAAuB,GACtCR,EAAYQ,EAAuB,GACnCN,EAAQM,EAAuB,GAC/BL,EAAQK,EAAuB,GAE/BJ,EAAUJ,EACVK,EAAgB,EACTD,EA1BY,GA0BgBC,EAvBZ,GAuBgD,CACrEA,GAAiB,EACjB1gK,KAAK8gK,UAAUR,EAAcC,EAAOC,EAEpC,IAAIO,GAAc/gK,KAAKghK,WAAWV,GAE9BW,GAAc,EAAI1vF,EAAyB,SAAGwvF,EAAa,EAE/DN,GAAUQ,EAAY,GACtBV,EAAQU,EAAY,GACpBT,EAAQS,EAAY,QAa1Bz+J,IAAK,wBACLgC,MAAO,SAA+Bs7J,GAQpC,IAAK,GAPDxf,GAAatgJ,KAAKyS,KAAK2nE,YACvBl8B,EAAQl+C,KAAKyS,KAAKyrC,MAClBmiH,EAAY,EACZa,EAAkB5gB,EAAW,GAC7B6gB,EAAY,EACZC,EAAY,EAEPC,EAAU,EAAGA,EAAU/gB,EAAWj+I,OAAQg/J,IAAW,CAC5D,GAAI7gK,GAAI8/I,EAAW+gB,EAEnB,KAAoC,IAAhCnjH,EAAM19C,GAAGy6B,qBAAuD,IAAvBijB,EAAM19C,GAAGknI,YAAyC,IAAnBo4B,IAAwD,IAA7B5hH,EAAM19C,GAAG6O,QAAQmtB,MAAM7sB,IAA2C,IAA7BuuC,EAAM19C,GAAG6O,QAAQmtB,MAAM7gB,EAAY,CAC7K,GAAI2lJ,GAActhK,KAAKghK,WAAWxgK,GAC9B+gK,GAAc,EAAIhwF,EAAyB,SAAG+vF,EAAa,GAC3Db,EAAUc,EAAY,GACtBhB,EAAQgB,EAAY,GACpBf,EAAQe,EAAY,EAEpBlB,GAAYI,IACdJ,EAAYI,EACZS,EAAkB1gK,EAClB2gK,EAAYZ,EACZa,EAAYZ,IAKlB,OAAQU,EAAiBb,EAAWc,EAAWC,MAWjD5+J,IAAK,aACLgC,MAAO,SAAoBhE,GACzB,GAAIghK,IAAY,EAAIjwF,EAAyB,SAAGvxE,KAAKyhK,OAAOjhK,GAAI,GAC5D+/J,EAAQiB,EAAU,GAClBhB,EAAQgB,EAAU,EAGtB,QADc98J,KAAK2iB,KAAK3iB,KAAK48C,IAAIi/G,EAAO,GAAK77J,KAAK48C,IAAIk/G,EAAO,IAC5CD,EAAOC,MAa1Bh+J,IAAK,YACLgC,MAAO,SAAmBhE,EAAG+/J,EAAOC,GAYlC,IAAK,GAXDlgB,GAAatgJ,KAAKyS,KAAK2nE,YACvBl8B,EAAQl+C,KAAKyS,KAAKyrC,MAClBwjH,EAAU,EACVC,EAAW,EACXC,EAAU,EAEVC,EAAM3jH,EAAM19C,GAAGmP,EACfmyJ,EAAM5jH,EAAM19C,GAAGmb,EACfomJ,EAAK/hK,KAAKgiK,SAASxhK,GACnByhK,EAAKjiK,KAAKkiK,SAAS1hK,GAEd2hK,EAAO,EAAGA,EAAO7hB,EAAWj+I,OAAQ8/J,IAAQ,CACnD,GAAI9hK,GAAIigJ,EAAW6hB,EACnB,IAAI9hK,IAAMG,EAAG,CACX,GAAI4hK,GAAMlkH,EAAM79C,GAAGsP,EACf0yJ,EAAMnkH,EAAM79C,GAAGsb,EACf2mJ,EAAOP,EAAG1hK,GACVkiK,EAAON,EAAG5hK,GACVmiK,EAAc,EAAM99J,KAAK48C,IAAI58C,KAAK48C,IAAIugH,EAAMO,EAAK,GAAK19J,KAAK48C,IAAIwgH,EAAMO,EAAK,GAAI,IAClFX,IAAWY,GAAQ,EAAIC,EAAO79J,KAAK48C,IAAIwgH,EAAMO,EAAK,GAAKG,GACvDb,GAAYW,GAAQC,GAAQV,EAAMO,IAAQN,EAAMO,GAAOG,GACvDZ,GAAWU,GAAQ,EAAIC,EAAO79J,KAAK48C,IAAIugH,EAAMO,EAAK,GAAKI,IAI3D,GAAIz4F,GAAI23F,EACJ5gJ,EAAI6gJ,EACJzgJ,EAAIq/I,EACJ1+E,EAAI+/E,EACJ79E,EAAIy8E,EAGJrgH,GAAMj/B,EAAI6oD,EAAIga,EAAIjjE,IAAMA,EAAIipD,EAAI8X,EAAI/gE,GACpCs/B,IAAOt/B,EAAIq/B,EAAKj/B,GAAK6oD,CAGzB7rB,GAAM19C,GAAGmP,GAAKywC,EACdlC,EAAM19C,GAAGmb,GAAKwkC,EAGdngD,KAAKyiK,gBAAgBjiK,MAUvBgC,IAAK,kBACLgC,MAAO,SAAyBu7J,GAC9B,GAAIzf,GAAatgJ,KAAKyS,KAAK2nE,YACvBigE,EAAar6I,KAAK2/E,YAEtB3/E,MAAKkiK,WACL,KAAK,GAAI7hK,GAAI,EAAGA,EAAIigJ,EAAWj+I,OAAQhC,IAAK,CAC1CL,KAAKkiK,SAAS5hB,EAAWjgJ,MACzB,KAAK,GAAI6O,GAAI,EAAGA,EAAIoxI,EAAWj+I,OAAQ6M,IACrClP,KAAKkiK,SAAS5hB,EAAWjgJ,IAAIigJ,EAAWpxI,IAAMmrI,EAAa0lB,EAASzf,EAAWjgJ,IAAIigJ,EAAWpxI,QAYpG1M,IAAK,kBACLgC,MAAO,SAAyBu7J,GAC9B,GAAIzf,GAAatgJ,KAAKyS,KAAK2nE,YACvBulF,EAAe3/J,KAAK4/E,cAExB5/E,MAAKgiK,WACL,KAAK,GAAI3hK,GAAI,EAAGA,EAAIigJ,EAAWj+I,OAAQhC,IAAK,CAC1CL,KAAKgiK,SAAS1hB,EAAWjgJ,MACzB,KAAK,GAAI6O,GAAI,EAAGA,EAAIoxI,EAAWj+I,OAAQ6M,IACrClP,KAAKgiK,SAAS1hB,EAAWjgJ,IAAIigJ,EAAWpxI,IAAMywJ,EAAej7J,KAAK48C,IAAIy+G,EAASzf,EAAWjgJ,IAAIigJ,EAAWpxI,KAAM,OAWrH1M,IAAK,kBACLgC,MAAO,WACL,GAAI87I,GAAatgJ,KAAKyS,KAAK2nE,YACvBl8B,EAAQl+C,KAAKyS,KAAKyrC,KACtBl+C,MAAK0iK,YACL1iK,KAAKyhK,SACL,KAAK,GAAIkB,GAAO,EAAGA,EAAOriB,EAAWj+I,OAAQsgK,IAC3C3iK,KAAK0iK,SAASpiB,EAAWqiB,MAE3B,KAAK,GAAIC,GAAQ,EAAGA,EAAQtiB,EAAWj+I,OAAQugK,IAAS,CAMtD,IAAK,GALDpiK,GAAI8/I,EAAWsiB,GACff,EAAM3jH,EAAM19C,GAAGmP,EACfmyJ,EAAM5jH,EAAM19C,GAAGmb,EACf4kJ,EAAQ,EACRC,EAAQ,EACH2B,EAAOS,EAAOT,EAAO7hB,EAAWj+I,OAAQ8/J,IAAQ,CACvD,GAAI9hK,GAAIigJ,EAAW6hB,EACnB,IAAI9hK,IAAMG,EAAG,CACX,GAAI4hK,GAAMlkH,EAAM79C,GAAGsP,EACf0yJ,EAAMnkH,EAAM79C,GAAGsb,EACf6mJ,EAAc,EAAM99J,KAAK2iB,KAAK3iB,KAAK48C,IAAIugH,EAAMO,EAAK,GAAK19J,KAAK48C,IAAIwgH,EAAMO,EAAK,GAC/EriK,MAAK0iK,SAASliK,GAAG2hK,IAASniK,KAAKgiK,SAASxhK,GAAGH,IAAMwhK,EAAMO,EAAMpiK,KAAKkiK,SAAS1hK,GAAGH,IAAMwhK,EAAMO,GAAOI,GAAcxiK,KAAKgiK,SAASxhK,GAAGH,IAAMyhK,EAAMO,EAAMriK,KAAKkiK,SAAS1hK,GAAGH,IAAMyhK,EAAMO,GAAOG,IACtLxiK,KAAK0iK,SAASriK,GAAGuiK,GAAS5iK,KAAK0iK,SAASliK,GAAG2hK,GAC3C5B,GAASvgK,KAAK0iK,SAASliK,GAAG2hK,GAAM,GAChC3B,GAASxgK,KAAK0iK,SAASliK,GAAG2hK,GAAM,IAIpCniK,KAAKyhK,OAAOjhK,IAAM+/J,EAAOC,OAY7Bh+J,IAAK,kBACLgC,MAAO,SAAyBhE,GAU9B,IAAK,GATD8/I,GAAatgJ,KAAKyS,KAAK2nE,YACvBl8B,EAAQl+C,KAAKyS,KAAKyrC,MAClB2kH,EAAO7iK,KAAK0iK,SAASliK,GACrBsiK,EAAQ9iK,KAAKgiK,SAASxhK,GACtBuiK,EAAQ/iK,KAAKkiK,SAAS1hK,GACtBqhK,EAAM3jH,EAAM19C,GAAGmP,EACfmyJ,EAAM5jH,EAAM19C,GAAGmb,EACf4kJ,EAAQ,EACRC,EAAQ,EACH2B,EAAO,EAAGA,EAAO7hB,EAAWj+I,OAAQ8/J,IAAQ,CACnD,GAAI9hK,GAAIigJ,EAAW6hB,EACnB,IAAI9hK,IAAMG,EAAG,CAEX,GAAIwiK,GAAOH,EAAKV,GACZc,EAAQD,EAAK,GACbE,EAAQF,EAAK,GAGbZ,EAAMlkH,EAAM79C,GAAGsP,EACf0yJ,EAAMnkH,EAAM79C,GAAGsb,EACf6mJ,EAAc,EAAM99J,KAAK2iB,KAAK3iB,KAAK48C,IAAIugH,EAAMO,EAAK,GAAK19J,KAAK48C,IAAIwgH,EAAMO,EAAK,IAC3EjiH,EAAK0iH,EAAMziK,IAAMwhK,EAAMO,EAAMW,EAAM1iK,IAAMwhK,EAAMO,GAAOI,GACtDriH,EAAK2iH,EAAMziK,IAAMyhK,EAAMO,EAAMU,EAAM1iK,IAAMyhK,EAAMO,GAAOG,EAC1DK,GAAKV,IAAS/hH,EAAID,GAClBogH,GAASngH,EACTogH,GAASrgH,CAGT,IAAIl5B,GAAMjnB,KAAKyhK,OAAOphK,EACtB4mB,GAAI,IAAMm5B,EAAK6iH,EACfh8I,EAAI,IAAMk5B,EAAK+iH,GAInBljK,KAAKyhK,OAAOjhK,IAAM+/J,EAAOC,OAGtBh6B,IAIT7mI,GAAiB,QAAI6mI,GAIf,SAAU5mI,EAAQD,EAASO,GAiBjC,QAASyC,GAAuBV,GAAO,MAAOA,IAAOA,EAAIb,WAAaa,GAAQN,QAAWM,GAZzFnB,OAAOC,eAAepB,EAAS,cAC7B6E,OAAO,GAGT,IAAIiY,GAAmBvc,EAAoB,GAEvCwc,EAAmB/Z,EAAuB8Z,GAE1CE,EAAgBzc,EAAoB,GAEpC0c,EAAgBja,EAAuBga,GASvCwmJ,EAAgB,WAIlB,QAASA,MACP,EAAIzmJ,EAA0B,SAAG1c,KAAMmjK,GA6DzC,OAjDA,EAAIvmJ,EAAuB,SAAGumJ,IAC5B3gK,IAAK,eACLgC,MAAO,SAAsBiO,EAAM6tI,EAAYuf,GAK7C,IAAK,GAJDE,MACAllI,EAAQpoB,EAAKooB,MAGRx6B,EAAI,EAAGA,EAAIigJ,EAAWj+I,OAAQhC,IAAK,CAC1C,GAAIghD,GAAOi/F,EAAWjgJ,GAClB2iK,IACJjD,GAAS1+G,GAAQ2hH,CACjB,KAAK,GAAI9zJ,GAAI,EAAGA,EAAIoxI,EAAWj+I,OAAQ6M,IACrC8zJ,EAAK1iB,EAAWpxI,IAAM7O,GAAK6O,EAAI,EAAI,IAKvC,IAAK,GAAIiQ,GAAK,EAAGA,EAAK0gJ,EAAWx9J,OAAQ8c,IAAM,CAC7C,GAAI+b,GAAOL,EAAMglI,EAAW1gJ,KAEL,IAAnB+b,EAAKshB,eAAgDt5C,KAA1B68J,EAAS7kI,EAAK+gB,aAAiD/4C,KAAxB68J,EAAS7kI,EAAKghB,QAClF6jH,EAAS7kI,EAAK+gB,QAAQ/gB,EAAKghB,MAAQ,EACnC6jH,EAAS7kI,EAAKghB,MAAMhhB,EAAK+gB,QAAU,GAOvC,IAAK,GAHDo+B,GAAYimE,EAAWj+I,OAGlB4M,EAAI,EAAGA,EAAIorE,EAAWprE,IAG7B,IAAK,GAFDm0J,GAAQ9iB,EAAWrxI,GACnB6zJ,EAAQ/C,EAASqD,GACZp0B,EAAM,EAAGA,EAAM30D,EAAY,EAAG20D,IAGrC,IAAK,GAFDq0B,GAAQ/iB,EAAWtR,GACnBs0B,EAAQvD,EAASsD,GACZnkJ,EAAK8vH,EAAM,EAAG9vH,EAAKm7D,EAAWn7D,IAAM,CAC3C,GAAIqkJ,GAAQjjB,EAAWphI,GACnBskJ,EAAQzD,EAASwD,GAEjBhlI,EAAM75B,KAAKL,IAAIi/J,EAAMC,GAAQD,EAAMF,GAASN,EAAMS,GACtDD,GAAMC,GAAShlI,EACfilI,EAAMH,GAAS9kI,EAKrB,MAAOwhI,OAGJoD,IAGTxjK,GAAiB,QAAIwjK","file":"vis"} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index 1136c8a15..26ea0a3b5 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.21.0 - * @date 2017-10-12 + * @version 4.21.0+az.1.0.0 + * @date 2019-06-06 * * @license * Copyright (C) 2011-2017 Almende B.V, http://almende.com @@ -22,26 +22,26 @@ * * Vis.js may be distributed under either license. */ -"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,e),n.l=!0,n.exports}var i={};return e.m=t,e.c=i,e.d=function(t,i,o){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=123)}([function(t,e,i){e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,i){e.__esModule=!0;var o=i(169),n=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default=function(){function t(t,e){for(var i=0;i2&&void 0!==arguments[2]&&arguments[2];for(var s in t)void 0!==i[s]&&(null===i[s]||"object"!==(0,c.default)(i[s])?n(t,i,s,o):"object"===(0,c.default)(t[s])&&e.fillIfDefined(t[s],i[s],o))},e.extend=function(t,e){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r=0;r3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r in o)if(o.hasOwnProperty(r)&&-1===t.indexOf(r))if(o[r]&&o[r].constructor===Object)void 0===i[r]&&(i[r]={}),i[r].constructor===Object?e.deepExtend(i[r],o[r]):n(i,o,r,s);else if(Array.isArray(o[r])){i[r]=[];for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var r in i)if(i.hasOwnProperty(r)||!0===o)if(i[r]&&i[r].constructor===Object)void 0===t[r]&&(t[r]={}),t[r].constructor===Object?e.deepExtend(t[r],i[r],o):n(t,i,r,s);else if(Array.isArray(i[r])){t[r]=[];for(var a=0;a=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){var o;return-1!=t.indexOf("rgba")?t:-1!=t.indexOf("rgb")?(o=t.substr(t.indexOf("(")+1).replace(")","").split(","),"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"):(o=e.hexToRGB(t),null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")")},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(!0===e.isString(t)){if(!0===e.isValidRGB(t)){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(!0===e.isValidHex(t)){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t;return{h:60*((t==o?3:i==o?1:5)-s/(n-o))/360,s:(n-o)/n,v:n}};var v={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return(0,l.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=v.split(t.style.cssText),n=v.split(i),s=e.extend(o,n);t.style.cssText=v.join(s)},e.removeCssText=function(t,e){var i=v.split(t.style.cssText),o=v.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=v.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},e.isValidRGB=function(t){return t=t.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t)},e.isValidRGBA=function(t){return t=t.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t)},e.selectiveBridgeObject=function(t,i){if(null!==i&&"object"===(void 0===i?"undefined":(0,c.default)(i))){for(var o=(0,h.default)(i),n=0;n0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=function(t){return null!==t&&void 0!==t},s=function(t){return null!==t&&"object"===(void 0===t?"undefined":(0,c.default)(t))};if(!s(t))throw new Error("Parameter mergeTarget must be an object");if(!s(e))throw new Error("Parameter options must be an object");if(!n(i))throw new Error("Parameter option must have a value");if(!s(o))throw new Error("Parameter globalOptions must be an object");var r=e[i],a=s(o)&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(o),d=a?o[i]:void 0,l=d?d.enabled:void 0;if(void 0!==r){if("boolean"==typeof r)return s(t[i])||(t[i]={}),void(t[i].enabled=r);if(null===r&&!s(t[i])){if(!n(d))return;t[i]=(0,h.default)(d)}if(s(r)){var u=!0;void 0!==r.enabled?u=r.enabled:void 0!==l&&(u=d.enabled),function(t,e,i){s(t[i])||(t[i]={});var o=e[i],n=t[i];for(var r in o)o.hasOwnProperty(r)&&(n[r]=o[r])}(t,e,i),t[i].enabled=u}}},e.binarySearchCustom=function(t,e,i,o){for(var n=0,s=0,r=t.length-1;s<=r&&n<1e4;){var a=Math.floor((s+r)/2),h=t[a],d=void 0===o?h[i]:h[i][o],l=e(d);if(0==l)return a;-1==l?s=a+1:r=a-1,n++}return-1},e.binarySearchValue=function(t,e,i,o,n){var s,r,a,h,d=0,l=0,u=t.length-1;for(n=void 0!=n?n:function(t,e){return t==e?0:t0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?l=h+1:u=h-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o},e.topMost=function(t,e){var i=void 0;Array.isArray(e)||(e=[e]);var o=!0,n=!1,s=void 0;try{for(var a,h=(0,r.default)(t);!(o=(a=h.next()).done);o=!0){var d=a.value;if(d){i=d[e[0]];for(var l=1;ln?1:or)&&(s=h,r=d)}return s},n.prototype.min=function(t){var e,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(e=0,i=n.length;e0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){n<0&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.printStyle=void 0;var n=i(19),s=o(n),r=i(6),a=o(r),h=i(8),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=!1,v=void 0,g="background: #FFeeee; color: #dd0000",y=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"validate",value:function(e,i,o){m=!1,v=i;var n=i;return void 0!==o&&(n=i[o]),t.parse(e,n,[]),m}},{key:"parse",value:function(e,i,o){for(var n in e)e.hasOwnProperty(n)&&t.check(n,e,i,o)}},{key:"check",value:function(e,i,o,n){if(void 0===o[e]&&void 0===o.__any__)return void t.getSuggestion(e,o,n);var s=e,r=!0;void 0===o[e]&&void 0!==o.__any__&&(s="__any__",r="object"===t.getType(i[e]));var a=o[s];r&&void 0!==a.__type__&&(a=a.__type__),t.checkFields(e,i,o,s,a,n)}},{key:"checkFields",value:function(e,i,o,n,s,r){var a=function(i){console.log("%c"+i+t.printLocation(r,e),g)},h=t.getType(i[e]),l=s[h];void 0!==l?"array"===t.getType(l)&&-1===l.indexOf(i[e])?(a('Invalid option detected in "'+e+'". Allowed values are:'+t.print(l)+' not "'+i[e]+'". '),m=!0):"object"===h&&"__any__"!==n&&(r=f.copyAndExtendArray(r,e),t.parse(i[e],o[n],r)):void 0===s.any&&(a('Invalid type received for "'+e+'". Expected: '+t.print((0,d.default)(s))+". Received ["+h+'] "'+i[e]+'"'),m=!0)}},{key:"getType",value:function(t){var e=void 0===t?"undefined":(0,a.default)(t);return"object"===e?null===t?"null":t instanceof Boolean?"boolean":t instanceof Number?"number":t instanceof String?"string":Array.isArray(t)?"array":t instanceof Date?"date":void 0!==t.nodeType?"dom":!0===t._isAMomentObject?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,i,o){var n=t.findInOptions(e,i,o,!1),s=t.findInOptions(e,v,[],!0),r=void 0 -;r=void 0!==n.indexMatch?" in "+t.printLocation(n.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n':s.distance<=4&&n.distance>s.distance?" in "+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""):n.distance<=8?'. Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e):". Did you mean one of these: "+t.print((0,d.default)(i))+t.printLocation(o,e),console.log('%cUnknown option detected: "'+e+'"'+r,g),m=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],h=e.toLowerCase(),d=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&!0===n){var c=t.findInOptions(e,i[l],f.copyAndExtendArray(o,l));s>c.distance&&(r=c.closestMatch,a=c.path,s=c.distance,d=c.indexMatch)}else-1!==l.toLowerCase().indexOf(h)&&(d=l),u=t.levenshteinDistance(e,l),s>u&&(r=l,a=f.copyArray(o),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:d}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;n0&&(this.enableBorderDashes(t,e),t.stroke(),this.disableBorderDashes(t,e)),t.restore()}},{key:"performFill",value:function(t,e){this.enableShadow(t,e),t.fill(),this.disableShadow(t,e),this.performStroke(t,e)}},{key:"_addBoundingBoxMargin",value:function(t){this.boundingBox.left-=t,this.boundingBox.top-=t,this.boundingBox.bottom+=t,this.boundingBox.right+=t}},{key:"_updateBoundingBox",value:function(t,e,i,o,n){void 0!==i&&this.resize(i,o,n),this.left=t-this.width/2,this.top=e-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"updateBoundingBox",value:function(t,e,i,o,n){this._updateBoundingBox(t,e,i,o,n)}},{key:"getDimensionsFromLabel",value:function(t,e,i){this.textSize=this.labelModule.getTextSize(t,e,i);var o=this.textSize.width,n=this.textSize.height;return 0===o&&(o=14,n=14),{width:o,height:n}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{size:this.options.size};if(this.needsRefresh(e,i)){this.labelModule.getTextSize(t,e,i);var n=2*o.size;this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"_drawShape",value:function(t,e,i,o,n,s,r,a){if(this.resize(t,s,r,a),this.left=o-this.width/2,this.top=n-this.height/2,this.initContextForDraw(t,a),t[e](o,n,a.size),this.performFill(t,a),void 0!==this.options.label){this.labelModule.calculateLabelSize(t,s,r,o,n,"hanging");var h=n+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(t,o,h,s,r,"hanging")}this.updateBoundingBox(o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}]),e}(m.default);e.default=v},function(t,e,i){var o=i(78),n=i(51);t.exports=function(t){return o(n(t))}},function(t,e,i){var o=i(20),n=i(39);t.exports=i(21)?function(t,e,i){return o.f(t,e,n(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){var o=i(32);t.exports=function(t){if(!o(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,i){t.exports={default:i(138),__esModule:!0}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var n=i(188),s=o(n),r=i(77),a=o(r);e.default=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,h=(0,a.default)(t);!(o=(r=h.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(t){n=!0,s=t}finally{try{!o&&h.return&&h.return()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if((0,s.default)(Object(e)))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(t,e){t.exports={}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,i){var o=i(84),n=i(58);t.exports=Object.keys||function(t){return o(t,n)}},function(t,e,i){function o(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}o.subtract=function(t,e){var i=new o;return i.x=t.x-e.x,i.y=t.y-e.y,i.z=t.z-e.z,i},o.add=function(t,e){var i=new o;return i.x=t.x+e.x,i.y=t.y+e.y,i.z=t.z+e.z,i},o.avg=function(t,e){return new o((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},o.crossProduct=function(t,e){var i=new o;return i.x=t.y*e.z-t.z*e.y,i.y=t.z*e.x-t.x*e.z,i.z=t.x*e.y-t.y*e.x,i},o.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=o},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(0,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;e<=122;e++)r[String.fromCharCode(e)]={code:e-97+65,shift:!1};for(e=65;e<=90;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;e<=9;e++)r[""+e]={code:48+e,shift:!1};for(e=1;e<=12;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;e<=9;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r.delete={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;n=4*a){var c=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(c=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-c,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(c=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(c,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(c=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(c,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;d=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(o=0;o=r&&nt.range.end){var h={start:t.range.start,end:i};return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale}return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a);return new Date(h+a+t.range.start)},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n=e&&r=e&&r<=i&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?o<0?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&t0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=(0,h.default)(this.data)}for(var i=0;ithis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},o.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=o},function(t,e){function i(t){if(t)return o(t)}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;n=.4*v}if(this.options.showMinorLabels&&m){var k=this._repaintMinorText(c,y,t,b);k.style.width=_+"px"}f&&this.options.showMajorLabels?(c>0&&(void 0==w&&(w=c),k=this._repaintMajorText(c,s.getLabelMajor(),t,b)),g=this._repaintMajorLine(c,_,t,b)):m?g=this._repaintMinorLine(c,_,t,b):g&&(g.style.width=parseInt(g.style.width)+_+"px")}if(1e3!==x||u||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to 1000 lines."),u=!0),this.options.showMajorLabels){var S=this.body.util.toTime(0),D=s.getLabelMajor(S),M=D.length*(this.props.majorCharWidth||10)+10;(void 0==w||Mt.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"updateGroupOptions",value:function(t,e,i){if(void 0!==i){var o=t.group;if(void 0!==e&&void 0!==e.group&&o!==e.group)throw new Error("updateGroupOptions: group values in options don't match.");if("number"==typeof o||"string"==typeof o&&""!=o){var n=i.get(o);h.selectiveNotDeepExtend(["font"],t,n),t.color=h.parseColor(t.color)}}}},{key:"parseOptions",value:function(e,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments[4],r=["color","fixed","shadow"];if(h.selectiveNotDeepExtend(r,e,i,o),t.checkMass(i),h.mergeOptions(e,i,"shadow",n),void 0!==i.color&&null!==i.color){var a=h.parseColor(i.color);h.fillIfDefined(e.color,a)}else!0===o&&null===i.color&&(e.color=h.bridgeObject(n.color));void 0!==i.fixed&&null!==i.fixed&&("boolean"==typeof i.fixed?(e.fixed.x=i.fixed,e.fixed.y=i.fixed):(void 0!==i.fixed.x&&"boolean"==typeof i.fixed.x&&(e.fixed.x=i.fixed.x),void 0!==i.fixed.y&&"boolean"==typeof i.fixed.y&&(e.fixed.y=i.fixed.y))),!0===o&&null===i.font&&(e.font=h.bridgeObject(n.font)),t.updateGroupOptions(e,i,s),void 0!==i.scaling&&h.mergeOptions(e.scaling,i.scaling,"label",n.scaling)}},{key:"checkMass",value:function(t,e){if(void 0!==t.mass&&t.mass<=0){var i="";void 0!==e&&(i=" in node id: "+e),console.log("%cNegative or zero mass disallowed"+i+", setting mass to 1.",C),t.mass=1}}}]),t}();e.default=O},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(6),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(2),u=function(){function t(){(0,a.default)(this,t)}return(0,d.default)(t,null,[{key:"choosify",value:function(t,e){var i=["node","edge","label"],o=!0,n=l.topMost(e,"chosen");if("boolean"==typeof n)o=n;else if("object"===(void 0===n?"undefined":(0,s.default)(n))){if(-1===i.indexOf(t))throw new Error("choosify: subOption '"+t+"' should be one of '"+i.join("', '")+"'");var r=l.topMost(e,["chosen",t]);"boolean"!=typeof r&&"function"!=typeof r||(o=r)}return o}},{key:"pointInRect",value:function(t,e,i){if(t.width<=0||t.height<=0)return!1;if(void 0!==i){var o={x:e.x-i.x,y:e.y-i.y};if(0!==i.angle){var n=-i.angle;e={x:Math.cos(n)*o.x-Math.sin(n)*o.y,y:Math.sin(n)*o.x+Math.cos(n)*o.y}}else e=o}var s=t.x+t.width,r=t.y+t.width;return t.lefte.x&&t.tope.y}},{key:"isValidLabel",value:function(t){return"string"==typeof t&&""!==t}}]),t}();e.default=u},function(t,e,i){i(125);for(var o=i(18),n=i(26),s=i(31),r=i(13)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),h=0;hdocument.F=Object<\/script>"),t.close(),h=t.F;o--;)delete h.prototype[s[o]];return h()};t.exports=Object.create||function(t,e){var i;return null!==t?(a.prototype=o(t),i=new a,a.prototype=null,i[r]=t):i=h(),void 0===e?i:n(i,e)}},function(t,e){var i=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:i)(t)}},function(t,e,i){var o=i(57)("keys"),n=i(40);t.exports=function(t){return o[t]||(o[t]=n(t))}},function(t,e,i){var o=i(18),n=o["__core-js_shared__"]||(o["__core-js_shared__"]={});t.exports=function(t){return n[t]||(n[t]={})}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){var o=i(20).f,n=i(22),s=i(13)("toStringTag");t.exports=function(t,e,i){t&&!n(t=i?t:t.prototype,s)&&o(t,s,{configurable:!0,value:e})}},function(t,e,i){var o=i(135)(!0);i(79)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=o(e,i),this._i+=t.length,{value:t,done:!1})})},function(t,e,i){e.f=i(13)},function(t,e,i){var o=i(18),n=i(7),s=i(52),r=i(61),a=i(20).f;t.exports=function(t){var e=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:r.f(t)})}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){var i=p().hours(0).minutes(0).seconds(0).milliseconds(0),o=i.clone().add(-3,"days").valueOf(),n=i.clone().add(3,"days").valueOf();this.millisecondsPerPixelCache=void 0,void 0===e?(this.start=o,this.end=n):(this.start=e.start||o,this.end=e.end||n),this.rolling=!1,this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={rtl:!1,start:null,end:null,moment:p,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10,rollingMode:{follow:!1,offset:.5}},this.options=c.extend({},this.defaultOptions),this.props={touch:{}},this.animationTimer=null,this.body.emitter.on("panstart",this._onDragStart.bind(this)),this.body.emitter.on("panmove",this._onDrag.bind(this)),this.body.emitter.on("panend",this._onDragEnd.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.body.dom.rollingModeBtn.addEventListener("click",this.startRolling.bind(this)),this.setOptions(e)}function s(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}var r=i(8),a=o(r),h=i(19),d=o(h),l=i(6),u=o(l),c=i(2),p=i(9),f=i(16),m=i(36);n.prototype=new f,n.prototype.setOptions=function(t){if(t){var e=["animation","direction","min","max","zoomMin","zoomMax","moveable","zoomable","moment","activate","hiddenDates","zoomKey","rtl","showCurrentTime","rollingMode","horizontalScroll"];c.selectiveExtend(e,this.options,t),t.rollingMode&&t.rollingMode.follow&&this.startRolling(),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},n.prototype.startRolling=function(){function t(){e.stopRolling(),e.rolling=!0;var i=e.end-e.start,o=c.convert(new Date,"Date").valueOf(),n=o-i*e.options.rollingMode.offset,s=o+i*(1-e.options.rollingMode.offset),r={animation:!1};e.setRange(n,s,r),i=1/e.conversion(e.body.domProps.center.width).scale/10,i<30&&(i=30),i>1e3&&(i=1e3),e.body.dom.rollingModeBtn.style.visibility="hidden",e.currentTimeTimer=setTimeout(t,i)}var e=this;t()},n.prototype.stopRolling=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility="visible")},n.prototype.setRange=function(t,e,i,o,n){i||(i={}),!0!==i.byUser&&(i.byUser=!1);var s=this,r=void 0!=t?c.convert(t,"Date").valueOf():null,h=void 0!=e?c.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,i.animation){var l=this.start,p=this.end,f="object"===(0,u.default)(i.animation)&&"duration"in i.animation?i.animation.duration:500,v="object"===(0,u.default)(i.animation)&&"easingFunction"in i.animation?i.animation.easingFunction:"easeInOutQuad",g=c.easingFunctions[v];if(!g)throw new Error("Unknown easing function "+(0,d.default)(v)+". Choose from: "+(0,a.default)(c.easingFunctions).join(", "));var y=(new Date).valueOf(),b=!1;return function t(){if(!s.props.touch.dragging){var e=(new Date).valueOf(),a=e-y,d=g(a/f),u=a>f,c=u||null===r?r:l+(r-l)*d,v=u||null===h?h:p+(h-p)*d;_=s._applyRange(c,v),m.updateHiddenDates(s.options.moment,s.body,s.options.hiddenDates),b=b||_;var w={start:new Date(s.start),end:new Date(s.end),byUser:i.byUser,event:i.event};if(n&&n(d,_,u),_&&s.body.emitter.emit("rangechange",w),u){if(b&&(s.body.emitter.emit("rangechanged",w),o))return o()}else s.animationTimer=setTimeout(t,20)}}()}var _=this._applyRange(r,h);if(m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),_){var w={start:new Date(this.start),end:new Date(this.end),byUser:i.byUser,event:i.event};if(this.body.emitter.emit("rangechange",w),clearTimeout(s.timeoutID),s.timeoutID=setTimeout(function(){s.body.emitter.emit("rangechanged",w)},200),o)return o()}},n.prototype.getMillisecondsPerPixel=function(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache},n.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},n.prototype._applyRange=function(t,e){var i,o=null!=t?c.convert(t,"Date").valueOf():this.start,n=null!=e?c.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?c.convert(this.options.max,"Date").valueOf():null,r=null!=this.options.min?c.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(ns&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=r&&o=this.start-.5&&n<=this.end?(o=this.start,n=this.end):(i=a-(n-o),o-=i/2,n+=i/2)}}if(null!==this.options.zoomMax){var h=parseFloat(this.options.zoomMax);h<0&&(h=0),n-o>h&&(this.end-this.start===h&&othis.end?(o=this.start,n=this.end):(i=n-o-h,o+=i/2,n-=i/2))}var d=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,d},n.prototype.getRange=function(){return{start:this.start,end:this.end}},n.prototype.conversion=function(t,e){return n.conversion(this.start,this.end,t,e)},n.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},n.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},n.prototype._onDrag=function(t){if(t&&this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;s(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start;o-=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var n,r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;n=this.options.rtl?i/r*o:-i/r*o;var a=this.props.touch.start+n,h=this.props.touch.end+n,d=m.snapAwayFromHidden(this.body.hiddenDates,a,this.previousDelta-i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0);if(d!=a||l!=h)return this.deltaDifference+=i,this.props.touch.start=d,this.props.touch.end=l,void this._onDrag(t);this.previousDelta=i,this._applyRange(a,h);var u=new Date(this.start),c=new Date(this.end);this.body.emitter.emit("rangechange",{start:u,end:c,byUser:!0,event:t}),this.body.emitter.emit("panmove")}},n.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:t}))},n.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),!(this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable)&&this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var i;i=e<0?1-e/5:1/(1+e/5);var o;if(this.rolling)o=this.start+(this.end-this.start)*this.options.rollingMode.offset;else{var n=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center);o=this._pointerToDate(n)}this.zoom(i,o,e,t),t.preventDefault()}},n.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0,c.preventDefault(t)},n.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){c.preventDefault(t),this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center)),this.stopRolling();var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=1-e<=0,this.endToFront=e-1<=0;var h=m.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),d=m.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&d==a||(this.props.touch.start=h,this.props.touch.end=d,this.scaleOffset=1-t.scale,r=h,a=d);var l={animation:!1,byUser:!0,event:t};this.setRange(r,a,l),this.startToFront=!1,this.endToFront=!0}},n.prototype._isInsideRange=function(t){var e,i=t.center?t.center.x:t.clientX;e=this.options.rtl?i-c.getAbsoluteLeft(this.body.dom.centerContainer):c.getAbsoluteRight(this.body.dom.centerContainer)-i;var o=this.body.util.toTime(e);return o>=this.start&&o<=this.end},n.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(s(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},n.prototype.getPointer=function(t,e){return this.options.rtl?{x:c.getAbsoluteRight(e)-t.x,y:t.y-c.getAbsoluteTop(e)}:{x:t.x-c.getAbsoluteLeft(e),y:t.y-c.getAbsoluteTop(e)}},n.prototype.zoom=function(t,e,i,o){null==e&&(e=(this.start+this.end)/2);var n=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),r=n-s,a=e-s+(this.start-(e-s))*t,h=e+r+(this.end-(e+r))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0) -;var d=m.snapAwayFromHidden(this.body.hiddenDates,a,i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,-i,!0);d==a&&l==h||(a=d,h=l);var u={animation:!1,byUser:!0,event:o};this.setRange(a,h,u),this.startToFront=!1,this.endToFront=!0},n.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},n.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:null};this.setRange(o,n,s)},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){}var s=i(19),r=o(s),a=i(6),h=o(a),d=i(44),l=i(10),u=i(37),c=i(2),p=i(45),f=i(97),m=i(36),v=i(46);d(n.prototype),n.prototype._create=function(t){function e(t){this.isActive()&&this.emit("mousewheel",t);var e=0,i=0;if("detail"in t&&(i=-1*t.detail),"wheelDelta"in t&&(i=t.wheelDelta),"wheelDeltaY"in t&&(i=t.wheelDeltaY),"wheelDeltaX"in t&&(e=-1*t.wheelDeltaX),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=-1*i,i=0),"deltaY"in t&&(i=-1*t.deltaY),"deltaX"in t&&(e=t.deltaX),this.options.zoomKey&&!t[this.options.zoomKey])if(t.preventDefault(),this.options.verticalScroll&&Math.abs(i)>=Math.abs(e)){var o=this.props.scrollTop,n=o+i;this.isActive()&&(this._setScrollTop(n),this._redraw(),this.emit("scroll",t))}else if(this.options.horizontalScroll){var s=Math.abs(e)>=Math.abs(i)?e:i,r=s/120*(this.range.end-this.range.start)/20,a=this.range.start+r,h=this.range.end+r,d={animation:!1,byUser:!0,event:t};this.range.setRange(a,h,d)}}function i(t){if(s.options.verticalScroll&&(t.preventDefault(),s.isActive())){var e=-t.target.scrollTop;s._setScrollTop(e),s._redraw(),s.emit("scrollSide",t)}}function o(t){if(t.preventDefault&&t.preventDefault(),!(!t.target.className.indexOf("vis")>-1||a))return t.dataTransfer.dropEffect="move",a=!0,!1}function n(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation();try{var e=JSON.parse(t.dataTransfer.getData("text"));if(!e||!e.content)return}catch(t){return!1}return a=!1,t.center={x:t.clientX,y:t.clientY},"item"!==e.target?s.itemSet._onAddItem(t):s.itemSet._onDropObjectOnItem(t),s.emit("drop",s.getEventProperties(t)),!1}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.rollingModeBtn=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.rollingModeBtn.className="vis-rolling-mode-btn",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on("rangechange",function(){!0===this.initialDrawDone&&this._redraw()}.bind(this)),this.on("rangechanged",function(){this.initialRangeChangeDone||(this.initialRangeChangeDone=!0)}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("panmove",this._onDrag.bind(this));var s=this;this._origRedraw=this._redraw.bind(this),this._redraw=c.throttle(this._origRedraw),this.on("_change",function(t){s.itemSet&&s.itemSet.initialItemSetDrawn&&t&&1==t.queue?s._redraw():s._origRedraw()}),this.hammer=new l(this.dom.root);var r=this.hammer.get("pinch").set({enable:!0});u.disablePreventDefaultVertically(r),this.hammer.get("pan").set({threshold:5,direction:l.DIRECTION_HORIZONTAL}),this.listeners={},["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach(function(t){var e=function(e){s.isActive()&&s.emit(t,e)};s.hammer.on(t,e),s.listeners[t]=e}),u.onTouch(this.hammer,function(t){s.emit("touch",t)}.bind(this)),u.onRelease(this.hammer,function(t){s.emit("release",t)}.bind(this)),this.dom.centerContainer.addEventListener?(this.dom.centerContainer.addEventListener("mousewheel",e.bind(this),!1),this.dom.centerContainer.addEventListener("DOMMouseScroll",e.bind(this),!1)):this.dom.centerContainer.attachEvent("onmousewheel",e.bind(this)),this.dom.left.parentNode.addEventListener("scroll",i.bind(this)),this.dom.right.parentNode.addEventListener("scroll",i.bind(this));var a=!1;if(this.dom.center.addEventListener("dragover",o.bind(this),!1),this.dom.center.addEventListener("drop",n.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,this.initialRangeChangeDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},n.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","zoomKey","horizontalScroll","verticalScroll"];if(c.selectiveExtend(e,this.options,t),this.dom.rollingModeBtn.style.visibility="hidden",this.options.rtl&&(this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className="vis-panel vis-right vis-vertical-scroll":this.dom.leftContainer.className="vis-panel vis-left vis-vertical-scroll"),"object"!==(0,h.default)(this.options.orientation)&&(this.options.orientation={item:void 0,axis:void 0}),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===(0,h.default)(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new p(this.body);i.setOptions=function(t){var e=t?c.extend({},t):{};e.orientation="top",p.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&m.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new f(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=c.deepExtend({},this.options);this.components.forEach(function(t){c.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},n.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));i.length>0&&i[0].setCustomTime(t)},n.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));return e[0].getCustomTime()},n.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));if(i.length>0)return i[0].setCustomTitle(t)},n.prototype.getEventProperties=function(t){return{event:t}},n.prototype.addCustomTime=function(t,e){var i=void 0!==t?c.convert(t,"Date").valueOf():new Date;if(this.customTimes.some(function(t){return t.options.id===e}))throw new Error("A custom time with id "+(0,r.default)(e)+" already exists");var o=new v(this.body,c.extend({},this.options,{time:i,id:e}));return this.customTimes.push(o),this.components.push(o),this._redraw(),e},n.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},n.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},n.prototype.fit=function(t,e){var i=this.getDataRange();if(null!==i.min||null!==i.max){var o=i.max-i.min,n=new Date(i.min.valueOf()-.01*o),s=new Date(i.max.valueOf()+.01*o),r=!t||void 0===t.animation||t.animation;this.range.setRange(n,s,{animation:r},e)}},n.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},n.prototype.setWindow=function(t,e,i,o){"function"==typeof arguments[2]&&(o=arguments[2],i={});var n,s;1==arguments.length?(s=arguments[0],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n})):2==arguments.length&&"function"==typeof arguments[1]?(s=arguments[0],o=arguments[1],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n},o)):(n=!i||void 0===i.animation||i.animation,this.range.setRange(t,e,{animation:n},o))},n.prototype.moveTo=function(t,e,i){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.range.end-this.range.start,n=c.convert(t,"Date").valueOf(),s=n-o/2,r=n+o/2,a=!e||void 0===e.animation||e.animation;this.range.setRange(s,r,{animation:a},i)},n.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},n.prototype.zoomIn=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=r/(1+t),h=(r-a)/2,d=n+h,l=s-h;this.setWindow(d,l,e,i)}},n.prototype.zoomOut=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=n-r*t/2,h=s+r*t/2;this.setWindow(a,h,e,i)}},n.prototype.redraw=function(){this._redraw()},n.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.offsetWidth){m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(c.addClassName(o.root,"vis-top"),c.removeClassName(o.root,"vis-bottom")):(c.removeClassName(o.root,"vis-top"),c.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=c.option.asSize(e.maxHeight,""),o.root.style.minHeight=c.option.asSize(e.minHeight,""),o.root.style.width=c.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top,i.borderRootHeight=o.root.offsetHeight-o.root.clientHeight,i.borderRootWidth=o.root.offsetWidth-o.root.clientWidth,0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(i.borderRootWidth=i.borderRootHeight),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var n=Math.max(i.left.height,i.center.height,i.right.height),s=i.top.height+n+i.bottom.height+i.borderRootHeight+i.border.top+i.border.bottom;o.root.style.height=c.option.asSize(e.height,s+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-i.borderRootHeight;var r=i.root.height-i.top.height-i.bottom.height-i.borderRootHeight;i.centerContainer.height=r,i.leftContainer.height=r,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-i.borderRootWidth,this.initialDrawDone||(i.scrollbarWidth=c.getScrollBarWidth()),e.verticalScroll?e.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),this._setDOM();var a=this._updateScrollTop();"top"!=e.orientation.item&&(a+=Math.max(i.centerContainer.height-i.center.height-i.border.top-i.border.bottom,0)),o.center.style.top=a+"px";var h=0==i.scrollTop?"hidden":"",d=i.scrollTop==i.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=h,o.shadowBottom.style.visibility=d,o.shadowTopLeft.style.visibility=h,o.shadowBottomLeft.style.visibility=d,o.shadowTopRight.style.visibility=h,o.shadowBottomRight.style.visibility=d,e.verticalScroll&&(o.rightContainer.className="vis-panel vis-right vis-vertical-scroll",o.leftContainer.className="vis-panel vis-left vis-vertical-scroll",o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden",o.left.style.top="0px",o.right.style.top="0px"),(!e.verticalScroll||i.center.heighti.centerContainer.height;this.hammer.get("pan").set({direction:u?l.DIRECTION_ALL:l.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});if(t){if(this.redrawCount<5)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.body.emitter.emit("changed")}},n.prototype._setDOM=function(){var t=this.props,e=this.dom;t.leftContainer.width=t.left.width,t.rightContainer.width=t.right.width;var i=t.root.width-t.left.width-t.right.width-t.borderRootWidth;t.center.width=i,t.centerContainer.width=i,t.top.width=i,t.bottom.width=i,e.background.style.height=t.background.height+"px",e.backgroundVertical.style.height=t.background.height+"px",e.backgroundHorizontal.style.height=t.centerContainer.height+"px",e.centerContainer.style.height=t.centerContainer.height+"px",e.leftContainer.style.height=t.leftContainer.height+"px",e.rightContainer.style.height=t.rightContainer.height+"px",e.background.style.width=t.background.width+"px",e.backgroundVertical.style.width=t.centerContainer.width+"px",e.backgroundHorizontal.style.width=t.background.width+"px",e.centerContainer.style.width=t.center.width+"px",e.top.style.width=t.top.width+"px",e.bottom.style.width=t.bottom.width+"px",e.background.style.left="0",e.background.style.top="0",e.backgroundVertical.style.left=t.left.width+t.border.left+"px",e.backgroundVertical.style.top="0",e.backgroundHorizontal.style.left="0",e.backgroundHorizontal.style.top=t.top.height+"px",e.centerContainer.style.left=t.left.width+"px",e.centerContainer.style.top=t.top.height+"px",e.leftContainer.style.left="0",e.leftContainer.style.top=t.top.height+"px",e.rightContainer.style.left=t.left.width+t.center.width+"px",e.rightContainer.style.top=t.top.height+"px",e.top.style.left=t.left.width+"px",e.top.style.top="0",e.bottom.style.left=t.left.width+"px",e.bottom.style.top=t.top.height+t.centerContainer.height+"px",e.center.style.left="0",e.left.style.left="0",e.right.style.left="0"},n.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},n.prototype.setCurrentTime=function(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)},n.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},n.prototype._toTime=function(t){return m.toTime(this,t,this.props.center.width)},n.prototype._toGlobalTime=function(t){return m.toTime(this,t,this.props.root.width)},n.prototype._toScreen=function(t){return m.toScreen(this,t,this.props.center.width)},n.prototype._toGlobalScreen=function(t){return m.toScreen(this,t,this.props.root.width)},n.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},n.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){if(1!=t.options.autoResize)return void t._stopAutoResize();t.dom.root&&(t.dom.root.offsetWidth==t.props.lastWidth&&t.dom.root.offsetHeight==t.props.lastHeight||(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight,t.props.scrollbarWidth=c.getScrollBarWidth(),t.body.emitter.emit("_change")))},c.addEventListener(window,"resize",this._onResize),t.dom.root&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},n.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(c.removeEventListener(window,"resize",this._onResize),this._onResize=null)},n.prototype._onTouch=function(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},n.prototype._onPinch=function(t){this.touch.allowDragging=!1},n.prototype._onDrag=function(t){if(t&&this.touch.allowDragging){var e=t.deltaY,i=this._getScrollTop(),o=this._setScrollTop(this.touch.initialScrollTop+e);this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),o!=i&&this.emit("verticalDrag")}},n.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},n.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop0&&this.current.milliseconds()0&&this.current.seconds()0&&this.current.minutes()0&&this.current.hours()0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){31104e9>t&&(this.scale="year",this.step=1e3),15552e9>t&&(this.scale="year",this.step=500),31104e8>t&&(this.scale="year",this.step=100),15552e8>t&&(this.scale="year",this.step=50),31104e7>t&&(this.scale="year",this.step=10),15552e7>t&&(this.scale="year",this.step=5),31104e6>t&&(this.scale="year",this.step=1),7776e6>t&&(this.scale="month",this.step=3),2592e6>t&&(this.scale="month",this.step=1),432e6>t&&(this.scale="day",this.step=5),1728e5>t&&(this.scale="day",this.step=2),864e5>t&&(this.scale="day",this.step=1),432e5>t&&(this.scale="weekday",this.step=1),144e5>t&&(this.scale="hour",this.step=4),36e5>t&&(this.scale="hour",this.step=1),9e5>t&&(this.scale="minute",this.step=15),6e5>t&&(this.scale="minute",this.step=10),3e5>t&&(this.scale="minute",this.step=5),6e4>t&&(this.scale="minute",this.step=1),15e3>t&&(this.scale="second",this.step=15),1e4>t&&(this.scale="second",this.step=10),5e3>t&&(this.scale="second",this.step=5),1e3>t&&(this.scale="second",this.step=1),200>t&&(this.scale="millisecond",this.step=200),100>t&&(this.scale="millisecond",this.step=100),50>t&&(this.scale="millisecond",this.step=50),10>t&&(this.scale="millisecond",this.step=10),5>t&&(this.scale="millisecond",this.step=5),1>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("week"==e)o.weekday()>2?(o.weekday(0),o.add(1,"week")):o.weekday(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.scale){case"year":case"month":case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.scale){case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":case"week":return 1==t.date();case"month":return 0==t.month();case"year":default:return!1}},o.prototype.getLabelMinor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];switch(this.scale){case"week":if(this.isMajor()&&0!==t.weekday())return"";default:return e&&e.length>0?this.moment(t).format(e):""}},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/a%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(n().add(1,"day"),"day")?" vis-tomorrow":t.isSame(n().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}var n=this.moment,s=this.moment(this.current),r=s.locale?s.locale("en"):s.lang("en"),a=this.step,h=[];switch(this.scale){case"millisecond":h.push(e(r)),h.push(t(r.milliseconds()));break;case"second":h.push(e(r)),h.push(t(r.seconds()));break;case"minute":h.push(e(r)),h.push(t(r.minutes()));break;case"hour":h.push("vis-h"+r.hours()+(4==this.step?"-h"+(r.hours()+4):"")),h.push(e(r)),h.push(t(r.hours()));break;case"weekday":h.push("vis-"+r.format("dddd").toLowerCase()),h.push(e(r)),h.push(i(r)),h.push(t(r.date()));break;case"day":h.push("vis-day"+r.date()),h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(e(r)),h.push(o(r)),h.push(this.step<=2?e(r):""),h.push(this.step<=2?"vis-"+r.format("dddd").toLowerCase():""), -h.push(t(r.date()-1));break;case"week":h.push("vis-week"+r.format("w")),h.push(i(r)),h.push(t(r.week()));break;case"month":h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(o(r)),h.push(t(r.month()));break;case"year":h.push("vis-year"+r.year()),h.push(function(t){return t.isSame(new Date,"year")?" vis-current-year":""}(r)),h.push(t(r.year()))}return h.filter(String).join(" ")},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={rtl:!1,showCurrentTime:!0,moment:r,locales:a,locale:"en"},this.options=n.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var n=i(2),s=i(16),r=i(9),a=i(98);o.prototype=new s,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-current-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},o.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},o.prototype.setOptions=function(t){t&&n.selectiveExtend(["rtl","showCurrentTime","moment","locale","locales"],this.options,t)},o.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=this.options.moment((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),o=this.options.locales[this.options.locale];o||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline/#Localization"),this.warned=!0),o=this.options.locales.en);var n=o.current+" "+o.time+": "+e.format("dddd, MMMM Do YYYY, H:mm:ss");n=n.charAt(0).toUpperCase()+n.substring(1),this.options.rtl?this.bar.style.right=i+"px":this.bar.style.left=i+"px",this.bar.title=n}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},o.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,o=1/i/10;o<30&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.groupId=t,this.subgroups={},this.subgroupStack={},this.subgroupStackAll=!1,this.doInnerStack=!1,this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.isVisible=null,this.stackDirty=!0,e&&e.nestedGroups&&(this.nestedGroups=e.nestedGroups,0==e.showNested?this.showNested=!1:this.showNested=!0),e&&e.subgroupStack)if("boolean"==typeof e.subgroupStack)this.doInnerStack=e.subgroupStack,this.subgroupStackAll=e.subgroupStack;else for(var o in e.subgroupStack)this.subgroupStack[o]=e.subgroupStack[o],this.doInnerStack=this.doInnerStack||e.subgroupStack[o];this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var n=this;this.itemSet.body.emitter.on("checkRangedItems",function(){n.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(8),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(100);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.style.position="absolute",this.dom.marker.innerHTML="",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else e instanceof Object?i(t,this.dom.inner):this.dom.inner.innerHTML=void 0!==e&&null!==e?e:this.groupId||"";if(this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?r.removeClassName(this.dom.inner,"vis-hidden"):r.addClassName(this.dom.inner,"vis-hidden"),t&&t.nestedGroups){this.nestedGroups&&this.nestedGroups==t.nestedGroups||(this.nestedGroups=t.nestedGroups),void 0===t.showNested&&void 0!==this.showNested||(0==t.showNested?this.showNested=!1:this.showNested=!0),r.addClassName(this.dom.label,"vis-nesting-group");var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";this.showNested?(r.removeClassName(this.dom.label,o),r.addClassName(this.dom.label,"expanded")):(r.removeClassName(this.dom.label,"expanded"),r.addClassName(this.dom.label,o))}else this.nestedGroups&&(this.nestedGroups=null,o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed",r.removeClassName(this.dom.label,o),r.removeClassName(this.dom.label,"expanded"),r.removeClassName(this.dom.label,"vis-nesting-group"));t&&t.nestedInGroup&&(r.addClassName(this.dom.label,"vis-nested-group"),this.itemSet.options&&this.itemSet.options.rtl?this.dom.inner.style.paddingRight="30px":this.dom.inner.style.paddingLeft="30px");var n=t&&t.className||null;n!=this.className&&(this.className&&(r.removeClassName(this.dom.label,this.className),r.removeClassName(this.dom.foreground,this.className),r.removeClassName(this.dom.background,this.className),r.removeClassName(this.dom.axis,this.className)),r.addClassName(this.dom.label,n),r.addClassName(this.dom.foreground,n),r.addClassName(this.dom.background,n),r.addClassName(this.dom.axis,n),this.className=n),this.style&&(r.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(r.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype._didMarkerHeightChange=function(){var t=this.dom.marker.clientHeight;if(t!=this.lastMarkerHeight){this.lastMarkerHeight=t;var e={},i=0;r.forEach(this.items,function(t,o){if(t.dirty=!0,t.displayed){e[o]=t.redraw(!0),i=e[o].length}});if(i>0)for(var o=0;o0)for(var u=0;u0){var e=this;this.resetSubgroups(),r.forEach(this.visibleItems,function(i){void 0!==i.data.subgroup&&(e.subgroups[i.data.subgroup].height=Math.max(e.subgroups[i.data.subgroup].height,i.height+t.item.vertical),e.subgroups[i.data.subgroup].visible=!0)})}},o.prototype._isGroupVisible=function(t,e){return this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,n=i[0].top+i[0].height;if(r.forEach(i,function(t){o=Math.min(o,t.top),n=Math.max(n,t.top+t.height)}),o>t.axis){var s=o-t.axis;n-=s,r.forEach(i,function(t){t.top-=s})}e=n+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),this.stackDirty=!0,void 0!==t.data.subgroup&&(this._addToSubgroup(t),this.orderSubgroups()),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype._addToSubgroup=function(t,e){e=e||t.data.subgroup,void 0!=e&&void 0===this.subgroups[e]&&(this.subgroups[e]={height:0,top:0,start:t.data.start,end:t.data.end||t.data.start,visible:!1,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[e]||!1},this.subgroupIndex++),new Date(t.data.start)new Date(this.subgroups[e].end)&&(this.subgroups[e].end=i),this.subgroups[e].items.push(t)},o.prototype._updateSubgroupsSizes=function(){var t=this;if(t.subgroups)for(var e in t.subgroups){var i=t.subgroups[e].items[0].data.end||t.subgroups[e].items[0].data.start,o=t.subgroups[e].items[0].data.start,n=i-1;t.subgroups[e].items.forEach(function(t){new Date(t.data.start)new Date(n)&&(n=e)}),t.subgroups[e].start=o,t.subgroups[e].end=new Date(n-1)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t,e=[];if("string"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push({subgroup:t,sortField:this.subgroups[t].items[0].data[this.subgroupOrderer]});e.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push(this.subgroups[t].items[0].data);e.sort(this.subgroupOrderer)}if(e.length>0)for(var i=0;i=0&&(i.items.splice(o,1),i.items.length?this._updateSubgroupsSizes():delete this.subgroups[e])}}},o.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},o.prototype.order=function(){for(var t=r.toArray(this.items),e=[],i=[],o=0;o0)for(var l=0;lh}),1==this.checkRangedItems)for(this.checkRangedItems=!1,l=0;lh})}var p={},f=0;for(l=0;l0)for(var v=0;v=0&&(r=e[s],!n(r));s--)void 0===o[r.id]&&(o[r.id]=!0,i.push(r));for(s=t+1;st.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.visibleFrame=document.createElement("div"),this.dom.visibleFrame.className="vis-item-visible-frame",this.dom.box.appendChild(this.dom.visibleFrame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dom.box["timeline-item"]=this,this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var t=this.editable.updateTime||this.editable.updateGroup,e=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(t?" vis-editable":" vis-readonly");this.dom.box.className=this.baseClassName+e,this.dom.content.style.maxWidth="none"}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.frame).overflow,{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=t.box.height,this.dom.content.style.maxWidth="",this.dirty=!1},o.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDeleteButton(this.dom.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end),r=void 0===this.data.align?this.options.align:this.data.align;!1===this.data.limitSize||void 0!==t&&!0!==t||(n<-o&&(n=-o),s>2*o&&(s=2*o));var a=Math.max(s-n+.5,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=a+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=a,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=a+"px",r){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(a-i,0)+"px":this.dom.content.style.left=Math.max(a-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((a-i)/2,0)+"px":this.dom.content.style.left=Math.max((a-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+e+"px)")}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(179).default,f=function(){function t(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,d.default)(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},c.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new p(n),this.wrapper=void 0}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===(void 0===t?"undefined":(0,a.default)(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),!1===this.options.filter&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):!0!==e&&-1===e.indexOf(n)||(o=!0),!1!==o&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);if(!0===this.options.showButton){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){t._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?i-1:0),n=1;n2&&void 0!==arguments[2]&&arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,o.innerHTML=!0===i?""+t+":":t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(1.2*e),d=a.max,h="range increased"),a.value=e}else a.value=o;var l=document.createElement("input");l.className="vis-configuration vis-config-rangeinput",l.value=a.value;var u=this;a.onchange=function(){l.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){l.value=this.value};var c=this._makeLabel(i[i.length-1],i),p=this._makeItem(i,c,a,l);""!==h&&this.popupHistory[p]!==d&&(this.popupHistory[p]=d,this._setupPopup(h,p))}},{key:"_setupPopup",value:function(t,e){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=c.copyAndExtendArray(e,r);if("function"==typeof n&&!1===(o=n(r,e))&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=!1===i),!1!==o){s=!0;var d=this._getValue(h);if(a instanceof Array)this._handleArray(a,d,h);else if("string"==typeof a)this._makeTextInput(a,d,h);else if("boolean"==typeof a)this._makeCheckbox(a,d,h);else if(a instanceof Object){var l=!0;if(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(l=!1),!0===l)if(void 0!==a.enabled){var u=c.copyAndExtendArray(h,"enabled"),p=this._getValue(u);if(!0===p){var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,p,h)}else{var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;nvar options = "+(0,s.default)(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;ethis.imageObj.height?i=this.imageObj.width/this.imageObj.height:o=this.imageObj.height/this.imageObj.width),t=2*this.options.size*i,e=2*this.options.size*o}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.radius=.5*this.width}},{key:"_drawRawCircle",value:function(t,e,i,o){this.initContextForDraw(t,o),t.circle(e,i,o.size),this.performFill(t,o)}},{key:"_drawImageAtPosition",value:function(t,e){if(0!=this.imageObj.width){t.globalAlpha=1,this.enableShadow(t,e);var i=1;!0===this.options.shapeProperties.interpolation&&(i=this.imageObj.width/this.width/this.body.view.scale),this.imageObj.drawImageAtPosition(t,i,this.left,this.top,this.width,this.height),this.disableShadow(t,e)}}},{key:"_drawImageLabel",value:function(t,e,i,o,n){var s,r=0;if(void 0!==this.height){r=.5*this.height;var a=this.labelModule.getTextSize(t,o,n);a.lineCount>=1&&(r+=a.height/2)}s=i+r,this.options.label&&(this.labelOffset=r),this.labelModule.draw(t,e,s,o,n,"hanging")}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(6),a=o(r),h=i(29),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(117).default,v=i(48).default,g=i(215).default,y=i(217).default,b=i(218).default,_=i(219).default,w=function(){function t(e,i,o,n){if((0,u.default)(this,t),void 0===i)throw new Error("No body provided");this.options=f.bridgeObject(o),this.globalOptions=o,this.defaultOptions=n,this.body=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new m(this.body,this.options,!0),this.setOptions(e)}return(0,p.default)(t,[{key:"setOptions",value:function(e){if(e){t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==e.id&&(this.id=e.id),void 0!==e.from&&(this.fromId=e.from),void 0!==e.to&&(this.toId=e.to),void 0!==e.title&&(this.title=e.title),void 0!==e.value&&(e.value=parseFloat(e.value));var i=[e,this.options,this.defaultOptions];this.chooser=v.choosify("edge",i),this.updateLabelModule(e);var o=this.updateEdgeType();return this._setInteractionWidths(),this.connect(),void 0===e.hidden&&void 0===e.physics||(o=!0),o}}},{key:"getFormattingValues",value:function(){var t=!0===this.options.arrows.to||!0===this.options.arrows.to.enabled,e=!0===this.options.arrows.from||!0===this.options.arrows.from.enabled,i=!0===this.options.arrows.middle||!0===this.options.arrows.middle.enabled,o=this.options.color.inherit,n={toArrow:t,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,middleArrow:i,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,fromArrow:e,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,arrowStrikethrough:this.options.arrowStrikethrough,color:o?void 0:this.options.color.color,inheritsColor:o,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width};if(this.selected||this.hover)if(!0===this.chooser){if(this.selected){var s=this.options.selectionWidth;"function"==typeof s?n.width=s(n.width):"number"==typeof s&&(n.width+=s),n.width=Math.max(n.width,.3/this.body.view.scale),n.color=this.options.color.highlight,n.shadow=this.options.shadow.enabled}else if(this.hover){var r=this.options.hoverWidth;"function"==typeof r?n.width=r(n.width):"number"==typeof r&&(n.width+=r),n.width=Math.max(n.width,.3/this.body.view.scale),n.color=this.options.color.hover,n.shadow=this.options.shadow.enabled}}else"function"==typeof this.chooser&&(this.chooser(n,this.options.id,this.selected,this.hover),void 0!==n.color&&(n.inheritsColor=!1),!1===n.shadow&&(n.shadowColor===this.options.shadow.color&&n.shadowSize===this.options.shadow.size&&n.shadowX===this.options.shadow.x&&n.shadowY===this.options.shadow.y||(n.shadow=!0)));else n.shadow=this.options.shadow.enabled,n.width=Math.max(n.width,.3/this.body.view.scale);return n}},{key:"updateLabelModule",value:function(t){var e=[t,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,e),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateEdgeType",value:function(){var t=this.options.smooth,e=!1,i=!0;return void 0!==this.edgeType&&((this.edgeType instanceof y&&!0===t.enabled&&"dynamic"===t.type||this.edgeType instanceof g&&!0===t.enabled&&"cubicBezier"===t.type||this.edgeType instanceof b&&!0===t.enabled&&"dynamic"!==t.type&&"cubicBezier"!==t.type||this.edgeType instanceof _&&!1===t.type.enabled)&&(i=!1),!0===i&&(e=this.cleanup())),!0===i?!0===t.enabled?"dynamic"===t.type?(e=!0,this.edgeType=new y(this.options,this.body,this.labelModule)):"cubicBezier"===t.type?this.edgeType=new g(this.options,this.body,this.labelModule):this.edgeType=new b(this.options,this.body,this.labelModule):this.edgeType=new _(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),e}},{key:"connect",value:function(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,!0===this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}},{key:"disconnect",value:function(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}},{key:"getTitle",value:function(){return this.title}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(t,e,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.width=this.options.scaling.min+o*n}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}},{key:"_setInteractionWidths",value:function(){"function"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,"function"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}},{key:"draw",value:function(t){var e=this.getFormattingValues();if(!e.hidden){var i=this.edgeType.getViaNode(),o={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,e.fromArrow&&(o.from=this.edgeType.getArrowData(t,"from",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.fromPoint=o.from.core)),e.toArrow&&(o.to=this.edgeType.getArrowData(t,"to",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.toPoint=o.to.core)),e.middleArrow&&(o.middle=this.edgeType.getArrowData(t,"middle",i,this.selected,this.hover,e)),this.edgeType.drawLine(t,e,this.selected,this.hover,i),this.drawArrows(t,o,e),this.drawLabel(t,i)}}},{key:"drawArrows",value:function(t,e,i){i.fromArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.from),i.middleArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.middle),i.toArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.to)}},{key:"drawLabel",value:function(t,e){if(void 0!==this.options.label){var i=this.from,o=this.to;if(this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(t,this.selected,this.hover),i.id!=o.id){this.labelModule.pointToSelf=!1;var n=this.edgeType.getPoint(.5,e);t.save();var s=this._getRotation(t);0!=s.angle&&(t.translate(s.x,s.y),t.rotate(s.angle)),this.labelModule.draw(t,n.x,n.y,this.selected,this.hover),t.restore()}else{this.labelModule.pointToSelf=!0;var r,a,h=this.options.selfReferenceSize;i.shape.width>i.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),n=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,n.x,n.y,this.selected,this.hover)}}}},{key:"getItemsOnPoint",value:function(t){var e=[];if(this.labelModule.visible()){var i=this._getRotation();v.pointInRect(this.labelModule.getSize(),t,i)&&e.push({edgeId:this.id,labelId:0})}var o={left:t.x,top:t.y};return this.isOverlappingWith(o)&&e.push({edgeId:this.id}),e}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=this.from.x,i=this.from.y,o=this.to.x,n=this.to.y,s=t.left,r=t.top;return this.edgeType.getDistanceToEdge(e,i,o,n,s,r)<10}return!1}},{key:"_getRotation",value:function(t){var e=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,e);void 0!==t&&this.labelModule.calculateLabelSize(t,this.selected,this.hover,i.x,i.y);var o={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible())return o;if("horizontal"===this.options.font.align)return o;var n=this.from.y-this.to.y,s=this.from.x-this.to.x,r=Math.atan2(n,s);return(r<-1&&s<0||r>0&&s<0)&&(r+=Math.PI),o.angle=r,o}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}},{key:"remove",value:function(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}},{key:"endPointsValid",value:function(){return void 0!==this.body.nodes[this.fromId]&&void 0!==this.body.nodes[this.toId]}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=["arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width","font","chosen","widthConstraint"];if(f.selectiveDeepExtend(r,t,e,i),v.isValidLabel(e.label)?t.label=e.label:t.label=void 0,f.mergeOptions(t,e,"smooth",o),f.mergeOptions(t,e,"shadow",o),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:!0===i&&null===e.dashes&&(t.dashes=(0,d.default)(o.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),f.mergeOptions(t.scaling,e.scaling,"label",o.scaling)):!0===i&&null===e.scaling&&(t.scaling=(0,d.default)(o.scaling)),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var h=e.arrows.toLowerCase();t.arrows.to.enabled=-1!=h.indexOf("to"),t.arrows.middle.enabled=-1!=h.indexOf("middle"),t.arrows.from.enabled=-1!=h.indexOf("from")}else{if("object"!==(0,a.default)(e.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+(0,s.default)(e.arrows));f.mergeOptions(t.arrows,e.arrows,"to",o.arrows),f.mergeOptions(t.arrows,e.arrows,"middle",o.arrows),f.mergeOptions(t.arrows,e.arrows,"from",o.arrows)}else!0===i&&null===e.arrows&&(t.arrows=(0,d.default)(o.arrows));if(void 0!==e.color&&null!==e.color){var l=e.color,u=t.color;if(n)f.deepExtend(u,o.color,!1,i);else for(var c in u)u.hasOwnProperty(c)&&delete u[c];if(f.isString(u))u.color=u,u.highlight=u,u.hover=u,u.inherit=!1,void 0===l.opacity&&(u.opacity=1);else{var p=!1;void 0!==l.color&&(u.color=l.color,p=!0),void 0!==l.highlight&&(u.highlight=l.highlight,p=!0),void 0!==l.hover&&(u.hover=l.hover,p=!0),void 0!==l.inherit&&(u.inherit=l.inherit),void 0!==l.opacity&&(u.opacity=Math.min(1,Math.max(0,l.opacity))),!0===p?u.inherit=!1:void 0===u.inherit&&(u.inherit="from")}}else!0===i&&null===e.color&&(t.color=f.bridgeObject(o.color));!0===i&&null===e.font&&(t.font=f.bridgeObject(o.font))}}]),t}();e.default=w},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(118),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_findBorderPositionBezier",value:function(t,e){var i,o,n,s,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),h=0,d=0,l=1,u=this.to,c=!1;for(t.id===this.from.id&&(u=this.from,c=!0);d<=l&&h<10;){var p=.5*(d+l);if(i=this.getPoint(p,a),o=Math.atan2(u.y-i.y,u.x-i.x),n=u.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-u.x,2)+Math.pow(i.y-u.y,2)),r=n-s,Math.abs(r)<.2)break;r<0?!1===c?d=p:l=p:!1===c?l=p:d=p,h++}return i.t=p,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=t,f=e;for(d=1;d<10;d++)l=.1*d,u=Math.pow(1-l,2)*t+2*l*(1-l)*r.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*e+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(p,f,u,c,n,s),a=h1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;ae.shape.boundingBox.left&&(s=e.shape.boundingBox.left),re.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;ae.x&&(s=e.x),re.y&&(o=e.y),nh;)o(a,i=e[h++])&&(~s(d,i)||d.push(i));return d}},function(t,e,i){var o=i(22),n=i(41),s=i(56)("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=n(t),o(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},function(t,e,i){var o=i(50),n=i(13)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=r(e=Object(t),n))?i:s?o(e):"Object"==(a=o(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,i){var o=i(17),n=i(7),s=i(28);t.exports=function(t,e){var i=(n.Object||{})[t]||Object[t],r={};r[t]=e(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(t,e,i){var o=i(84),n=i(58).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return o(t,n)}},function(t,e,i){var o=i(42),n=i(39),s=i(25),r=i(53),a=i(22),h=i(81),d=Object.getOwnPropertyDescriptor;e.f=i(21)?d:function(t,e){if(t=s(t),e=r(e,!0),h)try{return d(t,e)}catch(t){}if(a(t,e))return n(!o.f.call(t,e),t[e])}},function(t,e,i){t.exports={default:i(162),__esModule:!0}},function(t,e,i){function o(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=o},function(t,e,i){function o(t,e){if(void 0===t)throw new Error("No container element defined");if(this.container=t,this.visible=!e||void 0==e.visible||e.visible,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var i=this;this.frame.slide.onmousedown=function(t){i._onMouseDown(t)},this.frame.prev.onclick=function(t){i.prev(t)},this.frame.play.onclick=function(t){i.togglePlay(t)},this.frame.next.onclick=function(t){i.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var n=i(2);o.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(tthis.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;return t/(this.values.length-1)*e+3},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e,i){function o(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}o.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.prototype.setRange=function(t,e,i,o){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(i))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t||0,this._end=e||0,this.setStep(i,o)},o.prototype.setStep=function(t,e){void 0===t||t<=0||(void 0!==e&&(this.prettyStep=e),!0===this.prettyStep?this._step=o.calculatePrettyStep(t):this._step=t)},o.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),s<=0&&(s=1),s},o.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},o.prototype.getStep=function(){return this._step},o.prototype.start=function(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()this._end},t.exports=o},function(t,e,i){function o(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function n(t){return void 0===t||""===t||"string"!=typeof t?t:t.charAt(0).toUpperCase()+t.slice(1)}function s(t,e){return void 0===t||""===t?e:t+n(e)}function r(t,e,i,o){for(var n,r,a=0;ar&&(t=o(t)*r),i(e)>r&&(e=o(e)*r),this.cameraOffset.x=t,this.cameraOffset.y=e,this.calculateCameraOrientation()},o.prototype.getOffset=function(){return this.cameraOffset},o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.setOffset(this.cameraOffset.x,this.cameraOffset.y),this.calculateCameraOrientation())}, -o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal;var t=this.cameraRotation.x,e=this.cameraRotation.z,i=this.cameraOffset.x,o=this.cameraOffset.y,n=Math.sin,s=Math.cos;this.cameraLocation.x=this.cameraLocation.x+i*s(e)+o*-n(e)*s(t),this.cameraLocation.y=this.cameraLocation.y+i*n(e)+o*s(e)*s(t),this.cameraLocation.z=this.cameraLocation.z+o*n(t)},t.exports=o},function(t,e,i){function o(t,e,i){this.dataGroup=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=t.getDistinctValues(this.column),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(12);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){if(void 0!==this.index)return this.values[this.index]},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.dataGroup.getDataSet(),{filter:function(t){return t[i.column]==i.value}}).get();e=this.dataGroup._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0){var n=i.groupsData.getDataSet();n.get().forEach(function(t){if(t.nestedGroups){0!=t.showNested&&(t.showNested=!0);var e=[];t.nestedGroups.forEach(function(i){var o=n.get(i);o&&(o.nestedInGroup=t.id,0==t.showNested&&(o.visible=!1),e=e.concat(o))}),n.update(e,o)}})}},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.popup=null,this.touchParams={},this.groupTouchParams={},this._create(),this.setOptions(e)}var s=i(29),r=o(s),a=i(6),h=o(a),d=i(10),l=i(2),u=i(11),c=i(12),p=i(66),f=i(16),m=i(68),v=i(69),g=i(101),y=i(102),b=i(70),_=i(103),w=i(104).default,x="__ungrouped__",k="__background__";n.prototype=new f,n.types={background:_,box:g,range:b,point:y},n.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var n=document.createElement("div");n.className="vis-labelset",this.dom.labelSet=n,this._updateUngrouped();var s=new v(k,null,this);s.show(),this.groups[k]=s,this.hammer=new d(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:d.DIRECTION_HORIZONTAL}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.options.rtl?this.groupHammer=new d(this.body.dom.rightContainer):this.groupHammer=new d(this.body.dom.leftContainer),this.groupHammer.on("tap",this._onGroupClick.bind(this)),this.groupHammer.on("panstart",this._onGroupDragStart.bind(this)),this.groupHammer.on("panmove",this._onGroupDrag.bind(this)),this.groupHammer.on("panend",this._onGroupDragEnd.bind(this)),this.groupHammer.get("pan").set({threshold:5,direction:d.DIRECTION_VERTICAL}),this.body.dom.centerContainer.addEventListener("mouseover",this._onMouseOver.bind(this)),this.body.dom.centerContainer.addEventListener("mouseout",this._onMouseOut.bind(this)),this.body.dom.centerContainer.addEventListener("mousemove",this._onMouseMove.bind(this)),this.body.dom.centerContainer.addEventListener("contextmenu",this._onDragEnd.bind(this)),this.body.dom.centerContainer.addEventListener("mousewheel",this._onMouseWheel.bind(this)),this.show()},n.prototype.setOptions=function(t){if(t){var e=["type","rtl","align","order","stack","stackSubgroups","selectable","multiselect","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","visibleFrameTemplate","hide","snap","groupOrderSwap","showTooltips","tooltip","tooltipOnItemUpdateTime"];l.selectiveExtend(e,this.options,t),"itemsAlwaysDraggable"in t&&("boolean"==typeof t.itemsAlwaysDraggable?(this.options.itemsAlwaysDraggable.item=t.itemsAlwaysDraggable,this.options.itemsAlwaysDraggable.range=!1):"object"===(0,h.default)(t.itemsAlwaysDraggable)&&(l.selectiveExtend(["item","range"],this.options.itemsAlwaysDraggable,t.itemsAlwaysDraggable),this.options.itemsAlwaysDraggable.item||(this.options.itemsAlwaysDraggable.range=!1))),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"===(0,h.default)(t.orientation)&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"===(0,h.default)(t.margin)&&(l.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"===(0,h.default)(t.margin.item)&&l.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable,this.options.editable.overrideItems=!1):"object"===(0,h.default)(t.editable)&&l.selectiveExtend(["updateTime","updateGroup","add","remove","overrideItems"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"===(0,h.default)(t.groupEditable)&&l.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));["onDropObjectOnItem","onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this)),this.markDirty()}},n.prototype.markDirty=function(t){this.groupIds=[],t&&t.refreshItems&&l.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},n.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},n.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},n.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||(this.options.rtl?this.body.dom.right.appendChild(this.dom.labelSet):this.body.dom.left.appendChild(this.dom.labelSet))},n.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;et&&o.push(h.id):h.lefte&&o.push(h.id)}return o},n.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;i0){for(var w={},x=0;x<_;x++)l.forEach(b,function(t,e){w[e]=t[x]()});l.forEach(this.groups,function(t,e){if(e!==k){var i=w[e];s=i||s,g+=t.height}}),g=Math.max(g,y)}return g=Math.max(g,y),r.style.height=i(g),this.props.width=r.offsetWidth,this.props.height=g,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right="0":this.dom.axis.style.left="0",this.initialItemSetDrawn=!0,s=this._isResized()||s},n.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t];return this.groups[e]||this.groups[x]||null},n.prototype._updateUngrouped=function(){var t,e,i=this.groups[x];if(this.groupsData){if(i){i.hide(),delete this.groups[x];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){i=new m(null,null,this),this.groups[x]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},n.prototype.getLabelSet=function(){return this.dom.labelSet},n.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof u||t instanceof c))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(l.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;l.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}this.body.emitter.emit("_change",{queue:!0})},n.prototype.getItems=function(){return this.itemsData},n.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(l.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof u||t instanceof c))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.groupsData;this.groupsData instanceof c&&(o=this.groupsData.getDataSet()),o.get().forEach(function(t){t.nestedGroups&&t.nestedGroups.forEach(function(e){var i=o.get(e);i.nestedInGroup=t.id,0==t.showNested&&(i.visible=!1),o.update(i)})});var n=this.id;l.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,n)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype.getGroups=function(){return this.groupsData},n.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},n.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},n.prototype._getGroupId=function(t){return"background"==this._getType(t)&&void 0==t.group?k:this.groupsData?t.group:x},n.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,o=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=o?e._getType(o):null,a=n.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,o):(i=s.selected,e._removeItem(s),s=null)),!s&&o){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(o,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onAdd=n.prototype._onUpdate,n.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.body.emitter.emit("_change",{queue:!0}))},n.prototype._order=function(){l.forEach(this.groups,function(t){t.order()})},n.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},n.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==x||t==k)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=(0,r.default)(e.options);l.extend(n,{height:null}),o=new m(t,i,e),e.groups[t]=o;for(var s in e.items)if(e.items.hasOwnProperty(s)){var a=e.items[s];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder});t=this._orderNestedGroups(t);var e=!l.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},n.prototype._orderNestedGroups=function(t){var e=[];return t.forEach(function(t){var i=this.groupsData.get(t);if(i.nestedInGroup||e.push(t),i.nestedGroups){var o=this.groupsData.get({filter:function(e){return e.nestedInGroup==t},order:this.options.groupOrder}),n=o.map(function(t){return t.id});e=e.concat(n)}},this),e},n.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i?i&&i.data&&i.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1,i&&i.add(t)},n.prototype._updateItem=function(t,e){t.setData(e);var i=this._getGroupId(t.data),o=this.groups[i];o?o&&o.data&&o.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1},n.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},n.prototype._constructByEndArray=function(t){for(var e=[],i=0;in)return}}if(i&&i!=this.groupTouchParams.group){var a=e.get(i.groupId),h=e.get(this.groupTouchParams.group.groupId);h&&a&&(this.options.groupOrderSwap(h,a,e),e.update(h),e.update(a));var d=e.getIds({order:this.options.groupOrder});if(!l.equalArray(d,this.groupTouchParams.originalOrder))for(var u=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,f=Math.min(u.length,d.length),m=0,v=0,g=0;m=f)break;if(d[m+v]==p)v=1;else if(u[m+g]==p)g=1;else{var y=d.indexOf(u[m+g]),b=e.get(d[m+v]),_=e.get(u[m+g]);this.options.groupOrderSwap(b,_,e),e.update(b),e.update(_);var w=d[m+v];d[m+v]=u[m+g],d[y]=w,m++}}}}},n.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=l.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!l.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,r=Math.min(s.length,n.length),a=0;a=r)break;var h=n.indexOf(s[a]),d=o.get(n[a]),u=o.get(s[a]);e.options.groupOrderSwap(d,u,o),o.update(d),o.update(u);var c=n[a];n[a]=s[a],n[h]=c,a++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},n.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},n.prototype._onMouseOver=function(t){var e=this.itemFromTarget(t);if(e){if(e!==this.itemFromRelatedTarget(t)){var i=e.getTitle();if(this.options.showTooltips&&i){null==this.popup&&(this.popup=new w(this.body.dom.root,this.options.tooltip.overflowMethod||"flip")),this.popup.setText(i);var o=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(o)+o.offsetLeft,t.clientY-l.getAbsoluteTop(o)+o.offsetTop),this.popup.show()}else null!=this.popup&&this.popup.hide();this.body.emitter.emit("itemover",{item:e.id,event:t})}}},n.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);if(e){e!==this.itemFromRelatedTarget(t)&&(null!=this.popup&&this.popup.hide(),this.body.emitter.emit("itemout",{item:e.id,event:t}))}},n.prototype._onMouseMove=function(t){if(this.itemFromTarget(t)&&this.options.showTooltips&&this.options.tooltip.followMouse&&this.popup&&!this.popup.hidden){var e=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(e)+e.offsetLeft,t.clientY-l.getAbsoluteTop(e)+e.offsetTop),this.popup.show()}},n.prototype._onMouseWheel=function(t){this.touchParams.itemIsDragging&&this._onDragEnd(t)},n.prototype._onUpdateItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this;if(t){var i=e.itemsData.get(t.id);this.options.onUpdate(i,function(t){t&&e.itemsData.getDataSet().update(t)})}}},n.prototype._onDropObjectOnItem=function(t){var e=this.itemFromTarget(t),i=JSON.parse(t.dataTransfer.getData("text"));this.options.onDropObjectOnItem(i,e)},n.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e,i,o=this,n=this.options.snap||null;this.options.rtl?(e=l.getAbsoluteRight(this.dom.frame),i=e-t.center.x):(e=l.getAbsoluteLeft(this.dom.frame),i=t.center.x-e);var s,r,a=this.body.util.toTime(i),h=this.body.util.getScale(),d=this.body.util.getStep();"drop"==t.type?(r=JSON.parse(t.dataTransfer.getData("text")),r.content=r.content?r.content:"new item",r.start=r.start?r.start:n?n(a,h,d):a,r.type=r.type||"box",r[this.itemsData._fieldId]=r.id||l.randomUUID(),"range"!=r.type||r.end||(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s)):(r={start:n?n(a,h,d):a,content:"new item"},r[this.itemsData._fieldId]=l.randomUUID(),"range"===this.options.type&&(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s));var u=this.groupFromTarget(t);u&&(r.group=u.groupId),r=this._cloneItemData(r),this.options.onAdd(r,function(e){e&&(o.itemsData.getDataSet().add(e),"drop"==t.type&&o.setSelection([e.id]))})}},n.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){ -var i=this.options.multiselect?this.getSelection():[];if((t.srcEvent&&t.srcEvent.shiftKey||!1)&&this.options.multiselect){var o=this.itemsData.get(e.id).group,s=void 0;this.options.multiselectPerGroup&&i.length>0&&(s=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=s&&s!=o||i.push(e.id);var r=n._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||s==o){i=[];for(var a in this.items)if(this.items.hasOwnProperty(a)){var h=this.items[a],d=h.data.start,l=void 0!==h.data.end?h.data.end:d;!(d>=r.min&&l<=r.max)||this.options.multiselectPerGroup&&s!=this.itemsData.get(h.id).group||h instanceof _||i.push(h.id)}}}else{var u=i.indexOf(e.id);-1==u?i.push(e.id):i.splice(u,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},n._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},n.prototype.itemFromElement=function(t){for(var e=t;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},n.prototype.itemFromTarget=function(t){return this.itemFromElement(t.target)},n.prototype.itemFromRelatedTarget=function(t){return this.itemFromElement(t.relatedTarget)},n.prototype.groupFromTarget=function(t){var e=t.center?t.center.y:t.clientY,i=this.groupIds;i.length<=0&&this.groupsData&&(i=this.groupsData.getIds({order:this.options.groupOrder}));for(var o=0;oa&&ea)return s}else if(0===o&&es&&(s=r.top+r.height)}while(a)}}o.height=s-o.top+.5*i.item.vertical},e.nostack=function(t,i,o,n){for(var s=0;so[r].index&&e.collisionByTimes(o[n],o[r])){s=o[r];break}null!=s&&(o[n].top=s.top+s.height)}while(s)}for(var a=0;ao[h].index&&(o[r].top+=o[h].height);for(var d=t[r],l=0;le.right&&t.top-i.vertical+.001e.top:t.left-i.horizontal+.001e.left&&t.top-i.vertical+.001e.top},e.collisionByTimes=function(t,e){return t.start<=e.start&&t.end>=e.start&&t.tope.top||e.start<=t.start&&e.end>=t.start&&e.topt.top}},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(38);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=this.options.align,i=this.width*t.getMillisecondsPerPixel();return"right"==e?this.data.start.getTime()>t.start&&this.data.start.getTime()-it.start&&this.data.start.getTime()t.start&&this.data.start.getTime()-i/2t.start&&this.data.startt.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.background;if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var t=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");this.dom.box.className=this.baseClassName+t}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.content).overflow,{content:{width:this.dom.content.offsetWidth}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=0,this.dirty=!1},o.prototype._repaintDomAdditionals=function(){},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e,i=this.options.orientation.item;if(void 0!==this.data.subgroup){var o=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[o].height+"px",this.dom.box.style.top="top"==i?this.parent.top+this.parent.subgroups[o].top+"px":this.parent.top+this.parent.height-this.parent.subgroups[o].top-this.parent.subgroups[o].height+"px",this.dom.box.style.bottom=""}else this.parent instanceof s?(e=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom="bottom"==i?"0":"",this.dom.box.style.top="top"==i?"0":""):(e=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=e+"px"},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i){(0,s.default)(this,t),this.container=e,this.overflowMethod=i||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}return(0,a.default)(t,[{key:"setPosition",value:function(t,e){this.x=parseInt(t),this.y=parseInt(e)}},{key:"setText",value:function(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=t}},{key:"show",value:function(t){if(void 0===t&&(t=!0),!0===t){var e=this.frame.clientHeight,i=this.frame.clientWidth,o=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,s=0,r=0;if("flip"==this.overflowMethod){var a=!1,h=!0;this.y-en-this.padding&&(a=!0),s=a?this.x-i:this.x,r=h?this.y-e:this.y}else r=this.y-e,r+e+this.padding>o&&(r=o-e-this.padding),rn&&(s=n-i-this.padding),s0){var r={};for(this._getRelevantData(s,r,o,n),this._applySampling(s,r),e=0;e0)switch(t.options.style){case"line":d.hasOwnProperty(s[e])||(d[s[e]]=m.calcPath(r[s[e]],t)),m.draw(d[s[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||v.draw(r[s[e]],t,this.framework)}}}return a.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,t[a].y=0==o?t[a].orginalY+r.y:t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(t,e,i,o){var n,s,a,h;if(t.length>0)for(s=0;s0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;l0){for(s=0;s0&&(n=this.groups[t[s]],!0===r.stack&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(o):h=h.concat(o):i[t[s]]=n.getYRange(o,t[s]));f.getStackedYRange(a,i,t,"__barStackLeft","left"),f.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=di?i:h,l=l=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),!0===t.master&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var r=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(r=this.props.titleCharHeight);var h=!0===this.options.icons?Math.max(this.options.iconWidth,r)+this.options.labelOffsetX+15:r+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-h&&!0===this.options.visible?(this.width=this.maxLabelSize+h,this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+h),this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),e=!1),e},o.prototype.convertValue=function(t){return this.scale.convertValue(t)},o.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},o.prototype._redrawLabel=function(t,e,i,o,n){var s=a.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=e,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>h.magnitudefactor*h.minorSteps[h.minorStepIdx]*.5?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}o.prototype.setCharHeight=function(t){this.majorCharHeight=t},o.prototype.setHeight=function(t){this.containerHeight=t},o.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;i<0&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(!0===n)break}},o.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])==0},o.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},o.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},o.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},o.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},o.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&ue.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(t){this.zeroPosition=t},o.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];r.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),r.mergeOptions(this.options,t,"interpolation"),r.mergeOptions(this.options,t,"drawPoints"),r.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==(0,s.default)(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible||t.visible,this.style=t.style,this.setOptions(t.options)},o.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){i={svg:document.createElementNS("http://www.w3.org/2000/svg","svg"),svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":h.drawIcon(this,o,n,t,e,i);break;case"points":case"point":d.drawIcon(this,o,n,t,e,i);break;case"bar":a.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=t0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){return 1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var u={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,u,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o,n=e;if(i)for(o=t.length-2;o>0;o--)n+=t[o][0]+","+t[o][1]+" ";else for(o=1;o0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+c*n.screen_x+_*s.screen_x)*f,screen_y:(-b*o.screen_y+c*n.screen_y+_*s.screen_y)*f},h={screen_x:(y*n.screen_x+p*s.screen_x-b*r.screen_x)*m,screen_y:(y*n.screen_y+p*s.screen_y-b*r.screen_y)*m},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;i");this.dom.textArea.innerHTML=r,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=(0,s.default)(this.groups);t.sort(function(t,e){return t=0;i--){var a=s[i];a.nodes||(a.nodes=[]),-1===a.nodes.indexOf(n)&&a.nodes.push(n)}e.attr&&(n.attr=h(n.attr,e.attr))}function u(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=h({},t.edge);e.attr=h(i,e.attr)}}function c(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=h({},t.edge)),s.attr=h(s.attr||{},n),s}function p(){for(F=I.NULL,L="";" "===z||"\t"===z||"\n"===z||"\r"===z;)s();do{var t=!1;if("#"===z){for(var e=A-1;" "===R.charAt(e)||"\t"===R.charAt(e);)e--;if("\n"===R.charAt(e)||""===R.charAt(e)){for(;""!=z&&"\n"!=z;)s();t=!0}}if("/"===z&&"/"===r()){for(;""!=z&&"\n"!=z;)s();t=!0}if("/"===z&&"*"===r()){for(;""!=z;){if("*"===z&&"/"===r()){s(),s();break}s()}t=!0}for(;" "===z||"\t"===z||"\n"===z||"\r"===z;)s()}while(t);if(""===z)return void(F=I.DELIMITER);var i=z+r();if(N[i])return F=I.DELIMITER,L=i,s(),void s();if(N[z])return F=I.DELIMITER,L=z,void s();if(a(z)||"-"===z){for(L+=z,s();a(z);)L+=z,s();return"false"===L?L=!1:"true"===L?L=!0:isNaN(Number(L))||(L=Number(L)),void(F=I.IDENTIFIER)}if('"'===z){for(s();""!=z&&('"'!=z||'"'===z&&'"'===r());)'"'===z?(L+=z,s()):"\\"===z&&"n"===r()?(L+="\n",s()):L+=z,s();if('"'!=z)throw x('End of string " expected');return s(),void(F=I.IDENTIFIER)}for(F=I.UNKNOWN;""!=z;)L+=z,s();throw new SyntaxError('Syntax error in part "'+k(L,30)+'"')}function f(){var t={};if(n(),p(),"strict"===L&&(t.strict=!0,p()),"graph"!==L&&"digraph"!==L||(t.type=L,p()),F===I.IDENTIFIER&&(t.id=L,p()),"{"!=L)throw x("Angle bracket { expected");if(p(),m(t),"}"!=L)throw x("Angle bracket } expected");if(p(),""!==L)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==L&&"}"!=L;)v(t),";"===L&&p()}function v(t){var e=g(t);if(e)return void _(t,e);if(!y(t)){if(F!=I.IDENTIFIER)throw x("Identifier expected");var i=L;if(p(),"="===L){if(p(),F!=I.IDENTIFIER)throw x("Identifier expected");t[i]=L,p()}else b(t,i)}}function g(t){var e=null;if("subgraph"===L&&(e={},e.type="subgraph",p(),F===I.IDENTIFIER&&(e.id=L,p())),"{"===L){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=L)throw x("Angle bracket } expected");p(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function y(t){return"node"===L?(p(),t.node=w(),"node"):"edge"===L?(p(),t.edge=w(),"edge"):"graph"===L?(p(),t.graph=w(),"graph"):null}function b(t,e){var i={id:e},o=w();o&&(i.attr=o),l(t,i),_(t,e)}function _(t,e){for(;"->"===L||"--"===L;){var i,o=L;p();var n=g(t);if(n)i=n;else{if(F!=I.IDENTIFIER)throw x("Identifier or subgraph expected");i=L,l(t,{id:i}),p()}u(t,c(t,e,i,o,w())),e=i}}function w(){for(var t=null,e={dashed:!0,solid:!1,dotted:[1,5]};"["===L;){for(p(),t={};""!==L&&"]"!=L;){if(F!=I.IDENTIFIER)throw x("Attribute name expected");var i=L;if(p(),"="!=L)throw x("Equal sign = expected");if(p(),F!=I.IDENTIFIER)throw x("Attribute value expected");var o=L;"style"===i&&(o=e[o]),d(t,i,o),p(),","==L&&p()}if("]"!=L)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+k(L,30)+'" (char '+A+")")}function k(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function S(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function D(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r":!0,"--":!0},R="",A=0,z="",L="",F=I.NULL,B=/[a-zA-Z_0-9.:#]/;e.parseDOT=o,e.DOTToGraph=C},function(t,e,i){function o(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;a2&&void 0!==arguments[2]&&arguments[2];(0,d.default)(this,t),this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=o}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(this.elementOptions=t,this.initFontOptions(t.font),p.isValidLabel(t.label)?this.labelDirty=!0:t.label="",void 0!==t.font&&null!==t.font)if("string"==typeof t.font)this.baseSize=this.fontOptions.size;else if("object"===(0,a.default)(t.font)){var e=t.font.size;void 0!==e&&(this.baseSize=e)}}},{key:"initFontOptions",value:function(e){var i=this;if(c.forEach(m,function(t){i.fontOptions[t]={}}),t.parseFontString(this.fontOptions,e))return void(this.fontOptions.vadjust=0);c.forEach(e,function(t,e){void 0!==t&&null!==t&&"object"!==(void 0===t?"undefined":(0,a.default)(t))&&(i.fontOptions[e]=t)})}},{key:"constrain",value:function(t){var e={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=c.topMost(t,"widthConstraint");if("number"==typeof i)e.maxWdt=Number(i),e.minWdt=Number(i);else if("object"===(void 0===i?"undefined":(0,a.default)(i))){var o=c.topMost(t,["widthConstraint","maximum"]);"number"==typeof o&&(e.maxWdt=Number(o));var n=c.topMost(t,["widthConstraint","minimum"]);"number"==typeof n&&(e.minWdt=Number(n))}var s=c.topMost(t,"heightConstraint");if("number"==typeof s)e.minHgt=Number(s);else if("object"===(void 0===s?"undefined":(0,a.default)(s))){var r=c.topMost(t,["heightConstraint","minimum"]);"number"==typeof r&&(e.minHgt=Number(r));var h=c.topMost(t,["heightConstraint","valign"]);"string"==typeof h&&("top"!==h&&"bottom"!==h||(e.valign=h))}return e}},{key:"update",value:function(t,e){this.setOptions(t,!0),this.propagateFonts(e),c.deepExtend(this.fontOptions,this.constrain(e)),this.fontOptions.chooser=p.choosify("label",e)}},{key:"adjustSizes",value:function(t){var e=t?t.right+t.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=e,this.fontOptions.minWdt-=e);var i=t?t.top+t.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}},{key:"addFontOptionsToPile",value:function(t,e){for(var i=0;i5&&void 0!==arguments[5]?arguments[5]:"middle";if(void 0!==this.elementOptions.label){var r=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&r=this.elementOptions.scaling.label.maxVisible&&(r=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(t,o,n,e,i,s),this._drawBackground(t),this._drawText(t,e,this.size.yLine,s,r))}}},{key:"_drawBackground",value:function(t){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){t.fillStyle=this.fontOptions.background;var e=this.getSize();t.fillRect(e.left,e.top,e.width,e.height)}}},{key:"_drawText",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"middle",n=arguments[4],r=this._setAlignment(t,e,i,o),a=(0,s.default)(r,2);e=a[0],i=a[1],t.textAlign="left",e-=this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&("top"===this.fontOptions.valign&&(i-=(this.size.height-this.size.labelHeight)/2),"bottom"===this.fontOptions.valign&&(i+=(this.size.height-this.size.labelHeight)/2));for(var h=0;h0&&(t.lineWidth=c.strokeWidth,t.strokeStyle=v,t.lineJoin="round"),t.fillStyle=m,c.strokeWidth>0&&t.strokeText(c.text,e+l,i+c.vadjust),t.fillText(c.text,e+l,i+c.vadjust),l+=c.width}i+=d.height}}}},{key:"_setAlignment",value:function(t,e,i,o){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&!1===this.pointToSelf){e=0,i=0;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=4):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=4):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t,e,i){var o=t||"#000000",n=i||"#ffffff";if(e<=this.elementOptions.scaling.label.drawThreshold){var s=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-e)));o=c.overrideOpacity(o,s),n=c.overrideOpacity(n,s)}return[o,n]}},{key:"getTextSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this._processLabel(t,e,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:"getSize",value:function(){var t=this.size.left,e=this.size.top-1;if(this.isEdgeLabel){var i=.5*-this.size.width;switch(this.fontOptions.align){case"middle":t=i,e=.5*-this.size.height;break;case"top":t=i,e=-(this.size.height+2);break;case"bottom":t=i,e=2}}return{left:t,top:e,width:this.size.width,height:this.size.height}}},{key:"calculateLabelSize",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"middle";this._processLabel(t,e,i),this.size.left=o-.5*this.size.width,this.size.top=n-.5*this.size.height,this.size.yLine=n+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===s&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}},{key:"getFormattingValues",value:function(t,e,i,o){var n=function(t,e,i){return"normal"===e?"mod"===i?"":t[i]:void 0!==t[e][i]?t[e][i]:t[i]},s={color:n(this.fontOptions,o,"color"),size:n(this.fontOptions,o,"size"),face:n(this.fontOptions,o,"face"),mod:n(this.fontOptions,o,"mod"),vadjust:n(this.fontOptions,o,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(e||i)&&("normal"===o&&!0===this.fontOptions.chooser&&this.elementOptions.labelHighlightBold?s.mod="bold":"function"==typeof this.fontOptions.chooser&&this.fontOptions.chooser(s,this.elementOptions.id,e,i));var r="";return void 0!==s.mod&&""!==s.mod&&(r+=s.mod+" "),r+=s.size+"px "+s.face,t.font=r.replace(/"/g,""),s.font=t.font,s.height=s.size,s}},{key:"differentState",value:function(t,e){return t!==this.selectedState||e!==this.hoverState}},{key:"_processLabelText",value:function(t,e,i,o){return new f(t,this,e,i).process(o)}},{key:"_processLabel",value:function(t,e,i){if(!1!==this.labelDirty||this.differentState(e,i)){var o=this._processLabelText(t,e,i,this.elementOptions.label);this.fontOptions.minWdt>0&&o.width0&&o.heighto.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=0,d=this.options.selfReferenceSize,l=void 0,u=void 0,c=void 0,p=void 0,f=void 0,m=.5*(s+r);s<=r&&h<10&&(m=.5*(s+r),l=this._pointOnCircle(o,n,d,m),u=Math.atan2(t.y-l.y,t.x-l.x),c=t.distanceToBorder(e,u),p=Math.sqrt(Math.pow(l.x-t.x,2)+Math.pow(l.y-t.y,2)),f=c-p,!(Math.abs(f)<.05));)f>0?a>0?s=m:r=m:a>0?r=m:s=m,h++;return l.t=m,l}},{key:"getLineWidth",value:function(t,e){return!0===t?Math.max(this.selectionWidth,.3/this.body.view.scale):!0===e?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t,e,i,o){if(!1!==e.inheritsColor){if("both"===e.inheritsColor&&this.from.id!==this.to.id){var n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,r=void 0;return s=this.from.options.color.highlight.border,r=this.to.options.color.highlight.border,!1===this.from.selected&&!1===this.to.selected?(s=l.overrideOpacity(this.from.options.color.border,e.opacity),r=l.overrideOpacity(this.to.options.color.border,e.opacity)):!0===this.from.selected&&!1===this.to.selected?r=this.to.options.color.border:!1===this.from.selected&&!0===this.to.selected&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,r),n}return"to"===e.inheritsColor?l.overrideOpacity(this.to.options.color.border,e.opacity):l.overrideOpacity(this.from.options.color.border,e.opacity)}return l.overrideOpacity(e.color,e.opacity)}},{key:"_circle", -value:function(t,e,i,o,n){this.enableShadow(t,e),t.beginPath(),t.arc(i,o,n,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t,e)}},{key:"getDistanceToEdge",value:function(t,e,i,o,n,r,a,h){var d=0;if(this.from!=this.to)d=this._getDistanceToEdge(t,e,i,o,n,r,a);else{var l=this._getCircleData(void 0),u=(0,s.default)(l,3),c=u[0],p=u[1],f=u[2],m=c-n,v=p-r;d=Math.abs(Math.sqrt(m*m+v*v)-f)}return d}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:d<0&&(d=0);var l=t+d*r,u=e+d*a,c=l-n,p=u-s;return Math.sqrt(c*c+p*p)}},{key:"getArrowData",value:function(t,e,i,o,n,r){var a=void 0,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=r.width;if("from"===e?(d=this.from,l=this.to,u=.1,c=r.fromArrowScale,p=r.fromArrowType):"to"===e?(d=this.to,l=this.from,u=-.1,c=r.toArrowScale,p=r.toArrowType):(d=this.to,l=this.from,c=r.middleArrowScale,p=r.middleArrowType),d!=l)if("middle"!==e)if(!0===this.options.smooth.enabled){h=this.findBorderPosition(d,t,{via:i});var m=this.getPoint(Math.max(0,Math.min(1,h.t+u)),i);a=Math.atan2(h.y-m.y,h.x-m.x)}else a=Math.atan2(d.y-l.y,d.x-l.x),h=this.findBorderPosition(d,t);else a=Math.atan2(d.y-l.y,d.x-l.x),h=this.getPoint(.5,i);else{var v=this._getCircleData(t),g=(0,s.default)(v,3),y=g[0],b=g[1],_=g[2];"from"===e?(h=this.findBorderPosition(this.from,t,{x:y,y:b,low:.25,high:.6,direction:-1}),a=-2*h.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(h=this.findBorderPosition(this.from,t,{x:y,y:b,low:.6,high:1,direction:1}),a=-2*h.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(h=this._pointOnCircle(y,b,_,.175),a=3.9269908169872414)}"middle"===e&&c<0&&(f*=-1);var w=15*c+3*f;return{point:h,core:{x:h.x-.9*w*Math.cos(a),y:h.y-.9*w*Math.sin(a)},angle:a,length:w,type:p}}},{key:"drawArrowHead",value:function(t,e,i,o,n){t.strokeStyle=this.getColor(t,e,i,o),t.fillStyle=t.strokeStyle,t.lineWidth=e.width,u.draw(t,n),this.enableShadow(t,e),t.fill(),this.disableShadow(t,e)}},{key:"enableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor=e.shadowColor,t.shadowBlur=e.shadowSize,t.shadowOffsetX=e.shadowX,t.shadowOffsetY=e.shadowY)}},{key:"disableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(4),a=o(r),h=i(5),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"transform",value:function(t,e){t instanceof Array||(t=[t]);for(var i=e.point.x,o=e.point.y,n=e.angle,s=e.length,r=0;r0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;s0&&this._getForceContributions(n.root,t)}}},{key:"_getForceContributions",value:function(t,e){this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?this._getForceContributions(t,e):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t)}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1,e=t),this.overlapAvoidanceFactor<1&&o.shape.radius&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;h0&&(lr&&(r=l),ua&&(a=u))}var c=Math.abs(r-n)-Math.abs(a-s);c>0?(s-=.5*c,a+=.5*c):(n+=.5*c,r-=.5*c);var p=Math.max(1e-5,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var y=0;y0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.centerOfMass,o=t.mass+e.options.mass,n=1/o;i.x=i.x*t.mass+e.x*e.options.mass,i.x*=n,i.y=i.y*t.mass+e.y*e.options.mass,i.y*=n,t.mass=o;var s=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?o.maxY>e.y?"NW":"SW":o.maxY>e.y?"NE":"SE",this._placeInRegion(t,e,n)}},{key:"_placeInRegion",value:function(t,e,i){var o=t.children[i];switch(o.childrenCount){case 0:o.children.data=e,o.childrenCount=1,this._updateBranchMass(o,e);break;case 1:o.children.data.x===e.x&&o.children.data.y===e.y?(e.x+=this.seededRandom(),e.y+=this.seededRandom()):(this._splitBranch(o),this._placeInTree(o,e));break;case 4:this._placeInTree(o,e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e.default=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.physicsBody=i,this.setOptions(o)}return(0,a.default)(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t=void 0,e=void 0,i=void 0,o=void 0,n=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=0;a=t.length?(this._t=void 0,n(1)):"keys"==e?n(0,i):"values"==e?n(0,t[i]):n(0,[i,t[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){var o=i(54),n=i(39),s=i(59),r={};i(26)(r,i(13)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=o(r,{next:n(1,i)}),s(t,e+" Iterator")}},function(t,e,i){var o=i(20),n=i(27),s=i(33);t.exports=i(21)?Object.defineProperties:function(t,e){n(t);for(var i,r=s(e),a=r.length,h=0;a>h;)o.f(t,i=r[h++],e[i]);return t}},function(t,e,i){var o=i(25),n=i(132),s=i(133);t.exports=function(t){return function(e,i,r){var a,h=o(e),d=n(h.length),l=s(r,d);if(t&&i!=i){for(;d>l;)if((a=h[l++])!=a)return!0}else for(;d>l;l++)if((t||l in h)&&h[l]===i)return t||l||0;return!t&&-1}}},function(t,e,i){var o=i(55),n=Math.min;t.exports=function(t){return t>0?n(o(t),9007199254740991):0}},function(t,e,i){var o=i(55),n=Math.max,s=Math.min;t.exports=function(t,e){return t=o(t),t<0?n(t+e,0):s(t,e)}},function(t,e,i){var o=i(18).document;t.exports=o&&o.documentElement},function(t,e,i){var o=i(55),n=i(51);t.exports=function(t){return function(e,i){var s,r,a=String(n(e)),h=o(i),d=a.length;return h<0||h>=d?t?"":void 0:(s=a.charCodeAt(h),s<55296||s>56319||h+1===d||(r=a.charCodeAt(h+1))<56320||r>57343?t?a.charAt(h):s:t?a.slice(h,h+2):r-56320+(s-55296<<10)+65536)}}},function(t,e,i){var o=i(27),n=i(137);t.exports=i(7).getIterator=function(t){var e=n(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return o(e.call(t))}},function(t,e,i){var o=i(86),n=i(13)("iterator"),s=i(31);t.exports=i(7).getIteratorMethod=function(t){if(void 0!=t)return t[n]||t["@@iterator"]||s[o(t)]}},function(t,e,i){i(139);var o=i(7).Object;t.exports=function(t,e){return o.create(t,e)}},function(t,e,i){var o=i(17);o(o.S,"Object",{create:i(54)})},function(t,e,i){i(141),t.exports=i(7).Object.keys},function(t,e,i){var o=i(41),n=i(33);i(87)("keys",function(){return function(t){return n(o(t))}})},function(t,e,i){t.exports={default:i(143),__esModule:!0}},function(t,e,i){i(60),i(49),t.exports=i(61).f("iterator")},function(t,e,i){t.exports={default:i(145),__esModule:!0}},function(t,e,i){i(146),i(151),i(152),i(153),t.exports=i(7).Symbol},function(t,e,i){var o=i(18),n=i(22),s=i(21),r=i(17),a=i(83),h=i(147).KEY,d=i(28),l=i(57),u=i(59),c=i(40),p=i(13),f=i(61),m=i(62),v=i(148),g=i(149),y=i(27),b=i(25),_=i(53),w=i(39),x=i(54),k=i(150),S=i(89),D=i(20),M=i(33),C=S.f,O=D.f,E=k.f,T=o.Symbol,P=o.JSON,I=P&&P.stringify,N=p("_hidden"),R=p("toPrimitive"),A={}.propertyIsEnumerable,z=l("symbol-registry"),L=l("symbols"),F=l("op-symbols"),B=Object.prototype,j="function"==typeof T,H=o.QObject,W=!H||!H.prototype||!H.prototype.findChild,Y=s&&d(function(){return 7!=x(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(t,e,i){var o=C(B,e);o&&delete B[e],O(t,e,i),o&&t!==B&&O(B,e,o)}:O,G=function(t){var e=L[t]=x(T.prototype);return e._k=t,e},V=j&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},U=function(t,e,i){return t===B&&U(F,e,i),y(t),e=_(e,!0),y(i),n(L,e)?(i.enumerable?(n(t,N)&&t[N][e]&&(t[N][e]=!1),i=x(i,{enumerable:w(0,!1)})):(n(t,N)||O(t,N,w(1,{})),t[N][e]=!0),Y(t,e,i)):O(t,e,i)},q=function(t,e){y(t);for(var i,o=v(e=b(e)),n=0,s=o.length;s>n;)U(t,i=o[n++],e[i]);return t},X=function(t,e){return void 0===e?x(t):q(x(t),e)},Z=function(t){var e=A.call(this,t=_(t,!0));return!(this===B&&n(L,t)&&!n(F,t))&&(!(e||!n(this,t)||!n(L,t)||n(this,N)&&this[N][t])||e)},K=function(t,e){if(t=b(t),e=_(e,!0),t!==B||!n(L,e)||n(F,e)){var i=C(t,e);return!i||!n(L,e)||n(t,N)&&t[N][e]||(i.enumerable=!0),i}},J=function(t){for(var e,i=E(b(t)),o=[],s=0;i.length>s;)n(L,e=i[s++])||e==N||e==h||o.push(e);return o},$=function(t){for(var e,i=t===B,o=E(i?F:b(t)),s=[],r=0;o.length>r;)!n(L,e=o[r++])||i&&!n(B,e)||s.push(L[e]);return s};j||(T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=c(arguments.length>0?arguments[0]:void 0),e=function(i){this===B&&e.call(F,i),n(this,N)&&n(this[N],t)&&(this[N][t]=!1),Y(this,t,w(1,i))};return s&&W&&Y(B,t,{configurable:!0,set:e}),G(t)},a(T.prototype,"toString",function(){return this._k}),S.f=K,D.f=U,i(88).f=k.f=J,i(42).f=Z,i(63).f=$,s&&!i(52)&&a(B,"propertyIsEnumerable",Z,!0),f.f=function(t){return G(p(t))}),r(r.G+r.W+r.F*!j,{Symbol:T});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Q.length>tt;)p(Q[tt++]);for(var et=M(p.store),it=0;et.length>it;)m(et[it++]);r(r.S+r.F*!j,"Symbol",{for:function(t){return n(z,t+="")?z[t]:z[t]=T(t)},keyFor:function(t){if(!V(t))throw TypeError(t+" is not a symbol!");for(var e in z)if(z[e]===t)return e},useSetter:function(){W=!0},useSimple:function(){W=!1}}),r(r.S+r.F*!j,"Object",{create:X,defineProperty:U,defineProperties:q,getOwnPropertyDescriptor:K,getOwnPropertyNames:J,getOwnPropertySymbols:$}),P&&r(r.S+r.F*(!j||d(function(){var t=T();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!V(t)){for(var e,i,o=[t],n=1;arguments.length>n;)o.push(arguments[n++]);return e=o[1],"function"==typeof e&&(i=e),!i&&g(e)||(e=function(t,e){if(i&&(e=i.call(this,t,e)),!V(e))return e}),o[1]=e,I.apply(P,o)}}}),T.prototype[R]||i(26)(T.prototype,R,T.prototype.valueOf),u(T,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(t,e,i){var o=i(40)("meta"),n=i(32),s=i(22),r=i(20).f,a=0,h=Object.isExtensible||function(){return!0},d=!i(28)(function(){return h(Object.preventExtensions({}))}),l=function(t){r(t,o,{value:{i:"O"+ ++a,w:{}}})},u=function(t,e){if(!n(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!s(t,o)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[o].i},c=function(t,e){if(!s(t,o)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[o].w},p=function(t){return d&&f.NEED&&h(t)&&!s(t,o)&&l(t),t},f=t.exports={KEY:o,NEED:!1,fastKey:u,getWeak:c,onFreeze:p}},function(t,e,i){var o=i(33),n=i(63),s=i(42);t.exports=function(t){var e=o(t),i=n.f;if(i)for(var r,a=i(t),h=s.f,d=0;a.length>d;)h.call(t,r=a[d++])&&e.push(r);return e}},function(t,e,i){var o=i(50);t.exports=Array.isArray||function(t){return"Array"==o(t)}},function(t,e,i){var o=i(25),n=i(88).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return n(t)}catch(t){return r.slice()}};t.exports.f=function(t){return r&&"[object Window]"==s.call(t)?a(t):n(o(t))}},function(t,e){},function(t,e,i){i(62)("asyncIterator")},function(t,e,i){i(62)("observable")},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(0,function(){function e(){return Co.apply(null,arguments)}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function n(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function s(t){return void 0===t}function r(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function a(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function h(t,e){var i,o=[];for(i=0;i0)for(i=0;i0?"future":"past"];return D(i)?i(e):i.replace(/%s/i,e)}function A(t,e){var i=t.toLowerCase();Lo[i]=Lo[i+"s"]=Lo[e]=t}function z(t){return"string"==typeof t?Lo[t]||Lo[t.toLowerCase()]:void 0}function L(t){var e,i,o={};for(i in t)d(t,i)&&(e=z(i))&&(o[e]=t[i]);return o}function F(t,e){Fo[t]=e}function B(t){var e=[];for(var i in t)e.push({unit:i,priority:Fo[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function j(t,e,i){var o=""+Math.abs(t),n=e-o.length;return(t>=0?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function H(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Wo[t]=n),e&&(Wo[e[0]]=function(){return j(n.apply(this,arguments),e[1],e[2])}),i&&(Wo[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function W(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function Y(t){var e,i,o=t.match(Bo);for(e=0,i=o.length;e=0&&jo.test(t);)t=t.replace(jo,i),jo.lastIndex=0,o-=1;return t}function U(t,e,i){an[t]=D(e)?e:function(t,o){return t&&i?i:e}}function q(t,e){return d(an,t)?an[t](e._strict,e._locale):new RegExp(X(t))}function X(t){return Z(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function Z(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function K(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),r(e)&&(o=function(t,i){i[e]=_(t)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function _t(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function wt(t,e,i){var o=7+e-i;return-(7+_t(t,0,o).getUTCDay()-e)%7+o-1}function xt(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return d<=0?(s=t-1,r=Q(s)+d):d>Q(t)?(s=t+1,r=d-Q(t)):(s=t,r=d),{year:s,dayOfYear:r}}function kt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return r<1?(n=t.year()-1,o=r+St(n,e,i)):r>St(t.year(),e,i)?(o=r-St(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function St(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return(Q(t)-o+n)/7}function Dt(t){return kt(t,this._week.dow,this._week.doy).week}function Mt(){return this._week.dow}function Ct(){return this._week.doy}function Ot(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Et(t){var e=kt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Tt(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function It(t,e){return t?i(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone}function Nt(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Rt(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function At(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=u([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=yn.call(this._weekdaysParse,r),-1!==n?n:null):"ddd"===e?(n=yn.call(this._shortWeekdaysParse,r),-1!==n?n:null):(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):"dddd"===e?-1!==(n=yn.call(this._weekdaysParse,r))?n:-1!==(n=yn.call(this._shortWeekdaysParse,r))?n:(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):"ddd"===e?-1!==(n=yn.call(this._shortWeekdaysParse,r))?n:-1!==(n=yn.call(this._weekdaysParse,r))?n:(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):-1!==(n=yn.call(this._minWeekdaysParse,r))?n:-1!==(n=yn.call(this._weekdaysParse,r))?n:(n=yn.call(this._shortWeekdaysParse,r),-1!==n?n:null)}function zt(t,e,i){var o,n,s;if(this._weekdaysParseExact)return At.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=u([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function Lt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Tt(t,this.localeData()),this.add(t-e,"d")):e}function Ft(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Bt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function jt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=En),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Ht(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Tn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Wt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Pn),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Yt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=u([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=Z(a[e]),h[e]=Z(h[e]),d[e]=Z(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Gt(){return this.hours()%12||12}function Vt(){return this.hours()||24}function Ut(t,e){H(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function qt(t,e){return e._meridiemParse}function Xt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Zt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Kt(t){return t?t.toLowerCase().replace("_","-"):t}function Jt(t){for(var e,i,o,n,s=0;s0;){if(o=$t(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&w(n,i,!0)>=e-1)break;e--}s++}return null}function $t(e){var i=null;if(!zn[e]&&void 0!==t&&t&&t.exports)try{i=In._abbr;!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Qt(i)}catch(t){}return zn[e]}function Qt(t,e){var i;return t&&(i=s(e)?ie(t):te(t,e))&&(In=i),In._abbr}function te(t,e){if(null!==e){var i=An;if(e.abbr=t,null!=zn[t])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=zn[t]._config;else if(null!=e.parentLocale){if(null==zn[e.parentLocale])return Ln[e.parentLocale]||(Ln[e.parentLocale]=[]),Ln[e.parentLocale].push({name:t,config:e}),null;i=zn[e.parentLocale]._config}return zn[t]=new O(C(i,e)),Ln[t]&&Ln[t].forEach(function(t){te(t.name,t.config)}),Qt(t),zn[t]}return delete zn[t],null}function ee(t,e){if(null!=e){var i,o=An;null!=zn[t]&&(o=zn[t]._config),e=C(o,e),i=new O(e),i.parentLocale=zn[t],zn[t]=i,Qt(t)}else null!=zn[t]&&(null!=zn[t].parentLocale?zn[t]=zn[t].parentLocale:null!=zn[t]&&delete zn[t]);return zn[t]}function ie(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return In;if(!i(t)){if(e=$t(t))return e;t=[t]}return Jt(t)}function oe(){return Io(zn)}function ne(t){var e,i=t._a;return i&&-2===p(t).overflow&&(e=i[ln]<0||i[ln]>11?ln:i[un]<1||i[un]>ht(i[dn],i[ln])?un:i[cn]<0||i[cn]>24||24===i[cn]&&(0!==i[pn]||0!==i[fn]||0!==i[mn])?cn:i[pn]<0||i[pn]>59?pn:i[fn]<0||i[fn]>59?fn:i[mn]<0||i[mn]>999?mn:-1,p(t)._overflowDayOfYear&&(eun)&&(e=un),p(t)._overflowWeeks&&-1===e&&(e=vn),p(t)._overflowWeekday&&-1===e&&(e=gn),p(t).overflow=e),t}function se(t,e,i){return null!=t?t:null!=e?e:i}function re(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function ae(t){var e,i,o,n,s=[];if(!t._d){for(o=re(t),t._w&&null==t._a[un]&&null==t._a[ln]&&he(t),null!=t._dayOfYear&&(n=se(t._a[dn],o[dn]),(t._dayOfYear>Q(n)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),i=_t(n,0,t._dayOfYear),t._a[ln]=i.getUTCMonth(),t._a[un]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[cn]&&0===t._a[pn]&&0===t._a[fn]&&0===t._a[mn]&&(t._nextDay=!0,t._a[cn]=0),t._d=(t._useUTC?_t:bt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[cn]=24),t._w&&void 0!==t._w.d&&t._w.d!==t._d.getDay()&&(p(t).weekdayMismatch=!0)}}function he(t){var e,i,o,n,s,r,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)s=1,r=4,i=se(e.GG,t._a[dn],kt(De(),1,4).year),o=se(e.W,1),((n=se(e.E,1))<1||n>7)&&(h=!0);else{s=t._locale._week.dow,r=t._locale._week.doy;var d=kt(De(),s,r);i=se(e.gg,t._a[dn],d.year),o=se(e.w,d.week),null!=e.d?((n=e.d)<0||n>6)&&(h=!0):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s}o<1||o>St(i,s,r)?p(t)._overflowWeeks=!0:null!=h?p(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[dn]=a.year,t._dayOfYear=a.dayOfYear)}function de(t){var e,i,o,n,s,r,a=t._i,h=Fn.exec(a)||Bn.exec(a);if(h){for(p(t).iso=!0,e=0,i=Hn.length;e0&&p(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Wo[s]?(o?p(t).empty=!1:p(t).unusedTokens.push(s),$(s,o,t)):t._strict&&!o&&p(t).unusedTokens.push(s);p(t).charsLeftOver=h-d,a.length>0&&p(t).unusedInput.push(a),t._a[cn]<=12&&!0===p(t).bigHour&&t._a[cn]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[cn]=ye(t._locale,t._a[cn],t._meridiem),ae(t),ne(t)}function ye(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function be(t){var e,i,o,n,s;if(0===t._f.length)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ue(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=xe(t),t._a){var e=t._isUTC?u(t._a):De(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function qe(){return!!this.isValid()&&!this._isUTC}function Xe(){return!!this.isValid()&&this._isUTC}function Ze(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ke(t,e){var i,o,n,s=t,a=null;return Ne(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:r(t)?(s={},e?s[e]=t:s.milliseconds=t):(a=Jn.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:_(a[un])*i,h:_(a[cn])*i,m:_(a[pn])*i,s:_(a[fn])*i,ms:_(Re(1e3*a[mn]))*i}):(a=$n.exec(t))?(i="-"===a[1]?-1:(a[1],1),s={y:Je(a[2],i),M:Je(a[3],i),w:Je(a[4],i),d:Je(a[5],i),h:Je(a[6],i),m:Je(a[7],i),s:Je(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Qe(De(s.from),De(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Ie(s),Ne(t)&&d(t,"_locale")&&(o._locale=t._locale),o}function Je(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function $e(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function Qe(t,e){var i;return t.isValid()&&e.isValid()?(e=Le(e,t),t.isBefore(e)?i=$e(t,e):(i=$e(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ti(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(S(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Ke(i,o),ei(this,n,t),this}}function ei(t,i,o,n){var s=i._milliseconds,r=Re(i._days),a=Re(i._months);t.isValid()&&(n=null==n||n,a&&pt(t,ot(t,"Month")+a*o),r&&nt(t,"Date",ot(t,"Date")+r*o),s&&t._d.setTime(t._d.valueOf()+s*o),n&&e.updateOffset(t,r||a))}function ii(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function oi(t,i){var o=t||De(),n=Le(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(D(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,De(o)))}function ni(){return new g(this)}function si(t,e){var i=y(t)?t:De(t);return!(!this.isValid()||!i.isValid())&&(e=z(s(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()9999?G(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):D(Date.prototype.toISOString)?this.toDate().toISOString():G(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function mi(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(i+o+"-MM-DD[T]HH:mm:ss.SSS"+n)}function vi(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=G(this,t);return this.localeData().postformat(i)}function gi(t,e){return this.isValid()&&(y(t)&&t.isValid()||De(t).isValid())?Ke({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function yi(t){return this.from(De(),t)}function bi(t,e){return this.isValid()&&(y(t)&&t.isValid()||De(t).isValid())?Ke({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function _i(t){return this.to(De(),t)}function wi(t){var e;return void 0===t?this._locale._abbr:(e=ie(t),null!=e&&(this._locale=e),this)}function xi(){return this._locale}function ki(t){switch(t=z(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function Si(t){return void 0===(t=z(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function Di(){return this._d.valueOf()-6e4*(this._offset||0)}function Mi(){return Math.floor(this.valueOf()/1e3)}function Ci(){return new Date(this.valueOf())}function Oi(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Ei(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Ti(){return this.isValid()?this.toISOString():null}function Pi(){return f(this)}function Ii(){return l({},p(this))}function Ni(){return p(this).overflow}function Ri(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ai(t,e){H(0,[t,t.length],0,e)}function zi(t){return ji.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Li(t){return ji.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Fi(){return St(this.year(),1,4)}function Bi(){var t=this.localeData()._week;return St(this.year(),t.dow,t.doy)}function ji(t,e,i,o,n){var s;return null==t?kt(this,o,n).year:(s=St(t,o,n),e>s&&(e=s),Hi.call(this,t,e,i,o,n))}function Hi(t,e,i,o,n){var s=xt(t,e,i,o,n),r=_t(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Wi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Yi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Gi(t,e){e[mn]=_(1e3*("0."+t))}function Vi(){return this._isUTC?"UTC":""}function Ui(){return this._isUTC?"Coordinated Universal Time":""}function qi(t){return De(1e3*t)}function Xi(){return De.apply(null,arguments).parseZone()}function Zi(t){return t}function Ki(t,e,i,o){var n=ie(),s=u().set(o,e);return n[i](s,t)}function Ji(t,e,i){if(r(t)&&(e=t,t=void 0),t=t||"",null!=e)return Ki(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Ki(t,o,i,"month");return n}function $i(t,e,i,o){"boolean"==typeof t?(r(e)&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,r(e)&&(i=e,e=void 0),e=e||"");var n=ie(),s=t?n._week.dow:0;if(null!=i)return Ki(e,(i+s)%7,o,"day");var a,h=[];for(a=0;a<7;a++)h[a]=Ki(e,(a+s)%7,o,"day");return h}function Qi(t,e){return Ji(t,e,"months")}function to(t,e){return Ji(t,e,"monthsShort")}function eo(t,e,i){return $i(t,e,i,"weekdays")}function io(t,e,i){return $i(t,e,i,"weekdaysShort")}function oo(t,e,i){return $i(t,e,i,"weekdaysMin")}function no(){var t=this._data;return this._milliseconds=ds(this._milliseconds),this._days=ds(this._days),this._months=ds(this._months),t.milliseconds=ds(t.milliseconds),t.seconds=ds(t.seconds),t.minutes=ds(t.minutes),t.hours=ds(t.hours),t.months=ds(t.months),t.years=ds(t.years),this}function so(t,e,i,o){var n=Ke(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function ro(t,e){return so(this,t,e,1)}function ao(t,e){return so(this,t,e,-1)}function ho(t){return t<0?Math.floor(t):Math.ceil(t)}function lo(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*ho(co(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=b(s/1e3),h.seconds=t%60,e=b(t/60),h.minutes=e%60,i=b(e/60),h.hours=i%24,r+=b(i/24),n=b(uo(r)),a+=n, -r-=ho(co(n)),o=b(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function uo(t){return 4800*t/146097}function co(t){return 146097*t/4800}function po(t){if(!this.isValid())return NaN;var e,i,o=this._milliseconds;if("month"===(t=z(t))||"year"===t)return e=this._days+o/864e5,i=this._months+uo(e),"month"===t?i:i/12;switch(e=this._days+Math.round(co(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function fo(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN}function mo(t){return function(){return this.as(t)}}function vo(){return Ke(this)}function go(t){return t=z(t),this.isValid()?this[t+"s"]():NaN}function yo(t){return function(){return this.isValid()?this._data[t]:NaN}}function bo(){return b(this.days()/7)}function _o(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function wo(t,e,i){var o=Ke(t).abs(),n=Ds(o.as("s")),s=Ds(o.as("m")),r=Ds(o.as("h")),a=Ds(o.as("d")),h=Ds(o.as("M")),d=Ds(o.as("y")),l=n<=Ms.ss&&["s",n]||n0,l[4]=i,_o.apply(null,l)}function xo(t){return void 0===t?Ds:"function"==typeof t&&(Ds=t,!0)}function ko(t,e){return void 0!==Ms[t]&&(void 0===e?Ms[t]:(Ms[t]=e,"s"===t&&(Ms.ss=e-1),!0))}function So(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=wo(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Do(t){return(t>0)-(t<0)||+t}function Mo(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i,o=Cs(this._milliseconds)/1e3,n=Cs(this._days),s=Cs(this._months);t=b(o/60),e=b(t/60),o%=60,t%=60,i=b(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o?o.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var p=c<0?"-":"",f=Do(this._months)!==Do(c)?"-":"",m=Do(this._days)!==Do(c)?"-":"",v=Do(this._milliseconds)!==Do(c)?"-":"";return p+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(h?m+h+"D":"")+(d||l||u?"T":"")+(d?v+d+"H":"")+(l?v+l+"M":"")+(u?v+u+"S":"")}var Co,Oo;Oo=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o68?1900:2e3)};var yn,bn=it("FullYear",!0);yn=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;ethis?this:t:m()}),Xn=function(){return Date.now?Date.now():+new Date},Zn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ae("Z",":"),Ae("ZZ",""),U("Z",nn),U("ZZ",nn),K(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=ze(nn,t)});var Kn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Jn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,$n=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Ke.fn=Ie.prototype,Ke.invalid=Pe;var Qn=ti(1,"add"),ts=ti(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var es=k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ai("gggg","weekYear"),Ai("ggggg","weekYear"),Ai("GGGG","isoWeekYear"),Ai("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),F("weekYear",1),F("isoWeekYear",1),U("G",en),U("g",en),U("GG",Xo,Go),U("gg",Xo,Go),U("GGGG",$o,Uo),U("gggg",$o,Uo),U("GGGGG",Qo,qo),U("ggggg",Qo,qo),J(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=_(t)}),J(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),H("Q",0,"Qo","quarter"),A("quarter","Q"),F("quarter",7),U("Q",Yo),K("Q",function(t,e){e[ln]=3*(_(t)-1)}),H("D",["DD",2],"Do","date"),A("date","D"),F("date",9),U("D",Xo),U("DD",Xo,Go),U("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),K(["D","DD"],un),K("Do",function(t,e){e[un]=_(t.match(Xo)[0],10)});var is=it("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),F("dayOfYear",4),U("DDD",Jo),U("DDDD",Vo),K(["DDD","DDDD"],function(t,e,i){i._dayOfYear=_(t)}),H("m",["mm",2],0,"minute"),A("minute","m"),F("minute",14),U("m",Xo),U("mm",Xo,Go),K(["m","mm"],pn);var os=it("Minutes",!1);H("s",["ss",2],0,"second"),A("second","s"),F("second",15),U("s",Xo),U("ss",Xo,Go),K(["s","ss"],fn);var ns=it("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),A("millisecond","ms"),F("millisecond",16),U("S",Jo,Yo),U("SS",Jo,Go),U("SSS",Jo,Vo);var ss;for(ss="SSSS";ss.length<=9;ss+="S")U(ss,tn);for(ss="S";ss.length<=9;ss+="S")K(ss,Gi);var rs=it("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var as=g.prototype;as.add=Qn,as.calendar=oi,as.clone=ni,as.diff=ui,as.endOf=Si,as.format=vi,as.from=gi,as.fromNow=yi,as.to=bi,as.toNow=_i,as.get=st,as.invalidAt=Ni,as.isAfter=si,as.isBefore=ri,as.isBetween=ai,as.isSame=hi,as.isSameOrAfter=di,as.isSameOrBefore=li,as.isValid=Pi,as.lang=es,as.locale=wi,as.localeData=xi,as.max=qn,as.min=Un,as.parsingFlags=Ii,as.set=rt,as.startOf=ki,as.subtract=ts,as.toArray=Oi,as.toObject=Ei,as.toDate=Ci,as.toISOString=fi,as.inspect=mi,as.toJSON=Ti,as.toString=pi,as.unix=Mi,as.valueOf=Di,as.creationData=Ri,as.year=bn,as.isLeapYear=et,as.weekYear=zi,as.isoWeekYear=Li,as.quarter=as.quarters=Wi,as.month=ft,as.daysInMonth=mt,as.week=as.weeks=Ot,as.isoWeek=as.isoWeeks=Et,as.weeksInYear=Bi,as.isoWeeksInYear=Fi,as.date=is,as.day=as.days=Lt,as.weekday=Ft,as.isoWeekday=Bt,as.dayOfYear=Yi,as.hour=as.hours=Rn,as.minute=as.minutes=os,as.second=as.seconds=ns,as.millisecond=as.milliseconds=rs,as.utcOffset=Be,as.utc=He,as.local=We,as.parseZone=Ye,as.hasAlignedHourOffset=Ge,as.isDST=Ve,as.isLocal=qe,as.isUtcOffset=Xe,as.isUtc=Ze,as.isUTC=Ze,as.zoneAbbr=Vi,as.zoneName=Ui,as.dates=k("dates accessor is deprecated. Use date instead.",is),as.months=k("months accessor is deprecated. Use month instead",ft),as.years=k("years accessor is deprecated. Use year instead",bn),as.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",je),as.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ue);var hs=O.prototype;hs.calendar=E,hs.longDateFormat=T,hs.invalidDate=P,hs.ordinal=I,hs.preparse=Zi,hs.postformat=Zi,hs.relativeTime=N,hs.pastFuture=R,hs.set=M,hs.months=dt,hs.monthsShort=lt,hs.monthsParse=ct,hs.monthsRegex=gt,hs.monthsShortRegex=vt,hs.week=Dt,hs.firstDayOfYear=Ct,hs.firstDayOfWeek=Mt,hs.weekdays=It,hs.weekdaysMin=Rt,hs.weekdaysShort=Nt,hs.weekdaysParse=zt,hs.weekdaysRegex=jt,hs.weekdaysShortRegex=Ht,hs.weekdaysMinRegex=Wt,hs.isPM=Xt,hs.meridiem=Zt,Qt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),e.lang=k("moment.lang is deprecated. Use moment.locale instead.",Qt),e.langData=k("moment.langData is deprecated. Use moment.localeData instead.",ie);var ds=Math.abs,ls=mo("ms"),us=mo("s"),cs=mo("m"),ps=mo("h"),fs=mo("d"),ms=mo("w"),vs=mo("M"),gs=mo("y"),ys=yo("milliseconds"),bs=yo("seconds"),_s=yo("minutes"),ws=yo("hours"),xs=yo("days"),ks=yo("months"),Ss=yo("years"),Ds=Math.round,Ms={ss:44,s:45,m:45,h:22,d:26,M:11},Cs=Math.abs,Os=Ie.prototype;return Os.isValid=Te,Os.abs=no,Os.add=ro,Os.subtract=ao,Os.as=po,Os.asMilliseconds=ls,Os.asSeconds=us,Os.asMinutes=cs,Os.asHours=ps,Os.asDays=fs,Os.asWeeks=ms,Os.asMonths=vs,Os.asYears=gs,Os.valueOf=fo,Os._bubble=lo,Os.clone=vo,Os.get=go,Os.milliseconds=ys,Os.seconds=bs,Os.minutes=_s,Os.hours=ws,Os.days=xs,Os.weeks=bo,Os.months=ks,Os.years=Ss,Os.humanize=So,Os.toISOString=Mo,Os.toString=Mo,Os.toJSON=Mo,Os.locale=wi,Os.localeData=xi,Os.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Mo),Os.lang=es,H("X",0,0,"unix"),H("x",0,0,"valueOf"),U("x",en),U("X",sn),K("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),K("x",function(t,e,i){i._d=new Date(_(t))}),e.version="2.19.1",function(t){Co=t}(De),e.fn=as,e.min=Ce,e.max=Oe,e.now=Xn,e.utc=u,e.unix=qi,e.months=Qi,e.isDate=a,e.locale=Qt,e.invalid=m,e.duration=Ke,e.isMoment=y,e.weekdays=eo,e.parseZone=Xi,e.localeData=ie,e.isDuration=Ne,e.monthsShort=to,e.weekdaysMin=oo,e.defineLocale=te,e.updateLocale=ee,e.locales=oe,e.weekdaysShort=io,e.normalizeUnits=z,e.relativeTimeRounding=xo,e.relativeTimeThreshold=ko,e.calendarFormat=ii,e.prototype=as,e})}).call(e,i(155)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=156},function(t,e,i){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){n<16&&(e[o+n++]=u[t])});n<16;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=t.node||f,p=0;p<6;p++)s[n+p]=c[p];return e||o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;a<16;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:void 0!==e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;c<256;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,i(158))},function(t,e){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(43),e.Graph3d=i(161),e.graph3d={Camera:i(95),Filter:i(96),Point2d:i(91),Point3d:i(34),Slider:i(92),StepNumber:i(93)},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(35)},function(t,e,i){var o=i(7),n=o.JSON||(o.JSON={stringify:JSON.stringify});t.exports=function(t){return n.stringify.apply(n,arguments)}},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.dataGroup=new _,this.dataPoints=null,this.create(),f.setDefaults(o.DEFAULTS,this),this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.setOptions(i),this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(90),a=function(t){return t&&t.__esModule?t:{default:t}}(r),h=i(44),d=i(2),l=i(34),u=i(91),c=i(92),p=i(93),f=i(94),m=i(15).default,v=i(15),g=v.printStyle,y=i(172),b=y.allOptions,_=i(173);o.STYLE=f.STYLE;o.DEFAULTS={width:"400px",height:"400px",filterLabel:"time",legendLabel:"value",xLabel:"x",yLabel:"y",zLabel:"z",xValueLabel:function(t){return t},yValueLabel:function(t){return t},zValueLabel:function(t){return t},showXAxis:!0,showYAxis:!0,showZAxis:!0,showGrid:!0,showPerspective:!0,showShadow:!1,keepAspectRatio:!0,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:void 0,animationInterval:1e3,animationPreload:!1,animationAutoStart:void 0,axisColor:"#4D4D4D",gridColor:"#D3D3D3",xCenter:"55%",yCenter:"50%",style:o.STYLE.DOT,tooltip:!1,tooltipStyle:{content:{padding:"10px",border:"1px solid #4d4d4d",color:"#1a1a1a",background:"rgba(255,255,255,0.7)",borderRadius:"2px",boxShadow:"5px 5px 10px rgba(128,128,128,0.5)"},line:{height:"40px",width:"0",borderLeft:"1px solid #4d4d4d"},dot:{height:"0",width:"0",border:"5px solid #4d4d4d",borderRadius:"5px"}},dataColor:{fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:void 0,backgroundColor:void 0,xBarWidth:void 0,yBarWidth:void 0,valueMin:void 0,valueMax:void 0,xMin:void 0,xMax:void 0,xStep:void 0,yMin:void 0,yMax:void 0,yStep:void 0,zMin:void 0,zMax:void 0,zStep:void 0},h(o.prototype),o.prototype._setScale=function(){this.scale=new l(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range()),this.keepAspectRatio&&(this.scale.x0&&(r[n-1].pointNext=r[n]);return r},o.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t),this.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,i=function(t){e._onMouseDown(t)},o=function(t){e._onTouchStart(t)},n=function(t){e._onWheel(t)},s=function(t){e._onTooltip(t)},r=function(t){e._onClick(t)};d.addEventListener(this.frame.canvas,"mousedown",i),d.addEventListener(this.frame.canvas,"touchstart",o),d.addEventListener(this.frame.canvas,"mousewheel",n),d.addEventListener(this.frame.canvas,"mousemove",s),d.addEventListener(this.frame.canvas,"click",r),this.containerElement.appendChild(this.frame)},o.prototype._setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},o.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},o.prototype.animationStart=function(){if(this.animationAutoStart&&this.dataGroup.dataFilter){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()}},o.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},o.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},o.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},o.prototype._readData=function(t){this.dataPoints=this.dataGroup.initializeData(this,t,this.style),this._initializeRanges(),this._redrawFilter()},o.prototype.setData=function(t){void 0!==t&&null!==t&&(this._readData(t),this.redraw(),this.animationStart())},o.prototype.setOptions=function(t){if(void 0!==t){!0===m.validate(t,b)&&console.log("%cErrors have been found in the supplied options object.",g),this.animationStop(),f.setOptions(t,this),this.setPointDrawingMethod(),this._setSize(this.width,this.height),this.setData(this.dataGroup.getDataTable()),this.animationStart()}},o.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case o.STYLE.BAR:t=o.prototype._redrawBarGraphPoint;break;case o.STYLE.BARCOLOR:t=o.prototype._redrawBarColorGraphPoint;break;case o.STYLE.BARSIZE:t=o.prototype._redrawBarSizeGraphPoint;break;case o.STYLE.DOT:t=o.prototype._redrawDotGraphPoint;break;case o.STYLE.DOTLINE:t=o.prototype._redrawDotLineGraphPoint;break;case o.STYLE.DOTCOLOR:t=o.prototype._redrawDotColorGraphPoint;break;case o.STYLE.DOTSIZE:t=o.prototype._redrawDotSizeGraphPoint;break;case o.STYLE.SURFACE:t=o.prototype._redrawSurfaceGraphPoint;break;case o.STYLE.GRID:t=o.prototype._redrawGridGraphPoint;break;case o.STYLE.LINE:t=o.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},o.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},o.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},o.prototype._redrawClear=function(){var t=this.frame.canvas;t.getContext("2d").clearRect(0,0,t.width,t.height)},o.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},o.prototype._getLegendWidth=function(){var t;if(this.style===o.STYLE.DOTSIZE){t=this._dotSize()*this.dotSizeMaxFraction}else t=this.style===o.STYLE.BARSIZE?this.xBarWidth:20;return t},o.prototype._redrawLegend=function(){if(!0===this.showLegend&&this.style!==o.STYLE.LINE&&this.style!==o.STYLE.BARSIZE){var t=this.style===o.STYLE.BARSIZE||this.style===o.STYLE.DOTSIZE,e=this.style===o.STYLE.DOTSIZE||this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.BARCOLOR,i=Math.max(.25*this.frame.clientHeight,100),n=this.margin,s=this._getLegendWidth(),r=this.frame.clientWidth-this.margin,a=r-s,h=n+i,d=this._getContext();if(d.lineWidth=1,d.font="14px arial",!1===t){var l,c=i;for(l=0;l0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelY=function(t,e,i,o,n){void 0===n&&(n=0);var s=this._convert3Dto2D(e);Math.cos(2*o)<0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelZ=function(t,e,i,o){void 0===o&&(o=0);var n=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(i,n.x-o,n.y)},o.prototype._line3d=function(t,e,i,o){var n=this._convert3Dto2D(e),s=this._convert3Dto2D(i);this._line(t,n,s,o)},o.prototype._redrawAxis=function(){var t,e,i,o,n,s,r,a,h,d,c,f=this._getContext();f.font=24/this.camera.getArmLength()+"px arial";var m,v=.025/this.scale.x,g=.025/this.scale.y,y=5/this.camera.getArmLength(),b=this.camera.getArmRotation().horizontal,_=new u(Math.cos(b),Math.sin(b)),w=this.xRange,x=this.yRange,k=this.zRange;for(f.lineWidth=1,o=void 0===this.defaultXStep,i=new p(w.min,w.max,this.xStep,o),i.start(!0);!i.end();){var S=i.getCurrent();if(this.showGrid?(t=new l(S,x.min,k.min),e=new l(S,x.max,k.min),this._line3d(f,t,e,this.gridColor)):this.showXAxis&&(t=new l(S,x.min,k.min),e=new l(S,x.min+v,k.min),this._line3d(f,t,e,this.axisColor),t=new l(S,x.max,k.min),e=new l(S,x.max-v,k.min),this._line3d(f,t,e,this.axisColor)),this.showXAxis){r=_.x>0?x.min:x.max,m=new l(S,r,k.min);var D=" "+this.xValueLabel(S)+" ";this.drawAxisLabelX(f,m,D,b,y)}i.next()}for(f.lineWidth=1,o=void 0===this.defaultYStep,i=new p(x.min,x.max,this.yStep,o),i.start(!0);!i.end();){var M=i.getCurrent();if(this.showGrid?(t=new l(w.min,M,k.min),e=new l(w.max,M,k.min),this._line3d(f,t,e,this.gridColor)):this.showYAxis&&(t=new l(w.min,M,k.min),e=new l(w.min+g,M,k.min),this._line3d(f,t,e,this.axisColor),t=new l(w.max,M,k.min),e=new l(w.max-g,M,k.min),this._line3d(f,t,e,this.axisColor)),this.showYAxis){s=_.y>0?w.min:w.max,m=new l(s,M,k.min);var C=" "+this.yValueLabel(M)+" ";this.drawAxisLabelY(f,m,C,b,y)}i.next()}if(this.showZAxis){for(f.lineWidth=1,o=void 0===this.defaultZStep,i=new p(k.min,k.max,this.zStep,o),i.start(!0),s=_.x>0?w.min:w.max,r=_.y<0?x.min:x.max;!i.end();){var O=i.getCurrent(),E=new l(s,r,O),T=this._convert3Dto2D(E);e=new u(T.x-y,T.y),this._line(f,T,e,this.axisColor);var P=this.zValueLabel(O)+" ";this.drawAxisLabelZ(f,E,P,5),i.next()}f.lineWidth=1,t=new l(s,r,k.min),e=new l(s,r,k.max),this._line3d(f,t,e,this.axisColor)}if(this.showXAxis){var I,N;f.lineWidth=1,I=new l(w.min,x.min,k.min),N=new l(w.max,x.min,k.min),this._line3d(f,I,N,this.axisColor),I=new l(w.min,x.max,k.min),N=new l(w.max,x.max,k.min),this._line3d(f,I,N,this.axisColor)}this.showYAxis&&(f.lineWidth=1,t=new l(w.min,x.min,k.min),e=new l(w.min,x.max,k.min),this._line3d(f,t,e,this.axisColor),t=new l(w.max,x.min,k.min),e=new l(w.max,x.max,k.min),this._line3d(f,t,e,this.axisColor));var R=this.xLabel;R.length>0&&this.showXAxis&&(c=.1/this.scale.y,s=(w.max+3*w.min)/4,r=_.x>0?x.min-c:x.max+c,n=new l(s,r,k.min),this.drawAxisLabelX(f,n,R,b));var A=this.yLabel;A.length>0&&this.showYAxis&&(d=.1/this.scale.x,s=_.y>0?w.min-d:w.max+d,r=(x.max+3*x.min)/4,n=new l(s,r,k.min),this.drawAxisLabelY(f,n,A,b));var z=this.zLabel;z.length>0&&this.showZAxis&&(h=30,s=_.x>0?w.min:w.max,r=_.y<0?x.min:x.max,a=(k.max+3*k.min)/4,n=new l(s,r,a),this.drawAxisLabelZ(f,n,z,h))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-this.eye.z/this.camera.getArmLength()*this.dataColor.strokeWidth:this.dataColor.strokeWidth},o.prototype._redrawBar=function(t,e,i,o,n,s){var r,a=this,h=e.point,d=this.zRange.min,u=[{point:new l(h.x-i,h.y-o,h.z)},{point:new l(h.x+i,h.y-o,h.z)},{point:new l(h.x+i,h.y+o,h.z)},{point:new l(h.x-i,h.y+o,h.z)}],c=[{point:new l(h.x-i,h.y-o,d)},{point:new l(h.x+i,h.y-o,d)},{point:new l(h.x+i,h.y+o,d)},{point:new l(h.x-i,h.y+o,d)}];u.forEach(function(t){t.screen=a._convert3Dto2D(t.point)}),c.forEach(function(t){t.screen=a._convert3Dto2D(t.point)});var p=[{corners:u,center:l.avg(c[0].point,c[2].point)},{corners:[u[0],u[1],c[1],c[0]],center:l.avg(c[1].point,c[0].point)},{corners:[u[1],u[2],c[2],c[1]],center:l.avg(c[2].point,c[1].point)},{corners:[u[2],u[3],c[3],c[2]],center:l.avg(c[3].point,c[2].point)},{corners:[u[3],u[0],c[0],c[3]],center:l.avg(c[0].point,c[3].point)}];e.surfaces=p;for(var f=0;f0}if(a){var p,f=(e.point.z+i.point.z+o.point.z+n.point.z)/4,m=240*(1-(f-this.zRange.min)*this.scale.z/this.verticalRatio);this.showShadow?(p=Math.min(1+u.x/c/2,1),s=this._hsv2rgb(m,1,p),r=s):(p=1,s=this._hsv2rgb(m,1,p),r=this.axisColor)}else s="gray",r=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var v=[e,i,n,o];this._polygon(t,v,s,r)}},o.prototype._drawGridLine=function(t,e,i){if(void 0!==e&&void 0!==i){var o=(e.point.z+i.point.z)/2,n=240*(1-(o-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(n,1,1),this._line(t,e.screen,i.screen)}},o.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},o.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},o.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t0?1:t<0?-1:0}var o=e[0],n=e[1],s=e[2],r=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),a=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x)),h=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,n=null,s=null,r=null,a=new u(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var h=n.surfaces;if(h)for(var d=h.length-1;d>=0;d--){var l=h[d],c=l.corners,p=[c[0].screen,c[1].screen,c[2].screen],f=[c[2].screen,c[3].screen,c[0].screen];if(this._insideTriangle(a,p)||this._insideTriangle(a,f))return n}}else for(i=0;i"+this.xLabel+":"+t.point.x+""+this.yLabel+":"+t.point.y+""+this.zLabel+":"+t.point.z+"",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var n=e.offsetWidth,s=e.offsetHeight,r=i.offsetHeight,h=o.offsetWidth,d=o.offsetHeight,l=t.screen.x-n/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=l+"px",e.style.top=t.screen.y-r-s+"px",o.style.left=t.screen.x-h/2+"px",o.style.top=t.screen.y-d/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},o.prototype.setCameraPosition=function(t){f.setCameraPosition(t,this),this.redraw()},o.prototype.setSize=function(t,e){this._setSize(t,e),this.redraw()},t.exports=o},function(t,e,i){i(163),t.exports=i(7).Object.assign},function(t,e,i){var o=i(17);o(o.S+o.F,"Object",{assign:i(164)})},function(t,e,i){var o=i(33),n=i(63),s=i(42),r=i(41),a=i(78),h=Object.assign;t.exports=!h||i(28)(function(){var t={},e={},i=Symbol(),o="abcdefghijklmnopqrst";return t[i]=7,o.split("").forEach(function(t){e[t]=t}),7!=h({},t)[i]||Object.keys(h({},e)).join("")!=o})?function(t,e){for(var i=r(t),h=arguments.length,d=1,l=n.f,u=s.f;h>d;)for(var c,p=a(arguments[d++]),f=l?o(p).concat(l(p)):o(p),m=f.length,v=0;m>v;)u.call(p,c=f[v++])&&(i[c]=p[c]);return i}:h},function(t,e,i){t.exports={default:i(166),__esModule:!0}},function(t,e,i){i(167),t.exports=i(7).Math.sign},function(t,e,i){var o=i(17);o(o.S,"Math",{sign:i(168)})},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,i){t.exports={default:i(170),__esModule:!0}},function(t,e,i){i(171);var o=i(7).Object;t.exports=function(t,e,i){return o.defineProperty(t,e,i)}},function(t,e,i){var o=i(17);o(o.S+o.F*!i(21),"Object",{defineProperty:i(20).f})},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r={fill:{string:o},stroke:{string:o},strokeWidth:{number:s},__type__:{string:o,object:"object",undefined:"undefined"}},a={animationAutoStart:{boolean:n,undefined:"undefined"},animationInterval:{number:s},animationPreload:{boolean:n},axisColor:{string:o},backgroundColor:r,xBarWidth:{number:s,undefined:"undefined"},yBarWidth:{number:s,undefined:"undefined"},cameraPosition:{distance:{number:s},horizontal:{number:s},vertical:{number:s},__type__:{object:"object"}},xCenter:{string:o},yCenter:{string:o},dataColor:r,dotSizeMinFraction:{number:s},dotSizeMaxFraction:{number:s},dotSizeRatio:{number:s},filterLabel:{string:o},gridColor:{string:o},onclick:{function:"function"},keepAspectRatio:{boolean:n},xLabel:{string:o},yLabel:{string:o},zLabel:{string:o},legendLabel:{string:o},xMin:{number:s,undefined:"undefined"},yMin:{number:s,undefined:"undefined"},zMin:{number:s,undefined:"undefined"},xMax:{number:s,undefined:"undefined"},yMax:{number:s,undefined:"undefined"},zMax:{number:s,undefined:"undefined"},showAnimationControls:{boolean:n,undefined:"undefined"},showGrid:{boolean:n},showLegend:{boolean:n,undefined:"undefined"},showPerspective:{boolean:n},showShadow:{boolean:n},showXAxis:{boolean:n},showYAxis:{boolean:n},showZAxis:{boolean:n},xStep:{number:s,undefined:"undefined"},yStep:{number:s,undefined:"undefined"},zStep:{number:s,undefined:"undefined"},style:{number:s,string:["bar","bar-color","bar-size","dot","dot-line","dot-color","dot-size","line","grid","surface"]},tooltip:{boolean:n,function:"function"},tooltipStyle:{content:{color:{string:o},background:{string:o},border:{string:o},borderRadius:{string:o},boxShadow:{string:o},padding:{string:o},__type__:{object:"object"}},line:{borderLeft:{string:o},height:{string:o},width:{string:o},__type__:{object:"object"}},dot:{border:{string:o},borderRadius:{string:o},height:{string:o},width:{string:o},__type__:{object:"object"}},__type__:{object:"object"}},xValueLabel:{function:"function"},yValueLabel:{function:"function"},zValueLabel:{function:"function"},valueMax:{number:s,undefined:"undefined"},valueMin:{number:s,undefined:"undefined"},verticalRatio:{number:s},height:{string:o},width:{string:o},__type__:{object:"object"}};e.allOptions=a},function(t,e,i){function o(){this.dataTable=null}var n=i(11),s=i(12),r=i(174),a=i(96),h=i(94),d=i(34);o.prototype.initializeData=function(t,e,i){if(void 0!==e){Array.isArray(e)&&(e=new n(e));var o;if(!(e instanceof n||e instanceof s))throw new Error("Array, DataSet, or DataView expected");if(o=e.get(),0!=o.length){this.style=i,this.dataSet&&this.dataSet.off("*",this._onChange),this.dataSet=e,this.dataTable=o;var r=this;this._onChange=function(){t.setData(r.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z";var h=t.hasBars(i);if(h&&(void 0!==t.defaultXBarWidth?this.xBarWidth=t.defaultXBarWidth:this.xBarWidth=this.getSmallestDifference(o,this.colX)||1,void 0!==t.defaultYBarWidth?this.yBarWidth=t.defaultYBarWidth:this.yBarWidth=this.getSmallestDifference(o,this.colY)||1),this._initializeRange(o,this.colX,t,h),this._initializeRange(o,this.colY,t,h),this._initializeRange(o,this.colZ,t,!1),o[0].hasOwnProperty("style")){this.colValue="style";var d=this.getColumnRange(o,this.colValue);this._setRangeDefaults(d,t.defaultValueMin,t.defaultValueMax),this.valueRange=d}this.getDataTable()[0].hasOwnProperty("filter")&&void 0===this.dataFilter&&(this.dataFilter=new a(this,"filter",t),this.dataFilter.setOnLoadCallback(function(){t.redraw()}));return this.dataFilter?this.dataFilter._getDataPoints():this._getDataPoints(this.getDataTable())}}},o.prototype._collectRangeSettings=function(t,e){if(-1==["x","y","z"].indexOf(t))throw new Error("Column '"+t+"' invalid");var i=t.toUpperCase();return{barWidth:this[t+"BarWidth"],min:e["default"+i+"Min"],max:e["default"+i+"Max"],step:e["default"+i+"Step"],range_label:t+"Range",step_label:t+"Step"}},o.prototype._initializeRange=function(t,e,i,o){var n=this._collectRangeSettings(e,i),s=this.getColumnRange(t,e);o&&"z"!=e&&s.expand(n.barWidth/2),this._setRangeDefaults(s,n.min,n.max),this[n.range_label]=s,this[n.step_label]=void 0!==n.step?n.step:s.range()/5},o.prototype.getDistinctValues=function(t,e){void 0===e&&(e=this.dataTable);for(var i=[],o=0;os)&&(o=s)}return o},o.prototype.getColumnRange=function(t,e){for(var i=new r,o=0;o0&&(e[i-1].pointNext=e[i]);return e},o.prototype._checkValueField=function(t){if(this.style===h.STYLE.BARCOLOR||this.style===h.STYLE.BARSIZE||this.style===h.STYLE.DOTCOLOR||this.style===h.STYLE.DOTSIZE){if(void 0===this.colValue)throw new Error("Expected data to have field 'style' for graph style '"+this.style+"'");if(void 0===t[0][this.colValue])throw new Error("Expected data to have field '"+this.colValue+"' for graph style '"+this.style+"'")}},t.exports=o},function(t,e,i){function o(){this.min=void 0,this.max=void 0}o.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.maxi)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=i}},o.prototype.range=function(){return this.max-this.min},o.prototype.center=function(){return(this.min+this.max)/2},t.exports=o},function(t,e,i){var o,n,s;!function(i){n=[],o=i,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var o=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof o&&(e.srcEvent.stopPropagation=function(){o(),e.stopPropagation()}),e.firstTarget=t;for(var n=t;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(p(t,i),e)}function d(t,e,i){return!!Array.isArray(t)&&(l(t,i[e],i),!0)}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function c(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&ft(o,i)}function p(t,e){return function(){return t.apply(e,arguments)}}function f(t,e){return typeof t==gt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function g(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function S(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=N(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=R(o);e.timeStamp=_t(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=F(a,h),e.distance=L(a,h),P(i,e),e.offsetDirection=z(e.deltaX,e.deltaY);var d=A(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=bt(d.x)>bt(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?B(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,I(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Et&&s.eventType!==Pt||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function I(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=It&&(h>Ot||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,u=A(h,d,l);o=u.x,n=u.y,i=bt(u.x)>bt(u.y)?u.x:u.y,s=z(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function N(t){for(var e=[],i=0;i=bt(e)?t<0?Rt:At:e<0?zt:Lt}function L(t,e,i){i||(i=Ht);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function F(t,e,i){i||(i=Ht);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function B(t,e){return F(e[1],e[0],Wt)+F(t[1],t[0],Wt)}function j(t,e){return L(e[0],e[1],Wt)/L(t[0],t[1],Wt)}function H(){this.evEl=Gt,this.evWin=Vt,this.pressed=!1,C.apply(this,arguments)}function W(){this.evEl=Xt,this.evWin=Zt,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=Jt,this.evWin=$t,this.started=!1,C.apply(this,arguments)}function G(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Pt|It)&&(i=k(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=te,this.targetIds={},C.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Et|Tt)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===Et)for(n=0;n-1&&o.splice(t,1)};setTimeout(n,ee)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,o=this.state;o=fe&&e(i.options.event+tt(o))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&n&e.direction},attrTest:function(t){return ot.prototype.attrTest.call(this,t)&&(this.state&ce||!(this.state&ce)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),c(st,ot,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ce)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),c(rt,Q,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(Pt|It)&&!n)this.reset();else if(t.eventType&Et)this.reset(),this._timer=h(function(){this.state=me,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return me;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===me&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=_t(),this.manager.emit(this.options.event,this._input)))}}),c(at,ot,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ce)}}),c(ht,ot,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ft|Bt,pointers:1},getTouchAction:function(){return nt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Ft|Bt)?e=t.overallVelocity:i&Ft?e=t.overallVelocityX:i&Bt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&bt(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),c(dt,Q,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distanced+i?s+=h()+u-i+t.itemSet.options.margin.item.vertical:r=!1,s=Math.min(s,o-i),{shouldScroll:r,scrollOffset:s,itemTop:l}}var a=i(9),h=i(2),d=i(11),l=i(12),u=i(64),c=i(65),p=i(45),f=i(67),m=i(46),v=i(99),g=i(15).printStyle,y=i(105).allOptions,b=i(105).configureOptions,_=i(71).default,w=i(15).default;o.prototype=new c,o.prototype._createConfigurator=function(){return new _(this,this.dom.container,b)},o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){if(!0===w.validate(t,y)&&console.log("%cErrors have been found in the supplied options object.",g),c.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var e=this.itemsData;if(e){var i=this.getSelection();this.setItems(null),this.setItems(e),this.setSelection(i)}}},o.prototype.setItems=function(t){var e;e=t?t instanceof d||t instanceof l?t:new d(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e)},o.prototype.setGroups=function(t){var e;if(t){var i=function(t){return!1!==t.visible};e=t instanceof d||t instanceof l?new l(t,{filter:i}):new d(t.filter(i))}else e=null;this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||es)&&(s=i)}),null!==n&&null!==s){var a=this,h=this.itemSet.items[i[0]],d=-1*this._getScrollTop(),l=null,u=function(t,e,i){var o=r(a,h);if(l||(l=o),l.itemTop!=o.itemTop||l.shouldScroll){l.itemTop!=o.itemTop&&o.shouldScroll&&(l=o,d=-1*a._getScrollTop());var n=d,s=l.scrollOffset,u=i?s:n+(s-n)*t;a._setScrollTop(-u),e||a._redraw()}},c=function(){var t=r(a,h);t.shouldScroll&&t.itemTop!=l.itemTop&&(a._setScrollTop(-t.scrollOffset),a._redraw())},p=function(){c(),setTimeout(c,100)},f=(n+s)/2,m=Math.max(this.range.end-this.range.start,1.1*(s-n)),v=!e||void 0===e.animation||e.animation;v||(l={shouldScroll:!1,scrollOffset:-1,itemTop:-1}),this.range.setRange(f-m/2,f+m/2,{animation:v},p,u)}}},o.prototype.fit=function(t,e){var i,o=!t||void 0===t.animation||t.animation,n=this.itemsData&&this.itemsData.getDataSet();1===n.length&&void 0===n.get()[0].end?(i=this.getDataRange(),this.moveTo(i.min.valueOf(),{animation:o},e)):(i=this.getItemRange(),this.range.setRange(i.min,i.max,{animation:o},e))},o.prototype.getItemRange=function(){var t=this.getDataRange(),e=null!==t.min?t.min.valueOf():null,i=null!==t.max?t.max.valueOf():null,o=null,r=null;if(null!=e&&null!=i){var a=i-e;a<=0&&(a=10);var d=a/this.props.center.width,l={},u=0;h.forEach(this.itemSet.items,function(t,e){if(t.groupShowing){l[e]=t.redraw(!0),u=l[e].length}});if(u>0)for(var c=0;ci&&(i=h,r=t)}.bind(this)),o&&r){var p=o.getWidthLeft()+10,f=r.getWidthRight()+10,m=this.props.center.width-p-f;m>0&&(this.options.rtl?(e=n(o)-f*a/m,i=s(r)+p*a/m):(e=n(o)-p*a/m,i=s(r)+f*a/m))}}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=h.convert(i.start,"Date").valueOf(),n=h.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||oe)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e,i=t.center?t.center.x:t.clientX,o=t.center?t.center.y:t.clientY;e=this.options.rtl?h.getAbsoluteRight(this.dom.centerContainer)-i:i-h.getAbsoluteLeft(this.dom.centerContainer);var n=o-h.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=m.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),c=this._toTime(e),p=d?d(c,l,u):c,f=h.getTarget(t),v=null;return null!=s?v="item":null!=a?v="custom-time":h.hasParent(f,this.timeAxis.dom.foreground)?v="axis":this.timeAxis2&&h.hasParent(f,this.timeAxis2.dom.foreground)?v="axis":h.hasParent(f,this.itemSet.dom.labelSet)?v="group-label":h.hasParent(f,this.currentTime.bar)?v="current-time":h.hasParent(f,this.dom.center)&&(v="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:v,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:e,y:n,time:c,snappedTime:p}},o.prototype.toggleRollingMode=function(){this.range.rolling?this.range.stopRolling():(void 0==this.options.rollingMode&&this.setOptions(this.options),this.range.startRolling())},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(10),u=i(37),c=i(2),p=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,d.default)(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),!0===c.isString(t)){if(!0===c.isValidRGB(t)){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(!0===c.isValidRGBA(t)){var r=t.substr(5).substr(0,t.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===c.isValidHex(t)){var a=c.hexToRGB(t);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this;!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=c.extend({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=c.extend({},t)),this.color=t;var e=c.RGBToHSV(t.r,t.g,t.b),i=2*Math.PI,o=this.r*e.s,n=this.centerCoordinates.x+o*Math.sin(i*e.h),s=this.centerCoordinates.y+o*Math.cos(i*e.h);this.colorPickerSelector.style.left=n-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=s-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=c.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=c.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=c.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d") -;this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(!1===this.generated){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var a=2*Math.PI/360,h=1/this.r,d=void 0;for(s=0;s<360;s++)for(r=0;rr?r:t,e=null==e?r:e0&&l.push(u.screenToValue(n)),!p.hidden&&this.itemsData.length>0&&l.push(p.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new g(this,this.dom.container,v)},t.exports=o},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(43),e.Network=i(182),e.network={Images:i(116),dotparser:i(114),gephiParser:i(115),allOptions:i(122)},e.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(35)},function(t,e,i){function o(t,e,i){var n=this;if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:d,clickToUse:!1},s.extend(this.options,this.defaultOptions),this.body={container:t,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}},this.bindEventListeners(),this.images=new l(function(){return n.body.emitter.emit("_requestRedraw")}),this.groups=new u,this.canvas=new g(this.body),this.selectionHandler=new _(this.body,this.canvas),this.interactionHandler=new b(this.body,this.canvas,this.selectionHandler),this.view=new y(this.body,this.canvas),this.renderer=new v(this.body,this.canvas),this.physics=new f(this.body),this.layoutEngine=new w(this.body),this.clustering=new m(this.body),this.manipulation=new x(this.body,this.canvas,this.selectionHandler),this.nodesHandler=new c(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new p(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new T(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(e)}i(183);var n=i(44),s=i(2),r=i(114),a=i(115),h=i(97),d=i(184),l=i(116).default,u=i(186).default,c=i(187).default,p=i(214).default,f=i(220).default,m=i(227).default,v=i(229).default,g=i(230).default,y=i(231).default,b=i(232).default,_=i(234).default,w=i(235).default,x=i(237).default,k=i(71).default,S=i(15).default,D=i(15),M=D.printStyle,C=i(122),O=C.allOptions,E=C.configureOptions,T=i(238).default;n(o.prototype),o.prototype.setOptions=function(t){var e=this;if(void 0!==t){!0===S.validate(t,O)&&console.log("%cErrors have been found in the supplied options object.",M);var i=["locale","locales","clickToUse"];if(s.selectiveDeepExtend(i,this.options,t),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t,this.options),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),void 0!==t.groups&&this.body.emitter.emit("refreshNodes"),"configure"in t&&(this.configurator||(this.configurator=new k(this,this.body.container,E,this.canvas.pixelRatio)),this.configurator.setOptions(t.configure)),this.configurator&&!0===this.configurator.options.enabled){var o={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};s.deepExtend(o.nodes,this.nodesHandler.options),s.deepExtend(o.edges,this.edgesHandler.options),s.deepExtend(o.layout,this.layoutEngine.options),s.deepExtend(o.interaction,this.selectionHandler.options),s.deepExtend(o.interaction,this.renderer.options),s.deepExtend(o.interaction,this.interactionHandler.options),s.deepExtend(o.manipulation,this.manipulation.options),s.deepExtend(o.physics,this.physics.options),s.deepExtend(o.global,this.canvas.options),s.deepExtend(o.global,this.options),this.configurator.setModuleOptions(o)}void 0!==t.clickToUse?!0===t.clickToUse?void 0===this.activator&&(this.activator=new h(this.canvas.frame),this.activator.on("change",function(){e.body.emitter.emit("activate")})):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},o.prototype._updateVisibleIndices=function(){var t=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in t)t.hasOwnProperty(i)&&(this.clustering._isClusteredNode(i)||!1!==t[i].options.hidden||this.body.nodeIndices.push(t[i].id));for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],s=t[n.fromId],r=t[n.toId],a=void 0!==s&&void 0!==r,h=!this.clustering._isClusteredEdge(o)&&!1===n.options.hidden&&a&&!1===s.options.hidden&&!1===r.options.hidden;h&&this.body.edgeIndices.push(n.id)}},o.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",function(){t.edgesHandler._updateState(),t.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){t.clustering._updateState(),t._updateVisibleIndices(),t._updateValueRange(t.body.nodes),t._updateValueRange(t.body.edges),t.body.emitter.emit("startSimulation"),t.body.emitter.emit("_requestRedraw")})},o.prototype.setData=function(t){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){console.log("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var e=r.DOTToGraph(t.dot);return void this.setData(e)}if(t&&t.gephi){console.log("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=a.parseGephi(t.gephi);return void this.setData(i)}this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},o.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(var t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&delete this.body.nodes[t];for(var e in this.body.edges)this.body.edges.hasOwnProperty(e)&&delete this.body.edges[e];s.recursiveDOMDelete(this.body.container)},o.prototype._updateValueRange=function(t){var e,i=void 0,o=void 0,n=0;for(e in t)if(t.hasOwnProperty(e)){var s=t[e].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),o=void 0===o?s:Math.max(s,o),n+=s)}if(void 0!==i&&void 0!==o)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,o,n)},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},o.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},o.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},o.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},o.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},o.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},o.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},o.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},o.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},o.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},o.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},o.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},o.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},o.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},o.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},o.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},o.prototype.editNodeMode=function(){return console.log("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},o.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},o.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},o.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},o.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},o.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},o.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},o.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},o.prototype.getConnectedNodes=function(t){return void 0!==this.body.nodes[t]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},o.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},o.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},o.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},o.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},o.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},o.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},o.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)},o.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)},o.prototype.getNodeAt=function(){var t=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},o.prototype.getEdgeAt=function(){var t=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},o.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},o.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},o.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.redraw()},o.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},o.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},o.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},o.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},o.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},o.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},o.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},o.prototype.getOptionsFromConfigurator=function(){var t={};return this.configurator&&(t=this.configurator.getOptions.apply(this.configurator)),t},t.exports=o},function(t,e,i){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;o<10;o++){var n=o%2==0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;i-2*n<0&&(n=i/2),o-2*n<0&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse_vis=function(t,e,i,o){var n=i/2*.5522848,s=o/2*.5522848,r=t+i,a=e+o,h=t+i/2,d=e+o/2;this.beginPath(),this.moveTo(t,d),this.bezierCurveTo(t,d-s,h-n,e,h,e),this.bezierCurveTo(h+n,e,r,d-s,r,d),this.bezierCurveTo(r,d+s,h+n,a,h,a),this.bezierCurveTo(h-n,a,t,d+s,t,d),this.closePath()},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=i,s=o*(1/3),r=n/2*.5522848,a=s/2*.5522848,h=t+n,d=e+s,l=t+n/2,u=e+s/2,c=e+(o-s/2),p=e+o;this.beginPath(),this.moveTo(h,u),this.bezierCurveTo(h,u+a,l+r,d,l,d),this.bezierCurveTo(l-r,d,t,u+a,t,u),this.bezierCurveTo(t,u-a,l-r,e,l,e),this.bezierCurveTo(l+r,e,h,u-a,h,u),this.lineTo(h,c),this.bezierCurveTo(h,c+a,l+r,p,l,p),this.bezierCurveTo(l-r,p,t,c+a,t,c),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),c=Math.sqrt(p*p/(1+h*h)),c=r<0?-c:c,t+=c,e+=h*c,!0===u?this.lineTo(t,e):this.moveTo(t,e),d-=p,u=!u},CanvasRenderingContext2D.prototype.hexagon=function(t,e,i){this.beginPath();var o=2*Math.PI/6;this.moveTo(t+i,e);for(var n=1;n<6;n++)this.lineTo(t+i*Math.cos(o*n),e+i*Math.sin(o*n));this.closePath()})},function(t,e,i){e.en={edit:"Edit",del:"Delete selected",back:"Back",addNode:"Add Node",addEdge:"Add Edge",editNode:"Edit Node",editEdge:"Edit Edge",addDescription:"Click in an empty space to place a new node.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",createEdgeError:"Cannot link edges to a cluster.",deleteClusterError:"Clusters cannot be deleted.",editClusterError:"Clusters cannot be edited."},e.en_EN=e.en,e.en_US=e.en,e.de={edit:"Editieren",del:"Lösche Auswahl",back:"Zurück",addNode:"Knoten hinzufügen",addEdge:"Kante hinzufügen",editNode:"Knoten editieren",editEdge:"Kante editieren",addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",createEdgeError:"Es ist nicht möglich, Kanten mit Clustern zu verbinden.",deleteClusterError:"Cluster können nicht gelöscht werden.",editClusterError:"Cluster können nicht editiert werden."},e.de_DE=e.de,e.es={edit:"Editar",del:"Eliminar selección",back:"Átras",addNode:"Añadir nodo",addEdge:"Añadir arista",editNode:"Editar nodo",editEdge:"Editar arista",addDescription:"Haga clic en un lugar vacío para colocar un nuevo nodo.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",createEdgeError:"No se puede conectar una arista a un grupo.",deleteClusterError:"No es posible eliminar grupos.",editClusterError:"No es posible editar grupos."},e.es_ES=e.es,e.it={edit:"Modifica",del:"Cancella la selezione",back:"Indietro",addNode:"Aggiungi un nodo",addEdge:"Aggiungi un vertice",editNode:"Modifica il nodo",editEdge:"Modifica il vertice",addDescription:"Clicca per aggiungere un nuovo nodo",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",createEdgeError:"Non si possono collegare vertici ad un cluster",deleteClusterError:"I cluster non possono essere cancellati",editClusterError:"I clusters non possono essere modificati."},e.it_IT=e.it,e.nl={edit:"Wijzigen",del:"Selectie verwijderen",back:"Terug",addNode:"Node toevoegen",addEdge:"Link toevoegen",editNode:"Node wijzigen",editEdge:"Link wijzigen",addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",createEdgeError:"Kan geen link maken naar een cluster.",deleteClusterError:"Clusters kunnen niet worden verwijderd.",editClusterError:"Clusters kunnen niet worden aangepast."},e.nl_NL=e.nl,e.nl_BE=e.nl,e["pt-br"]={edit:"Editar",del:"Remover selecionado",back:"Voltar",addNode:"Adicionar nó",addEdge:"Adicionar aresta",editNode:"Editar nó",editEdge:"Editar aresta",addDescription:"Clique em um espaço em branco para adicionar um novo nó",edgeDescription:"Clique em um nó e arraste a aresta até outro nó para conectá-los",editEdgeDescription:"Clique nos pontos de controle e os arraste para um nó para conectá-los",createEdgeError:"Não foi possível linkar arestas a um cluster.",deleteClusterError:"Clusters não puderam ser removidos.",editClusterError:"Clusters não puderam ser editados."},e["pt-BR"]=e["pt-br"],e.pt_BR=e["pt-br"],e.pt_br=e["pt-br"],e.ru={edit:"Редактировать",del:"Удалить выбранное",back:"Назад",addNode:"Добавить узел",addEdge:"Добавить ребро",editNode:"Редактировать узел",editEdge:"Редактировать ребро",addDescription:"Кликните в свободное место, чтобы добавить новый узел.",edgeDescription:"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.",editEdgeDescription:"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.",createEdgeError:"Невозможно соединить ребра в кластер.",deleteClusterError:"Кластеры не могут быть удалены",editClusterError:"Кластеры недоступны для редактирования."},e.ru_RU=e.ru,e.cn={edit:"编辑",del:"删除选定",back:"返回",addNode:"添加节点",addEdge:"添加连接线",editNode:"编辑节点",editEdge:"编辑连接线",addDescription:"单击空白处放置新节点。",edgeDescription:"单击某个节点并将该连接线拖动到另一个节点以连接它们。",editEdgeDescription:"单击控制节点并将它们拖到节点上连接。",createEdgeError:"无法将连接线连接到群集。",deleteClusterError:"无法删除群集。",editClusterError:"无法编辑群集。"},e.zh_CN=e.cn},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(){(0,s.default)(this,t),this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}return(0,a.default)(t,[{key:"init",value:function(){if(!this.initialized()){this.src=this.image.src;var t=this.image.width,e=this.image.height;this.width=t,this.height=e;var i=Math.floor(e/2),o=Math.floor(e/4),n=Math.floor(e/8),s=Math.floor(e/16),r=Math.floor(t/2),a=Math.floor(t/4),h=Math.floor(t/8),d=Math.floor(t/16);this.canvas.width=3*a,this.canvas.height=i,this.coordinates=[[0,0,r,i],[r,0,a,o],[r,o,h,n],[5*h,o,d,s]],this._fillMipMap()}}},{key:"initialized",value:function(){return void 0!==this.coordinates}},{key:"_fillMipMap",value:function(){var t=this.canvas.getContext("2d"),e=this.coordinates[0];t.drawImage(this.image,e[0],e[1],e[2],e[3]);for(var i=1;i2){e*=.5;for(var r=0;e>2&&r=this.NUM_ITERATIONS&&(r=this.NUM_ITERATIONS-1);var a=this.coordinates[r];t.drawImage(this.canvas,a[0],a[1],a[2],a[3],i,o,n,s)}else t.drawImage(this.image,i,o,n,s)}}]),t}();e.default=h},function(t,e,i){ -function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=function(){function t(){(0,s.default)(this,t),this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},h.extend(this.options,this.defaultOptions)}return(0,a.default)(t,[{key:"setOptions",value:function(t){var e=["useDefaultGroups"];if(void 0!==t)for(var i in t)if(t.hasOwnProperty(i)&&-1===e.indexOf(i)){var o=t[i];this.add(i,o)}}},{key:"clear",value:function(){this.groups={},this.groupsArray=[]}},{key:"get",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.groups[t];if(void 0===i&&e)if(!1===this.options.useDefaultGroups&&this.groupsArray.length>0){var o=this.groupIndex%this.groupsArray.length;this.groupIndex++,i={},i.color=this.groups[this.groupsArray[o]],this.groups[t]=i}else{var n=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,i={},i.color=this.defaultGroups[n],this.groups[t]=i}return i}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e.default=d},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(11),l=i(12),u=i(47).default,c=function(){function t(e,i,o,n){var r=this;if((0,s.default)(this,t),this.body=e,this.images=i,this.groups=o,this.layoutEngine=n,this.body.functions.createNode=this.create.bind(this),this.nodesListeners={add:function(t,e){r.add(e.items)},update:function(t,e){r.update(e.items,e.data,e.oldData)},remove:function(t,e){r.remove(e.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=h.bridgeObject(this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("refreshNodes",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){h.forEach(t.nodesListeners,function(e,i){t.body.data.nodes&&t.body.data.nodes.off(i,e)}),delete t.body.functions.createNode,delete t.nodesListeners.add,delete t.nodesListeners.update,delete t.nodesListeners.remove,delete t.nodesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){if(u.parseOptions(this.options,t),void 0!==t.shape)for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&this.body.nodes[e].updateShape();if(void 0!==t.font)for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&(this.body.nodes[i].updateLabelModule(),this.body.nodes[i].needsRefresh());if(void 0!==t.size)for(var o in this.body.nodes)this.body.nodes.hasOwnProperty(o)&&this.body.nodes[o].needsRefresh();void 0===t.hidden&&void 0===t.physics||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.data.nodes;if(t instanceof d||t instanceof l)this.body.data.nodes=t;else if(Array.isArray(t))this.body.data.nodes=new d,this.body.data.nodes.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new d}if(i&&h.forEach(this.nodesListeners,function(t,e){i.off(e,t)}),this.body.nodes={},this.body.data.nodes){var o=this;h.forEach(this.nodesListeners,function(t,e){o.body.data.nodes.on(e,t)});var n=this.body.data.nodes.getIds();this.add(n,!0)}!1===e&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:u)(t,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:"refresh",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];h.forEach(this.body.nodes,function(i,o){var n=t.body.data.nodes.get(o);void 0!==n&&(!0===e&&i.setOptions({x:null,y:null}),i.setOptions({fixed:!1}),i.setOptions(n))})}},{key:"getPositions",value:function(t){var e={};if(void 0!==t){if(!0===Array.isArray(t)){for(var i=0;i0)for(var r=0;r0)for(var p=0;p0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(e.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(t){" "===t&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)};i.position/.test(t.substr(i.position,3))?i.mono||i.ital||!//.test(t.substr(i.position,3))?!i.mono&&//.test(t.substr(i.position,6))?(i.emitBlock(),i.mono=!0,i.modStack.unshift("mono"),i.position+=5):!i.mono&&"bold"===i.mod()&&/<\/b>/.test(t.substr(i.position,4))?(i.emitBlock(),i.bold=!1,i.modStack.shift(),i.position+=3):!i.mono&&"ital"===i.mod()&&/<\/i>/.test(t.substr(i.position,4))?(i.emitBlock(),i.ital=!1,i.modStack.shift(),i.position+=3):"mono"===i.mod()&&/<\/code>/.test(t.substr(i.position,7))?(i.emitBlock(),i.mono=!1,i.modStack.shift(),i.position+=6):i.add(o):(i.emitBlock(),i.ital=!0,i.modStack.unshift("ital"),i.position+=2):(i.emitBlock(),i.bold=!0,i.modStack.unshift("bold"),i.position+=2):/&/.test(o)?/</.test(t.substr(i.position,4))?(i.add("<"),i.position+=3):/&/.test(t.substr(i.position,5))?(i.add("&"),i.position+=4):i.add("&"):i.add(o),i.position++}return i.emitBlock(),e}},{key:"splitMarkdownBlocks",value:function(t){var e=[],i={bold:!1,ital:!1,mono:!1,beginable:!0,spacing:!1,position:0,buffer:"",modStack:[]};for(i.mod=function(){return 0===this.modStack.length?"normal":this.modStack[0]},i.modName=function(){return 0===this.modStack.length?"normal":"mono"===this.modStack[0]?"mono":i.bold&&i.ital?"boldital":i.bold?"bold":i.ital?"ital":void 0},i.emitBlock=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(e.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(t){" "===t&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)};i.positionthis.parent.fontOptions.maxWdt}},{key:"getLongestFit",value:function(t){for(var e="",i=0;i1&&void 0!==arguments[1]?arguments[1]:"normal",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t=t.replace(/^( +)/g,"$1\r"),t=t.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");for(var o=t.split("\r");o.length>0;){var n=this.getLongestFit(o);if(0===n){var s=o[0],r=this.getLongestFitWord(s);this.lines.newLine(s.slice(0,r),e),o[0]=s.slice(r)}else{var a=n;" "===o[n-1]?n--:" "===o[a]&&a++;var h=o.slice(0,n).join("");n==o.length&&i?this.lines.append(h,e):this.lines.newLine(h,e),o=o.slice(a)}}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(90),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=function(){function t(e){(0,a.default)(this,t),this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}return(0,d.default)(t,[{key:"_add",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"normal";void 0===this.lines[t]&&(this.lines[t]={width:0,height:0,blocks:[]});var o=e;void 0!==e&&""!==e||(o=" ");var n=this.measureText(o,i),r=(0,s.default)({},n.values);r.text=e,r.width=n.width,r.mod=i,void 0!==e&&""!==e||(r.width=0),this.lines[t].blocks.push(r),this.lines[t].width+=r.width}},{key:"curWidth",value:function(){var t=this.lines[this.current];return void 0===t?0:t.width}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e)}},{key:"newLine",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e),this.current++}},{key:"determineLineHeights",value:function(){for(var t=0;tt&&(t=o.width),e+=o.height}this.width=t,this.height=e}},{key:"removeEmptyBlocks",value:function(){for(var t=[],e=0;e1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i);this.width=o.width+this.margin.right+this.margin.left,this.height=o.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,s),t.roundRect(this.left,this.top,this.width,this.height,s.borderRadius),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n)}},{key:"updateBoundingBox",value:function(t,e,i,o,n){this._updateBoundingBox(t,e,i,o,n);var s=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(s)}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}}]),e}(m.default);e.default=v},function(t,e,i){i(195),t.exports=i(7).Object.getPrototypeOf},function(t,e,i){var o=i(41),n=i(85);i(87)("getPrototypeOf",function(){return function(t){return n(o(t))}})},function(t,e,i){t.exports={default:i(197),__esModule:!0}},function(t,e,i){i(198),t.exports=i(7).Object.setPrototypeOf},function(t,e,i){var o=i(17);o(o.S,"Object",{setPrototypeOf:i(199).set})},function(t,e,i){var o=i(32),n=i(27),s=function(t,e){if(n(t),!o(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,o){try{o=i(80)(Function.call,i(89).f(Object.prototype,"__proto__").set,2),o(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,i){return s(t,i),e?t.__proto__=i:o(t,i),t}}({},!1):void 0),check:s}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i),n=Math.max(o.width+this.margin.right+this.margin.left,o.height+this.margin.top+this.margin.bottom);this.options.size=n/2,this.width=n,this.height=n,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,s),this.updateBoundingBox(e,i),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,i,o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o,n,r){(0,a.default)(this,e);var h=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return h.setImages(n,r),h}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var o=2*this.options.size;return this.width=o,this.height=o,void(this.radius=.5*this.width)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n,s){this.switchImages(o),this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,s),t.save(),t.clip(),this._drawImageAtPosition(t,s),t.restore(),this._drawImageLabel(t,e,i,o,n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i),n=o.width+this.margin.right+this.margin.left;this.width=n,this.height=n,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,s),t.database(e-this.width/2,i-this.height/2,this.width,this.height),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"diamond",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"circle",2,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),this.options.size}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i);this.height=2*o.height,this.width=o.width+o.height,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-.5*this.width,this.top=i-.5*this.height,this.initContextForDraw(t,s),t.ellipse_vis(this.left,this.top,this.width,this.height),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=.5*this.width,o=.5*this.height,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,o,n,s){if(this.resize(t,o,n),this.options.icon.size=this.options.icon.size||50,this.left=e-this.width/2,this.top=i-this.height/2,this._icon(t,e,i,o,n,s),void 0!==this.options.label){this.labelModule.draw(t,this.left+this.iconSize.width/2+this.margin.left,i+this.height/2+5,o)}this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){if(this.boundingBox.top=e-.5*this.options.icon.size,this.boundingBox.left=t-.5*this.options.icon.size,this.boundingBox.right=t+.5*this.options.icon.size,this.boundingBox.bottom=e+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5)}}},{key:"_icon",value:function(t,e,i,o,n,s){var r=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=(o?"bold ":"")+r+"px "+this.options.icon.face,t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t,s),t.fillText(this.options.icon.code,e,i),this.disableShadow(t,s)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o,n,r){(0,a.default)(this,e);var h=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return h.setImages(n,r),h}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var o=2*this.options.size;return this.width=o,void(this.height=o)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n,s){if(this.switchImages(o),this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,!0===this.options.shapeProperties.useBorderWithImage){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,h=(o?a:r)/this.body.view.scale;t.lineWidth=Math.min(this.width,h),t.beginPath(),t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.rect(this.left-.5*t.lineWidth,this.top-.5*t.lineWidth,this.width+t.lineWidth,this.height+t.lineWidth),t.fill(),this.performStroke(t,s),t.closePath()}this._drawImageAtPosition(t,s),this._drawImageLabel(t,e,i,o,n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.resize(),this._updateBoundingBox(t,e),void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)} -}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"square",2,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"hexagon",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"star",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.textSize=this.labelModule.getTextSize(t,e,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.enableShadow(t,s),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n),this.disableShadow(t,s),this.updateBoundingBox(e,i,t,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"triangle",3,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"triangleDown",3,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(11),l=i(12),u=i(74).default,c=function(){function t(e,i,o){var n=this;(0,s.default)(this,t),this.body=e,this.images=i,this.groups=o,this.body.functions.createEdge=this.create.bind(this),this.edgesListeners={add:function(t,e){n.add(e.items)},update:function(t,e){n.update(e.items)},remove:function(t,e){n.remove(e.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},h.deepExtend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("_forceDisableDynamicCurves",function(e){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];"dynamic"===e&&(e="continuous");var o=!1;for(var n in t.body.edges)if(t.body.edges.hasOwnProperty(n)){var s=t.body.edges[n],r=t.body.data.edges._data[n];if(void 0!==r){var a=r.smooth;void 0!==a&&!0===a.enabled&&"dynamic"===a.type&&(void 0===e?s.setOptions({smooth:!1}):s.setOptions({smooth:{type:e}}),o=!0)}}!0===i&&!0===o&&t.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",function(){t.reconnectEdges()}),this.body.emitter.on("refreshEdges",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){h.forEach(t.edgesListeners,function(e,i){t.body.data.edges&&t.body.data.edges.off(i,e)}),delete t.body.functions.createEdge,delete t.edgesListeners.add,delete t.edgesListeners.update,delete t.edgesListeners.remove,delete t.edgesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){u.parseOptions(this.options,t,!0,this.defaultOptions,!0);var e=!1;if(void 0!==t.smooth)for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&(e=this.body.edges[i].updateEdgeType()||e);if(void 0!==t.font)for(var o in this.body.edges)this.body.edges.hasOwnProperty(o)&&this.body.edges[o].updateLabelModule();void 0===t.hidden&&void 0===t.physics&&!0!==e||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.body.data.edges;if(t instanceof d||t instanceof l)this.body.data.edges=t;else if(Array.isArray(t))this.body.data.edges=new d,this.body.data.edges.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.edges=new d}if(o&&h.forEach(this.edgesListeners,function(t,e){o.off(e,t)}),this.body.edges={},this.body.data.edges){h.forEach(this.edgesListeners,function(t,i){e.body.data.edges.on(i,t)});var n=this.body.data.edges.getIds();this.add(n,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),!1===i&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,o=this.body.data.edges,n=0;n1&&void 0!==arguments[1])||arguments[1];if(0!==t.length){var i=this.body.edges;h.forEach(t,function(t){var e=i[t];void 0!==e&&e.remove()}),e&&this.body.emitter.emit("_dataChanged")}}},{key:"refresh",value:function(){var t=this;h.forEach(this.body.edges,function(e,i){var o=t.body.data.edges._data[i];void 0!==o&&e.setOptions(o)})}},{key:"create",value:function(t){return new u(t,this.body,this.options,this.defaultOptions)}},{key:"reconnectEdges",value:function(){var t,e=this.body.nodes,i=this.body.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var o=i[t];o.from=null,o.to=null,o.connect()}}},{key:"getConnectedNodes",value:function(t){var e=[];if(void 0!==this.body.edges[t]){var i=this.body.edges[t];void 0!==i.fromId&&e.push(i.fromId),void 0!==i.toId&&e.push(i.toId)}return e}},{key:"_updateState",value:function(){this._addMissingEdges(),this._removeInvalidEdges()}},{key:"_removeInvalidEdges",value:function(){var t=this,e=[];h.forEach(this.body.edges,function(i,o){var n=t.body.nodes[i.toId],s=t.body.nodes[i.fromId];void 0!==n&&!0===n.isCluster||void 0!==s&&!0===s.isCluster||void 0!==n&&void 0!==s||e.push(o)}),this.remove(e,!1)}},{key:"_addMissingEdges",value:function(){var t=this.body.edges,e=this.body.data.edges,i=[];e.forEach(function(e,o){void 0===t[o]&&i.push(o)}),this.add(i,!0)}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(3),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(4),p=o(c),f=i(5),m=o(f),v=i(216),g=o(v),y=function(t){function e(t,i,o){return(0,d.default)(this,e),(0,p.default)(this,(e.__proto__||(0,a.default)(e)).call(this,t,i,o))}return(0,m.default)(e,t),(0,u.default)(e,[{key:"_line",value:function(t,e,i){var o=i[0],n=i[1];this._bezierCurve(t,e,o,n)}},{key:"_getViaCoordinates",value:function(){var t=this.from.x-this.to.x,e=this.from.y-this.to.y,i=void 0,o=void 0,n=void 0,s=void 0,r=this.options.smooth.roundness;return(Math.abs(t)>Math.abs(e)||!0===this.options.smooth.forceDirection||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*t,n=this.to.x+r*t):(o=this.from.y-r*e,s=this.to.y+r*e,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,r){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates(),h=(0,s.default)(a,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(t,e,i,o,n,r,d,l)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=(0,s.default)(e,2),o=i[0],n=i[1],r=t,a=[];return a[0]=Math.pow(1-r,3),a[1]=3*r*Math.pow(1-r,2),a[2]=3*Math.pow(r,2)*(1-r),a[3]=Math.pow(r,3),{x:a[0]*this.fromPoint.x+a[1]*o.x+a[2]*n.x+a[3]*this.toPoint.x,y:a[0]*this.fromPoint.y+a[1]*o.y+a[2]*n.y+a[3]*this.toPoint.y}}}]),e}(g.default);e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(75),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r,a){var h=1e9,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=t,m=e,v=[0,0,0,0];for(l=1;l<10;l++)u=.1*l,v[0]=Math.pow(1-u,3),v[1]=3*u*Math.pow(1-u,2),v[2]=3*Math.pow(u,2)*(1-u),v[3]=Math.pow(u,3),c=v[0]*t+v[1]*r.x+v[2]*a.x+v[3]*i,p=v[0]*e+v[1]*r.y+v[2]*a.y+v[3]*o,l>0&&(d=this._getDistanceToLine(f,m,c,p,n,s),h=d1&&void 0!==arguments[1]?arguments[1]:this.via,i=t,o=void 0,n=void 0;if(this.from===this.to){var r=this._getCircleData(this.from),a=(0,s.default)(r,3),h=a[0],d=a[1],l=a[2],u=2*Math.PI*(1-i);o=h+l*Math.sin(u),n=d+l-l*(1-Math.cos(u))}else o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,n=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:n}}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e,this.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToBezierEdge(t,e,i,o,n,s,this.via)}}]),e}(g.default);e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(75),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_line",value:function(t,e,i){this._bezierCurve(t,e,i)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_getViaCoordinates",value:function(){var t=void 0,e=void 0,i=this.options.smooth.roundness,o=this.options.smooth.type,n=Math.abs(this.from.x-this.to.x),s=Math.abs(this.from.y-this.to.y);if("discrete"===o||"diagonalCross"===o){var r=void 0,a=void 0;r=a=n<=s?i*s:i*n,this.from.x>this.to.x&&(r=-r),this.from.y>=this.to.y&&(a=-a),t=this.from.x+r,e=this.from.y+a,"discrete"===o&&(n<=s?t=nthis.to.x&&(_=-_),this.from.y>=this.to.y&&(w=-w),t=this.from.x+_,e=this.from.y+w,n<=s?t=this.from.x<=this.to.x?this.to.xt?this.to.x:t:e=this.from.y>=this.to.y?this.to.y>e?this.to.y:e:this.to.y2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(t,e,i.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(t,e,i,o,n,s,r)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=t;return{x:Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,y:Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y}}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(118),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_line",value:function(t,e){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),t.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}},{key:"getViaNode",value:function(){}},{key:"getPoint",value:function(t){return{x:(1-t)*this.fromPoint.x+t*this.toPoint.x,y:(1-t)*this.fromPoint.y+t*this.toPoint.y}}},{key:"_findBorderPosition",value:function(t,e){var i=this.to,o=this.from;t.id===this.from.id&&(i=this.from,o=this.to);var n=Math.atan2(i.y-o.y,i.x-o.x),s=i.x-o.x,r=i.y-o.y,a=Math.sqrt(s*s+r*r),h=t.distanceToBorder(e,n),d=(a-h)/a,l={};return l.x=(1-d)*o.x+d*i.x,l.y=(1-d)*o.y+d*i.y,l}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToLine(t,e,i,o,n,s)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(120).default,u=i(221).default,c=i(222).default,p=i(223).default,f=i(224).default,m=i(121).default,v=i(225).default,g=i(226).default,y=i(2),b=i(119).default,_=function(){function t(e){(0,a.default)(this,t),this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0},y.extend(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return(0,d.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("initPhysics",function(){t.initPhysics()}),this.body.emitter.on("_layoutFailed",function(){t.layoutFailed=!0}),this.body.emitter.on("resetPhysics",function(){t.stopSimulation(),t.ready=!1}),this.body.emitter.on("disablePhysics",function(){t.physicsEnabled=!1,t.stopSimulation()}),this.body.emitter.on("restorePhysics",function(){t.setOptions(t.options),!0===t.ready&&t.startSimulation()}),this.body.emitter.on("startSimulation",function(){!0===t.ready&&t.startSimulation()}),this.body.emitter.on("stopSimulation",function(){t.stopSimulation()}),this.body.emitter.on("destroy",function(){t.stopSimulation(!1),t.body.emitter.off()}),this.body.emitter.on("_dataChanged",function(){t.updatePhysicsData()})}},{key:"setOptions",value:function(t){void 0!==t&&(!1===t?(this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation()):!0===t?(this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation()):(this.physicsEnabled=!0,y.selectiveNotDeepExtend(["stabilization"],this.options,t),y.mergeOptions(this.options,t,"stabilization"),void 0===t.enabled&&(this.options.enabled=!0),!1===this.options.enabled&&(this.physicsEnabled=!1,this.stopSimulation()),this.timestep=this.options.timestep)),this.init()}},{key:"init",value:function(){var t;"forceAtlas2Based"===this.options.solver?(t=this.options.forceAtlas2Based,this.nodesSolver=new v(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new g(this.body,this.physicsBody,t)):"repulsion"===this.options.solver?(t=this.options.repulsion,this.nodesSolver=new u(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)):"hierarchicalRepulsion"===this.options.solver?(t=this.options.hierarchicalRepulsion,this.nodesSolver=new c(this.body,this.physicsBody,t),this.edgesSolver=new f(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)):(t=this.options.barnesHut,this.nodesSolver=new l(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)),this.modelOptions=t}},{key:"initPhysics",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?!0===this.options.stabilization.enabled?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,!0===t&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,!0===t&&this.body.emitter.emit("_stopRendering"))}},{key:"simulationStep",value:function(){var t=Date.now();this.physicsTick(),(Date.now()-t<.4*this.simulationInterval||!0===this.runDoubleSpeed)&&!1===this.stabilized&&(this.physicsTick(),this.runDoubleSpeed=!0),!0===this.stabilized&&this.stopSimulation()}},{key:"_emitStabilized",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||!0===this.startedStabilization)&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:e}),t.startedStabilization=!1,t.stabilizationIterations=0},0)}},{key:"physicsStep",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}},{key:"adjustTimeStep",value:function(){!0===this._evaluateStepQuality()?this.timestep=1.2*this.timestep:this.timestep/1.2.3))return!1;return!0}},{key:"moveNodes",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=0,i=0,o=0;oo&&(t=t>0?o:-o),t}},{key:"_performStep",value:function(t){var e=this.body.nodes[t],i=this.physicsBody.forces[t],o=this.physicsBody.velocities[t];return this.previousStates[t]={x:e.x,y:e.y,vx:o.x,vy:o.y},!1===e.options.fixed.x?(o.x=this.calculateComponentVelocity(o.x,i.x,e.options.mass),e.x+=o.x*this.timestep):(i.x=0,o.x=0),!1===e.options.fixed.y?(o.y=this.calculateComponentVelocity(o.y,i.y,e.options.mass),e.y+=o.y*this.timestep):(i.y=0,o.y=0),Math.sqrt(Math.pow(o.x,2)+Math.pow(o.y,2))}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)if(t.hasOwnProperty(e)&&t[e].x&&t[e].y){var i=t[e].options.fixed;this.freezeCache[e]={x:i.x,y:i.y},i.x=!0,i.y=!0}}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.stabilization.iterations;if("number"!=typeof e&&(e=this.options.stabilization.iterations,console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",e)),0===this.physicsBody.physicsNodeIndices.length)return void(this.ready=!0);this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,!0===this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationIterations=0,setTimeout(function(){return t._stabilizationBatch()},0)}},{key:"_startStabilizing",value:function(){return!0!==this.startedStabilization&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}},{key:"_stabilizationBatch",value:function(){var t=this,e=function(){return!1===t.stabilized&&t.stabilizationIterations0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(76).default,f=i(228).default,m=i(74).default,v=i(47).default,g=function(){function t(e){var i=this;(0,d.default)(this,t),this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},c.extend(this.options,this.defaultOptions),this.body.emitter.on("_resetData",function(){i.clusteredNodes={},i.clusteredEdges={}})}return(0,u.default)(t,[{key:"clusterByHubsize",value:function(t,e){void 0===t?t=this._getHubSize():"object"===(void 0===t?"undefined":(0,a.default)(t))&&(e=this._checkOptions(t),t=this._getHubSize());for(var i=[],o=0;o=t&&i.push(n.id)}for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{},i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===e.joinCondition)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);var o={},n={};c.forEach(this.body.nodes,function(i,s){var r=p.cloneOptions(i);!0===e.joinCondition(r)&&(o[s]=i,c.forEach(i.edges,function(e){void 0===t.clusteredEdges[e.id]&&(n[e.id]=e)}))}),this._cluster(o,n,e,i)}},{key:"clusterByEdgeCount",value:function(t,e){var i=this,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e=this._checkOptions(e);for(var n=[],r={},a=void 0,h=void 0,d=void 0,l=0;l0&&(0,s.default)(m).length>0&&!0===b)if(c=function(){for(var t=0;t1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,t,e)}},{key:"clusterBridges",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,t,e)}},{key:"clusterByConnection",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No nodeId supplied to clusterByConnection!");if(void 0===this.body.nodes[t])throw new Error("The nodeId given to clusterByConnection does not exist!");var o=this.body.nodes[t];e=this._checkOptions(e,o),void 0===e.clusterNodeProperties.x&&(e.clusterNodeProperties.x=o.x),void 0===e.clusterNodeProperties.y&&(e.clusterNodeProperties.y=o.y),void 0===e.clusterNodeProperties.fixed&&(e.clusterNodeProperties.fixed={},e.clusterNodeProperties.fixed.x=o.options.fixed.x,e.clusterNodeProperties.fixed.y=o.options.fixed.y);var n={},r={},a=o.id,h=p.cloneOptions(o);n[a]=o;for(var d=0;d-1&&(r[g.id]=g)}this._cluster(n,r,e,i)}},{key:"_createClusterEdges",value:function(t,e,i,o){for(var n=void 0,r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,u=(0,s.default)(t),c=[],p=0;p0&&void 0!==arguments[0]?arguments[0]:{};return void 0===t.clusterEdgeProperties&&(t.clusterEdgeProperties={}),void 0===t.clusterNodeProperties&&(t.clusterNodeProperties={}),t}},{key:"_cluster",value:function(t,e,i){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],n=[];for(var r in t)t.hasOwnProperty(r)&&void 0!==this.clusteredNodes[r]&&n.push(r);for(var a=0;ao?a.x:o,n=a.yr?a.y:r;return{x:.5*(i+o),y:.5*(n+r)}}},{key:"openCluster",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");var o=this.body.nodes[t];if(void 0===o)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(!0!==o.isCluster||void 0===o.containedNodes||void 0===o.containedEdges)throw new Error("The node:"+t+" is not a valid cluster.");var n=this.findNode(t),s=n.indexOf(t)-1;if(s>=0){var r=n[s];return this.body.nodes[r]._openChildCluster(t),delete this.body.nodes[t],void(!0===i&&this.body.emitter.emit("_dataChanged"))}var a=o.containedNodes,h=o.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&"function"==typeof e.releaseFunction){var d={},l={x:o.x,y:o.y};for(var u in a)if(a.hasOwnProperty(u)){var p=this.body.nodes[u];d[u]={x:p.x,y:p.y}}var f=e.releaseFunction(l,d);for(var m in a)if(a.hasOwnProperty(m)){var v=this.body.nodes[m];void 0!==f[m]&&(v.x=void 0===f[m].x?o.x:f[m].x,v.y=void 0===f[m].y?o.y:f[m].y)}}else c.forEach(a,function(t){!1===t.options.fixed.x&&(t.x=o.x),!1===t.options.fixed.y&&(t.y=o.y)});for(var g in a)if(a.hasOwnProperty(g)){var y=this.body.nodes[g];y.vx=o.vx,y.vy=o.vy,y.setOptions({physics:!0}),delete this.clusteredNodes[g]}for(var b=[],_=0;_0&&n<100;){var s=e.pop();if(void 0!==s){var r=this.body.edges[s];if(void 0!==r){n++;var a=r.clusteringEdgeReplacingIds;if(void 0===a)o.push(s);else for(var h=0;ho&&(o=s.edges.length),t+=s.edges.length,e+=Math.pow(s.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a);return h>o&&(h=o),h}},{key:"_createClusteredEdge",value:function(t,e,i,o,n){var s=p.cloneOptions(i,"edge");c.deepExtend(s,o),s.from=t,s.to=e,s.id="clusterEdge:"+c.randomUUID(),void 0!==n&&c.deepExtend(s,n);var r=this.body.functions.createEdge(s);return r.clusteringEdgeReplacingIds=[i.id],r.connect(),this.body.edges[r.id]=r,r}},{key:"_clusterEdges",value:function(t,e,i,o){if(e instanceof m){var n=e,s={};s[n.id]=n,e=s}if(t instanceof v){var r=t,a={};a[r.id]=r,t=a}if(void 0===i||null===i)throw new Error("_clusterEdges: parameter clusterNode required");void 0===o&&(o=i.clusterEdgeProperties),this._createClusterEdges(t,e,i,o);for(var h in e)if(e.hasOwnProperty(h)&&void 0!==this.body.edges[h]){var d=this.body.edges[h];this._backupEdgeOptions(d),d.setOptions({physics:!1})}for(var l in t)t.hasOwnProperty(l)&&(this.clusteredNodes[l]={clusterId:i.id,node:this.body.nodes[l]},this.body.nodes[l].setOptions({physics:!1}))}},{key:"_getClusterNodeForNode",value:function(t){if(void 0!==t){var e=this.clusteredNodes[t];if(void 0!==e){var i=e.clusterId;if(void 0!==i)return this.body.nodes[i]}}}},{key:"_filter",value:function(t,e){var i=[];return c.forEach(t,function(t){e(t)&&i.push(t)}),i}},{key:"_updateState",value:function(){var t=this,e=void 0,i=[],o=[],n=function(e){c.forEach(t.body.nodes,function(t){!0===t.isCluster&&e(t)})};for(e in this.clusteredNodes)if(this.clusteredNodes.hasOwnProperty(e)){var r=this.body.nodes[e];void 0===r&&i.push(e)}n(function(t){for(var e=0;e0}e.endPointsValid()&&n||o.push(i)}),n(function(e){c.forEach(o,function(i){delete e.containedEdges[i],c.forEach(e.edges,function(n,s){if(n.id===i)return void(e.edges[s]=null);n.clusteringEdgeReplacingIds=t._filter(n.clusteringEdgeReplacingIds,function(t){return-1===o.indexOf(t)})}),e.edges=t._filter(e.edges,function(t){return null!==t})})}),c.forEach(o,function(e){delete t.clusteredEdges[e]}),c.forEach(o,function(e){delete t.body.edges[e]});var h=(0,s.default)(this.body.edges);c.forEach(h,function(e){var i=t.body.edges[e],o=t._isClusteredNode(i.fromId)||t._isClusteredNode(i.toId);if(o!==t._isClusteredEdge(i.id)){if(!o)throw new Error("remove edge from clustering not implemented!");var n=t._getClusterNodeForNode(i.fromId);void 0!==n&&t._clusterEdges(t.body.nodes[i.fromId],i,n);var s=t._getClusterNodeForNode(i.toId);void 0!==s&&t._clusterEdges(t.body.nodes[i.toId],i,s)}});for(var d=!1,l=!0;l;)!function(){var e=[];n(function(t){var i=(0,s.default)(t.containedNodes).length,o=!0===t.options.allowSingleNodeCluster;(o&&i<1||!o&&i<2)&&e.push(t.id)});for(var i=0;i0,d=d||l}();d&&this._updateState()}},{key:"_isClusteredNode",value:function(t){return void 0!==this.clusteredNodes[t]}},{key:"_isClusteredEdge",value:function(t){return void 0!==this.clusteredEdges[t]}}]),t}();e.default=g},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(2),m=i(47).default,v=function(t){function e(t,i,o,n,r,h){(0,a.default)(this,e);var d=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o,n,r,h));return d.isCluster=!0,d.containedNodes={},d.containedEdges={},d}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_openChildCluster",value:function(t){var e=this,i=this.body.nodes[t];if(void 0===this.containedNodes[t])throw new Error("node with id: "+t+" not in current cluster");if(!i.isCluster)throw new Error("node with id: "+t+" is not a cluster");delete this.containedNodes[t],f.forEach(i.edges,function(t){delete e.containedEdges[t.id]}),f.forEach(i.containedNodes,function(t,i){e.containedNodes[i]=t}),i.containedNodes={},f.forEach(i.containedEdges,function(t,i){e.containedEdges[i]=t}),i.containedEdges={},f.forEach(i.edges,function(t){f.forEach(e.edges,function(i){var o=i.clusteringEdgeReplacingIds.indexOf(t.id);-1!==o&&(f.forEach(t.clusteringEdgeReplacingIds,function(t){i.clusteringEdgeReplacingIds.push(t),e.body.edges[t].edgeReplacedById=i.id}),i.clusteringEdgeReplacingIds.splice(o,1))})}),i.edges=[]}}]),e}(m);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){var t;void 0!==window&&(t=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),window.requestAnimationFrame=void 0===t?function(t){t()}:t}Object.defineProperty(e,"__esModule",{value:!0});var s=i(0),r=o(s),a=i(1),h=o(a),d=i(2),l=function(){function t(e,i){(0,r.default)(this,t),n(),this.body=e,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},d.extend(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return(0,h.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("dragStart",function(){t.dragging=!0}),this.body.emitter.on("dragEnd",function(){t.dragging=!1}),this.body.emitter.on("_resizeNodes",function(){t._resizeNodes()}),this.body.emitter.on("_redraw",function(){!1===t.renderingActive&&t._redraw()}),this.body.emitter.on("_blockRedraw",function(){t.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",function(){t.allowRedraw=!0,t.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){t.renderRequests+=1,t.renderingActive=!0,t._startRendering()}),this.body.emitter.on("_stopRendering",function(){t.renderRequests-=1,t.renderingActive=t.renderRequests>0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.allowRedraw=!1,t.renderingActive=!1,!0===t.requiresTimeout?clearTimeout(t.renderTimer):window.cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];d.selectiveDeepExtend(e,this.options,t)}}},{key:"_requestNextFrame",value:function(t,e){if("undefined"!=typeof window){var i=void 0,o=window;return!0===this.requiresTimeout?i=o.setTimeout(t,e):o.requestAnimationFrame&&(i=o.requestAnimationFrame(t)),i}}},{key:"_startRendering",value:function(){!0===this.renderingActive&&void 0===this.renderTimer&&(this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval))}},{key:"_renderStep",value:function(){!0===this.renderingActive&&(this.renderTimer=void 0,!0===this.requiresTimeout&&this._startRendering(),this._redraw(),!1===this.requiresTimeout&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;!0!==this.redrawRequested&&!1===this.renderingActive&&!0===this.allowRedraw&&(this.redrawRequested=!0,this._requestNextFrame(function(){t._redraw(!1)},0))}},{key:"_redraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!0===this.allowRedraw){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1,0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.canvas.setTransform();var e=this.canvas.getContext(),i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(e.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),!1===t&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&this._drawEdges(e),(!1===this.dragging||!0===this.dragging&&!1===this.options.hideNodesOnDrag)&&this._drawNodes(e,t),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),!0===t&&e.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){this.canvas.setTransform();var t=this.canvas.getContext();t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t,i.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=this.canvas.DOMtoCanvas({x:-20,y:-20}),a=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+20,y:this.canvas.frame.canvas.clientHeight+20}),h={top:r.y,left:r.x,bottom:a.y,right:a.x},d=0;d0&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;!0===this.initialized&&(this.cameraState.previousWidth=this.frame.canvas.width/t,this.cameraState.previousHeight=this.frame.canvas.height/t,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/t,y:.5*this.frame.canvas.height/t}))}},{key:"_setCameraState",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0){var t=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,e=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=t&&1!=e?i=.5*this.cameraState.scale*(t+e):1!=t?i=this.cameraState.scale*t:1!=e&&(i=this.cameraState.scale*e),this.body.view.scale=i;var o=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),n={x:o.x-this.cameraState.position.x,y:o.y-this.cameraState.position.y};this.body.view.translation.x+=n.x*this.body.view.scale,this.body.view.translation.y+=n.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==t.indexOf("%")||-1!==t.indexOf("px"))return t;if(-1===t.indexOf("%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new h(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:h.DIRECTION_ALL}),d.onTouch(this.hammer,function(e){t.body.eventListeners.onTouch(e)}),this.hammer.on("tap",function(e){t.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",function(e){t.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",function(e){t.body.eventListeners.onHold(e)}),this.hammer.on("panstart",function(e){t.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",function(e){t.body.eventListeners.onDrag(e)}),this.hammer.on("panend",function(e){t.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",function(e){t.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("mousewheel",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",function(e){t.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",function(e){t.body.eventListeners.onContext(e)}),this.hammerFrame=new h(this.frame),d.onRelease(this.hammerFrame,function(e){t.body.eventListeners.onRelease(e)})}},{key:"setSize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.width,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.pixelRatio;if(this._setPixelRatio(),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e)this._getCameraState(s),this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{var r=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),a=Math.round(this.frame.canvas.clientHeight*this.pixelRatio) -;this.frame.canvas.width===r&&this.frame.canvas.height===a||this._getCameraState(s),this.frame.canvas.width!==r&&(this.frame.canvas.width=r,i=!0),this.frame.canvas.height!==a&&(this.frame.canvas.height=a,i=!0)}return!0===i&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"getContext",value:function(){return this.frame.canvas.getContext("2d")}},{key:"_determinePixelRatio",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");var e=1;return"undefined"!=typeof window&&(e=window.devicePixelRatio||1),e/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}},{key:"_setPixelRatio",value:function(){this.pixelRatio=this._determinePixelRatio()}},{key:"setTransform",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(76).default,l=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",this.fit.bind(this)),this.body.emitter.on("animationFinished",function(){o.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return(0,a.default)(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t}},{key:"fit",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{nodes:[]},e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=void 0;if(void 0!==t.nodes&&0!==t.nodes.length||(t.nodes=this.body.nodeIndices),!0===e){var n=0;for(var s in this.body.nodes)if(this.body.nodes.hasOwnProperty(s)){var r=this.body.nodes[s];!0===r.predefinedPosition&&(n+=1)}if(n>.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=d.getRange(this.body.nodes,t.nodes);o=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;o*=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600)}else{this.body.emitter.emit("_resizeNodes"),i=d.getRange(this.body.nodes,t.nodes);var a=1.1*Math.abs(i.maxX-i.minX),h=1.1*Math.abs(i.maxY-i.minY),l=this.canvas.frame.canvas.clientWidth/a,u=this.canvas.frame.canvas.clientHeight/h;o=l<=u?l:u}o>1?o=1:0===o&&(o=1);var c=d.findCenter(i),p={position:c,scale:o,animation:t.animation};this.moveTo(p)}},{key:"focus",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){if(void 0===t)return void(t={});void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.getViewPosition()),void 0===t.animation&&(t.animation={duration:0}),!1===t.animation&&(t.animation={duration:0}),!0===t.animation&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),this.animateView(t)}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),!0===t.locked&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=!0===t?1:this.easingTime;var e=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(233).default,l=i(104).default,u=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.navigationHandler=new d(e,i),this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.body.eventListeners.onContext=this.onContext.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=this.getPointer.bind(this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0},h.extend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("destroy",function(){clearTimeout(t.popupTimer),delete t.body.functions.getPointer})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"];h.selectiveNotDeepExtend(e,this.options,t),h.mergeOptions(this.options,t,"keyboard"),t.tooltip&&(h.extend(this.options.tooltip,t.tooltip),t.tooltip.color&&(this.options.tooltip.color=h.parseColor(t.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:"getPointer",value:function(t){return{x:t.x-h.getAbsoluteLeft(this.canvas.frame.canvas),y:t.y-h.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:"onTouch",value:function(t){(new Date).valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.selectionHandler.getSelection(),n=!1;n=!0===i?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var s=this.selectionHandler.getSelection(),r=this._determineDifference(o,s),a=this._determineDifference(s,o);r.edges.length>0&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,o),n=!0),r.nodes.length>0&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,o),n=!0),a.nodes.length>0&&(this.selectionHandler._generateClickEvent("selectNode",e,t),n=!0),a.edges.length>0&&(this.selectionHandler._generateClickEvent("selectEdge",e,t),n=!0),!0===n&&this.selectionHandler._generateClickEvent("select",e,t)}},{key:"_determineDifference",value:function(t,e){var i=function(t,e){for(var i=[],o=0;o10&&(t=10);var o=void 0;void 0!==this.drag&&!0===this.drag.dragging&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),i0&&(this.popupObj=h[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&!1===s){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],g=0;g0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new l(this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&!0===(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e))){var o=this.selectionHandler.getNodeAt(t);i=void 0!==o&&o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));!1===i&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(10),d=i(37),l=i(35),u=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",function(){o.activated=!0,o.configureKeyboardBindings()}),this.body.emitter.on("deactivate",function(){o.activated=!1,o.configureKeyboardBindings()}),this.body.emitter.on("destroy",function(){void 0!==o.keycharm&&o.keycharm.destroy()}),this.options={}}return(0,a.default)(t,[{key:"setOptions",value:function(t){void 0!==t&&(this.options=t,this.create())}},{key:"create",value:function(){!0===this.options.navigationButtons?!1===this.iconsCreated&&this.loadNavigationElements():!0===this.iconsCreated&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:"cleanNavigation",value:function(){if(0!=this.navigationHammers.length){for(var t=0;t700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){var t=this.body.view.scale,e=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}},{key:"_zoomOut",value:function(){var t=this.body.view.scale,e=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}},{key:"configureKeyboardBindings",value:function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),!0===this.options.keyboard.enabled&&(!0===this.options.keyboard.bindToWindow?this.keycharm=l({container:window,preventDefault:!0}):this.keycharm=l({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),!0===this.activated&&(this.keycharm.bind("up",function(){t.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){t.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){t.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){t.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){t.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){t.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){t.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){t.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){t.unbindFromRedraw("_zoomOut")},"keyup")))}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(47).default,d=i(74).default,l=i(2),u=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.selectionObj={nodes:[],edges:[]},this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},l.extend(this.options,this.defaultOptions),this.body.emitter.on("_dataChanged",function(){o.updateSelection()})}return(0,a.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){var e=["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"];l.selectiveDeepExtend(e,this.options,t)}}},{key:"selectOnPoint",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);this.unselectAll(),void 0!==i&&(e=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return e}},{key:"selectAdditionalOnPoint",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);void 0!==i&&(e=!0,!0===i.isSelected()?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return e}},{key:"_initBaseEvent",value:function(t,e){var i={};return i.pointer={DOM:{x:e.x,y:e.y},canvas:this.canvas.DOMtoCanvas(e)},i.event=t,i}},{key:"_generateClickEvent",value:function(t,e,i,o){var n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s=this._initBaseEvent(e,i);if(!0===n)s.nodes=[],s.edges=[];else{var r=this.getSelection();s.nodes=r.nodes,s.edges=r.edges}void 0!==o&&(s.previousSelection=o),"click"==t&&(s.items=this.getClickedItems(i)),this.body.emitter.emit(t,s)}},{key:"selectObject",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;return void 0!==t&&(t instanceof h&&!0===e&&this._selectConnectedEdges(t),t.select(),this._addToSelection(t),!0)}},{key:"deselectObject",value:function(t){!0===t.isSelected()&&(t.selected=!1,this._removeFromSelection(t))}},{key:"_getAllNodesOverlappingWith",value:function(t){for(var e=[],i=this.body.nodes,o=0;o1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(t),o=this._getAllNodesOverlappingWith(i);return o.length>0?!0===e?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,o=0;o1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(t),o=10,n=null,s=this.body.edges,r=0;r1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,o=void 0 -;if(!t||!t.nodes&&!t.edges)throw"Selection must be an object with nodes and/or edges properties";if((e.unselectAll||void 0===e.unselectAll)&&this.unselectAll(),t.nodes)for(i=0;i1&&void 0!==arguments[1])||arguments[1];if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({nodes:t},{highlightEdges:e})}},{key:"selectEdges",value:function(t){if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({edges:t})}},{key:"updateSelection",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.body.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.body.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},{key:"getClickedItems",value:function(t){for(var e=this.canvas.DOMtoCanvas(t),i=[],o=this.body.nodeIndices,n=this.body.nodes,s=o.length-1;s>=0;s--){var r=n[o[s]],a=r.getItemsOnPoint(e);i.push.apply(i,a)}for(var h=this.body.edgeIndices,d=this.body.edges,l=h.length-1;l>=0;l--){var u=d[h[l]],c=u.getItemsOnPoint(e);i.push.apply(i,c)}return i}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(6),a=o(r),h=i(8),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(76).default,v=i(236),g=v.HorizontalStrategy,y=v.VerticalStrategy,b=function(){function t(){(0,u.default)(this,t),this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}return(0,p.default)(t,[{key:"addRelation",value:function(t,e){void 0===this.childrenReference[t]&&(this.childrenReference[t]=[]),this.childrenReference[t].push(e),void 0===this.parentReference[e]&&(this.parentReference[e]=[]),this.parentReference[e].push(t)}},{key:"checkIfTree",value:function(){for(var t in this.parentReference)if(this.parentReference[t].length>1)return void(this.isTree=!1);this.isTree=!0}},{key:"numTrees",value:function(){return this.treeIndex+1}},{key:"setTreeIndex",value:function(t,e){void 0!==e&&void 0===this.trees[t.id]&&(this.trees[t.id]=e,this.treeIndex=Math.max(e,this.treeIndex))}},{key:"ensureLevel",value:function(t){void 0===this.levels[t]&&(this.levels[t]=0)}},{key:"getMaxLevel",value:function(t){var e=this,i={};return function t(o){if(void 0!==i[o])return i[o];var n=e.levels[o];if(e.childrenReference[o]){var s=e.childrenReference[o];if(s.length>0)for(var r=0;r0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(e);if(!0===o)return this.body.emitter.emit("refresh"),f.deepExtend(e,this.optionsBackup)}return e}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(t){if(!0===this.options.hierarchical.enabled){var e=this.optionsBackup.physics;void 0===t.physics||!0===t.physics?(t.physics={enabled:void 0===e.enabled||e.enabled,solver:"hierarchicalRepulsion"},e.enabled=void 0===e.enabled||e.enabled,e.solver=e.solver||"barnesHut"):"object"===(0,a.default)(t.physics)?(e.enabled=void 0===t.physics.enabled||t.physics.enabled,e.solver=t.physics.solver||"barnesHut",t.physics.solver="hierarchicalRepulsion"):!1!==t.physics&&(e.solver="barnesHut",t.physics={solver:"hierarchicalRepulsion"});var i=this.direction.curveType();if(void 0===t.edges)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1};else if(void 0===t.edges.smooth)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1;else if("boolean"==typeof t.edges.smooth)this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:i};else{var o=t.edges.smooth;void 0!==o.type&&"dynamic"!==o.type&&(i=o.type),this.optionsBackup.edges={smooth:void 0===o.enabled||o.enabled,type:void 0===o.type?"dynamic":o.type,roundness:void 0===o.roundness?.5:o.roundness,forceDirection:void 0!==o.forceDirection&&o.forceDirection},t.edges.smooth={enabled:void 0===o.enabled||o.enabled,type:i,roundness:void 0===o.roundness?.5:o.roundness,forceDirection:void 0!==o.forceDirection&&o.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(!0!==this.options.hierarchical.enabled){this.randomSeed=this.initialRandomSeed;for(var e=t.length+50,i=0;i150){for(var s=t.length;t.length>150&&o<=10;){o+=1;var r=t.length;o%3==0?this.body.modules.clustering.clusterBridges(n):this.body.modules.clustering.clusterOutliers(n);if(r==t.length&&o%3!=0)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*s)})}o>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(t,this.body.edgeIndices,!0),this._shiftToCenter();for(var a=0;a0){var t=void 0,e=void 0,i=!1,o=!1;this.lastNodeOnLevel={},this.hierarchical=new b;for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0!==t.options.level?(i=!0,this.hierarchical.levels[e]=t.options.level):o=!0);if(!0===o&&!0===i)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");if(!0===o){var n=this.options.hierarchical.sortMethod;"hubsize"===n?this._determineLevelsByHubsize():"directed"===n?this._determineLevelsDirected():"custom"===n&&this._determineLevelsCustomCallback()}for(var s in this.body.nodes)this.body.nodes.hasOwnProperty(s)&&this.hierarchical.ensureLevel(s);var r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var t=this,e=!1,i={},o=function(e,i){var o=t.hierarchical.trees;for(var n in o)o.hasOwnProperty(n)&&o[n]===e&&t.direction.shift(n,i)},n=function(){for(var e=[],i=0;i0)for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:1e9,o=1e9,n=1e9,r=1e9,a=-1e9;for(var h in e)if(e.hasOwnProperty(h)){var d=t.body.nodes[h],l=t.hierarchical.levels[d.id],u=t.direction.getPosition(d),c=t._getSpaceAroundNode(d,e),p=(0,s.default)(c,2),f=p[0],m=p[1];o=Math.min(f,o),n=Math.min(m,n),l<=i&&(r=Math.min(u,r),a=Math.max(u,a))}return[r,a,o,n]},h=function(e,i){var o=t.hierarchical.getMaxLevel(e.id),n=t.hierarchical.getMaxLevel(i.id);return Math.min(o,n)},d=function(e,i,o){for(var n=t.hierarchical,s=0;s1)for(var h=0;h2&&void 0!==arguments[2]&&arguments[2],s=t.direction.getPosition(i),d=t.direction.getPosition(o),l=Math.abs(d-s),u=t.options.hierarchical.nodeSpacing;if(l>u){var c={},p={};r(i,c),r(o,p);var f=h(i,o),m=a(c,f),v=a(p,f),g=m[1],y=v[0],b=v[2];if(Math.abs(g-y)>u){var _=g-y+u;_<-b+u&&(_=-b+u),_<0&&(t._shiftBlock(o.id,_),e=!0,!0===n&&t._centerParent(o))}}},u=function(o,n){for(var h=n.id,d=n.edges,l=t.hierarchical.levels[n.id],u=t.options.hierarchical.levelSeparation*t.options.hierarchical.levelSeparation,c={},p=[],f=0;f0?p=Math.min(c,u-t.options.hierarchical.nodeSpacing):c<0&&(p=-Math.min(-c,l-t.options.hierarchical.nodeSpacing)),0!=p&&(t._shiftBlock(n.id,p),e=!0)}(_),_=b(o,d),function(i){var o=t.direction.getPosition(n),r=t._getSpaceAroundNode(n),a=(0,s.default)(r,2),h=a[0],d=a[1],l=i-o,u=o;l>0?u=Math.min(o+(d-t.options.hierarchical.nodeSpacing),i):l<0&&(u=Math.max(o-(h-t.options.hierarchical.nodeSpacing),i)),u!==o&&(t.direction.setPosition(n,u),e=!0)}(_)};!0===this.options.hierarchical.blockShifting&&(function(i){var o=t.hierarchical.getLevels();o=o.reverse();for(var n=0;n0&&Math.abs(p)0&&(a=this.direction.getPosition(i[n-1])+r),this.direction.setPosition(s,a,e),this._validatePositionAndContinue(s,e,a),o++}}}}},{key:"_placeBranchNodes",value:function(t,e){var i=this.hierarchical.childrenReference[t];if(void 0!==i){for(var o=[],n=0;ne&&void 0===this.positionedNodes[r.id]))return;var h=this.options.hierarchical.nodeSpacing,d=void 0;d=0===s?this.direction.getPosition(this.body.nodes[t]):this.direction.getPosition(o[s-1])+h,this.direction.setPosition(r,d,a),this._validatePositionAndContinue(r,a,d)}var l=this._getCenterPosition(o);this.direction.setPosition(this.body.nodes[t],l,e)}}},{key:"_validatePositionAndContinue",value:function(t,e,i){if(this.hierarchical.isTree){if(void 0!==this.lastNodeOnLevel[e]){var o=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[e]]);if(i-ot.hierarchical.levels[e.id]&&t.hierarchical.addRelation(e.id,i.id)};this._crawlNetwork(e),this.hierarchical.checkIfTree()}},{key:"_crawlNetwork",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},i=arguments[1],o={},n=function i(n,s){if(void 0===o[n.id]){t.hierarchical.setTreeIndex(n,s),o[n.id]=!0;for(var r=void 0,a=t._getActiveEdges(n),h=0;h2&&void 0!==arguments[2]?arguments[2]:void 0;this.fake_use(t,e,i),this.abstract()}},{key:"getTreeSize",value:function(t){return this.fake_use(t),this.abstract()}},{key:"sort",value:function(t){this.fake_use(t),this.abstract()}},{key:"fix",value:function(t,e){this.fake_use(t,e),this.abstract()}},{key:"shift",value:function(t,e){this.fake_use(t,e),this.abstract()}}]),t}(),m=function(t){function e(t){(0,u.default)(this,e);var i=(0,a.default)(this,(e.__proto__||(0,s.default)(e)).call(this));return i.layout=t,i}return(0,d.default)(e,t),(0,p.default)(e,[{key:"curveType",value:function(){return"horizontal"}},{key:"getPosition",value:function(t){return t.x}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.x=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_x,max:e.max_x}}},{key:"sort",value:function(t){t.sort(function(t,e){return void 0===t.x||void 0===e.x?0:t.x-e.x})}},{key:"fix",value:function(t,e){t.y=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.y=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].x+=e}}]),e}(f),v=function(t){function e(t){(0,u.default)(this,e);var i=(0,a.default)(this,(e.__proto__||(0,s.default)(e)).call(this));return i.layout=t,i}return(0,d.default)(e,t),(0,p.default)(e,[{key:"curveType",value:function(){return"vertical"}},{key:"getPosition",value:function(t){return t.y}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.y=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_y,max:e.max_y}}},{key:"sort",value:function(t){t.sort(function(t,e){return void 0===t.y||void 0===e.y?0:t.y-e.y})}},{key:"fix",value:function(t,e){t.x=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.x=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].y+=e}}]),e}(f);e.HorizontalStrategy=v,e.VerticalStrategy=m},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(19),a=o(r),h=i(6),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(10),v=i(37),g=function(){function t(e,i,o){var n=this;(0,u.default)(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this.manipulationHammers=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},f.extend(this.options,this.defaultOptions),this.body.emitter.on("destroy",function(){n._clean()}),this.body.emitter.on("_dataChanged",this._restore.bind(this)),this.body.emitter.on("_resetData",this._restore.bind(this))}return(0,p.default)(t,[{key:"_restore",value:function(){!1!==this.inMode&&(!0===this.options.initiallyActive?this.enableEditMode():this.disableEditMode())}},{key:"setOptions",value:function(t,e,i){void 0!==e&&(void 0!==e.locale?this.options.locale=e.locale:this.options.locale=i.locale,void 0!==e.locales?this.options.locales=e.locales:this.options.locales=i.locales),void 0!==t&&("boolean"==typeof t?this.options.enabled=t:(this.options.enabled=!0,f.deepExtend(this.options,t)),!0===this.options.initiallyActive&&(this.editMode=!0),this._setup())}},{key:"toggleEditMode",value:function(){!0===this.editMode?this.disableEditMode():this.enableEditMode()}},{key:"enableEditMode",value:function(){this.editMode=!0,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}},{key:"disableEditMode",value:function(){this.editMode=!1,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}},{key:"showManipulatorToolbar",value:function(){if(this._clean(),this.manipulationDOM={},!0===this.guiEnabled){this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";var t=this.selectionHandler._getSelectedNodeCount(),e=this.selectionHandler._getSelectedEdgeCount(),i=t+e,o=this.options.locales[this.options.locale],n=!1;!1!==this.options.addNode&&(this._createAddNodeButton(o),n=!0),!1!==this.options.addEdge&&(!0===n?this._createSeperator(1):n=!0,this._createAddEdgeButton(o)),1===t&&"function"==typeof this.options.editNode?(!0===n?this._createSeperator(2):n=!0,this._createEditNodeButton(o)):1===e&&0===t&&!1!==this.options.editEdge&&(!0===n?this._createSeperator(3):n=!0,this._createEditEdgeButton(o)),0!==i&&(t>0&&!1!==this.options.deleteNode?(!0===n&&this._createSeperator(4),this._createDeleteButton(o)):0===t&&!1!==this.options.deleteEdge&&(!0===n&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addNode",!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean();var e=this.selectionHandler._getSelectedNode();if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(!0!==e.isCluster){var i=f.deepExtend({},e.options,!1);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(e){null!==e&&void 0!==e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addEdge",!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",this._dragStartEdge.bind(this)),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="editEdge","object"===(0,d.default)(this.options.editEdge)&&"function"==typeof this.options.editEdge.editWithoutDrag&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId)){var t=this.body.edges[this.edgeBeingEditedId];return void this._performEditEdge(t.from,t.to)}if(!0===this.guiEnabled){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId){var i=this.body.edges[this.edgeBeingEditedId],o=this._getNewTargetNode(i.from.x,i.from.y),n=this._getNewTargetNode(i.to.x,i.to.y);this.temporaryIds.nodes.push(o.id),this.temporaryIds.nodes.push(n.id),this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id),this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id),this._temporaryBindUI("onTouch",this._controlNodeTouch.bind(this)),this._temporaryBindUI("onTap",function(){}),this._temporaryBindUI("onHold",function(){}),this._temporaryBindUI("onDragStart",this._controlNodeDragStart.bind(this)),this._temporaryBindUI("onDrag",this._controlNodeDrag.bind(this)),this._temporaryBindUI("onDragEnd",this._controlNodeDragEnd.bind(this)),this._temporaryBindUI("onMouseMove",function(){}),this._temporaryBindEvent("beforeDrawing",function(t){var e=i.edgeType.findBorderPositions(t);!1===o.selected&&(o.x=e.from.x,o.y=e.from.y),!1===n.selected&&(n.x=e.to.x,n.y=e.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(e.length>0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i};if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){!0===this.options.enabled?(this.guiEnabled=!0,this._createWrappers(),!1===this.editMode?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",!0===this.editMode?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",!0===this.editMode?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=f.deepExtend({},this.options.controlNodeStyle);i.id="targetNode"+f.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e;var o=this.body.functions.createNode(i);return o.shape.boundingBox={left:t,right:t,top:e,bottom:e},o}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},f.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,!0===this.guiEnabled&&(f.recursiveDOMDelete(this.editModeDiv),f.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+t]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+t].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+t])}},{key:"_createAddNodeButton",value:function(t){var e=this._createButton("addNode","vis-button vis-add",t.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addNodeMode.bind(this))}},{key:"_createAddEdgeButton",value:function(t){var e=this._createButton("addEdge","vis-button vis-connect",t.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addEdgeMode.bind(this))}},{key:"_createEditNodeButton",value:function(t){var e=this._createButton("editNode","vis-button vis-edit",t.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editNode.bind(this))}},{key:"_createEditEdgeButton",value:function(t){var e=this._createButton("editEdge","vis-button vis-edit",t.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editEdgeMode.bind(this))}},{key:"_createDeleteButton",value:function(t){var e;e=this.options.rtl?"vis-button vis-delete-rtl":"vis-button vis-delete";var i=this._createButton("delete",e,t.del||this.options.locales.en.del);this.manipulationDiv.appendChild(i),this._bindHammerToDiv(i,this.deleteSelected.bind(this))}},{key:"_createBackButton",value:function(t){var e=this._createButton("back","vis-button vis-back",t.back||this.options.locales.en.back);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.showManipulatorToolbar.bind(this))}},{key:"_createButton",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vis-label";return this.manipulationDOM[t+"Div"]=document.createElement("div"),this.manipulationDOM[t+"Div"].className=e,this.manipulationDOM[t+"Label"]=document.createElement("div"),this.manipulationDOM[t+"Label"].className=o,this.manipulationDOM[t+"Label"].innerHTML=i,this.manipulationDOM[t+"Div"].appendChild(this.manipulationDOM[t+"Label"]),this.manipulationDOM[t+"Div"]}},{key:"_createDescription",value:function(t){this.manipulationDiv.appendChild(this._createButton("description","vis-button vis-none",t))}},{key:"_temporaryBindEvent",value:function(t,e){this.temporaryEventFunctions.push({event:t,boundFunction:e}),this.body.emitter.on(t,e)}},{key:"_temporaryBindUI",value:function(t,e){if(void 0===this.body.eventListeners[t])throw new Error("This UI function does not exist. Typo? You tried: "+t+" possible are: "+(0,a.default)((0,s.default)(this.body.eventListeners)));this.temporaryUIFunctions[t]=this.body.eventListeners[t],this.body.eventListeners[t]=e}},{key:"_unbindTemporaryUIs",value:function(){for(var t in this.temporaryUIFunctions)this.temporaryUIFunctions.hasOwnProperty(t)&&(this.body.eventListeners[t]=this.temporaryUIFunctions[t],delete this.temporaryUIFunctions[t]);this.temporaryUIFunctions={}}},{key:"_unbindTemporaryEvents",value:function(){for(var t=0;t=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(!0===s.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=f.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(!0===i.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+f.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(!0===s.isCluster?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_dragStartEdge",value:function(t){var e=this.lastTouch;this.selectionHandler._generateClickEvent("dragStart",t,e,void 0,!0)}},{key:"_performAddNode",value:function(t){var e=this,i={id:f.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e,label:this.body.data.edges._data[this.edgeBeingEditedId].label},n=this.options.editEdge;if("object"===(void 0===n?"undefined":(0,d.default)(n))&&(n=n.editWithoutDrag),"function"==typeof n){if(2!==n.length)throw new Error("The function for edit does not support two arguments (data, callback)");n(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw"),i.showManipulatorToolbar()):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e.default=g},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(239),u=o(l),c=function(){function t(e,i,o){(0,a.default)(this,t),this.body=e,this.springLength=i,this.springConstant=o,this.distanceSolver=new u.default}return(0,d.default)(t,[{key:"setOptions",value:function(t){t&&(t.springLength&&(this.springLength=t.springLength),t.springConstant&&(this.springConstant=t.springConstant))}},{key:"solve",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.distanceSolver.getDistances(this.body,t,e);this._createL_matrix(o),this._createK_matrix(o),this._createE_matrix();for(var n=0,r=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),a=1e9,h=0,d=0,l=0,u=0,c=0;a>.01&&n1&&c<5;){c+=1,this._moveNode(h,d,l);var m=this._getEnergy(h),v=(0,s.default)(m,3);u=v[0],d=v[1],l=v[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=0,n=e[0],r=0,a=0,h=0;h2&&void 0!==arguments[2]&&arguments[2];for(var s in t)void 0!==i[s]&&(null===i[s]||"object"!==(0,c.default)(i[s])?n(t,i,s,o):"object"===(0,c.default)(t[s])&&e.fillIfDefined(t[s],i[s],o))},e.extend=function(t,e){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r=0;r3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r in o)if(o.hasOwnProperty(r)&&-1===t.indexOf(r))if(o[r]&&o[r].constructor===Object)void 0===i[r]&&(i[r]={}),i[r].constructor===Object?e.deepExtend(i[r],o[r]):n(i,o,r,s);else if(Array.isArray(o[r])){i[r]=[];for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var r in i)if(i.hasOwnProperty(r)||!0===o)if(i[r]&&i[r].constructor===Object)void 0===t[r]&&(t[r]={}),t[r].constructor===Object?e.deepExtend(t[r],i[r],o):n(t,i,r,s);else if(Array.isArray(i[r])){t[r]=[];for(var a=0;a=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){var o;return-1!=t.indexOf("rgba")?t:-1!=t.indexOf("rgb")?(o=t.substr(t.indexOf("(")+1).replace(")","").split(","),"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"):(o=e.hexToRGB(t),null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")")},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(!0===e.isString(t)){if(!0===e.isValidRGB(t)){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(!0===e.isValidHex(t)){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t;return{h:60*((t==o?3:i==o?1:5)-s/(n-o))/360,s:(n-o)/n,v:n}};var v={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return(0,l.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=v.split(t.style.cssText),n=v.split(i),s=e.extend(o,n);t.style.cssText=v.join(s)},e.removeCssText=function(t,e){var i=v.split(t.style.cssText),o=v.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=v.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},e.isValidRGB=function(t){return t=t.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t)},e.isValidRGBA=function(t){return t=t.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t)},e.selectiveBridgeObject=function(t,i){if(null!==i&&"object"===(void 0===i?"undefined":(0,c.default)(i))){for(var o=(0,h.default)(i),n=0;n0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=function(t){return null!==t&&void 0!==t},s=function(t){return null!==t&&"object"===(void 0===t?"undefined":(0,c.default)(t))};if(!s(t))throw new Error("Parameter mergeTarget must be an object");if(!s(e))throw new Error("Parameter options must be an object");if(!n(i))throw new Error("Parameter option must have a value");if(!s(o))throw new Error("Parameter globalOptions must be an object");var r=e[i],a=s(o)&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(o),d=a?o[i]:void 0,l=d?d.enabled:void 0;if(void 0!==r){if("boolean"==typeof r)return s(t[i])||(t[i]={}),void(t[i].enabled=r);if(null===r&&!s(t[i])){if(!n(d))return;t[i]=(0,h.default)(d)}if(s(r)){var u=!0;void 0!==r.enabled?u=r.enabled:void 0!==l&&(u=d.enabled),function(t,e,i){s(t[i])||(t[i]={});var o=e[i],n=t[i];for(var r in o)o.hasOwnProperty(r)&&(n[r]=o[r])}(t,e,i),t[i].enabled=u}}},e.binarySearchCustom=function(t,e,i,o){for(var n=0,s=0,r=t.length-1;s<=r&&n<1e4;){var a=Math.floor((s+r)/2),h=t[a],d=void 0===o?h[i]:h[i][o],l=e(d);if(0==l)return a;-1==l?s=a+1:r=a-1,n++}return-1},e.binarySearchValue=function(t,e,i,o,n){var s,r,a,h,d=0,l=0,u=t.length-1;for(n=void 0!=n?n:function(t,e){return t==e?0:t0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?l=h+1:u=h-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o},e.topMost=function(t,e){var i=void 0;Array.isArray(e)||(e=[e]);var o=!0,n=!1,s=void 0;try{for(var a,h=(0,r.default)(t);!(o=(a=h.next()).done);o=!0){var d=a.value;if(d){i=d[e[0]];for(var l=1;ln?1:or)&&(s=h,r=d)}return s},n.prototype.min=function(t){var e,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(e=0,i=n.length;e0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){n<0&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.printStyle=void 0;var n=i(20),s=o(n),r=i(6),a=o(r),h=i(8),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=!1,v=void 0,g="background: #FFeeee; color: #dd0000",y=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"validate",value:function(e,i,o){m=!1,v=i;var n=i;return void 0!==o&&(n=i[o]),t.parse(e,n,[]),m}},{key:"parse",value:function(e,i,o){for(var n in e)e.hasOwnProperty(n)&&t.check(n,e,i,o)}},{key:"check",value:function(e,i,o,n){if(void 0===o[e]&&void 0===o.__any__)return void t.getSuggestion(e,o,n);var s=e,r=!0;void 0===o[e]&&void 0!==o.__any__&&(s="__any__",r="object"===t.getType(i[e]));var a=o[s];r&&void 0!==a.__type__&&(a=a.__type__),t.checkFields(e,i,o,s,a,n)}},{key:"checkFields",value:function(e,i,o,n,s,r){var a=function(i){console.log("%c"+i+t.printLocation(r,e),g)},h=t.getType(i[e]),l=s[h];void 0!==l?"array"===t.getType(l)&&-1===l.indexOf(i[e])?(a('Invalid option detected in "'+e+'". Allowed values are:'+t.print(l)+' not "'+i[e]+'". '),m=!0):"object"===h&&"__any__"!==n&&(r=f.copyAndExtendArray(r,e),t.parse(i[e],o[n],r)):void 0===s.any&&(a('Invalid type received for "'+e+'". Expected: '+t.print((0,d.default)(s))+". Received ["+h+'] "'+i[e]+'"'),m=!0)}},{key:"getType",value:function(t){var e=void 0===t?"undefined":(0,a.default)(t);return"object"===e?null===t?"null":t instanceof Boolean?"boolean":t instanceof Number?"number":t instanceof String?"string":Array.isArray(t)?"array":t instanceof Date?"date":void 0!==t.nodeType?"dom":!0===t._isAMomentObject?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,i,o){ +var n=t.findInOptions(e,i,o,!1),s=t.findInOptions(e,v,[],!0),r=void 0;r=void 0!==n.indexMatch?" in "+t.printLocation(n.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n':s.distance<=4&&n.distance>s.distance?" in "+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""):n.distance<=8?'. Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e):". Did you mean one of these: "+t.print((0,d.default)(i))+t.printLocation(o,e),console.log('%cUnknown option detected: "'+e+'"'+r,g),m=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],h=e.toLowerCase(),d=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&!0===n){var c=t.findInOptions(e,i[l],f.copyAndExtendArray(o,l));s>c.distance&&(r=c.closestMatch,a=c.path,s=c.distance,d=c.indexMatch)}else-1!==l.toLowerCase().indexOf(h)&&(d=l),u=t.levenshteinDistance(e,l),s>u&&(r=l,a=f.copyArray(o),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:d}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;n0&&(this.enableBorderDashes(t,e),t.stroke(),this.disableBorderDashes(t,e)),t.restore()}},{key:"performFill",value:function(t,e){this.enableShadow(t,e),t.fill(),this.disableShadow(t,e),this.performStroke(t,e)}},{key:"_addBoundingBoxMargin",value:function(t){this.boundingBox.left-=t,this.boundingBox.top-=t,this.boundingBox.bottom+=t,this.boundingBox.right+=t}},{key:"_updateBoundingBox",value:function(t,e,i,o,n){void 0!==i&&this.resize(i,o,n),this.left=t-this.width/2,this.top=e-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"updateBoundingBox",value:function(t,e,i,o,n){this._updateBoundingBox(t,e,i,o,n)}},{key:"getDimensionsFromLabel",value:function(t,e,i){this.textSize=this.labelModule.getTextSize(t,e,i);var o=this.textSize.width,n=this.textSize.height;return 0===o&&(o=14,n=14),{width:o,height:n}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{size:this.options.size};if(this.needsRefresh(e,i)){this.labelModule.getTextSize(t,e,i);var n=2*o.size;this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"_drawShape",value:function(t,e,i,o,n,s,r,a){if(this.resize(t,s,r,a),this.left=o-this.width/2,this.top=n-this.height/2,this.initContextForDraw(t,a),t[e](o,n,a.size),this.performFill(t,a),void 0!==this.options.label){this.labelModule.calculateLabelSize(t,s,r,o,n,"hanging");var h=n+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(t,o,h,s,r,"hanging")}this.updateBoundingBox(o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}]),e}(m.default);e.default=v},function(t,e,i){var o=i(78),n=i(52);t.exports=function(t){return o(n(t))}},function(t,e,i){var o=i(21),n=i(41);t.exports=i(19)?function(t,e,i){return o.f(t,e,n(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){var o=i(28);t.exports=function(t){if(!o(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,i){t.exports={default:i(138),__esModule:!0}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var n=i(188),s=o(n),r=i(77),a=o(r);e.default=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,h=(0,a.default)(t);!(o=(r=h.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(t){n=!0,s=t}finally{try{!o&&h.return&&h.return()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if((0,s.default)(Object(e)))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(t,e){t.exports={}},function(t,e,i){var o=i(84),n=i(58);t.exports=Object.keys||function(t){return o(t,n)}},function(t,e,i){var o=i(52);t.exports=function(t){return Object(o(t))}},function(t,e,i){function o(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}o.subtract=function(t,e){var i=new o;return i.x=t.x-e.x,i.y=t.y-e.y,i.z=t.z-e.z,i},o.add=function(t,e){var i=new o;return i.x=t.x+e.x,i.y=t.y+e.y,i.z=t.z+e.z,i},o.avg=function(t,e){return new o((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},o.crossProduct=function(t,e){var i=new o;return i.x=t.y*e.z-t.z*e.y,i.y=t.z*e.x-t.x*e.z,i.z=t.x*e.y-t.y*e.x,i},o.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=o},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(0,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;e<=122;e++)r[String.fromCharCode(e)]={code:e-97+65,shift:!1};for(e=65;e<=90;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;e<=9;e++)r[""+e]={code:48+e,shift:!1};for(e=1;e<=12;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;e<=9;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r.delete={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;n=4*a){var c=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(c=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-c,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(c=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(c,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(c=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(c,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;d=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(o=0;o=r&&nt.range.end){var h={start:t.range.start,end:i};return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale}return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a);return new Date(h+a+t.range.start)},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n=e&&r=e&&r<=i&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?o<0?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&t0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=(0,h.default)(this.data)}for(var i=0;ithis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},o.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=o},function(t,e){function i(t){if(t)return o(t)}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;n=.4*v}if(this.options.showMinorLabels&&m){var k=this._repaintMinorText(c,y,t,b);k.style.width=_+"px"}f&&this.options.showMajorLabels?(c>0&&(void 0==w&&(w=c),k=this._repaintMajorText(c,s.getLabelMajor(),t,b)),g=this._repaintMajorLine(c,_,t,b)):m?g=this._repaintMinorLine(c,_,t,b):g&&(g.style.width=parseInt(g.style.width)+_+"px")}if(1e3!==x||u||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to 1000 lines."),u=!0),this.options.showMajorLabels){var S=this.body.util.toTime(0),D=s.getLabelMajor(S),M=D.length*(this.props.majorCharWidth||10)+10;(void 0==w||Mt.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"updateGroupOptions",value:function(t,e,i){if(void 0!==i){var o=t.group;if(void 0!==e&&void 0!==e.group&&o!==e.group)throw new Error("updateGroupOptions: group values in options don't match.");if("number"==typeof o||"string"==typeof o&&""!=o){var n=i.get(o);h.selectiveNotDeepExtend(["font"],t,n),t.color=h.parseColor(t.color)}}}},{key:"parseOptions",value:function(e,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments[4],r=["color","fixed","shadow"];if(h.selectiveNotDeepExtend(r,e,i,o),t.checkMass(i),h.mergeOptions(e,i,"shadow",n),void 0!==i.color&&null!==i.color){var a=h.parseColor(i.color);h.fillIfDefined(e.color,a)}else!0===o&&null===i.color&&(e.color=h.bridgeObject(n.color));void 0!==i.fixed&&null!==i.fixed&&("boolean"==typeof i.fixed?(e.fixed.x=i.fixed,e.fixed.y=i.fixed):(void 0!==i.fixed.x&&"boolean"==typeof i.fixed.x&&(e.fixed.x=i.fixed.x),void 0!==i.fixed.y&&"boolean"==typeof i.fixed.y&&(e.fixed.y=i.fixed.y))),!0===o&&null===i.font&&(e.font=h.bridgeObject(n.font)),t.updateGroupOptions(e,i,s),void 0!==i.scaling&&h.mergeOptions(e.scaling,i.scaling,"label",n.scaling)}},{key:"checkMass",value:function(t,e){if(void 0!==t.mass&&t.mass<=0){var i="";void 0!==e&&(i=" in node id: "+e),console.log("%cNegative or zero mass disallowed"+i+", setting mass to 1.",C),t.mass=1}}}]),t}();e.default=O},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(6),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(2),u=function(){function t(){(0,a.default)(this,t)}return(0,d.default)(t,null,[{key:"choosify",value:function(t,e){var i=["node","edge","label"],o=!0,n=l.topMost(e,"chosen");if("boolean"==typeof n)o=n;else if("object"===(void 0===n?"undefined":(0,s.default)(n))){if(-1===i.indexOf(t))throw new Error("choosify: subOption '"+t+"' should be one of '"+i.join("', '")+"'");var r=l.topMost(e,["chosen",t]);"boolean"!=typeof r&&"function"!=typeof r||(o=r)}return o}},{key:"pointInRect",value:function(t,e,i){if(t.width<=0||t.height<=0)return!1;if(void 0!==i){var o={x:e.x-i.x,y:e.y-i.y};if(0!==i.angle){var n=-i.angle;e={x:Math.cos(n)*o.x-Math.sin(n)*o.y,y:Math.sin(n)*o.x+Math.cos(n)*o.y}}else e=o}var s=t.x+t.width,r=t.y+t.width;return t.lefte.x&&t.tope.y}},{key:"isValidLabel",value:function(t){return"string"==typeof t&&""!==t}}]),t}();e.default=u},function(t,e,i){i(125);for(var o=i(18),n=i(26),s=i(32),r=i(13)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),h=0;hdocument.F=Object<\/script>"),t.close(),h=t.F;o--;)delete h.prototype[s[o]];return h()};t.exports=Object.create||function(t,e){var i;return null!==t?(a.prototype=o(t),i=new a,a.prototype=null,i[r]=t):i=h(),void 0===e?i:n(i,e)}},function(t,e){var i=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:i)(t)}},function(t,e,i){var o=i(57)("keys"),n=i(42);t.exports=function(t){return o[t]||(o[t]=n(t))}},function(t,e,i){var o=i(7),n=i(18),s=n["__core-js_shared__"]||(n["__core-js_shared__"]={});(t.exports=function(t,e){return s[t]||(s[t]=void 0!==e?e:{})})("versions",[]).push({version:o.version,mode:i(40)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){var o=i(21).f,n=i(22),s=i(13)("toStringTag");t.exports=function(t,e,i){t&&!n(t=i?t:t.prototype,s)&&o(t,s,{configurable:!0,value:e})}},function(t,e,i){var o=i(135)(!0);i(79)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=o(e,i),this._i+=t.length,{value:t,done:!1})})},function(t,e,i){e.f=i(13)},function(t,e,i){var o=i(18),n=i(7),s=i(40),r=i(61),a=i(21).f;t.exports=function(t){var e=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:r.f(t)})}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){var i=p().hours(0).minutes(0).seconds(0).milliseconds(0),o=i.clone().add(-3,"days").valueOf(),n=i.clone().add(3,"days").valueOf();this.millisecondsPerPixelCache=void 0,void 0===e?(this.start=o,this.end=n):(this.start=e.start||o,this.end=e.end||n),this.rolling=!1,this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={rtl:!1,start:null,end:null,moment:p,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10,rollingMode:{follow:!1,offset:.5}},this.options=c.extend({},this.defaultOptions),this.props={touch:{}},this.animationTimer=null,this.body.emitter.on("panstart",this._onDragStart.bind(this)),this.body.emitter.on("panmove",this._onDrag.bind(this)),this.body.emitter.on("panend",this._onDragEnd.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.body.dom.rollingModeBtn.addEventListener("click",this.startRolling.bind(this)),this.setOptions(e)}function s(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}var r=i(8),a=o(r),h=i(20),d=o(h),l=i(6),u=o(l),c=i(2),p=i(9),f=i(16),m=i(37);n.prototype=new f,n.prototype.setOptions=function(t){if(t){var e=["animation","direction","min","max","zoomMin","zoomMax","moveable","zoomable","moment","activate","hiddenDates","zoomKey","rtl","showCurrentTime","rollingMode","horizontalScroll"];c.selectiveExtend(e,this.options,t),t.rollingMode&&t.rollingMode.follow&&this.startRolling(),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},n.prototype.startRolling=function(){function t(){e.stopRolling(),e.rolling=!0;var i=e.end-e.start,o=c.convert(new Date,"Date").valueOf(),n=o-i*e.options.rollingMode.offset,s=o+i*(1-e.options.rollingMode.offset),r={animation:!1};e.setRange(n,s,r),i=1/e.conversion(e.body.domProps.center.width).scale/10,i<30&&(i=30),i>1e3&&(i=1e3),e.body.dom.rollingModeBtn.style.visibility="hidden",e.currentTimeTimer=setTimeout(t,i)}var e=this;t()},n.prototype.stopRolling=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility="visible")},n.prototype.setRange=function(t,e,i,o,n){i||(i={}),!0!==i.byUser&&(i.byUser=!1);var s=this,r=void 0!=t?c.convert(t,"Date").valueOf():null,h=void 0!=e?c.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,i.animation){var l=this.start,p=this.end,f="object"===(0,u.default)(i.animation)&&"duration"in i.animation?i.animation.duration:500,v="object"===(0,u.default)(i.animation)&&"easingFunction"in i.animation?i.animation.easingFunction:"easeInOutQuad",g=c.easingFunctions[v];if(!g)throw new Error("Unknown easing function "+(0,d.default)(v)+". Choose from: "+(0,a.default)(c.easingFunctions).join(", "));var y=(new Date).valueOf(),b=!1;return function t(){if(!s.props.touch.dragging){var e=(new Date).valueOf(),a=e-y,d=g(a/f),u=a>f,c=u||null===r?r:l+(r-l)*d,v=u||null===h?h:p+(h-p)*d;_=s._applyRange(c,v),m.updateHiddenDates(s.options.moment,s.body,s.options.hiddenDates),b=b||_;var w={start:new Date(s.start),end:new Date(s.end),byUser:i.byUser,event:i.event};if(n&&n(d,_,u),_&&s.body.emitter.emit("rangechange",w),u){if(b&&(s.body.emitter.emit("rangechanged",w),o))return o()}else s.animationTimer=setTimeout(t,20)}}()}var _=this._applyRange(r,h);if(m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),_){var w={start:new Date(this.start),end:new Date(this.end),byUser:i.byUser,event:i.event};if(this.body.emitter.emit("rangechange",w),clearTimeout(s.timeoutID),s.timeoutID=setTimeout(function(){s.body.emitter.emit("rangechanged",w)},200),o)return o()}},n.prototype.getMillisecondsPerPixel=function(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache},n.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},n.prototype._applyRange=function(t,e){var i,o=null!=t?c.convert(t,"Date").valueOf():this.start,n=null!=e?c.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?c.convert(this.options.max,"Date").valueOf():null,r=null!=this.options.min?c.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(ns&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=r&&o=this.start-.5&&n<=this.end?(o=this.start,n=this.end):(i=a-(n-o),o-=i/2,n+=i/2)}}if(null!==this.options.zoomMax){var h=parseFloat(this.options.zoomMax);h<0&&(h=0),n-o>h&&(this.end-this.start===h&&othis.end?(o=this.start,n=this.end):(i=n-o-h,o+=i/2,n-=i/2))}var d=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,d},n.prototype.getRange=function(){return{start:this.start,end:this.end}},n.prototype.conversion=function(t,e){return n.conversion(this.start,this.end,t,e)},n.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},n.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},n.prototype._onDrag=function(t){if(t&&this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;s(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start;o-=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var n,r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;n=this.options.rtl?i/r*o:-i/r*o;var a=this.props.touch.start+n,h=this.props.touch.end+n,d=m.snapAwayFromHidden(this.body.hiddenDates,a,this.previousDelta-i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0);if(d!=a||l!=h)return this.deltaDifference+=i,this.props.touch.start=d,this.props.touch.end=l,void this._onDrag(t);this.previousDelta=i,this._applyRange(a,h);var u=new Date(this.start),c=new Date(this.end);this.body.emitter.emit("rangechange",{start:u,end:c,byUser:!0,event:t}),this.body.emitter.emit("panmove")}},n.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:t}))},n.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),!(this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable)&&this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var i;i=e<0?1-e/5:1/(1+e/5);var o;if(this.rolling)o=this.start+(this.end-this.start)*this.options.rollingMode.offset;else{var n=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center);o=this._pointerToDate(n)}this.zoom(i,o,e,t),t.preventDefault()}},n.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0,c.preventDefault(t)},n.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){c.preventDefault(t),this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center)),this.stopRolling();var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=1-e<=0,this.endToFront=e-1<=0;var h=m.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),d=m.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&d==a||(this.props.touch.start=h,this.props.touch.end=d,this.scaleOffset=1-t.scale,r=h,a=d);var l={animation:!1,byUser:!0,event:t};this.setRange(r,a,l),this.startToFront=!1,this.endToFront=!0}},n.prototype._isInsideRange=function(t){var e,i=t.center?t.center.x:t.clientX;e=this.options.rtl?i-c.getAbsoluteLeft(this.body.dom.centerContainer):c.getAbsoluteRight(this.body.dom.centerContainer)-i;var o=this.body.util.toTime(e);return o>=this.start&&o<=this.end},n.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(s(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},n.prototype.getPointer=function(t,e){return this.options.rtl?{x:c.getAbsoluteRight(e)-t.x,y:t.y-c.getAbsoluteTop(e)}:{x:t.x-c.getAbsoluteLeft(e),y:t.y-c.getAbsoluteTop(e)}},n.prototype.zoom=function(t,e,i,o){null==e&&(e=(this.start+this.end)/2) +;var n=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),r=n-s,a=e-s+(this.start-(e-s))*t,h=e+r+(this.end-(e+r))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0);var d=m.snapAwayFromHidden(this.body.hiddenDates,a,i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,-i,!0);d==a&&l==h||(a=d,h=l);var u={animation:!1,byUser:!0,event:o};this.setRange(a,h,u),this.startToFront=!1,this.endToFront=!0},n.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},n.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:null};this.setRange(o,n,s)},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){}var s=i(20),r=o(s),a=i(6),h=o(a),d=i(45),l=i(10),u=i(38),c=i(2),p=i(46),f=i(97),m=i(37),v=i(47);d(n.prototype),n.prototype._create=function(t){function e(t){this.isActive()&&this.emit("mousewheel",t);var e=0,i=0;if("detail"in t&&(i=-1*t.detail),"wheelDelta"in t&&(i=t.wheelDelta),"wheelDeltaY"in t&&(i=t.wheelDeltaY),"wheelDeltaX"in t&&(e=-1*t.wheelDeltaX),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=-1*i,i=0),"deltaY"in t&&(i=-1*t.deltaY),"deltaX"in t&&(e=t.deltaX),this.options.zoomKey&&!t[this.options.zoomKey])if(t.preventDefault(),this.options.verticalScroll&&Math.abs(i)>=Math.abs(e)){var o=this.props.scrollTop,n=o+i;this.isActive()&&(this._setScrollTop(n),this._redraw(),this.emit("scroll",t))}else if(this.options.horizontalScroll){var s=Math.abs(e)>=Math.abs(i)?e:i,r=s/120*(this.range.end-this.range.start)/20,a=this.range.start+r,h=this.range.end+r,d={animation:!1,byUser:!0,event:t};this.range.setRange(a,h,d)}}function i(t){if(s.options.verticalScroll&&(t.preventDefault(),s.isActive())){var e=-t.target.scrollTop;s._setScrollTop(e),s._redraw(),s.emit("scrollSide",t)}}function o(t){if(t.preventDefault&&t.preventDefault(),!(!t.target.className.indexOf("vis")>-1||a))return t.dataTransfer.dropEffect="move",a=!0,!1}function n(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation();try{var e=JSON.parse(t.dataTransfer.getData("text"));if(!e||!e.content)return}catch(t){return!1}return a=!1,t.center={x:t.clientX,y:t.clientY},"item"!==e.target?s.itemSet._onAddItem(t):s.itemSet._onDropObjectOnItem(t),s.emit("drop",s.getEventProperties(t)),!1}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.rollingModeBtn=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.rollingModeBtn.className="vis-rolling-mode-btn",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on("rangechange",function(){!0===this.initialDrawDone&&this._redraw()}.bind(this)),this.on("rangechanged",function(){this.initialRangeChangeDone||(this.initialRangeChangeDone=!0)}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("panmove",this._onDrag.bind(this));var s=this;this._origRedraw=this._redraw.bind(this),this._redraw=c.throttle(this._origRedraw),this.on("_change",function(t){s.itemSet&&s.itemSet.initialItemSetDrawn&&t&&1==t.queue?s._redraw():s._origRedraw()}),this.hammer=new l(this.dom.root);var r=this.hammer.get("pinch").set({enable:!0});u.disablePreventDefaultVertically(r),this.hammer.get("pan").set({threshold:5,direction:l.DIRECTION_HORIZONTAL}),this.listeners={},["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach(function(t){var e=function(e){s.isActive()&&s.emit(t,e)};s.hammer.on(t,e),s.listeners[t]=e}),u.onTouch(this.hammer,function(t){s.emit("touch",t)}.bind(this)),u.onRelease(this.hammer,function(t){s.emit("release",t)}.bind(this)),this.dom.centerContainer.addEventListener?(this.dom.centerContainer.addEventListener("mousewheel",e.bind(this),!1),this.dom.centerContainer.addEventListener("DOMMouseScroll",e.bind(this),!1)):this.dom.centerContainer.attachEvent("onmousewheel",e.bind(this)),this.dom.left.parentNode.addEventListener("scroll",i.bind(this)),this.dom.right.parentNode.addEventListener("scroll",i.bind(this));var a=!1;if(this.dom.center.addEventListener("dragover",o.bind(this),!1),this.dom.center.addEventListener("drop",n.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,this.initialRangeChangeDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},n.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","zoomKey","horizontalScroll","verticalScroll"];if(c.selectiveExtend(e,this.options,t),this.dom.rollingModeBtn.style.visibility="hidden",this.options.rtl&&(this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className="vis-panel vis-right vis-vertical-scroll":this.dom.leftContainer.className="vis-panel vis-left vis-vertical-scroll"),"object"!==(0,h.default)(this.options.orientation)&&(this.options.orientation={item:void 0,axis:void 0}),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===(0,h.default)(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new p(this.body);i.setOptions=function(t){var e=t?c.extend({},t):{};e.orientation="top",p.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&m.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new f(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=c.deepExtend({},this.options);this.components.forEach(function(t){c.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},n.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));i.length>0&&i[0].setCustomTime(t)},n.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));return e[0].getCustomTime()},n.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));if(i.length>0)return i[0].setCustomTitle(t)},n.prototype.getEventProperties=function(t){return{event:t}},n.prototype.addCustomTime=function(t,e){var i=void 0!==t?c.convert(t,"Date").valueOf():new Date;if(this.customTimes.some(function(t){return t.options.id===e}))throw new Error("A custom time with id "+(0,r.default)(e)+" already exists");var o=new v(this.body,c.extend({},this.options,{time:i,id:e}));return this.customTimes.push(o),this.components.push(o),this._redraw(),e},n.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},n.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},n.prototype.fit=function(t,e){var i=this.getDataRange();if(null!==i.min||null!==i.max){var o=i.max-i.min,n=new Date(i.min.valueOf()-.01*o),s=new Date(i.max.valueOf()+.01*o),r=!t||void 0===t.animation||t.animation;this.range.setRange(n,s,{animation:r},e)}},n.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},n.prototype.setWindow=function(t,e,i,o){"function"==typeof arguments[2]&&(o=arguments[2],i={});var n,s;1==arguments.length?(s=arguments[0],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n})):2==arguments.length&&"function"==typeof arguments[1]?(s=arguments[0],o=arguments[1],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n},o)):(n=!i||void 0===i.animation||i.animation,this.range.setRange(t,e,{animation:n},o))},n.prototype.moveTo=function(t,e,i){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.range.end-this.range.start,n=c.convert(t,"Date").valueOf(),s=n-o/2,r=n+o/2,a=!e||void 0===e.animation||e.animation;this.range.setRange(s,r,{animation:a},i)},n.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},n.prototype.zoomIn=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=r/(1+t),h=(r-a)/2,d=n+h,l=s-h;this.setWindow(d,l,e,i)}},n.prototype.zoomOut=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=n-r*t/2,h=s+r*t/2;this.setWindow(a,h,e,i)}},n.prototype.redraw=function(){this._redraw()},n.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.offsetWidth){m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(c.addClassName(o.root,"vis-top"),c.removeClassName(o.root,"vis-bottom")):(c.removeClassName(o.root,"vis-top"),c.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=c.option.asSize(e.maxHeight,""),o.root.style.minHeight=c.option.asSize(e.minHeight,""),o.root.style.width=c.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top,i.borderRootHeight=o.root.offsetHeight-o.root.clientHeight,i.borderRootWidth=o.root.offsetWidth-o.root.clientWidth,0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(i.borderRootWidth=i.borderRootHeight),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var n=Math.max(i.left.height,i.center.height,i.right.height),s=i.top.height+n+i.bottom.height+i.borderRootHeight+i.border.top+i.border.bottom;o.root.style.height=c.option.asSize(e.height,s+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-i.borderRootHeight;var r=i.root.height-i.top.height-i.bottom.height-i.borderRootHeight;i.centerContainer.height=r,i.leftContainer.height=r,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-i.borderRootWidth,this.initialDrawDone||(i.scrollbarWidth=c.getScrollBarWidth()),e.verticalScroll?e.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),this._setDOM();var a=this._updateScrollTop();"top"!=e.orientation.item&&(a+=Math.max(i.centerContainer.height-i.center.height-i.border.top-i.border.bottom,0)),o.center.style.top=a+"px";var h=0==i.scrollTop?"hidden":"",d=i.scrollTop==i.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=h,o.shadowBottom.style.visibility=d,o.shadowTopLeft.style.visibility=h,o.shadowBottomLeft.style.visibility=d,o.shadowTopRight.style.visibility=h,o.shadowBottomRight.style.visibility=d,e.verticalScroll&&(o.rightContainer.className="vis-panel vis-right vis-vertical-scroll",o.leftContainer.className="vis-panel vis-left vis-vertical-scroll",o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden",o.left.style.top="0px",o.right.style.top="0px"),(!e.verticalScroll||i.center.heighti.centerContainer.height;this.hammer.get("pan").set({direction:u?l.DIRECTION_ALL:l.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});if(t){if(this.redrawCount<5)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.body.emitter.emit("changed")}},n.prototype._setDOM=function(){var t=this.props,e=this.dom;t.leftContainer.width=t.left.width,t.rightContainer.width=t.right.width;var i=t.root.width-t.left.width-t.right.width-t.borderRootWidth;t.center.width=i,t.centerContainer.width=i,t.top.width=i,t.bottom.width=i,e.background.style.height=t.background.height+"px",e.backgroundVertical.style.height=t.background.height+"px",e.backgroundHorizontal.style.height=t.centerContainer.height+"px",e.centerContainer.style.height=t.centerContainer.height+"px",e.leftContainer.style.height=t.leftContainer.height+"px",e.rightContainer.style.height=t.rightContainer.height+"px",e.background.style.width=t.background.width+"px",e.backgroundVertical.style.width=t.centerContainer.width+"px",e.backgroundHorizontal.style.width=t.background.width+"px",e.centerContainer.style.width=t.center.width+"px",e.top.style.width=t.top.width+"px",e.bottom.style.width=t.bottom.width+"px",e.background.style.left="0",e.background.style.top="0",e.backgroundVertical.style.left=t.left.width+t.border.left+"px",e.backgroundVertical.style.top="0",e.backgroundHorizontal.style.left="0",e.backgroundHorizontal.style.top=t.top.height+"px",e.centerContainer.style.left=t.left.width+"px",e.centerContainer.style.top=t.top.height+"px",e.leftContainer.style.left="0",e.leftContainer.style.top=t.top.height+"px",e.rightContainer.style.left=t.left.width+t.center.width+"px",e.rightContainer.style.top=t.top.height+"px",e.top.style.left=t.left.width+"px",e.top.style.top="0",e.bottom.style.left=t.left.width+"px",e.bottom.style.top=t.top.height+t.centerContainer.height+"px",e.center.style.left="0",e.left.style.left="0",e.right.style.left="0"},n.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},n.prototype.setCurrentTime=function(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)},n.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},n.prototype._toTime=function(t){return m.toTime(this,t,this.props.center.width)},n.prototype._toGlobalTime=function(t){return m.toTime(this,t,this.props.root.width)},n.prototype._toScreen=function(t){return m.toScreen(this,t,this.props.center.width)},n.prototype._toGlobalScreen=function(t){return m.toScreen(this,t,this.props.root.width)},n.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},n.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){if(1!=t.options.autoResize)return void t._stopAutoResize();t.dom.root&&(t.dom.root.offsetWidth==t.props.lastWidth&&t.dom.root.offsetHeight==t.props.lastHeight||(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight,t.props.scrollbarWidth=c.getScrollBarWidth(),t.body.emitter.emit("_change")))},c.addEventListener(window,"resize",this._onResize),t.dom.root&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},n.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(c.removeEventListener(window,"resize",this._onResize),this._onResize=null)},n.prototype._onTouch=function(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},n.prototype._onPinch=function(t){this.touch.allowDragging=!1},n.prototype._onDrag=function(t){if(t&&this.touch.allowDragging){var e=t.deltaY,i=this._getScrollTop(),o=this._setScrollTop(this.touch.initialScrollTop+e);this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),o!=i&&this.emit("verticalDrag")}},n.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},n.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop0&&this.current.milliseconds()0&&this.current.seconds()0&&this.current.minutes()0&&this.current.hours()0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){31104e9>t&&(this.scale="year",this.step=1e3),15552e9>t&&(this.scale="year",this.step=500),31104e8>t&&(this.scale="year",this.step=100),15552e8>t&&(this.scale="year",this.step=50),31104e7>t&&(this.scale="year",this.step=10),15552e7>t&&(this.scale="year",this.step=5),31104e6>t&&(this.scale="year",this.step=1),7776e6>t&&(this.scale="month",this.step=3),2592e6>t&&(this.scale="month",this.step=1),432e6>t&&(this.scale="day",this.step=5),1728e5>t&&(this.scale="day",this.step=2),864e5>t&&(this.scale="day",this.step=1),432e5>t&&(this.scale="weekday",this.step=1),144e5>t&&(this.scale="hour",this.step=4),36e5>t&&(this.scale="hour",this.step=1),9e5>t&&(this.scale="minute",this.step=15),6e5>t&&(this.scale="minute",this.step=10),3e5>t&&(this.scale="minute",this.step=5),6e4>t&&(this.scale="minute",this.step=1),15e3>t&&(this.scale="second",this.step=15),1e4>t&&(this.scale="second",this.step=10),5e3>t&&(this.scale="second",this.step=5),1e3>t&&(this.scale="second",this.step=1),200>t&&(this.scale="millisecond",this.step=200),100>t&&(this.scale="millisecond",this.step=100),50>t&&(this.scale="millisecond",this.step=50),10>t&&(this.scale="millisecond",this.step=10),5>t&&(this.scale="millisecond",this.step=5),1>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("week"==e)o.weekday()>2?(o.weekday(0),o.add(1,"week")):o.weekday(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.scale){case"year":case"month":case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.scale){case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":case"week":return 1==t.date();case"month":return 0==t.month();case"year":default:return!1}},o.prototype.getLabelMinor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];switch(this.scale){case"week":if(this.isMajor()&&0!==t.weekday())return"";default:return e&&e.length>0?this.moment(t).format(e):""}},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/a%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(n().add(1,"day"),"day")?" vis-tomorrow":t.isSame(n().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}var n=this.moment,s=this.moment(this.current),r=s.locale?s.locale("en"):s.lang("en"),a=this.step,h=[];switch(this.scale){case"millisecond":h.push(e(r)),h.push(t(r.milliseconds()));break;case"second":h.push(e(r)),h.push(t(r.seconds()));break;case"minute":h.push(e(r)),h.push(t(r.minutes()));break;case"hour":h.push("vis-h"+r.hours()+(4==this.step?"-h"+(r.hours()+4):"")),h.push(e(r)),h.push(t(r.hours()));break;case"weekday":h.push("vis-"+r.format("dddd").toLowerCase()), +h.push(e(r)),h.push(i(r)),h.push(t(r.date()));break;case"day":h.push("vis-day"+r.date()),h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(e(r)),h.push(o(r)),h.push(this.step<=2?e(r):""),h.push(this.step<=2?"vis-"+r.format("dddd").toLowerCase():""),h.push(t(r.date()-1));break;case"week":h.push("vis-week"+r.format("w")),h.push(i(r)),h.push(t(r.week()));break;case"month":h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(o(r)),h.push(t(r.month()));break;case"year":h.push("vis-year"+r.year()),h.push(function(t){return t.isSame(new Date,"year")?" vis-current-year":""}(r)),h.push(t(r.year()))}return h.filter(String).join(" ")},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={rtl:!1,showCurrentTime:!0,moment:r,locales:a,locale:"en"},this.options=n.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var n=i(2),s=i(16),r=i(9),a=i(98);o.prototype=new s,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-current-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},o.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},o.prototype.setOptions=function(t){t&&n.selectiveExtend(["rtl","showCurrentTime","moment","locale","locales"],this.options,t)},o.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=this.options.moment((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),o=this.options.locales[this.options.locale];o||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline/#Localization"),this.warned=!0),o=this.options.locales.en);var n=o.current+" "+o.time+": "+e.format("dddd, MMMM Do YYYY, H:mm:ss");n=n.charAt(0).toUpperCase()+n.substring(1),this.options.rtl?this.bar.style.right=i+"px":this.bar.style.left=i+"px",this.bar.title=n}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},o.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,o=1/i/10;o<30&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.groupId=t,this.subgroups={},this.subgroupStack={},this.subgroupStackAll=!1,this.doInnerStack=!1,this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.isVisible=null,this.stackDirty=!0,e&&e.nestedGroups&&(this.nestedGroups=e.nestedGroups,0==e.showNested?this.showNested=!1:this.showNested=!0),e&&e.subgroupStack)if("boolean"==typeof e.subgroupStack)this.doInnerStack=e.subgroupStack,this.subgroupStackAll=e.subgroupStack;else for(var o in e.subgroupStack)this.subgroupStack[o]=e.subgroupStack[o],this.doInnerStack=this.doInnerStack||e.subgroupStack[o];this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var n=this;this.itemSet.body.emitter.on("checkRangedItems",function(){n.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(8),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(100);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.style.position="absolute",this.dom.marker.innerHTML="",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else e instanceof Object?i(t,this.dom.inner):this.dom.inner.innerHTML=void 0!==e&&null!==e?e:this.groupId||"";if(this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?r.removeClassName(this.dom.inner,"vis-hidden"):r.addClassName(this.dom.inner,"vis-hidden"),t&&t.nestedGroups){this.nestedGroups&&this.nestedGroups==t.nestedGroups||(this.nestedGroups=t.nestedGroups),void 0===t.showNested&&void 0!==this.showNested||(0==t.showNested?this.showNested=!1:this.showNested=!0),r.addClassName(this.dom.label,"vis-nesting-group");var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";this.showNested?(r.removeClassName(this.dom.label,o),r.addClassName(this.dom.label,"expanded")):(r.removeClassName(this.dom.label,"expanded"),r.addClassName(this.dom.label,o))}else this.nestedGroups&&(this.nestedGroups=null,o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed",r.removeClassName(this.dom.label,o),r.removeClassName(this.dom.label,"expanded"),r.removeClassName(this.dom.label,"vis-nesting-group"));t&&t.nestedInGroup&&(r.addClassName(this.dom.label,"vis-nested-group"),this.itemSet.options&&this.itemSet.options.rtl?this.dom.inner.style.paddingRight="30px":this.dom.inner.style.paddingLeft="30px");var n=t&&t.className||null;n!=this.className&&(this.className&&(r.removeClassName(this.dom.label,this.className),r.removeClassName(this.dom.foreground,this.className),r.removeClassName(this.dom.background,this.className),r.removeClassName(this.dom.axis,this.className)),r.addClassName(this.dom.label,n),r.addClassName(this.dom.foreground,n),r.addClassName(this.dom.background,n),r.addClassName(this.dom.axis,n),this.className=n),this.style&&(r.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(r.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype._didMarkerHeightChange=function(){var t=this.dom.marker.clientHeight;if(t!=this.lastMarkerHeight){this.lastMarkerHeight=t;var e={},i=0;r.forEach(this.items,function(t,o){if(t.dirty=!0,t.displayed){e[o]=t.redraw(!0),i=e[o].length}});if(i>0)for(var o=0;o0)for(var u=0;u0){var e=this;this.resetSubgroups(),r.forEach(this.visibleItems,function(i){void 0!==i.data.subgroup&&(e.subgroups[i.data.subgroup].height=Math.max(e.subgroups[i.data.subgroup].height,i.height+t.item.vertical),e.subgroups[i.data.subgroup].visible=!0)})}},o.prototype._isGroupVisible=function(t,e){return this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,n=i[0].top+i[0].height;if(r.forEach(i,function(t){o=Math.min(o,t.top),n=Math.max(n,t.top+t.height)}),o>t.axis){var s=o-t.axis;n-=s,r.forEach(i,function(t){t.top-=s})}e=n+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),this.stackDirty=!0,void 0!==t.data.subgroup&&(this._addToSubgroup(t),this.orderSubgroups()),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype._addToSubgroup=function(t,e){e=e||t.data.subgroup,void 0!=e&&void 0===this.subgroups[e]&&(this.subgroups[e]={height:0,top:0,start:t.data.start,end:t.data.end||t.data.start,visible:!1,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[e]||!1},this.subgroupIndex++),new Date(t.data.start)new Date(this.subgroups[e].end)&&(this.subgroups[e].end=i),this.subgroups[e].items.push(t)},o.prototype._updateSubgroupsSizes=function(){var t=this;if(t.subgroups)for(var e in t.subgroups){var i=t.subgroups[e].items[0].data.end||t.subgroups[e].items[0].data.start,o=t.subgroups[e].items[0].data.start,n=i-1;t.subgroups[e].items.forEach(function(t){new Date(t.data.start)new Date(n)&&(n=e)}),t.subgroups[e].start=o,t.subgroups[e].end=new Date(n-1)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t,e=[];if("string"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push({subgroup:t,sortField:this.subgroups[t].items[0].data[this.subgroupOrderer]});e.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push(this.subgroups[t].items[0].data);e.sort(this.subgroupOrderer)}if(e.length>0)for(var i=0;i=0&&(i.items.splice(o,1),i.items.length?this._updateSubgroupsSizes():delete this.subgroups[e])}}},o.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},o.prototype.order=function(){for(var t=r.toArray(this.items),e=[],i=[],o=0;o0)for(var l=0;lh}),1==this.checkRangedItems)for(this.checkRangedItems=!1,l=0;lh})}var p={},f=0;for(l=0;l0)for(var v=0;v=0&&(r=e[s],!n(r));s--)void 0===o[r.id]&&(o[r.id]=!0,i.push(r));for(s=t+1;st.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.visibleFrame=document.createElement("div"),this.dom.visibleFrame.className="vis-item-visible-frame",this.dom.box.appendChild(this.dom.visibleFrame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dom.box["timeline-item"]=this,this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var t=this.editable.updateTime||this.editable.updateGroup,e=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(t?" vis-editable":" vis-readonly");this.dom.box.className=this.baseClassName+e,this.dom.content.style.maxWidth="none"}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.frame).overflow,{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=t.box.height,this.dom.content.style.maxWidth="",this.dirty=!1},o.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDeleteButton(this.dom.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end),r=void 0===this.data.align?this.options.align:this.data.align;!1===this.data.limitSize||void 0!==t&&!0!==t||(n<-o&&(n=-o),s>2*o&&(s=2*o));var a=Math.max(s-n+.5,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=a+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=a,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=a+"px",r){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(a-i,0)+"px":this.dom.content.style.left=Math.max(a-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((a-i)/2,0)+"px":this.dom.content.style.left=Math.max((a-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+e+"px)")}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(20),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(179).default,f=function(){function t(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,d.default)(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},c.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new p(n),this.wrapper=void 0}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===(void 0===t?"undefined":(0,a.default)(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),!1===this.options.filter&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):!0!==e&&-1===e.indexOf(n)||(o=!0),!1!==o&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);if(!0===this.options.showButton){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){t._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?i-1:0),n=1;n2&&void 0!==arguments[2]&&arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,o.innerHTML=!0===i?""+t+":":t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(1.2*e),d=a.max,h="range increased"),a.value=e}else a.value=o;var l=document.createElement("input");l.className="vis-configuration vis-config-rangeinput",l.value=a.value;var u=this;a.onchange=function(){l.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){l.value=this.value};var c=this._makeLabel(i[i.length-1],i),p=this._makeItem(i,c,a,l);""!==h&&this.popupHistory[p]!==d&&(this.popupHistory[p]=d,this._setupPopup(h,p))}},{key:"_setupPopup",value:function(t,e){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=c.copyAndExtendArray(e,r);if("function"==typeof n&&!1===(o=n(r,e))&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=!1===i),!1!==o){s=!0;var d=this._getValue(h);if(a instanceof Array)this._handleArray(a,d,h);else if("string"==typeof a)this._makeTextInput(a,d,h);else if("boolean"==typeof a)this._makeCheckbox(a,d,h);else if(a instanceof Object){var l=!0;if(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(l=!1),!0===l)if(void 0!==a.enabled){var u=c.copyAndExtendArray(h,"enabled"),p=this._getValue(u);if(!0===p){var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,p,h)}else{var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;nvar options = "+(0,s.default)(t,null,2)+""}},{key:"getOptions",value:function(){ +for(var t={},e=0;ethis.imageObj.height?i=this.imageObj.width/this.imageObj.height:o=this.imageObj.height/this.imageObj.width),t=2*this.options.size*i,e=2*this.options.size*o}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.radius=.5*this.width}},{key:"_drawRawCircle",value:function(t,e,i,o){this.initContextForDraw(t,o),t.circle(e,i,o.size),this.performFill(t,o)}},{key:"_drawImageAtPosition",value:function(t,e){if(0!=this.imageObj.width){t.globalAlpha=1,this.enableShadow(t,e);var i=1;!0===this.options.shapeProperties.interpolation&&(i=this.imageObj.width/this.width/this.body.view.scale),this.imageObj.drawImageAtPosition(t,i,this.left,this.top,this.width,this.height),this.disableShadow(t,e)}}},{key:"_drawImageLabel",value:function(t,e,i,o,n){var s,r=0;if(void 0!==this.height){r=.5*this.height;var a=this.labelModule.getTextSize(t,o,n);a.lineCount>=1&&(r+=a.height/2)}s=i+r,this.options.label&&(this.labelOffset=r),this.labelModule.draw(t,e,s,o,n,"hanging")}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(20),s=o(n),r=i(6),a=o(r),h=i(30),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(117).default,v=i(49).default,g=i(215).default,y=i(217).default,b=i(218).default,_=i(219).default,w=function(){function t(e,i,o,n){if((0,u.default)(this,t),void 0===i)throw new Error("No body provided");this.options=f.bridgeObject(o),this.globalOptions=o,this.defaultOptions=n,this.body=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new m(this.body,this.options,!0),this.setOptions(e)}return(0,p.default)(t,[{key:"setOptions",value:function(e){if(e){t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==e.id&&(this.id=e.id),void 0!==e.from&&(this.fromId=e.from),void 0!==e.to&&(this.toId=e.to),void 0!==e.title&&(this.title=e.title),void 0!==e.value&&(e.value=parseFloat(e.value));var i=[e,this.options,this.defaultOptions];this.chooser=v.choosify("edge",i),this.updateLabelModule(e);var o=this.updateEdgeType();return this._setInteractionWidths(),this.connect(),void 0===e.hidden&&void 0===e.physics||(o=!0),o}}},{key:"getFormattingValues",value:function(){var t=!0===this.options.arrows.to||!0===this.options.arrows.to.enabled,e=!0===this.options.arrows.from||!0===this.options.arrows.from.enabled,i=!0===this.options.arrows.middle||!0===this.options.arrows.middle.enabled,o=this.options.color.inherit,n={toArrow:t,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,middleArrow:i,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,fromArrow:e,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,arrowStrikethrough:this.options.arrowStrikethrough,color:o?void 0:this.options.color.color,inheritsColor:o,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width};if(this.selected||this.hover)if(!0===this.chooser){if(this.selected){var s=this.options.selectionWidth;"function"==typeof s?n.width=s(n.width):"number"==typeof s&&(n.width+=s),n.width=Math.max(n.width,.3/this.body.view.scale),n.color=this.options.color.highlight,n.shadow=this.options.shadow.enabled}else if(this.hover){var r=this.options.hoverWidth;"function"==typeof r?n.width=r(n.width):"number"==typeof r&&(n.width+=r),n.width=Math.max(n.width,.3/this.body.view.scale),n.color=this.options.color.hover,n.shadow=this.options.shadow.enabled}}else"function"==typeof this.chooser&&(this.chooser(n,this.options.id,this.selected,this.hover),void 0!==n.color&&(n.inheritsColor=!1),!1===n.shadow&&(n.shadowColor===this.options.shadow.color&&n.shadowSize===this.options.shadow.size&&n.shadowX===this.options.shadow.x&&n.shadowY===this.options.shadow.y||(n.shadow=!0)));else n.shadow=this.options.shadow.enabled,n.width=Math.max(n.width,.3/this.body.view.scale);return n}},{key:"updateLabelModule",value:function(t){var e=[t,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,e),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateEdgeType",value:function(){var t=this.options.smooth,e=!1,i=!0;return void 0!==this.edgeType&&((this.edgeType instanceof y&&!0===t.enabled&&"dynamic"===t.type||this.edgeType instanceof g&&!0===t.enabled&&"cubicBezier"===t.type||this.edgeType instanceof b&&!0===t.enabled&&"dynamic"!==t.type&&"cubicBezier"!==t.type||this.edgeType instanceof _&&!1===t.type.enabled)&&(i=!1),!0===i&&(e=this.cleanup())),!0===i?!0===t.enabled?"dynamic"===t.type?(e=!0,this.edgeType=new y(this.options,this.body,this.labelModule)):"cubicBezier"===t.type?this.edgeType=new g(this.options,this.body,this.labelModule):this.edgeType=new b(this.options,this.body,this.labelModule):this.edgeType=new _(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),e}},{key:"connect",value:function(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,!0===this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}},{key:"disconnect",value:function(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}},{key:"getTitle",value:function(){return this.title}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(t,e,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.width=this.options.scaling.min+o*n}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}},{key:"_setInteractionWidths",value:function(){"function"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,"function"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}},{key:"draw",value:function(t){var e=this.getFormattingValues();if(!e.hidden){var i=this.edgeType.getViaNode(),o={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,e.fromArrow&&(o.from=this.edgeType.getArrowData(t,"from",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.fromPoint=o.from.core)),e.toArrow&&(o.to=this.edgeType.getArrowData(t,"to",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.toPoint=o.to.core)),e.middleArrow&&(o.middle=this.edgeType.getArrowData(t,"middle",i,this.selected,this.hover,e)),this.edgeType.drawLine(t,e,this.selected,this.hover,i),this.drawArrows(t,o,e),this.drawLabel(t,i)}}},{key:"drawArrows",value:function(t,e,i){i.fromArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.from),i.middleArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.middle),i.toArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.to)}},{key:"drawLabel",value:function(t,e){if(void 0!==this.options.label){var i=this.from,o=this.to;if(this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(t,this.selected,this.hover),i.id!=o.id){this.labelModule.pointToSelf=!1;var n=this.edgeType.getPoint(.5,e);t.save();var s=this._getRotation(t);isNaN(s.x)||isNaN(s.y)?t.translate(i.x,i.y):t.translate(s.x,s.y),0!=s.angle&&t.rotate(s.angle),this.labelModule.draw(t,n.x,n.y,this.selected,this.hover),t.restore()}else{this.labelModule.pointToSelf=!0;var r,a,h=this.options.selfReferenceSize;i.shape.width>i.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),n=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,n.x,n.y,this.selected,this.hover)}}}},{key:"getItemsOnPoint",value:function(t){var e=[];if(this.labelModule.visible()){var i=this._getRotation();v.pointInRect(this.labelModule.getSize(),t,i)&&e.push({edgeId:this.id,labelId:0})}var o={left:t.x,top:t.y};return this.isOverlappingWith(o)&&e.push({edgeId:this.id}),e}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=this.from.x,i=this.from.y,o=this.to.x,n=this.to.y,s=t.left,r=t.top;return this.edgeType.getDistanceToEdge(e,i,o,n,s,r)<10}return!1}},{key:"_getRotation",value:function(t){var e=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,e);void 0!==t&&this.labelModule.calculateLabelSize(t,this.selected,this.hover,i.x,i.y);var o={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible())return o;if("horizontal"===this.options.font.align)return o;var n=this.from.y-this.to.y,s=this.from.x-this.to.x,r=Math.atan2(n,s);return(r<-1&&s<0||r>0&&s<0)&&(r+=Math.PI),o.angle=r,o}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}},{key:"remove",value:function(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}},{key:"endPointsValid",value:function(){return void 0!==this.body.nodes[this.fromId]&&void 0!==this.body.nodes[this.toId]}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=["arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width","font","chosen","widthConstraint"];if(f.selectiveDeepExtend(r,t,e,i),v.isValidLabel(e.label)?t.label=e.label:t.label=void 0,f.mergeOptions(t,e,"smooth",o),f.mergeOptions(t,e,"shadow",o),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:!0===i&&null===e.dashes&&(t.dashes=(0,d.default)(o.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),f.mergeOptions(t.scaling,e.scaling,"label",o.scaling)):!0===i&&null===e.scaling&&(t.scaling=(0,d.default)(o.scaling)),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var h=e.arrows.toLowerCase();t.arrows.to.enabled=-1!=h.indexOf("to"),t.arrows.middle.enabled=-1!=h.indexOf("middle"),t.arrows.from.enabled=-1!=h.indexOf("from")}else{if("object"!==(0,a.default)(e.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+(0,s.default)(e.arrows));f.mergeOptions(t.arrows,e.arrows,"to",o.arrows),f.mergeOptions(t.arrows,e.arrows,"middle",o.arrows),f.mergeOptions(t.arrows,e.arrows,"from",o.arrows)}else!0===i&&null===e.arrows&&(t.arrows=(0,d.default)(o.arrows));if(void 0!==e.color&&null!==e.color){var l=e.color,u=t.color;if(n)f.deepExtend(u,o.color,!1,i);else for(var c in u)u.hasOwnProperty(c)&&delete u[c];if(f.isString(u))u.color=u,u.highlight=u,u.hover=u,u.inherit=!1,void 0===l.opacity&&(u.opacity=1);else{var p=!1;void 0!==l.color&&(u.color=l.color,p=!0),void 0!==l.highlight&&(u.highlight=l.highlight,p=!0),void 0!==l.hover&&(u.hover=l.hover,p=!0),void 0!==l.inherit&&(u.inherit=l.inherit),void 0!==l.opacity&&(u.opacity=Math.min(1,Math.max(0,l.opacity))),!0===p?u.inherit=!1:void 0===u.inherit&&(u.inherit="from")}}else!0===i&&null===e.color&&(t.color=f.bridgeObject(o.color));!0===i&&null===e.font&&(t.font=f.bridgeObject(o.font))}}]),t}();e.default=w},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(118),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_findBorderPositionBezier",value:function(t,e){var i,o,n,s,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),h=0,d=0,l=1,u=this.to,c=!1;for(t.id===this.from.id&&(u=this.from,c=!0);d<=l&&h<10;){var p=.5*(d+l);if(i=this.getPoint(p,a),o=Math.atan2(u.y-i.y,u.x-i.x),n=u.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-u.x,2)+Math.pow(i.y-u.y,2)),r=n-s,Math.abs(r)<.2)break;r<0?!1===c?d=p:l=p:!1===c?l=p:d=p,h++}return i.t=p,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=t,f=e;for(d=1;d<10;d++)l=.1*d,u=Math.pow(1-l,2)*t+2*l*(1-l)*r.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*e+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(p,f,u,c,n,s),a=h1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;ae.shape.boundingBox.left&&(s=e.shape.boundingBox.left),re.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;ae.x&&(s=e.x),re.y&&(o=e.y),nh;)o(a,i=e[h++])&&(~s(d,i)||d.push(i));return d}},function(t,e,i){var o=i(22),n=i(34),s=i(56)("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=n(t),o(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},function(t,e,i){var o=i(51),n=i(13)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=r(e=Object(t),n))?i:s?o(e):"Object"==(a=o(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,i){var o=i(17),n=i(7),s=i(29);t.exports=function(t,e){var i=(n.Object||{})[t]||Object[t],r={};r[t]=e(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(t,e,i){var o=i(84),n=i(58).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return o(t,n)}},function(t,e,i){var o=i(43),n=i(41),s=i(25),r=i(53),a=i(22),h=i(81),d=Object.getOwnPropertyDescriptor;e.f=i(19)?d:function(t,e){if(t=s(t),e=r(e,!0),h)try{return d(t,e)}catch(t){}if(a(t,e))return n(!o.f.call(t,e),t[e])}},function(t,e,i){t.exports={default:i(162),__esModule:!0}},function(t,e,i){function o(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=o},function(t,e,i){function o(t,e){if(void 0===t)throw new Error("No container element defined");if(this.container=t,this.visible=!e||void 0==e.visible||e.visible,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var i=this;this.frame.slide.onmousedown=function(t){i._onMouseDown(t)},this.frame.prev.onclick=function(t){i.prev(t)},this.frame.play.onclick=function(t){i.togglePlay(t)},this.frame.next.onclick=function(t){i.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var n=i(2);o.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(tthis.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;return t/(this.values.length-1)*e+3},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e,i){function o(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}o.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.prototype.setRange=function(t,e,i,o){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(i))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t||0,this._end=e||0,this.setStep(i,o)},o.prototype.setStep=function(t,e){void 0===t||t<=0||(void 0!==e&&(this.prettyStep=e),!0===this.prettyStep?this._step=o.calculatePrettyStep(t):this._step=t)},o.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),s<=0&&(s=1),s},o.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},o.prototype.getStep=function(){return this._step},o.prototype.start=function(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()this._end},t.exports=o},function(t,e,i){function o(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function n(t){return void 0===t||""===t||"string"!=typeof t?t:t.charAt(0).toUpperCase()+t.slice(1)}function s(t,e){return void 0===t||""===t?e:t+n(e)}function r(t,e,i,o){for(var n,r,a=0;ar&&(t=o(t)*r),i(e)>r&&(e=o(e)*r),this.cameraOffset.x=t,this.cameraOffset.y=e,this.calculateCameraOrientation()},o.prototype.getOffset=function(){return this.cameraOffset},o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={} +;return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.setOffset(this.cameraOffset.x,this.cameraOffset.y),this.calculateCameraOrientation())},o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal;var t=this.cameraRotation.x,e=this.cameraRotation.z,i=this.cameraOffset.x,o=this.cameraOffset.y,n=Math.sin,s=Math.cos;this.cameraLocation.x=this.cameraLocation.x+i*s(e)+o*-n(e)*s(t),this.cameraLocation.y=this.cameraLocation.y+i*n(e)+o*s(e)*s(t),this.cameraLocation.z=this.cameraLocation.z+o*n(t)},t.exports=o},function(t,e,i){function o(t,e,i){this.dataGroup=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=t.getDistinctValues(this.column),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(12);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){if(void 0!==this.index)return this.values[this.index]},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.dataGroup.getDataSet(),{filter:function(t){return t[i.column]==i.value}}).get();e=this.dataGroup._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0){var n=i.groupsData.getDataSet();n.get().forEach(function(t){if(t.nestedGroups){0!=t.showNested&&(t.showNested=!0);var e=[];t.nestedGroups.forEach(function(i){var o=n.get(i);o&&(o.nestedInGroup=t.id,0==t.showNested&&(o.visible=!1),e=e.concat(o))}),n.update(e,o)}})}},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.popup=null,this.touchParams={},this.groupTouchParams={},this._create(),this.setOptions(e)}var s=i(30),r=o(s),a=i(6),h=o(a),d=i(10),l=i(2),u=i(11),c=i(12),p=i(66),f=i(16),m=i(68),v=i(69),g=i(101),y=i(102),b=i(70),_=i(103),w=i(104).default,x="__ungrouped__",k="__background__";n.prototype=new f,n.types={background:_,box:g,range:b,point:y},n.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var n=document.createElement("div");n.className="vis-labelset",this.dom.labelSet=n,this._updateUngrouped();var s=new v(k,null,this);s.show(),this.groups[k]=s,this.hammer=new d(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:d.DIRECTION_HORIZONTAL}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.options.rtl?this.groupHammer=new d(this.body.dom.rightContainer):this.groupHammer=new d(this.body.dom.leftContainer),this.groupHammer.on("tap",this._onGroupClick.bind(this)),this.groupHammer.on("panstart",this._onGroupDragStart.bind(this)),this.groupHammer.on("panmove",this._onGroupDrag.bind(this)),this.groupHammer.on("panend",this._onGroupDragEnd.bind(this)),this.groupHammer.get("pan").set({threshold:5,direction:d.DIRECTION_VERTICAL}),this.body.dom.centerContainer.addEventListener("mouseover",this._onMouseOver.bind(this)),this.body.dom.centerContainer.addEventListener("mouseout",this._onMouseOut.bind(this)),this.body.dom.centerContainer.addEventListener("mousemove",this._onMouseMove.bind(this)),this.body.dom.centerContainer.addEventListener("contextmenu",this._onDragEnd.bind(this)),this.body.dom.centerContainer.addEventListener("mousewheel",this._onMouseWheel.bind(this)),this.show()},n.prototype.setOptions=function(t){if(t){var e=["type","rtl","align","order","stack","stackSubgroups","selectable","multiselect","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","visibleFrameTemplate","hide","snap","groupOrderSwap","showTooltips","tooltip","tooltipOnItemUpdateTime"];l.selectiveExtend(e,this.options,t),"itemsAlwaysDraggable"in t&&("boolean"==typeof t.itemsAlwaysDraggable?(this.options.itemsAlwaysDraggable.item=t.itemsAlwaysDraggable,this.options.itemsAlwaysDraggable.range=!1):"object"===(0,h.default)(t.itemsAlwaysDraggable)&&(l.selectiveExtend(["item","range"],this.options.itemsAlwaysDraggable,t.itemsAlwaysDraggable),this.options.itemsAlwaysDraggable.item||(this.options.itemsAlwaysDraggable.range=!1))),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"===(0,h.default)(t.orientation)&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"===(0,h.default)(t.margin)&&(l.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"===(0,h.default)(t.margin.item)&&l.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable,this.options.editable.overrideItems=!1):"object"===(0,h.default)(t.editable)&&l.selectiveExtend(["updateTime","updateGroup","add","remove","overrideItems"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"===(0,h.default)(t.groupEditable)&&l.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));["onDropObjectOnItem","onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this)),this.markDirty()}},n.prototype.markDirty=function(t){this.groupIds=[],t&&t.refreshItems&&l.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},n.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},n.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},n.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||(this.options.rtl?this.body.dom.right.appendChild(this.dom.labelSet):this.body.dom.left.appendChild(this.dom.labelSet))},n.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;et&&o.push(h.id):h.lefte&&o.push(h.id)}return o},n.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;i0){for(var w={},x=0;x<_;x++)l.forEach(b,function(t,e){w[e]=t[x]()});l.forEach(this.groups,function(t,e){if(e!==k){var i=w[e];s=i||s,g+=t.height}}),g=Math.max(g,y)}return g=Math.max(g,y),r.style.height=i(g),this.props.width=r.offsetWidth,this.props.height=g,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right="0":this.dom.axis.style.left="0",this.initialItemSetDrawn=!0,s=this._isResized()||s},n.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t];return this.groups[e]||this.groups[x]||null},n.prototype._updateUngrouped=function(){var t,e,i=this.groups[x];if(this.groupsData){if(i){i.hide(),delete this.groups[x];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){i=new m(null,null,this),this.groups[x]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},n.prototype.getLabelSet=function(){return this.dom.labelSet},n.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof u||t instanceof c))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(l.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;l.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}this.body.emitter.emit("_change",{queue:!0})},n.prototype.getItems=function(){return this.itemsData},n.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(l.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof u||t instanceof c))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.groupsData;this.groupsData instanceof c&&(o=this.groupsData.getDataSet()),o.get().forEach(function(t){t.nestedGroups&&t.nestedGroups.forEach(function(e){var i=o.get(e);i.nestedInGroup=t.id,0==t.showNested&&(i.visible=!1),o.update(i)})});var n=this.id;l.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,n)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype.getGroups=function(){return this.groupsData},n.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},n.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},n.prototype._getGroupId=function(t){return"background"==this._getType(t)&&void 0==t.group?k:this.groupsData?t.group:x},n.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,o=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=o?e._getType(o):null,a=n.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,o):(i=s.selected,e._removeItem(s),s=null)),!s&&o){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(o,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onAdd=n.prototype._onUpdate,n.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.body.emitter.emit("_change",{queue:!0}))},n.prototype._order=function(){l.forEach(this.groups,function(t){t.order()})},n.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},n.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==x||t==k)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=(0,r.default)(e.options);l.extend(n,{height:null}),o=new m(t,i,e),e.groups[t]=o;for(var s in e.items)if(e.items.hasOwnProperty(s)){var a=e.items[s];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder});t=this._orderNestedGroups(t);var e=!l.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},n.prototype._orderNestedGroups=function(t){var e=[];return t.forEach(function(t){var i=this.groupsData.get(t);if(i.nestedInGroup||e.push(t),i.nestedGroups){var o=this.groupsData.get({filter:function(e){return e.nestedInGroup==t},order:this.options.groupOrder}),n=o.map(function(t){return t.id});e=e.concat(n)}},this),e},n.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i?i&&i.data&&i.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1,i&&i.add(t)},n.prototype._updateItem=function(t,e){t.setData(e);var i=this._getGroupId(t.data),o=this.groups[i];o?o&&o.data&&o.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1},n.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},n.prototype._constructByEndArray=function(t){for(var e=[],i=0;in)return}}if(i&&i!=this.groupTouchParams.group){var a=e.get(i.groupId),h=e.get(this.groupTouchParams.group.groupId);h&&a&&(this.options.groupOrderSwap(h,a,e),e.update(h),e.update(a));var d=e.getIds({order:this.options.groupOrder});if(!l.equalArray(d,this.groupTouchParams.originalOrder))for(var u=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,f=Math.min(u.length,d.length),m=0,v=0,g=0;m=f)break;if(d[m+v]==p)v=1;else if(u[m+g]==p)g=1;else{var y=d.indexOf(u[m+g]),b=e.get(d[m+v]),_=e.get(u[m+g]);this.options.groupOrderSwap(b,_,e),e.update(b),e.update(_);var w=d[m+v];d[m+v]=u[m+g],d[y]=w,m++}}}}},n.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=l.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!l.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,r=Math.min(s.length,n.length),a=0;a=r)break;var h=n.indexOf(s[a]),d=o.get(n[a]),u=o.get(s[a]);e.options.groupOrderSwap(d,u,o),o.update(d),o.update(u);var c=n[a];n[a]=s[a],n[h]=c,a++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},n.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},n.prototype._onMouseOver=function(t){var e=this.itemFromTarget(t);if(e){if(e!==this.itemFromRelatedTarget(t)){var i=e.getTitle();if(this.options.showTooltips&&i){null==this.popup&&(this.popup=new w(this.body.dom.root,this.options.tooltip.overflowMethod||"flip")),this.popup.setText(i);var o=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(o)+o.offsetLeft,t.clientY-l.getAbsoluteTop(o)+o.offsetTop),this.popup.show()}else null!=this.popup&&this.popup.hide();this.body.emitter.emit("itemover",{item:e.id,event:t})}}},n.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);if(e){e!==this.itemFromRelatedTarget(t)&&(null!=this.popup&&this.popup.hide(),this.body.emitter.emit("itemout",{item:e.id,event:t}))}},n.prototype._onMouseMove=function(t){if(this.itemFromTarget(t)&&this.options.showTooltips&&this.options.tooltip.followMouse&&this.popup&&!this.popup.hidden){var e=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(e)+e.offsetLeft,t.clientY-l.getAbsoluteTop(e)+e.offsetTop),this.popup.show()}},n.prototype._onMouseWheel=function(t){this.touchParams.itemIsDragging&&this._onDragEnd(t)},n.prototype._onUpdateItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this;if(t){var i=e.itemsData.get(t.id);this.options.onUpdate(i,function(t){t&&e.itemsData.getDataSet().update(t)})}}},n.prototype._onDropObjectOnItem=function(t){var e=this.itemFromTarget(t),i=JSON.parse(t.dataTransfer.getData("text"));this.options.onDropObjectOnItem(i,e)},n.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e,i,o=this,n=this.options.snap||null;this.options.rtl?(e=l.getAbsoluteRight(this.dom.frame),i=e-t.center.x):(e=l.getAbsoluteLeft(this.dom.frame),i=t.center.x-e);var s,r,a=this.body.util.toTime(i),h=this.body.util.getScale(),d=this.body.util.getStep();"drop"==t.type?(r=JSON.parse(t.dataTransfer.getData("text")),r.content=r.content?r.content:"new item",r.start=r.start?r.start:n?n(a,h,d):a,r.type=r.type||"box",r[this.itemsData._fieldId]=r.id||l.randomUUID(),"range"!=r.type||r.end||(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s)):(r={start:n?n(a,h,d):a,content:"new item"},r[this.itemsData._fieldId]=l.randomUUID(),"range"===this.options.type&&(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s)) +;var u=this.groupFromTarget(t);u&&(r.group=u.groupId),r=this._cloneItemData(r),this.options.onAdd(r,function(e){e&&(o.itemsData.getDataSet().add(e),"drop"==t.type&&o.setSelection([e.id]))})}},n.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[];if((t.srcEvent&&t.srcEvent.shiftKey||!1)&&this.options.multiselect){var o=this.itemsData.get(e.id).group,s=void 0;this.options.multiselectPerGroup&&i.length>0&&(s=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=s&&s!=o||i.push(e.id);var r=n._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||s==o){i=[];for(var a in this.items)if(this.items.hasOwnProperty(a)){var h=this.items[a],d=h.data.start,l=void 0!==h.data.end?h.data.end:d;!(d>=r.min&&l<=r.max)||this.options.multiselectPerGroup&&s!=this.itemsData.get(h.id).group||h instanceof _||i.push(h.id)}}}else{var u=i.indexOf(e.id);-1==u?i.push(e.id):i.splice(u,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},n._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},n.prototype.itemFromElement=function(t){for(var e=t;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},n.prototype.itemFromTarget=function(t){return this.itemFromElement(t.target)},n.prototype.itemFromRelatedTarget=function(t){return this.itemFromElement(t.relatedTarget)},n.prototype.groupFromTarget=function(t){var e=t.center?t.center.y:t.clientY,i=this.groupIds;i.length<=0&&this.groupsData&&(i=this.groupsData.getIds({order:this.options.groupOrder}));for(var o=0;oa&&ea)return s}else if(0===o&&es&&(s=r.top+r.height)}while(a)}}o.height=s-o.top+.5*i.item.vertical},e.nostack=function(t,i,o,n){for(var s=0;so[r].index&&e.collisionByTimes(o[n],o[r])){s=o[r];break}null!=s&&(o[n].top=s.top+s.height)}while(s)}for(var a=0;ao[h].index&&(o[r].top+=o[h].height);for(var d=t[r],l=0;le.right&&t.top-i.vertical+.001e.top:t.left-i.horizontal+.001e.left&&t.top-i.vertical+.001e.top},e.collisionByTimes=function(t,e){return t.start<=e.start&&t.end>=e.start&&t.tope.top||e.start<=t.start&&e.end>=t.start&&e.topt.top}},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(39);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=this.options.align,i=this.width*t.getMillisecondsPerPixel();return"right"==e?this.data.start.getTime()>t.start&&this.data.start.getTime()-it.start&&this.data.start.getTime()t.start&&this.data.start.getTime()-i/2t.start&&this.data.startt.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.background;if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var t=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");this.dom.box.className=this.baseClassName+t}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.content).overflow,{content:{width:this.dom.content.offsetWidth}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=0,this.dirty=!1},o.prototype._repaintDomAdditionals=function(){},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e,i=this.options.orientation.item;if(void 0!==this.data.subgroup){var o=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[o].height+"px",this.dom.box.style.top="top"==i?this.parent.top+this.parent.subgroups[o].top+"px":this.parent.top+this.parent.height-this.parent.subgroups[o].top-this.parent.subgroups[o].height+"px",this.dom.box.style.bottom=""}else this.parent instanceof s?(e=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom="bottom"==i?"0":"",this.dom.box.style.top="top"==i?"0":""):(e=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=e+"px"},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i){(0,s.default)(this,t),this.container=e,this.overflowMethod=i||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}return(0,a.default)(t,[{key:"setPosition",value:function(t,e){this.x=parseInt(t),this.y=parseInt(e)}},{key:"setText",value:function(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=t}},{key:"show",value:function(t){if(void 0===t&&(t=!0),!0===t){var e=this.frame.clientHeight,i=this.frame.clientWidth,o=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,s=0,r=0;if("flip"==this.overflowMethod){var a=!1,h=!0;this.y-en-this.padding&&(a=!0),s=a?this.x-i:this.x,r=h?this.y-e:this.y}else r=this.y-e,r+e+this.padding>o&&(r=o-e-this.padding),rn&&(s=n-i-this.padding),s0){var r={};for(this._getRelevantData(s,r,o,n),this._applySampling(s,r),e=0;e0)switch(t.options.style){case"line":d.hasOwnProperty(s[e])||(d[s[e]]=m.calcPath(r[s[e]],t)),m.draw(d[s[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||v.draw(r[s[e]],t,this.framework)}}}return a.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,t[a].y=0==o?t[a].orginalY+r.y:t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(t,e,i,o){var n,s,a,h;if(t.length>0)for(s=0;s0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;l0){for(s=0;s0&&(n=this.groups[t[s]],!0===r.stack&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(o):h=h.concat(o):i[t[s]]=n.getYRange(o,t[s]));f.getStackedYRange(a,i,t,"__barStackLeft","left"),f.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=di?i:h,l=l=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),!0===t.master&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var r=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(r=this.props.titleCharHeight);var h=!0===this.options.icons?Math.max(this.options.iconWidth,r)+this.options.labelOffsetX+15:r+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-h&&!0===this.options.visible?(this.width=this.maxLabelSize+h,this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+h),this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),e=!1),e},o.prototype.convertValue=function(t){return this.scale.convertValue(t)},o.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},o.prototype._redrawLabel=function(t,e,i,o,n){var s=a.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=e,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>h.magnitudefactor*h.minorSteps[h.minorStepIdx]*.5?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}o.prototype.setCharHeight=function(t){this.majorCharHeight=t},o.prototype.setHeight=function(t){this.containerHeight=t},o.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;i<0&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(!0===n)break}},o.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])==0},o.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},o.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},o.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},o.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},o.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&ue.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(t){this.zeroPosition=t},o.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];r.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),r.mergeOptions(this.options,t,"interpolation"),r.mergeOptions(this.options,t,"drawPoints"),r.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==(0,s.default)(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible||t.visible,this.style=t.style,this.setOptions(t.options)},o.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){i={svg:document.createElementNS("http://www.w3.org/2000/svg","svg"),svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":h.drawIcon(this,o,n,t,e,i);break;case"points":case"point":d.drawIcon(this,o,n,t,e,i);break;case"bar":a.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=t0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){return 1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var u={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,u,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o,n=e;if(i)for(o=t.length-2;o>0;o--)n+=t[o][0]+","+t[o][1]+" ";else for(o=1;o0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+c*n.screen_x+_*s.screen_x)*f,screen_y:(-b*o.screen_y+c*n.screen_y+_*s.screen_y)*f},h={screen_x:(y*n.screen_x+p*s.screen_x-b*r.screen_x)*m,screen_y:(y*n.screen_y+p*s.screen_y-b*r.screen_y)*m},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;i");this.dom.textArea.innerHTML=r,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=(0,s.default)(this.groups);t.sort(function(t,e){return t=0;i--){var a=s[i];a.nodes||(a.nodes=[]),-1===a.nodes.indexOf(n)&&a.nodes.push(n)}e.attr&&(n.attr=h(n.attr,e.attr))}function u(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=h({},t.edge);e.attr=h(i,e.attr)}}function c(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=h({},t.edge)),s.attr=h(s.attr||{},n),s}function p(){for(F=I.NULL,L="";" "===z||"\t"===z||"\n"===z||"\r"===z;)s();do{var t=!1;if("#"===z){for(var e=A-1;" "===R.charAt(e)||"\t"===R.charAt(e);)e--;if("\n"===R.charAt(e)||""===R.charAt(e)){for(;""!=z&&"\n"!=z;)s();t=!0}}if("/"===z&&"/"===r()){for(;""!=z&&"\n"!=z;)s();t=!0}if("/"===z&&"*"===r()){for(;""!=z;){if("*"===z&&"/"===r()){s(),s();break}s()}t=!0}for(;" "===z||"\t"===z||"\n"===z||"\r"===z;)s()}while(t);if(""===z)return void(F=I.DELIMITER);var i=z+r();if(N[i])return F=I.DELIMITER,L=i,s(),void s();if(N[z])return F=I.DELIMITER,L=z,void s();if(a(z)||"-"===z){for(L+=z,s();a(z);)L+=z,s();return"false"===L?L=!1:"true"===L?L=!0:isNaN(Number(L))||(L=Number(L)),void(F=I.IDENTIFIER)}if('"'===z){for(s();""!=z&&('"'!=z||'"'===z&&'"'===r());)'"'===z?(L+=z,s()):"\\"===z&&"n"===r()?(L+="\n",s()):L+=z,s();if('"'!=z)throw x('End of string " expected');return s(),void(F=I.IDENTIFIER)}for(F=I.UNKNOWN;""!=z;)L+=z,s();throw new SyntaxError('Syntax error in part "'+k(L,30)+'"')}function f(){var t={};if(n(),p(),"strict"===L&&(t.strict=!0,p()),"graph"!==L&&"digraph"!==L||(t.type=L,p()),F===I.IDENTIFIER&&(t.id=L,p()),"{"!=L)throw x("Angle bracket { expected");if(p(),m(t),"}"!=L)throw x("Angle bracket } expected");if(p(),""!==L)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==L&&"}"!=L;)v(t),";"===L&&p()}function v(t){var e=g(t);if(e)return void _(t,e);if(!y(t)){if(F!=I.IDENTIFIER)throw x("Identifier expected");var i=L;if(p(),"="===L){if(p(),F!=I.IDENTIFIER)throw x("Identifier expected");t[i]=L,p()}else b(t,i)}}function g(t){var e=null;if("subgraph"===L&&(e={},e.type="subgraph",p(),F===I.IDENTIFIER&&(e.id=L,p())),"{"===L){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=L)throw x("Angle bracket } expected");p(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function y(t){return"node"===L?(p(),t.node=w(),"node"):"edge"===L?(p(),t.edge=w(),"edge"):"graph"===L?(p(),t.graph=w(),"graph"):null}function b(t,e){var i={id:e},o=w();o&&(i.attr=o),l(t,i),_(t,e)}function _(t,e){for(;"->"===L||"--"===L;){var i,o=L;p();var n=g(t);if(n)i=n;else{if(F!=I.IDENTIFIER)throw x("Identifier or subgraph expected");i=L,l(t,{id:i}),p()}u(t,c(t,e,i,o,w())),e=i}}function w(){for(var t=null,e={dashed:!0,solid:!1,dotted:[1,5]};"["===L;){for(p(),t={};""!==L&&"]"!=L;){if(F!=I.IDENTIFIER)throw x("Attribute name expected");var i=L;if(p(),"="!=L)throw x("Equal sign = expected");if(p(),F!=I.IDENTIFIER)throw x("Attribute value expected");var o=L;"style"===i&&(o=e[o]),d(t,i,o),p(),","==L&&p()}if("]"!=L)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+k(L,30)+'" (char '+A+")")}function k(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function S(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function D(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r":!0,"--":!0},R="",A=0,z="",L="",F=I.NULL,B=/[a-zA-Z_0-9.:#]/;e.parseDOT=o,e.DOTToGraph=C},function(t,e,i){function o(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;a2&&void 0!==arguments[2]&&arguments[2];(0,d.default)(this,t),this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=o}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(this.elementOptions=t,this.initFontOptions(t.font),p.isValidLabel(t.label)?this.labelDirty=!0:t.label="",void 0!==t.font&&null!==t.font)if("string"==typeof t.font)this.baseSize=this.fontOptions.size;else if("object"===(0,a.default)(t.font)){var e=t.font.size;void 0!==e&&(this.baseSize=e)}}},{key:"initFontOptions",value:function(e){var i=this;if(c.forEach(m,function(t){i.fontOptions[t]={}}),t.parseFontString(this.fontOptions,e))return void(this.fontOptions.vadjust=0);c.forEach(e,function(t,e){void 0!==t&&null!==t&&"object"!==(void 0===t?"undefined":(0,a.default)(t))&&(i.fontOptions[e]=t)})}},{key:"constrain",value:function(t){var e={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=c.topMost(t,"widthConstraint");if("number"==typeof i)e.maxWdt=Number(i),e.minWdt=Number(i);else if("object"===(void 0===i?"undefined":(0,a.default)(i))){var o=c.topMost(t,["widthConstraint","maximum"]);"number"==typeof o&&(e.maxWdt=Number(o));var n=c.topMost(t,["widthConstraint","minimum"]);"number"==typeof n&&(e.minWdt=Number(n))}var s=c.topMost(t,"heightConstraint");if("number"==typeof s)e.minHgt=Number(s);else if("object"===(void 0===s?"undefined":(0,a.default)(s))){var r=c.topMost(t,["heightConstraint","minimum"]);"number"==typeof r&&(e.minHgt=Number(r));var h=c.topMost(t,["heightConstraint","valign"]);"string"==typeof h&&("top"!==h&&"bottom"!==h||(e.valign=h))}return e}},{key:"update",value:function(t,e){this.setOptions(t,!0),this.propagateFonts(e),c.deepExtend(this.fontOptions,this.constrain(e)),this.fontOptions.chooser=p.choosify("label",e)}},{key:"adjustSizes",value:function(t){var e=t?t.right+t.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=e,this.fontOptions.minWdt-=e);var i=t?t.top+t.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}},{key:"addFontOptionsToPile",value:function(t,e){for(var i=0;i5&&void 0!==arguments[5]?arguments[5]:"middle";if(void 0!==this.elementOptions.label){var r=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&r=this.elementOptions.scaling.label.maxVisible&&(r=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(t,o,n,e,i,s),this._drawBackground(t),this._drawText(t,e,this.size.yLine,s,r))}}},{key:"_drawBackground",value:function(t){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){t.fillStyle=this.fontOptions.background;var e=this.getSize();t.fillRect(e.left,e.top,e.width,e.height)}}},{key:"_drawText",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"middle",n=arguments[4],r=this._setAlignment(t,e,i,o),a=(0,s.default)(r,2);e=a[0],i=a[1],t.textAlign="left",e-=this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&("top"===this.fontOptions.valign&&(i-=(this.size.height-this.size.labelHeight)/2),"bottom"===this.fontOptions.valign&&(i+=(this.size.height-this.size.labelHeight)/2));for(var h=0;h0&&(t.lineWidth=c.strokeWidth,t.strokeStyle=v,t.lineJoin="round"),t.fillStyle=m,c.strokeWidth>0&&t.strokeText(c.text,e+l,i+c.vadjust),t.fillText(c.text,e+l,i+c.vadjust),l+=c.width}i+=d.height}}}},{key:"_setAlignment",value:function(t,e,i,o){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&!1===this.pointToSelf){e=0,i=0;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=4):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=4):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t,e,i){var o=t||"#000000",n=i||"#ffffff";if(e<=this.elementOptions.scaling.label.drawThreshold){var s=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-e)));o=c.overrideOpacity(o,s),n=c.overrideOpacity(n,s)}return[o,n]}},{key:"getTextSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this._processLabel(t,e,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:"getSize",value:function(){var t=this.size.left,e=this.size.top-1;if(this.isEdgeLabel){var i=.5*-this.size.width;switch(this.fontOptions.align){case"middle":t=i,e=.5*-this.size.height;break;case"top":t=i,e=-(this.size.height+2);break;case"bottom":t=i,e=2}}return{left:t,top:e,width:this.size.width,height:this.size.height}}},{key:"calculateLabelSize",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"middle";this._processLabel(t,e,i),this.size.left=o-.5*this.size.width,this.size.top=n-.5*this.size.height,this.size.yLine=n+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===s&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}},{key:"getFormattingValues",value:function(t,e,i,o){var n=function(t,e,i){return"normal"===e?"mod"===i?"":t[i]:void 0!==t[e][i]?t[e][i]:t[i]},s={color:n(this.fontOptions,o,"color"),size:n(this.fontOptions,o,"size"),face:n(this.fontOptions,o,"face"),mod:n(this.fontOptions,o,"mod"),vadjust:n(this.fontOptions,o,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(e||i)&&("normal"===o&&!0===this.fontOptions.chooser&&this.elementOptions.labelHighlightBold?s.mod="bold":"function"==typeof this.fontOptions.chooser&&this.fontOptions.chooser(s,this.elementOptions.id,e,i));var r="";return void 0!==s.mod&&""!==s.mod&&(r+=s.mod+" "),r+=s.size+"px "+s.face,t.font=r.replace(/"/g,""),s.font=t.font,s.height=s.size,s}},{key:"differentState",value:function(t,e){return t!==this.selectedState||e!==this.hoverState}},{key:"_processLabelText",value:function(t,e,i,o){return new f(t,this,e,i).process(o)}},{key:"_processLabel",value:function(t,e,i){if(!1!==this.labelDirty||this.differentState(e,i)){var o=this._processLabelText(t,e,i,this.elementOptions.label);this.fontOptions.minWdt>0&&o.width0&&o.heighto.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=0,d=this.options.selfReferenceSize,l=void 0,u=void 0,c=void 0,p=void 0,f=void 0,m=.5*(s+r);s<=r&&h<10&&(m=.5*(s+r),l=this._pointOnCircle(o,n,d,m),u=Math.atan2(t.y-l.y,t.x-l.x),c=t.distanceToBorder(e,u),p=Math.sqrt(Math.pow(l.x-t.x,2)+Math.pow(l.y-t.y,2)),f=c-p,!(Math.abs(f)<.05));)f>0?a>0?s=m:r=m:a>0?r=m:s=m,h++;return l.t=m,l}},{key:"getLineWidth",value:function(t,e){return!0===t?Math.max(this.selectionWidth,.3/this.body.view.scale):!0===e?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t,e,i,o){if(!1!==e.inheritsColor){if("both"===e.inheritsColor&&this.from.id!==this.to.id){var n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,r=void 0;return s=this.from.options.color.highlight.border,r=this.to.options.color.highlight.border,!1===this.from.selected&&!1===this.to.selected?(s=l.overrideOpacity(this.from.options.color.border,e.opacity), +r=l.overrideOpacity(this.to.options.color.border,e.opacity)):!0===this.from.selected&&!1===this.to.selected?r=this.to.options.color.border:!1===this.from.selected&&!0===this.to.selected&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,r),n}return"to"===e.inheritsColor?l.overrideOpacity(this.to.options.color.border,e.opacity):l.overrideOpacity(this.from.options.color.border,e.opacity)}return l.overrideOpacity(e.color,e.opacity)}},{key:"_circle",value:function(t,e,i,o,n){this.enableShadow(t,e),t.beginPath(),t.arc(i,o,n,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t,e)}},{key:"getDistanceToEdge",value:function(t,e,i,o,n,r,a,h){var d=0;if(this.from!=this.to)d=this._getDistanceToEdge(t,e,i,o,n,r,a);else{var l=this._getCircleData(void 0),u=(0,s.default)(l,3),c=u[0],p=u[1],f=u[2],m=c-n,v=p-r;d=Math.abs(Math.sqrt(m*m+v*v)-f)}return d}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:d<0&&(d=0);var l=t+d*r,u=e+d*a,c=l-n,p=u-s;return Math.sqrt(c*c+p*p)}},{key:"getArrowData",value:function(t,e,i,o,n,r){var a=void 0,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=r.width;if("from"===e?(d=this.from,l=this.to,u=.1,c=r.fromArrowScale,p=r.fromArrowType):"to"===e?(d=this.to,l=this.from,u=-.1,c=r.toArrowScale,p=r.toArrowType):(d=this.to,l=this.from,c=r.middleArrowScale,p=r.middleArrowType),d!=l)if("middle"!==e)if(!0===this.options.smooth.enabled){h=this.findBorderPosition(d,t,{via:i});var m=this.getPoint(Math.max(0,Math.min(1,h.t+u)),i);a=Math.atan2(h.y-m.y,h.x-m.x)}else a=Math.atan2(d.y-l.y,d.x-l.x),h=this.findBorderPosition(d,t);else a=Math.atan2(d.y-l.y,d.x-l.x),h=this.getPoint(.5,i);else{var v=this._getCircleData(t),g=(0,s.default)(v,3),y=g[0],b=g[1],_=g[2];"from"===e?(h=this.findBorderPosition(this.from,t,{x:y,y:b,low:.25,high:.6,direction:-1}),a=-2*h.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(h=this.findBorderPosition(this.from,t,{x:y,y:b,low:.6,high:1,direction:1}),a=-2*h.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(h=this._pointOnCircle(y,b,_,.175),a=3.9269908169872414)}"middle"===e&&c<0&&(f*=-1);var w=15*c+3*f;return{point:h,core:{x:h.x-.9*w*Math.cos(a),y:h.y-.9*w*Math.sin(a)},angle:a,length:w,type:p}}},{key:"drawArrowHead",value:function(t,e,i,o,n){t.strokeStyle=this.getColor(t,e,i,o),t.fillStyle=t.strokeStyle,t.lineWidth=e.width,u.draw(t,n),this.enableShadow(t,e),t.fill(),this.disableShadow(t,e)}},{key:"enableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor=e.shadowColor,t.shadowBlur=e.shadowSize,t.shadowOffsetX=e.shadowX,t.shadowOffsetY=e.shadowY)}},{key:"disableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(4),a=o(r),h=i(5),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"transform",value:function(t,e){t instanceof Array||(t=[t]);for(var i=e.point.x,o=e.point.y,n=e.angle,s=e.length,r=0;r0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;s0&&this._getForceContributions(n.root,t)}}},{key:"_getForceContributions",value:function(t,e){this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?this._getForceContributions(t,e):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t)}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1,e=t),this.overlapAvoidanceFactor<1&&o.shape.radius&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;h0&&(lr&&(r=l),ua&&(a=u))}var c=Math.abs(r-n)-Math.abs(a-s);c>0?(s-=.5*c,a+=.5*c):(n+=.5*c,r-=.5*c);var p=Math.max(1e-5,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var y=0;y0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.centerOfMass,o=t.mass+e.options.mass,n=1/o;i.x=i.x*t.mass+e.x*e.options.mass,i.x*=n,i.y=i.y*t.mass+e.y*e.options.mass,i.y*=n,t.mass=o;var s=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?o.maxY>e.y?"NW":"SW":o.maxY>e.y?"NE":"SE",this._placeInRegion(t,e,n)}},{key:"_placeInRegion",value:function(t,e,i){var o=t.children[i];switch(o.childrenCount){case 0:o.children.data=e,o.childrenCount=1,this._updateBranchMass(o,e);break;case 1:o.children.data.x===e.x&&o.children.data.y===e.y?(e.x+=this.seededRandom(),e.y+=this.seededRandom()):(this._splitBranch(o),this._placeInTree(o,e));break;case 4:this._placeInTree(o,e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e.default=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.physicsBody=i,this.setOptions(o)}return(0,a.default)(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t=void 0,e=void 0,i=void 0,o=void 0,n=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=0;a=t.length?(this._t=void 0,n(1)):"keys"==e?n(0,i):"values"==e?n(0,t[i]):n(0,[i,t[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){var o=i(54),n=i(41),s=i(59),r={};i(26)(r,i(13)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=o(r,{next:n(1,i)}),s(t,e+" Iterator")}},function(t,e,i){var o=i(21),n=i(27),s=i(33);t.exports=i(19)?Object.defineProperties:function(t,e){n(t);for(var i,r=s(e),a=r.length,h=0;a>h;)o.f(t,i=r[h++],e[i]);return t}},function(t,e,i){var o=i(25),n=i(132),s=i(133);t.exports=function(t){return function(e,i,r){var a,h=o(e),d=n(h.length),l=s(r,d);if(t&&i!=i){for(;d>l;)if((a=h[l++])!=a)return!0}else for(;d>l;l++)if((t||l in h)&&h[l]===i)return t||l||0;return!t&&-1}}},function(t,e,i){var o=i(55),n=Math.min;t.exports=function(t){return t>0?n(o(t),9007199254740991):0}},function(t,e,i){var o=i(55),n=Math.max,s=Math.min;t.exports=function(t,e){return t=o(t),t<0?n(t+e,0):s(t,e)}},function(t,e,i){var o=i(18).document;t.exports=o&&o.documentElement},function(t,e,i){var o=i(55),n=i(52);t.exports=function(t){return function(e,i){var s,r,a=String(n(e)),h=o(i),d=a.length;return h<0||h>=d?t?"":void 0:(s=a.charCodeAt(h),s<55296||s>56319||h+1===d||(r=a.charCodeAt(h+1))<56320||r>57343?t?a.charAt(h):s:t?a.slice(h,h+2):r-56320+(s-55296<<10)+65536)}}},function(t,e,i){var o=i(27),n=i(137);t.exports=i(7).getIterator=function(t){var e=n(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return o(e.call(t))}},function(t,e,i){var o=i(86),n=i(13)("iterator"),s=i(32);t.exports=i(7).getIteratorMethod=function(t){if(void 0!=t)return t[n]||t["@@iterator"]||s[o(t)]}},function(t,e,i){i(139);var o=i(7).Object;t.exports=function(t,e){return o.create(t,e)}},function(t,e,i){var o=i(17);o(o.S,"Object",{create:i(54)})},function(t,e,i){i(141),t.exports=i(7).Object.keys},function(t,e,i){var o=i(34),n=i(33);i(87)("keys",function(){return function(t){return n(o(t))}})},function(t,e,i){t.exports={default:i(143),__esModule:!0}},function(t,e,i){i(60),i(50),t.exports=i(61).f("iterator")},function(t,e,i){t.exports={default:i(145),__esModule:!0}},function(t,e,i){i(146),i(151),i(152),i(153),t.exports=i(7).Symbol},function(t,e,i){var o=i(18),n=i(22),s=i(19),r=i(17),a=i(83),h=i(147).KEY,d=i(29),l=i(57),u=i(59),c=i(42),p=i(13),f=i(61),m=i(62),v=i(148),g=i(149),y=i(27),b=i(28),_=i(34),w=i(25),x=i(53),k=i(41),S=i(54),D=i(150),M=i(89),C=i(63),O=i(21),E=i(33),T=M.f,P=O.f,I=D.f,N=o.Symbol,R=o.JSON,A=R&&R.stringify,z=p("_hidden"),L=p("toPrimitive"),F={}.propertyIsEnumerable,B=l("symbol-registry"),j=l("symbols"),H=l("op-symbols"),W=Object.prototype,Y="function"==typeof N&&!!C.f,G=o.QObject,V=!G||!G.prototype||!G.prototype.findChild,U=s&&d(function(){return 7!=S(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(t,e,i){var o=T(W,e);o&&delete W[e],P(t,e,i),o&&t!==W&&P(W,e,o)}:P,q=function(t){var e=j[t]=S(N.prototype);return e._k=t,e},X=Y&&"symbol"==typeof N.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof N},Z=function(t,e,i){return t===W&&Z(H,e,i),y(t),e=x(e,!0),y(i),n(j,e)?(i.enumerable?(n(t,z)&&t[z][e]&&(t[z][e]=!1),i=S(i,{enumerable:k(0,!1)})):(n(t,z)||P(t,z,k(1,{})),t[z][e]=!0),U(t,e,i)):P(t,e,i)},K=function(t,e){y(t);for(var i,o=v(e=w(e)),n=0,s=o.length;s>n;)Z(t,i=o[n++],e[i]);return t},J=function(t,e){return void 0===e?S(t):K(S(t),e)},Q=function(t){var e=F.call(this,t=x(t,!0));return!(this===W&&n(j,t)&&!n(H,t))&&(!(e||!n(this,t)||!n(j,t)||n(this,z)&&this[z][t])||e)},$=function(t,e){if(t=w(t),e=x(e,!0),t!==W||!n(j,e)||n(H,e)){var i=T(t,e);return!i||!n(j,e)||n(t,z)&&t[z][e]||(i.enumerable=!0),i}},tt=function(t){for(var e,i=I(w(t)),o=[],s=0;i.length>s;)n(j,e=i[s++])||e==z||e==h||o.push(e);return o},et=function(t){for(var e,i=t===W,o=I(i?H:w(t)),s=[],r=0;o.length>r;)!n(j,e=o[r++])||i&&!n(W,e)||s.push(j[e]);return s};Y||(N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var t=c(arguments.length>0?arguments[0]:void 0),e=function(i){this===W&&e.call(H,i),n(this,z)&&n(this[z],t)&&(this[z][t]=!1),U(this,t,k(1,i))};return s&&V&&U(W,t,{configurable:!0,set:e}),q(t)},a(N.prototype,"toString",function(){return this._k}),M.f=$,O.f=Z,i(88).f=D.f=tt,i(43).f=Q,C.f=et,s&&!i(40)&&a(W,"propertyIsEnumerable",Q,!0),f.f=function(t){return q(p(t))}),r(r.G+r.W+r.F*!Y,{Symbol:N});for(var it="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ot=0;it.length>ot;)p(it[ot++]);for(var nt=E(p.store),st=0;nt.length>st;)m(nt[st++]);r(r.S+r.F*!Y,"Symbol",{for:function(t){return n(B,t+="")?B[t]:B[t]=N(t)},keyFor:function(t){if(!X(t))throw TypeError(t+" is not a symbol!");for(var e in B)if(B[e]===t)return e},useSetter:function(){V=!0},useSimple:function(){V=!1}}),r(r.S+r.F*!Y,"Object",{create:J,defineProperty:Z,defineProperties:K,getOwnPropertyDescriptor:$,getOwnPropertyNames:tt,getOwnPropertySymbols:et});var rt=d(function(){C.f(1)});r(r.S+r.F*rt,"Object",{getOwnPropertySymbols:function(t){return C.f(_(t))}}),R&&r(r.S+r.F*(!Y||d(function(){var t=N();return"[null]"!=A([t])||"{}"!=A({a:t})||"{}"!=A(Object(t))})),"JSON",{stringify:function(t){for(var e,i,o=[t],n=1;arguments.length>n;)o.push(arguments[n++]);if(i=e=o[1],(b(e)||void 0!==t)&&!X(t))return g(e)||(e=function(t,e){if("function"==typeof i&&(e=i.call(this,t,e)),!X(e))return e}),o[1]=e,A.apply(R,o)}}),N.prototype[L]||i(26)(N.prototype,L,N.prototype.valueOf),u(N,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(t,e,i){var o=i(42)("meta"),n=i(28),s=i(22),r=i(21).f,a=0,h=Object.isExtensible||function(){return!0},d=!i(29)(function(){return h(Object.preventExtensions({}))}),l=function(t){r(t,o,{value:{i:"O"+ ++a,w:{}}})},u=function(t,e){if(!n(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!s(t,o)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[o].i},c=function(t,e){if(!s(t,o)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[o].w},p=function(t){return d&&f.NEED&&h(t)&&!s(t,o)&&l(t),t},f=t.exports={KEY:o,NEED:!1,fastKey:u,getWeak:c,onFreeze:p}},function(t,e,i){var o=i(33),n=i(63),s=i(43);t.exports=function(t){var e=o(t),i=n.f;if(i)for(var r,a=i(t),h=s.f,d=0;a.length>d;)h.call(t,r=a[d++])&&e.push(r);return e}},function(t,e,i){var o=i(51);t.exports=Array.isArray||function(t){return"Array"==o(t)}},function(t,e,i){var o=i(25),n=i(88).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return n(t)}catch(t){return r.slice()}};t.exports.f=function(t){return r&&"[object Window]"==s.call(t)?a(t):n(o(t))}},function(t,e){},function(t,e,i){i(62)("asyncIterator")},function(t,e,i){i(62)("observable")},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(0,function(){function e(){return Po.apply(null,arguments)}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function n(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function s(t){return void 0===t}function r(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function a(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function h(t,e){var i,o=[];for(i=0;i0)for(i=0;i0?"future":"past"];return D(i)?i(e):i.replace(/%s/i,e)}function A(t,e){var i=t.toLowerCase();Ho[i]=Ho[i+"s"]=Ho[e]=t}function z(t){return"string"==typeof t?Ho[t]||Ho[t.toLowerCase()]:void 0}function L(t){var e,i,o={};for(i in t)d(t,i)&&(e=z(i))&&(o[e]=t[i]);return o}function F(t,e){Wo[t]=e}function B(t){var e=[];for(var i in t)e.push({unit:i,priority:Wo[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function j(t,e,i){var o=""+Math.abs(t),n=e-o.length;return(t>=0?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function H(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Uo[t]=n),e&&(Uo[e[0]]=function(){return j(n.apply(this,arguments),e[1],e[2])}),i&&(Uo[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function W(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function Y(t){var e,i,o=t.match(Yo);for(e=0,i=o.length;e=0&&Go.test(t);)t=t.replace(Go,i),Go.lastIndex=0,o-=1;return t}function U(t,e,i){un[t]=D(e)?e:function(t,o){return t&&i?i:e}}function q(t,e){return d(un,t)?un[t](e._strict,e._locale):new RegExp(X(t))}function X(t){return Z(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function Z(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function K(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),r(e)&&(o=function(t,i){i[e]=_(t)}),i=0;i=0?(a=new Date(t+400,e,i,o,n,s,r),isFinite(a.getFullYear())&&a.setFullYear(t)):a=new Date(t,e,i,o,n,s,r),a}function _t(t){var e;if(t<100&&t>=0){var i=Array.prototype.slice.call(arguments);i[0]=t+400,e=new Date(Date.UTC.apply(null,i)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function wt(t,e,i){var o=7+e-i;return-(7+_t(t,0,o).getUTCDay()-e)%7+o-1}function xt(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return d<=0?(s=t-1,r=$(s)+d):d>$(t)?(s=t+1,r=d-$(t)):(s=t,r=d),{year:s,dayOfYear:r}}function kt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return r<1?(n=t.year()-1,o=r+St(n,e,i)):r>St(t.year(),e,i)?(o=r-St(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function St(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return($(t)-o+n)/7}function Dt(t){return kt(t,this._week.dow,this._week.doy).week}function Mt(){return this._week.dow}function Ct(){return this._week.doy}function Ot(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Et(t){var e=kt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Tt(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function It(t,e){return t.slice(e,7).concat(t.slice(0,e))}function Nt(t,e){var o=i(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?It(o,this._week.dow):t?o[t.day()]:o}function Rt(t){return!0===t?It(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort}function At(t){return!0===t?It(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin}function zt(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=u([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=xn.call(this._weekdaysParse,r),-1!==n?n:null):"ddd"===e?(n=xn.call(this._shortWeekdaysParse,r),-1!==n?n:null):(n=xn.call(this._minWeekdaysParse,r),-1!==n?n:null):"dddd"===e?-1!==(n=xn.call(this._weekdaysParse,r))?n:-1!==(n=xn.call(this._shortWeekdaysParse,r))?n:(n=xn.call(this._minWeekdaysParse,r),-1!==n?n:null):"ddd"===e?-1!==(n=xn.call(this._shortWeekdaysParse,r))?n:-1!==(n=xn.call(this._weekdaysParse,r))?n:(n=xn.call(this._minWeekdaysParse,r),-1!==n?n:null):-1!==(n=xn.call(this._minWeekdaysParse,r))?n:-1!==(n=xn.call(this._weekdaysParse,r))?n:(n=xn.call(this._shortWeekdaysParse,r),-1!==n?n:null)}function Lt(t,e,i){var o,n,s;if(this._weekdaysParseExact)return zt.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=u([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function Ft(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Tt(t,this.localeData()),this.add(t-e,"d")):e}function Bt(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function jt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function Ht(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Gt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Nn),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Wt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Gt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Rn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Yt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Gt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=An),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Gt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=u([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=Z(a[e]),h[e]=Z(h[e]),d[e]=Z(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Vt(){return this.hours()%12||12}function Ut(){return this.hours()||24}function qt(t,e){H(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Xt(t,e){return e._meridiemParse}function Zt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Kt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Jt(t){return t?t.toLowerCase().replace("_","-"):t}function Qt(t){for(var e,i,o,n,s=0;s0;){if(o=$t(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&w(n,i,!0)>=e-1)break;e--}s++}return zn}function $t(e){var i=null;if(!jn[e]&&void 0!==t&&t&&t.exports)try{i=zn._abbr;!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),te(i)}catch(t){}return jn[e]}function te(t,e){var i;return t&&(i=s(e)?oe(t):ee(t,e),i?zn=i:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),zn._abbr}function ee(t,e){if(null!==e){var i,o=Bn;if(e.abbr=t,null!=jn[t])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),o=jn[t]._config;else if(null!=e.parentLocale)if(null!=jn[e.parentLocale])o=jn[e.parentLocale]._config;else{if(null==(i=$t(e.parentLocale)))return Hn[e.parentLocale]||(Hn[e.parentLocale]=[]),Hn[e.parentLocale].push({name:t,config:e}),null;o=i._config}return jn[t]=new O(C(o,e)),Hn[t]&&Hn[t].forEach(function(t){ee(t.name,t.config)}),te(t),jn[t]}return delete jn[t],null}function ie(t,e){if(null!=e){var i,o,n=Bn;o=$t(t),null!=o&&(n=o._config),e=C(n,e),i=new O(e),i.parentLocale=jn[t],jn[t]=i,te(t)}else null!=jn[t]&&(null!=jn[t].parentLocale?jn[t]=jn[t].parentLocale:null!=jn[t]&&delete jn[t]);return jn[t]}function oe(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return zn;if(!i(t)){if(e=$t(t))return e;t=[t]}return Qt(t)}function ne(){return zo(jn)}function se(t){var e,i=t._a;return i&&-2===p(t).overflow&&(e=i[fn]<0||i[fn]>11?fn:i[mn]<1||i[mn]>ht(i[pn],i[fn])?mn:i[vn]<0||i[vn]>24||24===i[vn]&&(0!==i[gn]||0!==i[yn]||0!==i[bn])?vn:i[gn]<0||i[gn]>59?gn:i[yn]<0||i[yn]>59?yn:i[bn]<0||i[bn]>999?bn:-1,p(t)._overflowDayOfYear&&(emn)&&(e=mn),p(t)._overflowWeeks&&-1===e&&(e=_n),p(t)._overflowWeekday&&-1===e&&(e=wn),p(t).overflow=e),t}function re(t,e,i){return null!=t?t:null!=e?e:i}function ae(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function he(t){var e,i,o,n,s,r=[];if(!t._d){for(o=ae(t),t._w&&null==t._a[mn]&&null==t._a[fn]&&de(t),null!=t._dayOfYear&&(s=re(t._a[pn],o[pn]),(t._dayOfYear>$(s)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),i=_t(s,0,t._dayOfYear),t._a[fn]=i.getUTCMonth(),t._a[mn]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=r[e]=o[e];for(;e<7;e++)t._a[e]=r[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[vn]&&0===t._a[gn]&&0===t._a[yn]&&0===t._a[bn]&&(t._nextDay=!0,t._a[vn]=0),t._d=(t._useUTC?_t:bt).apply(null,r),n=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[vn]=24),t._w&&void 0!==t._w.d&&t._w.d!==n&&(p(t).weekdayMismatch=!0)}}function de(t){var e,i,o,n,s,r,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)s=1,r=4,i=re(e.GG,t._a[pn],kt(Me(),1,4).year),o=re(e.W,1),((n=re(e.E,1))<1||n>7)&&(h=!0);else{s=t._locale._week.dow,r=t._locale._week.doy;var d=kt(Me(),s,r);i=re(e.gg,t._a[pn],d.year),o=re(e.w,d.week),null!=e.d?((n=e.d)<0||n>6)&&(h=!0):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s}o<1||o>St(i,s,r)?p(t)._overflowWeeks=!0:null!=h?p(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[pn]=a.year,t._dayOfYear=a.dayOfYear)}function le(t){var e,i,o,n,s,r,a=t._i,h=Wn.exec(a)||Yn.exec(a);if(h){for(p(t).iso=!0,e=0,i=Vn.length;e0&&p(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Uo[s]?(o?p(t).empty=!1:p(t).unusedTokens.push(s),Q(s,o,t)):t._strict&&!o&&p(t).unusedTokens.push(s);p(t).charsLeftOver=h-d,a.length>0&&p(t).unusedInput.push(a),t._a[vn]<=12&&!0===p(t).bigHour&&t._a[vn]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[vn]=be(t._locale,t._a[vn],t._meridiem),he(t),se(t)}function be(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function _e(t){var e,i,o,n,s;if(0===t._f.length)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function qe(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=ke(t),t._a){var e=t._isUTC?u(t._a):Me(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Xe(){return!!this.isValid()&&!this._isUTC}function Ze(){return!!this.isValid()&&this._isUTC}function Ke(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Je(t,e){var i,o,n,s=t,a=null;return Re(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:r(t)?(s={},e?s[e]=t:s.milliseconds=t):(a=es.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:_(a[mn])*i,h:_(a[vn])*i,m:_(a[gn])*i,s:_(a[yn])*i,ms:_(Ae(1e3*a[bn]))*i}):(a=is.exec(t))?(i="-"===a[1]?-1:1,s={y:Qe(a[2],i),M:Qe(a[3],i),w:Qe(a[4],i),d:Qe(a[5],i),h:Qe(a[6],i),m:Qe(a[7],i),s:Qe(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=ti(Me(s.from),Me(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Ne(s),Re(t)&&d(t,"_locale")&&(o._locale=t._locale),o}function Qe(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function $e(t,e){var i={};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function ti(t,e){var i;return t.isValid()&&e.isValid()?(e=Fe(e,t),t.isBefore(e)?i=$e(t,e):(i=$e(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ei(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(S(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Je(i,o),ii(this,n,t),this}}function ii(t,i,o,n){var s=i._milliseconds,r=Ae(i._days),a=Ae(i._months);t.isValid()&&(n=null==n||n,a&&pt(t,ot(t,"Month")+a*o),r&&nt(t,"Date",ot(t,"Date")+r*o),s&&t._d.setTime(t._d.valueOf()+s*o),n&&e.updateOffset(t,r||a))}function oi(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function ni(t,i){var o=t||Me(),n=Fe(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(D(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,Me(o)))}function si(){return new g(this)}function ri(t,e){var i=y(t)?t:Me(t);return!(!this.isValid()||!i.isValid())&&(e=z(e)||"millisecond","millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()9999?G(i,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):D(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",G(i,"Z")):G(i,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function vi(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(i+o+"-MM-DD[T]HH:mm:ss.SSS"+n)}function gi(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=G(this,t);return this.localeData().postformat(i)}function yi(t,e){return this.isValid()&&(y(t)&&t.isValid()||Me(t).isValid())?Je({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function bi(t){return this.from(Me(),t)}function _i(t,e){return this.isValid()&&(y(t)&&t.isValid()||Me(t).isValid())?Je({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function wi(t){return this.to(Me(),t)}function xi(t){var e;return void 0===t?this._locale._abbr:(e=oe(t),null!=e&&(this._locale=e),this)}function ki(){return this._locale}function Si(t,e){return(t%e+e)%e}function Di(t,e,i){return t<100&&t>=0?new Date(t+400,e,i)-ds:new Date(t,e,i).valueOf()}function Mi(t,e,i){return t<100&&t>=0?Date.UTC(t+400,e,i)-ds:Date.UTC(t,e,i)}function Ci(t){var i;if(void 0===(t=z(t))||"millisecond"===t||!this.isValid())return this;var o=this._isUTC?Mi:Di;switch(t){case"year":i=o(this.year(),0,1);break;case"quarter":i=o(this.year(),this.month()-this.month()%3,1);break;case"month":i=o(this.year(),this.month(),1);break;case"week":i=o(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":i=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":i=o(this.year(),this.month(),this.date());break;case"hour":i=this._d.valueOf(),i-=Si(i+(this._isUTC?0:this.utcOffset()*as),hs);break;case"minute":i=this._d.valueOf(),i-=Si(i,as);break;case"second":i=this._d.valueOf(),i-=Si(i,rs)}return this._d.setTime(i),e.updateOffset(this,!0),this}function Oi(t){var i;if(void 0===(t=z(t))||"millisecond"===t||!this.isValid())return this;var o=this._isUTC?Mi:Di;switch(t){case"year":i=o(this.year()+1,0,1)-1;break;case"quarter":i=o(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":i=o(this.year(),this.month()+1,1)-1;break;case"week":i=o(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":i=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":i=o(this.year(),this.month(),this.date()+1)-1;break;case"hour":i=this._d.valueOf(),i+=hs-Si(i+(this._isUTC?0:this.utcOffset()*as),hs)-1;break;case"minute":i=this._d.valueOf(),i+=as-Si(i,as)-1;break;case"second":i=this._d.valueOf(),i+=rs-Si(i,rs)-1}return this._d.setTime(i),e.updateOffset(this,!0),this}function Ei(){return this._d.valueOf()-6e4*(this._offset||0)}function Ti(){return Math.floor(this.valueOf()/1e3)}function Pi(){return new Date(this.valueOf())}function Ii(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Ni(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Ri(){return this.isValid()?this.toISOString():null}function Ai(){return f(this)}function zi(){return l({},p(this))}function Li(){return p(this).overflow}function Fi(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Bi(t,e){H(0,[t,t.length],0,e)}function ji(t){ +return Gi.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Hi(t){return Gi.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Wi(){return St(this.year(),1,4)}function Yi(){var t=this.localeData()._week;return St(this.year(),t.dow,t.doy)}function Gi(t,e,i,o,n){var s;return null==t?kt(this,o,n).year:(s=St(t,o,n),e>s&&(e=s),Vi.call(this,t,e,i,o,n))}function Vi(t,e,i,o,n){var s=xt(t,e,i,o,n),r=_t(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Ui(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function qi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Xi(t,e){e[bn]=_(1e3*("0."+t))}function Zi(){return this._isUTC?"UTC":""}function Ki(){return this._isUTC?"Coordinated Universal Time":""}function Ji(t){return Me(1e3*t)}function Qi(){return Me.apply(null,arguments).parseZone()}function $i(t){return t}function to(t,e,i,o){var n=oe(),s=u().set(o,e);return n[i](s,t)}function eo(t,e,i){if(r(t)&&(e=t,t=void 0),t=t||"",null!=e)return to(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=to(t,o,i,"month");return n}function io(t,e,i,o){"boolean"==typeof t?(r(e)&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,r(e)&&(i=e,e=void 0),e=e||"");var n=oe(),s=t?n._week.dow:0;if(null!=i)return to(e,(i+s)%7,o,"day");var a,h=[];for(a=0;a<7;a++)h[a]=to(e,(a+s)%7,o,"day");return h}function oo(t,e){return eo(t,e,"months")}function no(t,e){return eo(t,e,"monthsShort")}function so(t,e,i){return io(t,e,i,"weekdays")}function ro(t,e,i){return io(t,e,i,"weekdaysShort")}function ao(t,e,i){return io(t,e,i,"weekdaysMin")}function ho(){var t=this._data;return this._milliseconds=gs(this._milliseconds),this._days=gs(this._days),this._months=gs(this._months),t.milliseconds=gs(t.milliseconds),t.seconds=gs(t.seconds),t.minutes=gs(t.minutes),t.hours=gs(t.hours),t.months=gs(t.months),t.years=gs(t.years),this}function lo(t,e,i,o){var n=Je(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function uo(t,e){return lo(this,t,e,1)}function co(t,e){return lo(this,t,e,-1)}function po(t){return t<0?Math.floor(t):Math.ceil(t)}function fo(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*po(vo(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=b(s/1e3),h.seconds=t%60,e=b(t/60),h.minutes=e%60,i=b(e/60),h.hours=i%24,r+=b(i/24),n=b(mo(r)),a+=n,r-=po(vo(n)),o=b(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function mo(t){return 4800*t/146097}function vo(t){return 146097*t/4800}function go(t){if(!this.isValid())return NaN;var e,i,o=this._milliseconds;if("month"===(t=z(t))||"quarter"===t||"year"===t)switch(e=this._days+o/864e5,i=this._months+mo(e),t){case"month":return i;case"quarter":return i/3;case"year":return i/12}else switch(e=this._days+Math.round(vo(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function yo(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN}function bo(t){return function(){return this.as(t)}}function _o(){return Je(this)}function wo(t){return t=z(t),this.isValid()?this[t+"s"]():NaN}function xo(t){return function(){return this.isValid()?this._data[t]:NaN}}function ko(){return b(this.days()/7)}function So(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function Do(t,e,i){var o=Je(t).abs(),n=Rs(o.as("s")),s=Rs(o.as("m")),r=Rs(o.as("h")),a=Rs(o.as("d")),h=Rs(o.as("M")),d=Rs(o.as("y")),l=n<=As.ss&&["s",n]||n0,l[4]=i,So.apply(null,l)}function Mo(t){return void 0===t?Rs:"function"==typeof t&&(Rs=t,!0)}function Co(t,e){return void 0!==As[t]&&(void 0===e?As[t]:(As[t]=e,"s"===t&&(As.ss=e-1),!0))}function Oo(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=Do(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Eo(t){return(t>0)-(t<0)||+t}function To(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i,o=zs(this._milliseconds)/1e3,n=zs(this._days),s=zs(this._months);t=b(o/60),e=b(t/60),o%=60,t%=60,i=b(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o?o.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var p=c<0?"-":"",f=Eo(this._months)!==Eo(c)?"-":"",m=Eo(this._days)!==Eo(c)?"-":"",v=Eo(this._milliseconds)!==Eo(c)?"-":"";return p+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(h?m+h+"D":"")+(d||l||u?"T":"")+(d?v+d+"H":"")+(l?v+l+"M":"")+(u?v+u+"S":"")}var Po,Io;Io=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o68?1900:2e3)};var xn,kn=it("FullYear",!0);xn=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;ethis?this:t:m()}),Qn=function(){return Date.now?Date.now():+new Date},$n=["year","quarter","month","week","day","hour","minute","second","millisecond"];ze("Z",":"),ze("ZZ",""),U("Z",hn),U("ZZ",hn),K(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Le(hn,t)});var ts=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var es=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,is=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Je.fn=Ne.prototype,Je.invalid=Ie;var os=ei(1,"add"),ns=ei(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ss=k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)}),rs=1e3,as=60*rs,hs=60*as,ds=3506328*hs;H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Bi("gggg","weekYear"),Bi("ggggg","weekYear"),Bi("GGGG","isoWeekYear"),Bi("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),F("weekYear",1),F("isoWeekYear",1),U("G",rn),U("g",rn),U("GG",Qo,Xo),U("gg",Qo,Xo),U("GGGG",on,Ko),U("gggg",on,Ko),U("GGGGG",nn,Jo),U("ggggg",nn,Jo),J(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=_(t)}),J(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),H("Q",0,"Qo","quarter"),A("quarter","Q"),F("quarter",7),U("Q",qo),K("Q",function(t,e){e[fn]=3*(_(t)-1)}),H("D",["DD",2],"Do","date"),A("date","D"),F("date",9),U("D",Qo),U("DD",Qo,Xo),U("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),K(["D","DD"],mn),K("Do",function(t,e){e[mn]=_(t.match(Qo)[0])});var ls=it("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),F("dayOfYear",4),U("DDD",en),U("DDDD",Zo),K(["DDD","DDDD"],function(t,e,i){i._dayOfYear=_(t)}),H("m",["mm",2],0,"minute"),A("minute","m"),F("minute",14),U("m",Qo),U("mm",Qo,Xo),K(["m","mm"],gn);var us=it("Minutes",!1);H("s",["ss",2],0,"second"),A("second","s"),F("second",15),U("s",Qo),U("ss",Qo,Xo),K(["s","ss"],yn);var cs=it("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),A("millisecond","ms"),F("millisecond",16),U("S",en,qo),U("SS",en,Xo),U("SSS",en,Zo);var ps;for(ps="SSSS";ps.length<=9;ps+="S")U(ps,sn);for(ps="S";ps.length<=9;ps+="S")K(ps,Xi);var fs=it("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var ms=g.prototype;ms.add=os,ms.calendar=ni,ms.clone=si,ms.diff=ci,ms.endOf=Oi,ms.format=gi,ms.from=yi,ms.fromNow=bi,ms.to=_i,ms.toNow=wi,ms.get=st,ms.invalidAt=Li,ms.isAfter=ri,ms.isBefore=ai,ms.isBetween=hi,ms.isSame=di,ms.isSameOrAfter=li,ms.isSameOrBefore=ui,ms.isValid=Ai,ms.lang=ss,ms.locale=xi,ms.localeData=ki,ms.max=Jn,ms.min=Kn,ms.parsingFlags=zi,ms.set=rt,ms.startOf=Ci,ms.subtract=ns,ms.toArray=Ii,ms.toObject=Ni,ms.toDate=Pi,ms.toISOString=mi,ms.inspect=vi,ms.toJSON=Ri,ms.toString=fi,ms.unix=Ti,ms.valueOf=Ei,ms.creationData=Fi,ms.year=kn,ms.isLeapYear=et,ms.weekYear=ji,ms.isoWeekYear=Hi,ms.quarter=ms.quarters=Ui,ms.month=ft,ms.daysInMonth=mt,ms.week=ms.weeks=Ot,ms.isoWeek=ms.isoWeeks=Et,ms.weeksInYear=Yi,ms.isoWeeksInYear=Wi,ms.date=ls,ms.day=ms.days=Ft,ms.weekday=Bt,ms.isoWeekday=jt,ms.dayOfYear=qi,ms.hour=ms.hours=Fn,ms.minute=ms.minutes=us,ms.second=ms.seconds=cs,ms.millisecond=ms.milliseconds=fs,ms.utcOffset=je,ms.utc=We,ms.local=Ye,ms.parseZone=Ge,ms.hasAlignedHourOffset=Ve,ms.isDST=Ue,ms.isLocal=Xe,ms.isUtcOffset=Ze,ms.isUtc=Ke,ms.isUTC=Ke,ms.zoneAbbr=Zi,ms.zoneName=Ki,ms.dates=k("dates accessor is deprecated. Use date instead.",ls),ms.months=k("months accessor is deprecated. Use month instead",ft),ms.years=k("years accessor is deprecated. Use year instead",kn),ms.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",He),ms.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",qe);var vs=O.prototype;vs.calendar=E,vs.longDateFormat=T,vs.invalidDate=P,vs.ordinal=I,vs.preparse=$i,vs.postformat=$i,vs.relativeTime=N,vs.pastFuture=R,vs.set=M,vs.months=dt,vs.monthsShort=lt,vs.monthsParse=ct,vs.monthsRegex=gt,vs.monthsShortRegex=vt,vs.week=Dt,vs.firstDayOfYear=Ct,vs.firstDayOfWeek=Mt,vs.weekdays=Nt,vs.weekdaysMin=At,vs.weekdaysShort=Rt,vs.weekdaysParse=Lt,vs.weekdaysRegex=Ht,vs.weekdaysShortRegex=Wt,vs.weekdaysMinRegex=Yt,vs.isPM=Zt,vs.meridiem=Kt,te("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),e.lang=k("moment.lang is deprecated. Use moment.locale instead.",te),e.langData=k("moment.langData is deprecated. Use moment.localeData instead.",oe);var gs=Math.abs,ys=bo("ms"),bs=bo("s"),_s=bo("m"),ws=bo("h"),xs=bo("d"),ks=bo("w"),Ss=bo("M"),Ds=bo("Q"),Ms=bo("y"),Cs=xo("milliseconds"),Os=xo("seconds"),Es=xo("minutes"),Ts=xo("hours"),Ps=xo("days"),Is=xo("months"),Ns=xo("years"),Rs=Math.round,As={ss:44,s:45,m:45,h:22,d:26,M:11},zs=Math.abs,Ls=Ne.prototype;return Ls.isValid=Pe,Ls.abs=ho,Ls.add=uo,Ls.subtract=co,Ls.as=go,Ls.asMilliseconds=ys,Ls.asSeconds=bs,Ls.asMinutes=_s,Ls.asHours=ws,Ls.asDays=xs,Ls.asWeeks=ks,Ls.asMonths=Ss,Ls.asQuarters=Ds,Ls.asYears=Ms,Ls.valueOf=yo,Ls._bubble=fo,Ls.clone=_o,Ls.get=wo,Ls.milliseconds=Cs,Ls.seconds=Os,Ls.minutes=Es,Ls.hours=Ts,Ls.days=Ps,Ls.weeks=ko,Ls.months=Is,Ls.years=Ns,Ls.humanize=Oo,Ls.toISOString=To,Ls.toString=To,Ls.toJSON=To,Ls.locale=xi,Ls.localeData=ki,Ls.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",To),Ls.lang=ss,H("X",0,0,"unix"),H("x",0,0,"valueOf"),U("x",rn),U("X",dn),K("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),K("x",function(t,e,i){i._d=new Date(_(t))}),e.version="2.24.0",function(t){Po=t}(Me),e.fn=ms,e.min=Oe,e.max=Ee,e.now=Qn,e.utc=u,e.unix=Ji,e.months=oo,e.isDate=a,e.locale=te,e.invalid=m,e.duration=Je,e.isMoment=y,e.weekdays=so,e.parseZone=Qi,e.localeData=oe,e.isDuration=Re,e.monthsShort=no,e.weekdaysMin=ao,e.defineLocale=ee,e.updateLocale=ie,e.locales=ne,e.weekdaysShort=ro,e.normalizeUnits=z,e.relativeTimeRounding=Mo,e.relativeTimeThreshold=Co,e.calendarFormat=oi,e.prototype=ms,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},e})}).call(e,i(155)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=156},function(t,e,i){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){n<16&&(e[o+n++]=u[t])});n<16;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=t.node||f,p=0;p<6;p++)s[n+p]=c[p];return e||o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;a<16;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:void 0!==e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;c<256;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,i(158))},function(t,e){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(44),e.Graph3d=i(161),e.graph3d={Camera:i(95),Filter:i(96),Point2d:i(91),Point3d:i(35),Slider:i(92),StepNumber:i(93)},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(36)},function(t,e,i){var o=i(7),n=o.JSON||(o.JSON={stringify:JSON.stringify});t.exports=function(t){return n.stringify.apply(n,arguments)}},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.dataGroup=new _,this.dataPoints=null,this.create(),f.setDefaults(o.DEFAULTS,this),this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.setOptions(i),this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(90),a=function(t){return t&&t.__esModule?t:{default:t}}(r),h=i(45),d=i(2),l=i(35),u=i(91),c=i(92),p=i(93),f=i(94),m=i(15).default,v=i(15),g=v.printStyle,y=i(172),b=y.allOptions,_=i(173);o.STYLE=f.STYLE;o.DEFAULTS={width:"400px",height:"400px",filterLabel:"time",legendLabel:"value",xLabel:"x",yLabel:"y",zLabel:"z",xValueLabel:function(t){return t},yValueLabel:function(t){return t},zValueLabel:function(t){return t},showXAxis:!0,showYAxis:!0,showZAxis:!0,showGrid:!0,showPerspective:!0,showShadow:!1,keepAspectRatio:!0,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:void 0,animationInterval:1e3,animationPreload:!1,animationAutoStart:void 0,axisColor:"#4D4D4D",gridColor:"#D3D3D3",xCenter:"55%",yCenter:"50%",style:o.STYLE.DOT,tooltip:!1,tooltipStyle:{content:{padding:"10px",border:"1px solid #4d4d4d",color:"#1a1a1a",background:"rgba(255,255,255,0.7)",borderRadius:"2px",boxShadow:"5px 5px 10px rgba(128,128,128,0.5)"},line:{height:"40px",width:"0",borderLeft:"1px solid #4d4d4d"},dot:{height:"0",width:"0",border:"5px solid #4d4d4d",borderRadius:"5px"}},dataColor:{fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:void 0,backgroundColor:void 0,xBarWidth:void 0,yBarWidth:void 0,valueMin:void 0,valueMax:void 0,xMin:void 0,xMax:void 0,xStep:void 0,yMin:void 0,yMax:void 0,yStep:void 0,zMin:void 0,zMax:void 0,zStep:void 0},h(o.prototype),o.prototype._setScale=function(){this.scale=new l(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range()),this.keepAspectRatio&&(this.scale.x0&&(r[n-1].pointNext=r[n]);return r},o.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t),this.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,i=function(t){e._onMouseDown(t)},o=function(t){e._onTouchStart(t)},n=function(t){e._onWheel(t)},s=function(t){e._onTooltip(t)},r=function(t){e._onClick(t)};d.addEventListener(this.frame.canvas,"mousedown",i),d.addEventListener(this.frame.canvas,"touchstart",o),d.addEventListener(this.frame.canvas,"mousewheel",n),d.addEventListener(this.frame.canvas,"mousemove",s),d.addEventListener(this.frame.canvas,"click",r),this.containerElement.appendChild(this.frame)},o.prototype._setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},o.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},o.prototype.animationStart=function(){if(this.animationAutoStart&&this.dataGroup.dataFilter){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()}},o.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},o.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},o.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},o.prototype._readData=function(t){this.dataPoints=this.dataGroup.initializeData(this,t,this.style),this._initializeRanges(),this._redrawFilter()},o.prototype.setData=function(t){void 0!==t&&null!==t&&(this._readData(t),this.redraw(),this.animationStart())},o.prototype.setOptions=function(t){if(void 0!==t){!0===m.validate(t,b)&&console.log("%cErrors have been found in the supplied options object.",g),this.animationStop(),f.setOptions(t,this),this.setPointDrawingMethod(),this._setSize(this.width,this.height),this.setData(this.dataGroup.getDataTable()),this.animationStart()}},o.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case o.STYLE.BAR:t=o.prototype._redrawBarGraphPoint;break;case o.STYLE.BARCOLOR:t=o.prototype._redrawBarColorGraphPoint;break;case o.STYLE.BARSIZE:t=o.prototype._redrawBarSizeGraphPoint;break;case o.STYLE.DOT:t=o.prototype._redrawDotGraphPoint;break;case o.STYLE.DOTLINE:t=o.prototype._redrawDotLineGraphPoint;break;case o.STYLE.DOTCOLOR:t=o.prototype._redrawDotColorGraphPoint;break;case o.STYLE.DOTSIZE:t=o.prototype._redrawDotSizeGraphPoint;break;case o.STYLE.SURFACE:t=o.prototype._redrawSurfaceGraphPoint;break;case o.STYLE.GRID:t=o.prototype._redrawGridGraphPoint;break;case o.STYLE.LINE:t=o.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},o.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(), +this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},o.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},o.prototype._redrawClear=function(){var t=this.frame.canvas;t.getContext("2d").clearRect(0,0,t.width,t.height)},o.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},o.prototype._getLegendWidth=function(){var t;if(this.style===o.STYLE.DOTSIZE){t=this._dotSize()*this.dotSizeMaxFraction}else t=this.style===o.STYLE.BARSIZE?this.xBarWidth:20;return t},o.prototype._redrawLegend=function(){if(!0===this.showLegend&&this.style!==o.STYLE.LINE&&this.style!==o.STYLE.BARSIZE){var t=this.style===o.STYLE.BARSIZE||this.style===o.STYLE.DOTSIZE,e=this.style===o.STYLE.DOTSIZE||this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.BARCOLOR,i=Math.max(.25*this.frame.clientHeight,100),n=this.margin,s=this._getLegendWidth(),r=this.frame.clientWidth-this.margin,a=r-s,h=n+i,d=this._getContext();if(d.lineWidth=1,d.font="14px arial",!1===t){var l,c=i;for(l=0;l0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelY=function(t,e,i,o,n){void 0===n&&(n=0);var s=this._convert3Dto2D(e);Math.cos(2*o)<0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelZ=function(t,e,i,o){void 0===o&&(o=0);var n=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(i,n.x-o,n.y)},o.prototype._line3d=function(t,e,i,o){var n=this._convert3Dto2D(e),s=this._convert3Dto2D(i);this._line(t,n,s,o)},o.prototype._redrawAxis=function(){var t,e,i,o,n,s,r,a,h,d,c,f=this._getContext();f.font=24/this.camera.getArmLength()+"px arial";var m,v=.025/this.scale.x,g=.025/this.scale.y,y=5/this.camera.getArmLength(),b=this.camera.getArmRotation().horizontal,_=new u(Math.cos(b),Math.sin(b)),w=this.xRange,x=this.yRange,k=this.zRange;for(f.lineWidth=1,o=void 0===this.defaultXStep,i=new p(w.min,w.max,this.xStep,o),i.start(!0);!i.end();){var S=i.getCurrent();if(this.showGrid?(t=new l(S,x.min,k.min),e=new l(S,x.max,k.min),this._line3d(f,t,e,this.gridColor)):this.showXAxis&&(t=new l(S,x.min,k.min),e=new l(S,x.min+v,k.min),this._line3d(f,t,e,this.axisColor),t=new l(S,x.max,k.min),e=new l(S,x.max-v,k.min),this._line3d(f,t,e,this.axisColor)),this.showXAxis){r=_.x>0?x.min:x.max,m=new l(S,r,k.min);var D=" "+this.xValueLabel(S)+" ";this.drawAxisLabelX(f,m,D,b,y)}i.next()}for(f.lineWidth=1,o=void 0===this.defaultYStep,i=new p(x.min,x.max,this.yStep,o),i.start(!0);!i.end();){var M=i.getCurrent();if(this.showGrid?(t=new l(w.min,M,k.min),e=new l(w.max,M,k.min),this._line3d(f,t,e,this.gridColor)):this.showYAxis&&(t=new l(w.min,M,k.min),e=new l(w.min+g,M,k.min),this._line3d(f,t,e,this.axisColor),t=new l(w.max,M,k.min),e=new l(w.max-g,M,k.min),this._line3d(f,t,e,this.axisColor)),this.showYAxis){s=_.y>0?w.min:w.max,m=new l(s,M,k.min);var C=" "+this.yValueLabel(M)+" ";this.drawAxisLabelY(f,m,C,b,y)}i.next()}if(this.showZAxis){for(f.lineWidth=1,o=void 0===this.defaultZStep,i=new p(k.min,k.max,this.zStep,o),i.start(!0),s=_.x>0?w.min:w.max,r=_.y<0?x.min:x.max;!i.end();){var O=i.getCurrent(),E=new l(s,r,O),T=this._convert3Dto2D(E);e=new u(T.x-y,T.y),this._line(f,T,e,this.axisColor);var P=this.zValueLabel(O)+" ";this.drawAxisLabelZ(f,E,P,5),i.next()}f.lineWidth=1,t=new l(s,r,k.min),e=new l(s,r,k.max),this._line3d(f,t,e,this.axisColor)}if(this.showXAxis){var I,N;f.lineWidth=1,I=new l(w.min,x.min,k.min),N=new l(w.max,x.min,k.min),this._line3d(f,I,N,this.axisColor),I=new l(w.min,x.max,k.min),N=new l(w.max,x.max,k.min),this._line3d(f,I,N,this.axisColor)}this.showYAxis&&(f.lineWidth=1,t=new l(w.min,x.min,k.min),e=new l(w.min,x.max,k.min),this._line3d(f,t,e,this.axisColor),t=new l(w.max,x.min,k.min),e=new l(w.max,x.max,k.min),this._line3d(f,t,e,this.axisColor));var R=this.xLabel;R.length>0&&this.showXAxis&&(c=.1/this.scale.y,s=(w.max+3*w.min)/4,r=_.x>0?x.min-c:x.max+c,n=new l(s,r,k.min),this.drawAxisLabelX(f,n,R,b));var A=this.yLabel;A.length>0&&this.showYAxis&&(d=.1/this.scale.x,s=_.y>0?w.min-d:w.max+d,r=(x.max+3*x.min)/4,n=new l(s,r,k.min),this.drawAxisLabelY(f,n,A,b));var z=this.zLabel;z.length>0&&this.showZAxis&&(h=30,s=_.x>0?w.min:w.max,r=_.y<0?x.min:x.max,a=(k.max+3*k.min)/4,n=new l(s,r,a),this.drawAxisLabelZ(f,n,z,h))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-this.eye.z/this.camera.getArmLength()*this.dataColor.strokeWidth:this.dataColor.strokeWidth},o.prototype._redrawBar=function(t,e,i,o,n,s){var r,a=this,h=e.point,d=this.zRange.min,u=[{point:new l(h.x-i,h.y-o,h.z)},{point:new l(h.x+i,h.y-o,h.z)},{point:new l(h.x+i,h.y+o,h.z)},{point:new l(h.x-i,h.y+o,h.z)}],c=[{point:new l(h.x-i,h.y-o,d)},{point:new l(h.x+i,h.y-o,d)},{point:new l(h.x+i,h.y+o,d)},{point:new l(h.x-i,h.y+o,d)}];u.forEach(function(t){t.screen=a._convert3Dto2D(t.point)}),c.forEach(function(t){t.screen=a._convert3Dto2D(t.point)});var p=[{corners:u,center:l.avg(c[0].point,c[2].point)},{corners:[u[0],u[1],c[1],c[0]],center:l.avg(c[1].point,c[0].point)},{corners:[u[1],u[2],c[2],c[1]],center:l.avg(c[2].point,c[1].point)},{corners:[u[2],u[3],c[3],c[2]],center:l.avg(c[3].point,c[2].point)},{corners:[u[3],u[0],c[0],c[3]],center:l.avg(c[0].point,c[3].point)}];e.surfaces=p;for(var f=0;f0}if(a){var p,f=(e.point.z+i.point.z+o.point.z+n.point.z)/4,m=240*(1-(f-this.zRange.min)*this.scale.z/this.verticalRatio);this.showShadow?(p=Math.min(1+u.x/c/2,1),s=this._hsv2rgb(m,1,p),r=s):(p=1,s=this._hsv2rgb(m,1,p),r=this.axisColor)}else s="gray",r=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var v=[e,i,n,o];this._polygon(t,v,s,r)}},o.prototype._drawGridLine=function(t,e,i){if(void 0!==e&&void 0!==i){var o=(e.point.z+i.point.z)/2,n=240*(1-(o-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(n,1,1),this._line(t,e.screen,i.screen)}},o.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},o.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},o.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t0?1:t<0?-1:0}var o=e[0],n=e[1],s=e[2],r=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),a=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x)),h=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,n=null,s=null,r=null,a=new u(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var h=n.surfaces;if(h)for(var d=h.length-1;d>=0;d--){var l=h[d],c=l.corners,p=[c[0].screen,c[1].screen,c[2].screen],f=[c[2].screen,c[3].screen,c[0].screen];if(this._insideTriangle(a,p)||this._insideTriangle(a,f))return n}}else for(i=0;i"+this.xLabel+":"+t.point.x+""+this.yLabel+":"+t.point.y+""+this.zLabel+":"+t.point.z+"",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var n=e.offsetWidth,s=e.offsetHeight,r=i.offsetHeight,h=o.offsetWidth,d=o.offsetHeight,l=t.screen.x-n/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=l+"px",e.style.top=t.screen.y-r-s+"px",o.style.left=t.screen.x-h/2+"px",o.style.top=t.screen.y-d/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},o.prototype.setCameraPosition=function(t){f.setCameraPosition(t,this),this.redraw()},o.prototype.setSize=function(t,e){this._setSize(t,e),this.redraw()},t.exports=o},function(t,e,i){i(163),t.exports=i(7).Object.assign},function(t,e,i){var o=i(17);o(o.S+o.F,"Object",{assign:i(164)})},function(t,e,i){var o=i(19),n=i(33),s=i(63),r=i(43),a=i(34),h=i(78),d=Object.assign;t.exports=!d||i(29)(function(){var t={},e={},i=Symbol(),o="abcdefghijklmnopqrst";return t[i]=7,o.split("").forEach(function(t){e[t]=t}),7!=d({},t)[i]||Object.keys(d({},e)).join("")!=o})?function(t,e){for(var i=a(t),d=arguments.length,l=1,u=s.f,c=r.f;d>l;)for(var p,f=h(arguments[l++]),m=u?n(f).concat(u(f)):n(f),v=m.length,g=0;v>g;)p=m[g++],o&&!c.call(f,p)||(i[p]=f[p]);return i}:d},function(t,e,i){t.exports={default:i(166),__esModule:!0}},function(t,e,i){i(167),t.exports=i(7).Math.sign},function(t,e,i){var o=i(17);o(o.S,"Math",{sign:i(168)})},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,i){t.exports={default:i(170),__esModule:!0}},function(t,e,i){i(171);var o=i(7).Object;t.exports=function(t,e,i){return o.defineProperty(t,e,i)}},function(t,e,i){var o=i(17);o(o.S+o.F*!i(19),"Object",{defineProperty:i(21).f})},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r={fill:{string:o},stroke:{string:o},strokeWidth:{number:s},__type__:{string:o,object:"object",undefined:"undefined"}},a={animationAutoStart:{boolean:n,undefined:"undefined"},animationInterval:{number:s},animationPreload:{boolean:n},axisColor:{string:o},backgroundColor:r,xBarWidth:{number:s,undefined:"undefined"},yBarWidth:{number:s,undefined:"undefined"},cameraPosition:{distance:{number:s},horizontal:{number:s},vertical:{number:s},__type__:{object:"object"}},xCenter:{string:o},yCenter:{string:o},dataColor:r,dotSizeMinFraction:{number:s},dotSizeMaxFraction:{number:s},dotSizeRatio:{number:s},filterLabel:{string:o},gridColor:{string:o},onclick:{function:"function"},keepAspectRatio:{boolean:n},xLabel:{string:o},yLabel:{string:o},zLabel:{string:o},legendLabel:{string:o},xMin:{number:s,undefined:"undefined"},yMin:{number:s,undefined:"undefined"},zMin:{number:s,undefined:"undefined"},xMax:{number:s,undefined:"undefined"},yMax:{number:s,undefined:"undefined"},zMax:{number:s,undefined:"undefined"},showAnimationControls:{boolean:n,undefined:"undefined"},showGrid:{boolean:n},showLegend:{boolean:n,undefined:"undefined"},showPerspective:{boolean:n},showShadow:{boolean:n},showXAxis:{boolean:n},showYAxis:{boolean:n},showZAxis:{boolean:n},xStep:{number:s,undefined:"undefined"},yStep:{number:s,undefined:"undefined"},zStep:{number:s,undefined:"undefined"},style:{number:s,string:["bar","bar-color","bar-size","dot","dot-line","dot-color","dot-size","line","grid","surface"]},tooltip:{boolean:n,function:"function"},tooltipStyle:{content:{color:{string:o},background:{string:o},border:{string:o},borderRadius:{string:o},boxShadow:{string:o},padding:{string:o},__type__:{object:"object"}},line:{borderLeft:{string:o},height:{string:o},width:{string:o},__type__:{object:"object"}},dot:{border:{string:o},borderRadius:{string:o},height:{string:o},width:{string:o},__type__:{object:"object"}},__type__:{object:"object"}},xValueLabel:{function:"function"},yValueLabel:{function:"function"},zValueLabel:{function:"function"},valueMax:{number:s,undefined:"undefined"},valueMin:{number:s,undefined:"undefined"},verticalRatio:{number:s},height:{string:o},width:{string:o},__type__:{object:"object"}};e.allOptions=a},function(t,e,i){function o(){this.dataTable=null}var n=i(11),s=i(12),r=i(174),a=i(96),h=i(94),d=i(35);o.prototype.initializeData=function(t,e,i){if(void 0!==e){Array.isArray(e)&&(e=new n(e));var o;if(!(e instanceof n||e instanceof s))throw new Error("Array, DataSet, or DataView expected");if(o=e.get(),0!=o.length){this.style=i,this.dataSet&&this.dataSet.off("*",this._onChange),this.dataSet=e,this.dataTable=o;var r=this;this._onChange=function(){t.setData(r.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z";var h=t.hasBars(i);if(h&&(void 0!==t.defaultXBarWidth?this.xBarWidth=t.defaultXBarWidth:this.xBarWidth=this.getSmallestDifference(o,this.colX)||1,void 0!==t.defaultYBarWidth?this.yBarWidth=t.defaultYBarWidth:this.yBarWidth=this.getSmallestDifference(o,this.colY)||1),this._initializeRange(o,this.colX,t,h),this._initializeRange(o,this.colY,t,h),this._initializeRange(o,this.colZ,t,!1),o[0].hasOwnProperty("style")){this.colValue="style";var d=this.getColumnRange(o,this.colValue);this._setRangeDefaults(d,t.defaultValueMin,t.defaultValueMax),this.valueRange=d}this.getDataTable()[0].hasOwnProperty("filter")&&void 0===this.dataFilter&&(this.dataFilter=new a(this,"filter",t),this.dataFilter.setOnLoadCallback(function(){t.redraw()}));return this.dataFilter?this.dataFilter._getDataPoints():this._getDataPoints(this.getDataTable())}}},o.prototype._collectRangeSettings=function(t,e){if(-1==["x","y","z"].indexOf(t))throw new Error("Column '"+t+"' invalid");var i=t.toUpperCase();return{barWidth:this[t+"BarWidth"],min:e["default"+i+"Min"],max:e["default"+i+"Max"],step:e["default"+i+"Step"],range_label:t+"Range",step_label:t+"Step"}},o.prototype._initializeRange=function(t,e,i,o){var n=this._collectRangeSettings(e,i),s=this.getColumnRange(t,e);o&&"z"!=e&&s.expand(n.barWidth/2),this._setRangeDefaults(s,n.min,n.max),this[n.range_label]=s,this[n.step_label]=void 0!==n.step?n.step:s.range()/5},o.prototype.getDistinctValues=function(t,e){void 0===e&&(e=this.dataTable);for(var i=[],o=0;os)&&(o=s)}return o},o.prototype.getColumnRange=function(t,e){for(var i=new r,o=0;o0&&(e[i-1].pointNext=e[i]);return e},o.prototype._checkValueField=function(t){if(this.style===h.STYLE.BARCOLOR||this.style===h.STYLE.BARSIZE||this.style===h.STYLE.DOTCOLOR||this.style===h.STYLE.DOTSIZE){if(void 0===this.colValue)throw new Error("Expected data to have field 'style' for graph style '"+this.style+"'");if(void 0===t[0][this.colValue])throw new Error("Expected data to have field '"+this.colValue+"' for graph style '"+this.style+"'")}},t.exports=o},function(t,e,i){function o(){this.min=void 0,this.max=void 0}o.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.maxi)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=i}},o.prototype.range=function(){return this.max-this.min},o.prototype.center=function(){return(this.min+this.max)/2},t.exports=o},function(t,e,i){var o,n,s;!function(i){n=[],o=i,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var o=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof o&&(e.srcEvent.stopPropagation=function(){o(),e.stopPropagation()}),e.firstTarget=t;for(var n=t;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(p(t,i),e)}function d(t,e,i){return!!Array.isArray(t)&&(l(t,i[e],i),!0)}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function c(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&ft(o,i)}function p(t,e){return function(){return t.apply(e,arguments)}}function f(t,e){return typeof t==gt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function g(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function S(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=N(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=R(o);e.timeStamp=_t(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=F(a,h),e.distance=L(a,h),P(i,e),e.offsetDirection=z(e.deltaX,e.deltaY);var d=A(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=bt(d.x)>bt(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?B(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,I(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Et&&s.eventType!==Pt||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function I(t,e){ +var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=It&&(h>Ot||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,u=A(h,d,l);o=u.x,n=u.y,i=bt(u.x)>bt(u.y)?u.x:u.y,s=z(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function N(t){for(var e=[],i=0;i=bt(e)?t<0?Rt:At:e<0?zt:Lt}function L(t,e,i){i||(i=Ht);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function F(t,e,i){i||(i=Ht);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function B(t,e){return F(e[1],e[0],Wt)+F(t[1],t[0],Wt)}function j(t,e){return L(e[0],e[1],Wt)/L(t[0],t[1],Wt)}function H(){this.evEl=Gt,this.evWin=Vt,this.pressed=!1,C.apply(this,arguments)}function W(){this.evEl=Xt,this.evWin=Zt,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=Jt,this.evWin=Qt,this.started=!1,C.apply(this,arguments)}function G(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Pt|It)&&(i=k(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=te,this.targetIds={},C.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Et|Tt)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===Et)for(n=0;n-1&&o.splice(t,1)};setTimeout(n,ee)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,o=this.state;o=fe&&e(i.options.event+tt(o))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&n&e.direction},attrTest:function(t){return ot.prototype.attrTest.call(this,t)&&(this.state&ce||!(this.state&ce)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),c(st,ot,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ce)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),c(rt,$,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(Pt|It)&&!n)this.reset();else if(t.eventType&Et)this.reset(),this._timer=h(function(){this.state=me,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return me;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===me&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=_t(),this.manager.emit(this.options.event,this._input)))}}),c(at,ot,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ce)}}),c(ht,ot,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ft|Bt,pointers:1},getTouchAction:function(){return nt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Ft|Bt)?e=t.overallVelocity:i&Ft?e=t.overallVelocityX:i&Bt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&bt(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),c(dt,$,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distanced+i?s+=h()+u-i+t.itemSet.options.margin.item.vertical:r=!1,s=Math.min(s,o-i),{shouldScroll:r,scrollOffset:s,itemTop:l}}var a=i(9),h=i(2),d=i(11),l=i(12),u=i(64),c=i(65),p=i(46),f=i(67),m=i(47),v=i(99),g=i(15).printStyle,y=i(105).allOptions,b=i(105).configureOptions,_=i(71).default,w=i(15).default;o.prototype=new c,o.prototype._createConfigurator=function(){return new _(this,this.dom.container,b)},o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){if(!0===w.validate(t,y)&&console.log("%cErrors have been found in the supplied options object.",g),c.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var e=this.itemsData;if(e){var i=this.getSelection();this.setItems(null),this.setItems(e),this.setSelection(i)}}},o.prototype.setItems=function(t){var e;e=t?t instanceof d||t instanceof l?t:new d(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e)},o.prototype.setGroups=function(t){var e;if(t){var i=function(t){return!1!==t.visible};e=t instanceof d||t instanceof l?new l(t,{filter:i}):new d(t.filter(i))}else e=null;this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||es)&&(s=i)}),null!==n&&null!==s){var a=this,h=this.itemSet.items[i[0]],d=-1*this._getScrollTop(),l=null,u=function(t,e,i){var o=r(a,h);if(l||(l=o),l.itemTop!=o.itemTop||l.shouldScroll){l.itemTop!=o.itemTop&&o.shouldScroll&&(l=o,d=-1*a._getScrollTop());var n=d,s=l.scrollOffset,u=i?s:n+(s-n)*t;a._setScrollTop(-u),e||a._redraw()}},c=function(){var t=r(a,h);t.shouldScroll&&t.itemTop!=l.itemTop&&(a._setScrollTop(-t.scrollOffset),a._redraw())},p=function(){c(),setTimeout(c,100)},f=(n+s)/2,m=Math.max(this.range.end-this.range.start,1.1*(s-n)),v=!e||void 0===e.animation||e.animation;v||(l={shouldScroll:!1,scrollOffset:-1,itemTop:-1}),this.range.setRange(f-m/2,f+m/2,{animation:v},p,u)}}},o.prototype.fit=function(t,e){var i,o=!t||void 0===t.animation||t.animation,n=this.itemsData&&this.itemsData.getDataSet();1===n.length&&void 0===n.get()[0].end?(i=this.getDataRange(),this.moveTo(i.min.valueOf(),{animation:o},e)):(i=this.getItemRange(),this.range.setRange(i.min,i.max,{animation:o},e))},o.prototype.getItemRange=function(){var t=this.getDataRange(),e=null!==t.min?t.min.valueOf():null,i=null!==t.max?t.max.valueOf():null,o=null,r=null;if(null!=e&&null!=i){var a=i-e;a<=0&&(a=10);var d=a/this.props.center.width,l={},u=0;h.forEach(this.itemSet.items,function(t,e){if(t.groupShowing){l[e]=t.redraw(!0),u=l[e].length}});if(u>0)for(var c=0;ci&&(i=h,r=t)}.bind(this)),o&&r){var p=o.getWidthLeft()+10,f=r.getWidthRight()+10,m=this.props.center.width-p-f;m>0&&(this.options.rtl?(e=n(o)-f*a/m,i=s(r)+p*a/m):(e=n(o)-p*a/m,i=s(r)+f*a/m))}}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=h.convert(i.start,"Date").valueOf(),n=h.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||oe)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e,i=t.center?t.center.x:t.clientX,o=t.center?t.center.y:t.clientY;e=this.options.rtl?h.getAbsoluteRight(this.dom.centerContainer)-i:i-h.getAbsoluteLeft(this.dom.centerContainer);var n=o-h.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=m.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),c=this._toTime(e),p=d?d(c,l,u):c,f=h.getTarget(t),v=null;return null!=s?v="item":null!=a?v="custom-time":h.hasParent(f,this.timeAxis.dom.foreground)?v="axis":this.timeAxis2&&h.hasParent(f,this.timeAxis2.dom.foreground)?v="axis":h.hasParent(f,this.itemSet.dom.labelSet)?v="group-label":h.hasParent(f,this.currentTime.bar)?v="current-time":h.hasParent(f,this.dom.center)&&(v="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:v,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:e,y:n,time:c,snappedTime:p}},o.prototype.toggleRollingMode=function(){this.range.rolling?this.range.stopRolling():(void 0==this.options.rollingMode&&this.setOptions(this.options),this.range.startRolling())},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(20),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(10),u=i(38),c=i(2),p=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,d.default)(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),!0===c.isString(t)){if(!0===c.isValidRGB(t)){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(!0===c.isValidRGBA(t)){var r=t.substr(5).substr(0,t.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===c.isValidHex(t)){var a=c.hexToRGB(t);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this;!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=c.extend({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none", +setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=c.extend({},t)),this.color=t;var e=c.RGBToHSV(t.r,t.g,t.b),i=2*Math.PI,o=this.r*e.s,n=this.centerCoordinates.x+o*Math.sin(i*e.h),s=this.centerCoordinates.y+o*Math.cos(i*e.h);this.colorPickerSelector.style.left=n-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=s-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=c.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=c.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=c.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(!1===this.generated){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var a=2*Math.PI/360,h=1/this.r,d=void 0;for(s=0;s<360;s++)for(r=0;rr?r:t,e=null==e?r:e0&&l.push(u.screenToValue(n)),!p.hidden&&this.itemsData.length>0&&l.push(p.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new g(this,this.dom.container,v)},t.exports=o},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(44),e.Network=i(182),e.network={Images:i(116),dotparser:i(114),gephiParser:i(115),allOptions:i(122)},e.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(36)},function(t,e,i){function o(t,e,i){var n=this;if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:d,clickToUse:!1},s.extend(this.options,this.defaultOptions),this.body={container:t,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}},this.bindEventListeners(),this.images=new l(function(){return n.body.emitter.emit("_requestRedraw")}),this.groups=new u,this.canvas=new g(this.body),this.selectionHandler=new _(this.body,this.canvas),this.interactionHandler=new b(this.body,this.canvas,this.selectionHandler),this.view=new y(this.body,this.canvas),this.renderer=new v(this.body,this.canvas),this.physics=new f(this.body),this.layoutEngine=new w(this.body),this.clustering=new m(this.body),this.manipulation=new x(this.body,this.canvas,this.selectionHandler),this.nodesHandler=new c(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new p(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new T(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(e)}i(183);var n=i(45),s=i(2),r=i(114),a=i(115),h=i(97),d=i(184),l=i(116).default,u=i(186).default,c=i(187).default,p=i(214).default,f=i(220).default,m=i(227).default,v=i(229).default,g=i(230).default,y=i(231).default,b=i(232).default,_=i(234).default,w=i(235).default,x=i(237).default,k=i(71).default,S=i(15).default,D=i(15),M=D.printStyle,C=i(122),O=C.allOptions,E=C.configureOptions,T=i(238).default;n(o.prototype),o.prototype.setOptions=function(t){var e=this;if(void 0!==t){!0===S.validate(t,O)&&console.log("%cErrors have been found in the supplied options object.",M);var i=["locale","locales","clickToUse"];if(s.selectiveDeepExtend(i,this.options,t),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t,this.options),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),void 0!==t.groups&&this.body.emitter.emit("refreshNodes"),"configure"in t&&(this.configurator||(this.configurator=new k(this,this.body.container,E,this.canvas.pixelRatio)),this.configurator.setOptions(t.configure)),this.configurator&&!0===this.configurator.options.enabled){var o={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};s.deepExtend(o.nodes,this.nodesHandler.options),s.deepExtend(o.edges,this.edgesHandler.options),s.deepExtend(o.layout,this.layoutEngine.options),s.deepExtend(o.interaction,this.selectionHandler.options),s.deepExtend(o.interaction,this.renderer.options),s.deepExtend(o.interaction,this.interactionHandler.options),s.deepExtend(o.manipulation,this.manipulation.options),s.deepExtend(o.physics,this.physics.options),s.deepExtend(o.global,this.canvas.options),s.deepExtend(o.global,this.options),this.configurator.setModuleOptions(o)}void 0!==t.clickToUse?!0===t.clickToUse?void 0===this.activator&&(this.activator=new h(this.canvas.frame),this.activator.on("change",function(){e.body.emitter.emit("activate")})):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},o.prototype._updateVisibleIndices=function(){var t=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in t)t.hasOwnProperty(i)&&(this.clustering._isClusteredNode(i)||!1!==t[i].options.hidden||this.body.nodeIndices.push(t[i].id));for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],s=t[n.fromId],r=t[n.toId],a=void 0!==s&&void 0!==r,h=!this.clustering._isClusteredEdge(o)&&!1===n.options.hidden&&a&&!1===s.options.hidden&&!1===r.options.hidden;h&&this.body.edgeIndices.push(n.id)}},o.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",function(){t.edgesHandler._updateState(),t.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){t.clustering._updateState(),t._updateVisibleIndices(),t._updateValueRange(t.body.nodes),t._updateValueRange(t.body.edges),t.body.emitter.emit("startSimulation"),t.body.emitter.emit("_requestRedraw")})},o.prototype.setData=function(t){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){console.log("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var e=r.DOTToGraph(t.dot);return void this.setData(e)}if(t&&t.gephi){console.log("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=a.parseGephi(t.gephi);return void this.setData(i)}this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},o.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(var t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&delete this.body.nodes[t];for(var e in this.body.edges)this.body.edges.hasOwnProperty(e)&&delete this.body.edges[e];s.recursiveDOMDelete(this.body.container)},o.prototype._updateValueRange=function(t){var e,i=void 0,o=void 0,n=0;for(e in t)if(t.hasOwnProperty(e)){var s=t[e].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),o=void 0===o?s:Math.max(s,o),n+=s)}if(void 0!==i&&void 0!==o)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,o,n)},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},o.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},o.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},o.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},o.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},o.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},o.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},o.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},o.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},o.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},o.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},o.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},o.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},o.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},o.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},o.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},o.prototype.editNodeMode=function(){return console.log("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},o.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},o.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},o.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},o.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},o.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},o.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},o.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},o.prototype.getConnectedNodes=function(t){return void 0!==this.body.nodes[t]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},o.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},o.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},o.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},o.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},o.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},o.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},o.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)},o.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)},o.prototype.getNodeAt=function(){var t=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},o.prototype.getEdgeAt=function(){var t=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},o.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},o.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},o.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.redraw()},o.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},o.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},o.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},o.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},o.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},o.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},o.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},o.prototype.getOptionsFromConfigurator=function(){var t={};return this.configurator&&(t=this.configurator.getOptions.apply(this.configurator)),t},t.exports=o},function(t,e,i){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;o<10;o++){var n=o%2==0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;i-2*n<0&&(n=i/2),o-2*n<0&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse_vis=function(t,e,i,o){var n=i/2*.5522848,s=o/2*.5522848,r=t+i,a=e+o,h=t+i/2,d=e+o/2;this.beginPath(),this.moveTo(t,d),this.bezierCurveTo(t,d-s,h-n,e,h,e),this.bezierCurveTo(h+n,e,r,d-s,r,d),this.bezierCurveTo(r,d+s,h+n,a,h,a),this.bezierCurveTo(h-n,a,t,d+s,t,d),this.closePath()},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=i,s=o*(1/3),r=n/2*.5522848,a=s/2*.5522848,h=t+n,d=e+s,l=t+n/2,u=e+s/2,c=e+(o-s/2),p=e+o;this.beginPath(),this.moveTo(h,u),this.bezierCurveTo(h,u+a,l+r,d,l,d),this.bezierCurveTo(l-r,d,t,u+a,t,u),this.bezierCurveTo(t,u-a,l-r,e,l,e),this.bezierCurveTo(l+r,e,h,u-a,h,u),this.lineTo(h,c),this.bezierCurveTo(h,c+a,l+r,p,l,p),this.bezierCurveTo(l-r,p,t,c+a,t,c),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),c=Math.sqrt(p*p/(1+h*h)),c=r<0?-c:c,t+=c,e+=h*c,!0===u?this.lineTo(t,e):this.moveTo(t,e),d-=p,u=!u},CanvasRenderingContext2D.prototype.hexagon=function(t,e,i){this.beginPath();var o=2*Math.PI/6;this.moveTo(t+i,e);for(var n=1;n<6;n++)this.lineTo(t+i*Math.cos(o*n),e+i*Math.sin(o*n));this.closePath()})},function(t,e,i){e.en={edit:"Edit",del:"Delete selected",back:"Back",addNode:"Add Node",addEdge:"Add Edge",editNode:"Edit Node",editEdge:"Edit Edge",addDescription:"Click in an empty space to place a new node.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",createEdgeError:"Cannot link edges to a cluster.",deleteClusterError:"Clusters cannot be deleted.",editClusterError:"Clusters cannot be edited."},e.en_EN=e.en,e.en_US=e.en,e.de={edit:"Editieren",del:"Lösche Auswahl",back:"Zurück",addNode:"Knoten hinzufügen",addEdge:"Kante hinzufügen",editNode:"Knoten editieren",editEdge:"Kante editieren",addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",createEdgeError:"Es ist nicht möglich, Kanten mit Clustern zu verbinden.",deleteClusterError:"Cluster können nicht gelöscht werden.",editClusterError:"Cluster können nicht editiert werden."},e.de_DE=e.de,e.es={edit:"Editar",del:"Eliminar selección",back:"Átras",addNode:"Añadir nodo",addEdge:"Añadir arista",editNode:"Editar nodo",editEdge:"Editar arista",addDescription:"Haga clic en un lugar vacío para colocar un nuevo nodo.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",createEdgeError:"No se puede conectar una arista a un grupo.",deleteClusterError:"No es posible eliminar grupos.",editClusterError:"No es posible editar grupos."},e.es_ES=e.es,e.it={edit:"Modifica",del:"Cancella la selezione",back:"Indietro",addNode:"Aggiungi un nodo",addEdge:"Aggiungi un vertice",editNode:"Modifica il nodo",editEdge:"Modifica il vertice",addDescription:"Clicca per aggiungere un nuovo nodo",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",createEdgeError:"Non si possono collegare vertici ad un cluster",deleteClusterError:"I cluster non possono essere cancellati",editClusterError:"I clusters non possono essere modificati."},e.it_IT=e.it,e.nl={edit:"Wijzigen",del:"Selectie verwijderen",back:"Terug",addNode:"Node toevoegen",addEdge:"Link toevoegen",editNode:"Node wijzigen",editEdge:"Link wijzigen",addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",createEdgeError:"Kan geen link maken naar een cluster.",deleteClusterError:"Clusters kunnen niet worden verwijderd.",editClusterError:"Clusters kunnen niet worden aangepast."},e.nl_NL=e.nl,e.nl_BE=e.nl,e["pt-br"]={edit:"Editar", +del:"Remover selecionado",back:"Voltar",addNode:"Adicionar nó",addEdge:"Adicionar aresta",editNode:"Editar nó",editEdge:"Editar aresta",addDescription:"Clique em um espaço em branco para adicionar um novo nó",edgeDescription:"Clique em um nó e arraste a aresta até outro nó para conectá-los",editEdgeDescription:"Clique nos pontos de controle e os arraste para um nó para conectá-los",createEdgeError:"Não foi possível linkar arestas a um cluster.",deleteClusterError:"Clusters não puderam ser removidos.",editClusterError:"Clusters não puderam ser editados."},e["pt-BR"]=e["pt-br"],e.pt_BR=e["pt-br"],e.pt_br=e["pt-br"],e.ru={edit:"Редактировать",del:"Удалить выбранное",back:"Назад",addNode:"Добавить узел",addEdge:"Добавить ребро",editNode:"Редактировать узел",editEdge:"Редактировать ребро",addDescription:"Кликните в свободное место, чтобы добавить новый узел.",edgeDescription:"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.",editEdgeDescription:"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.",createEdgeError:"Невозможно соединить ребра в кластер.",deleteClusterError:"Кластеры не могут быть удалены",editClusterError:"Кластеры недоступны для редактирования."},e.ru_RU=e.ru,e.cn={edit:"编辑",del:"删除选定",back:"返回",addNode:"添加节点",addEdge:"添加连接线",editNode:"编辑节点",editEdge:"编辑连接线",addDescription:"单击空白处放置新节点。",edgeDescription:"单击某个节点并将该连接线拖动到另一个节点以连接它们。",editEdgeDescription:"单击控制节点并将它们拖到节点上连接。",createEdgeError:"无法将连接线连接到群集。",deleteClusterError:"无法删除群集。",editClusterError:"无法编辑群集。"},e.zh_CN=e.cn},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(){(0,s.default)(this,t),this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}return(0,a.default)(t,[{key:"init",value:function(){if(!this.initialized()){this.src=this.image.src;var t=this.image.width,e=this.image.height;this.width=t,this.height=e;var i=Math.floor(e/2),o=Math.floor(e/4),n=Math.floor(e/8),s=Math.floor(e/16),r=Math.floor(t/2),a=Math.floor(t/4),h=Math.floor(t/8),d=Math.floor(t/16);this.canvas.width=3*a,this.canvas.height=i,this.coordinates=[[0,0,r,i],[r,0,a,o],[r,o,h,n],[5*h,o,d,s]],this._fillMipMap()}}},{key:"initialized",value:function(){return void 0!==this.coordinates}},{key:"_fillMipMap",value:function(){var t=this.canvas.getContext("2d"),e=this.coordinates[0];t.drawImage(this.image,e[0],e[1],e[2],e[3]);for(var i=1;i2){e*=.5;for(var r=0;e>2&&r=this.NUM_ITERATIONS&&(r=this.NUM_ITERATIONS-1);var a=this.coordinates[r];t.drawImage(this.canvas,a[0],a[1],a[2],a[3],i,o,n,s)}else t.drawImage(this.image,i,o,n,s)}}]),t}();e.default=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=function(){function t(){(0,s.default)(this,t),this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},h.extend(this.options,this.defaultOptions)}return(0,a.default)(t,[{key:"setOptions",value:function(t){var e=["useDefaultGroups"];if(void 0!==t)for(var i in t)if(t.hasOwnProperty(i)&&-1===e.indexOf(i)){var o=t[i];this.add(i,o)}}},{key:"clear",value:function(){this.groups={},this.groupsArray=[]}},{key:"get",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.groups[t];if(void 0===i&&e)if(!1===this.options.useDefaultGroups&&this.groupsArray.length>0){var o=this.groupIndex%this.groupsArray.length;this.groupIndex++,i={},i.color=this.groups[this.groupsArray[o]],this.groups[t]=i}else{var n=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,i={},i.color=this.defaultGroups[n],this.groups[t]=i}return i}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e.default=d},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(11),l=i(12),u=i(48).default,c=function(){function t(e,i,o,n){var r=this;if((0,s.default)(this,t),this.body=e,this.images=i,this.groups=o,this.layoutEngine=n,this.body.functions.createNode=this.create.bind(this),this.nodesListeners={add:function(t,e){r.add(e.items)},update:function(t,e){r.update(e.items,e.data,e.oldData)},remove:function(t,e){r.remove(e.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=h.bridgeObject(this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("refreshNodes",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){h.forEach(t.nodesListeners,function(e,i){t.body.data.nodes&&t.body.data.nodes.off(i,e)}),delete t.body.functions.createNode,delete t.nodesListeners.add,delete t.nodesListeners.update,delete t.nodesListeners.remove,delete t.nodesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){if(u.parseOptions(this.options,t),void 0!==t.shape)for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&this.body.nodes[e].updateShape();if(void 0!==t.font)for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&(this.body.nodes[i].updateLabelModule(),this.body.nodes[i].needsRefresh());if(void 0!==t.size)for(var o in this.body.nodes)this.body.nodes.hasOwnProperty(o)&&this.body.nodes[o].needsRefresh();void 0===t.hidden&&void 0===t.physics||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.data.nodes;if(t instanceof d||t instanceof l)this.body.data.nodes=t;else if(Array.isArray(t))this.body.data.nodes=new d,this.body.data.nodes.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new d}if(i&&h.forEach(this.nodesListeners,function(t,e){i.off(e,t)}),this.body.nodes={},this.body.data.nodes){var o=this;h.forEach(this.nodesListeners,function(t,e){o.body.data.nodes.on(e,t)});var n=this.body.data.nodes.getIds();this.add(n,!0)}!1===e&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:u)(t,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:"refresh",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];h.forEach(this.body.nodes,function(i,o){var n=t.body.data.nodes.get(o);void 0!==n&&(!0===e&&i.setOptions({x:null,y:null}),i.setOptions({fixed:!1}),i.setOptions(n))})}},{key:"getPositions",value:function(t){var e={};if(void 0!==t){if(!0===Array.isArray(t)){for(var i=0;i0)for(var r=0;r0)for(var p=0;p0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(e.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(t){" "===t&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)};i.position/.test(t.substr(i.position,3))?i.mono||i.ital||!//.test(t.substr(i.position,3))?!i.mono&&//.test(t.substr(i.position,6))?(i.emitBlock(),i.mono=!0,i.modStack.unshift("mono"),i.position+=5):!i.mono&&"bold"===i.mod()&&/<\/b>/.test(t.substr(i.position,4))?(i.emitBlock(),i.bold=!1,i.modStack.shift(),i.position+=3):!i.mono&&"ital"===i.mod()&&/<\/i>/.test(t.substr(i.position,4))?(i.emitBlock(),i.ital=!1,i.modStack.shift(),i.position+=3):"mono"===i.mod()&&/<\/code>/.test(t.substr(i.position,7))?(i.emitBlock(),i.mono=!1,i.modStack.shift(),i.position+=6):i.add(o):(i.emitBlock(),i.ital=!0,i.modStack.unshift("ital"),i.position+=2):(i.emitBlock(),i.bold=!0,i.modStack.unshift("bold"),i.position+=2):/&/.test(o)?/</.test(t.substr(i.position,4))?(i.add("<"),i.position+=3):/&/.test(t.substr(i.position,5))?(i.add("&"),i.position+=4):i.add("&"):i.add(o),i.position++}return i.emitBlock(),e}},{key:"splitMarkdownBlocks",value:function(t){var e=[],i={bold:!1,ital:!1,mono:!1,beginable:!0,spacing:!1,position:0,buffer:"",modStack:[]};for(i.mod=function(){return 0===this.modStack.length?"normal":this.modStack[0]},i.modName=function(){return 0===this.modStack.length?"normal":"mono"===this.modStack[0]?"mono":i.bold&&i.ital?"boldital":i.bold?"bold":i.ital?"ital":void 0},i.emitBlock=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(e.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(t){" "===t&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)};i.positionthis.parent.fontOptions.maxWdt}},{key:"getLongestFit",value:function(t){for(var e="",i=0;i1&&void 0!==arguments[1]?arguments[1]:"normal",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t=t.replace(/^( +)/g,"$1\r"),t=t.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");for(var o=t.split("\r");o.length>0;){var n=this.getLongestFit(o);if(0===n){var s=o[0],r=this.getLongestFitWord(s);this.lines.newLine(s.slice(0,r),e),o[0]=s.slice(r)}else{var a=n;" "===o[n-1]?n--:" "===o[a]&&a++;var h=o.slice(0,n).join("");n==o.length&&i?this.lines.append(h,e):this.lines.newLine(h,e),o=o.slice(a)}}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(90),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=function(){function t(e){(0,a.default)(this,t),this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}return(0,d.default)(t,[{key:"_add",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"normal";void 0===this.lines[t]&&(this.lines[t]={width:0,height:0,blocks:[]});var o=e;void 0!==e&&""!==e||(o=" ");var n=this.measureText(o,i),r=(0,s.default)({},n.values);r.text=e,r.width=n.width,r.mod=i,void 0!==e&&""!==e||(r.width=0),this.lines[t].blocks.push(r),this.lines[t].width+=r.width}},{key:"curWidth",value:function(){var t=this.lines[this.current];return void 0===t?0:t.width}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e)}},{key:"newLine",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e),this.current++}},{key:"determineLineHeights",value:function(){for(var t=0;tt&&(t=o.width),e+=o.height}this.width=t,this.height=e}},{key:"removeEmptyBlocks",value:function(){for(var t=[],e=0;e1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i);this.width=o.width+this.margin.right+this.margin.left,this.height=o.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,s),t.roundRect(this.left,this.top,this.width,this.height,s.borderRadius),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n)}},{key:"updateBoundingBox",value:function(t,e,i,o,n){this._updateBoundingBox(t,e,i,o,n);var s=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(s)}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}}]),e}(m.default);e.default=v},function(t,e,i){i(195),t.exports=i(7).Object.getPrototypeOf},function(t,e,i){var o=i(34),n=i(85);i(87)("getPrototypeOf",function(){return function(t){return n(o(t))}})},function(t,e,i){t.exports={default:i(197),__esModule:!0}},function(t,e,i){i(198),t.exports=i(7).Object.setPrototypeOf},function(t,e,i){var o=i(17);o(o.S,"Object",{setPrototypeOf:i(199).set})},function(t,e,i){var o=i(28),n=i(27),s=function(t,e){if(n(t),!o(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,o){try{o=i(80)(Function.call,i(89).f(Object.prototype,"__proto__").set,2),o(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,i){return s(t,i),e?t.__proto__=i:o(t,i),t}}({},!1):void 0),check:s}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i),n=Math.max(o.width+this.margin.right+this.margin.left,o.height+this.margin.top+this.margin.bottom);this.options.size=n/2,this.width=n,this.height=n,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,s),this.updateBoundingBox(e,i),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,i,o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o,n,r){(0,a.default)(this,e);var h=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return h.setImages(n,r),h}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var o=2*this.options.size;return this.width=o,this.height=o,void(this.radius=.5*this.width)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n,s){this.switchImages(o),this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,s),t.save(),t.clip(),this._drawImageAtPosition(t,s),t.restore(),this._drawImageLabel(t,e,i,o,n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i),n=o.width+this.margin.right+this.margin.left;this.width=n,this.height=n,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,s),t.database(e-this.width/2,i-this.height/2,this.width,this.height),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"diamond",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"circle",2,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),this.options.size}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i);this.height=2*o.height,this.width=o.width+o.height,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-.5*this.width,this.top=i-.5*this.height,this.initContextForDraw(t,s),t.ellipse_vis(this.left,this.top,this.width,this.height),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=.5*this.width,o=.5*this.height,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,o,n,s){if(this.resize(t,o,n),this.options.icon.size=this.options.icon.size||50,this.left=e-this.width/2,this.top=i-this.height/2,this._icon(t,e,i,o,n,s),void 0!==this.options.label){this.labelModule.draw(t,this.left+this.iconSize.width/2+this.margin.left,i+this.height/2+5,o)}this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){if(this.boundingBox.top=e-.5*this.options.icon.size,this.boundingBox.left=t-.5*this.options.icon.size,this.boundingBox.right=t+.5*this.options.icon.size,this.boundingBox.bottom=e+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){ +this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5)}}},{key:"_icon",value:function(t,e,i,o,n,s){var r=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=(o?"bold ":"")+r+"px "+this.options.icon.face,t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t,s),t.fillText(this.options.icon.code,e,i),this.disableShadow(t,s)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o,n,r){(0,a.default)(this,e);var h=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return h.setImages(n,r),h}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var o=2*this.options.size;return this.width=o,void(this.height=o)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n,s){if(this.switchImages(o),this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,!0===this.options.shapeProperties.useBorderWithImage){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,h=(o?a:r)/this.body.view.scale;t.lineWidth=Math.min(this.width,h),t.beginPath(),t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.rect(this.left-.5*t.lineWidth,this.top-.5*t.lineWidth,this.width+t.lineWidth,this.height+t.lineWidth),t.fill(),this.performStroke(t,s),t.closePath()}this._drawImageAtPosition(t,s),this._drawImageLabel(t,e,i,o,n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.resize(),this._updateBoundingBox(t,e),void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"square",2,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"hexagon",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"star",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.textSize=this.labelModule.getTextSize(t,e,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.enableShadow(t,s),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n),this.disableShadow(t,s),this.updateBoundingBox(e,i,t,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"triangle",3,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"triangleDown",3,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(11),l=i(12),u=i(74).default,c=function(){function t(e,i,o){var n=this;(0,s.default)(this,t),this.body=e,this.images=i,this.groups=o,this.body.functions.createEdge=this.create.bind(this),this.edgesListeners={add:function(t,e){n.add(e.items)},update:function(t,e){n.update(e.items)},remove:function(t,e){n.remove(e.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},h.deepExtend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("_forceDisableDynamicCurves",function(e){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];"dynamic"===e&&(e="continuous");var o=!1;for(var n in t.body.edges)if(t.body.edges.hasOwnProperty(n)){var s=t.body.edges[n],r=t.body.data.edges._data[n];if(void 0!==r){var a=r.smooth;void 0!==a&&!0===a.enabled&&"dynamic"===a.type&&(void 0===e?s.setOptions({smooth:!1}):s.setOptions({smooth:{type:e}}),o=!0)}}!0===i&&!0===o&&t.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",function(){t.reconnectEdges()}),this.body.emitter.on("refreshEdges",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){h.forEach(t.edgesListeners,function(e,i){t.body.data.edges&&t.body.data.edges.off(i,e)}),delete t.body.functions.createEdge,delete t.edgesListeners.add,delete t.edgesListeners.update,delete t.edgesListeners.remove,delete t.edgesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){u.parseOptions(this.options,t,!0,this.defaultOptions,!0);var e=!1;if(void 0!==t.smooth)for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&(e=this.body.edges[i].updateEdgeType()||e);if(void 0!==t.font)for(var o in this.body.edges)this.body.edges.hasOwnProperty(o)&&this.body.edges[o].updateLabelModule();void 0===t.hidden&&void 0===t.physics&&!0!==e||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.body.data.edges;if(t instanceof d||t instanceof l)this.body.data.edges=t;else if(Array.isArray(t))this.body.data.edges=new d,this.body.data.edges.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.edges=new d}if(o&&h.forEach(this.edgesListeners,function(t,e){o.off(e,t)}),this.body.edges={},this.body.data.edges){h.forEach(this.edgesListeners,function(t,i){e.body.data.edges.on(i,t)});var n=this.body.data.edges.getIds();this.add(n,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),!1===i&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,o=this.body.data.edges,n=0;n1&&void 0!==arguments[1])||arguments[1];if(0!==t.length){var i=this.body.edges;h.forEach(t,function(t){var e=i[t];void 0!==e&&e.remove()}),e&&this.body.emitter.emit("_dataChanged")}}},{key:"refresh",value:function(){var t=this;h.forEach(this.body.edges,function(e,i){var o=t.body.data.edges._data[i];void 0!==o&&e.setOptions(o)})}},{key:"create",value:function(t){return new u(t,this.body,this.options,this.defaultOptions)}},{key:"reconnectEdges",value:function(){var t,e=this.body.nodes,i=this.body.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var o=i[t];o.from=null,o.to=null,o.connect()}}},{key:"getConnectedNodes",value:function(t){var e=[];if(void 0!==this.body.edges[t]){var i=this.body.edges[t];void 0!==i.fromId&&e.push(i.fromId),void 0!==i.toId&&e.push(i.toId)}return e}},{key:"_updateState",value:function(){this._addMissingEdges(),this._removeInvalidEdges()}},{key:"_removeInvalidEdges",value:function(){var t=this,e=[];h.forEach(this.body.edges,function(i,o){var n=t.body.nodes[i.toId],s=t.body.nodes[i.fromId];void 0!==n&&!0===n.isCluster||void 0!==s&&!0===s.isCluster||void 0!==n&&void 0!==s||e.push(o)}),this.remove(e,!1)}},{key:"_addMissingEdges",value:function(){var t=this.body.edges,e=this.body.data.edges,i=[];e.forEach(function(e,o){void 0===t[o]&&i.push(o)}),this.add(i,!0)}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(31),s=o(n),r=i(3),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(4),p=o(c),f=i(5),m=o(f),v=i(216),g=o(v),y=function(t){function e(t,i,o){return(0,d.default)(this,e),(0,p.default)(this,(e.__proto__||(0,a.default)(e)).call(this,t,i,o))}return(0,m.default)(e,t),(0,u.default)(e,[{key:"_line",value:function(t,e,i){var o=i[0],n=i[1];this._bezierCurve(t,e,o,n)}},{key:"_getViaCoordinates",value:function(){var t=this.from.x-this.to.x,e=this.from.y-this.to.y,i=void 0,o=void 0,n=void 0,s=void 0,r=this.options.smooth.roundness;return(Math.abs(t)>Math.abs(e)||!0===this.options.smooth.forceDirection||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*t,n=this.to.x+r*t):(o=this.from.y-r*e,s=this.to.y+r*e,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,r){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates(),h=(0,s.default)(a,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(t,e,i,o,n,r,d,l)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=(0,s.default)(e,2),o=i[0],n=i[1],r=t,a=[];return a[0]=Math.pow(1-r,3),a[1]=3*r*Math.pow(1-r,2),a[2]=3*Math.pow(r,2)*(1-r),a[3]=Math.pow(r,3),{x:a[0]*this.fromPoint.x+a[1]*o.x+a[2]*n.x+a[3]*this.toPoint.x,y:a[0]*this.fromPoint.y+a[1]*o.y+a[2]*n.y+a[3]*this.toPoint.y}}}]),e}(g.default);e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(75),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r,a){var h=1e9,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=t,m=e,v=[0,0,0,0];for(l=1;l<10;l++)u=.1*l,v[0]=Math.pow(1-u,3),v[1]=3*u*Math.pow(1-u,2),v[2]=3*Math.pow(u,2)*(1-u),v[3]=Math.pow(u,3),c=v[0]*t+v[1]*r.x+v[2]*a.x+v[3]*i,p=v[0]*e+v[1]*r.y+v[2]*a.y+v[3]*o,l>0&&(d=this._getDistanceToLine(f,m,c,p,n,s),h=d1&&void 0!==arguments[1]?arguments[1]:this.via,i=t,o=void 0,n=void 0;if(this.from===this.to){var r=this._getCircleData(this.from),a=(0,s.default)(r,3),h=a[0],d=a[1],l=a[2],u=2*Math.PI*(1-i);o=h+l*Math.sin(u),n=d+l-l*(1-Math.cos(u))}else o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,n=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:n}}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e,this.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToBezierEdge(t,e,i,o,n,s,this.via)}}]),e}(g.default);e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(75),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_line",value:function(t,e,i){this._bezierCurve(t,e,i)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_getViaCoordinates",value:function(){var t=void 0,e=void 0,i=this.options.smooth.roundness,o=this.options.smooth.type,n=Math.abs(this.from.x-this.to.x),s=Math.abs(this.from.y-this.to.y);if("discrete"===o||"diagonalCross"===o){var r=void 0,a=void 0;r=a=n<=s?i*s:i*n,this.from.x>this.to.x&&(r=-r),this.from.y>=this.to.y&&(a=-a),t=this.from.x+r,e=this.from.y+a,"discrete"===o&&(n<=s?t=nthis.to.x&&(_=-_),this.from.y>=this.to.y&&(w=-w),t=this.from.x+_,e=this.from.y+w,n<=s?t=this.from.x<=this.to.x?this.to.xt?this.to.x:t:e=this.from.y>=this.to.y?this.to.y>e?this.to.y:e:this.to.y2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(t,e,i.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(t,e,i,o,n,s,r)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=t;return{x:Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,y:Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y}}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(118),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_line",value:function(t,e){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),t.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}},{key:"getViaNode",value:function(){}},{key:"getPoint",value:function(t){return{x:(1-t)*this.fromPoint.x+t*this.toPoint.x,y:(1-t)*this.fromPoint.y+t*this.toPoint.y}}},{key:"_findBorderPosition",value:function(t,e){var i=this.to,o=this.from;t.id===this.from.id&&(i=this.from,o=this.to);var n=Math.atan2(i.y-o.y,i.x-o.x),s=i.x-o.x,r=i.y-o.y,a=Math.sqrt(s*s+r*r),h=t.distanceToBorder(e,n),d=(a-h)/a,l={};return l.x=(1-d)*o.x+d*i.x,l.y=(1-d)*o.y+d*i.y,l}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToLine(t,e,i,o,n,s)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(120).default,u=i(221).default,c=i(222).default,p=i(223).default,f=i(224).default,m=i(121).default,v=i(225).default,g=i(226).default,y=i(2),b=i(119).default,_=function(){function t(e){(0,a.default)(this,t),this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0},y.extend(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return(0,d.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("initPhysics",function(){t.initPhysics()}),this.body.emitter.on("_layoutFailed",function(){t.layoutFailed=!0}),this.body.emitter.on("resetPhysics",function(){t.stopSimulation(),t.ready=!1}),this.body.emitter.on("disablePhysics",function(){t.physicsEnabled=!1,t.stopSimulation()}),this.body.emitter.on("restorePhysics",function(){t.setOptions(t.options),!0===t.ready&&t.startSimulation()}),this.body.emitter.on("startSimulation",function(){!0===t.ready&&t.startSimulation()}),this.body.emitter.on("stopSimulation",function(){t.stopSimulation()}),this.body.emitter.on("destroy",function(){t.stopSimulation(!1),t.body.emitter.off()}),this.body.emitter.on("_dataChanged",function(){t.updatePhysicsData()})}},{key:"setOptions",value:function(t){void 0!==t&&(!1===t?(this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation()):!0===t?(this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation()):(this.physicsEnabled=!0,y.selectiveNotDeepExtend(["stabilization"],this.options,t),y.mergeOptions(this.options,t,"stabilization"),void 0===t.enabled&&(this.options.enabled=!0),!1===this.options.enabled&&(this.physicsEnabled=!1,this.stopSimulation()),this.timestep=this.options.timestep)),this.init()}},{key:"init",value:function(){var t;"forceAtlas2Based"===this.options.solver?(t=this.options.forceAtlas2Based,this.nodesSolver=new v(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new g(this.body,this.physicsBody,t)):"repulsion"===this.options.solver?(t=this.options.repulsion,this.nodesSolver=new u(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)):"hierarchicalRepulsion"===this.options.solver?(t=this.options.hierarchicalRepulsion,this.nodesSolver=new c(this.body,this.physicsBody,t),this.edgesSolver=new f(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)):(t=this.options.barnesHut,this.nodesSolver=new l(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)),this.modelOptions=t}},{key:"initPhysics",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?!0===this.options.stabilization.enabled?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,!0===t&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,!0===t&&this.body.emitter.emit("_stopRendering"))}},{key:"simulationStep",value:function(){var t=Date.now();this.physicsTick(),(Date.now()-t<.4*this.simulationInterval||!0===this.runDoubleSpeed)&&!1===this.stabilized&&(this.physicsTick(),this.runDoubleSpeed=!0),!0===this.stabilized&&this.stopSimulation()}},{key:"_emitStabilized",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||!0===this.startedStabilization)&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:e}),t.startedStabilization=!1,t.stabilizationIterations=0},0)}},{key:"physicsStep",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}},{key:"adjustTimeStep",value:function(){!0===this._evaluateStepQuality()?this.timestep=1.2*this.timestep:this.timestep/1.2.3))return!1;return!0}},{key:"moveNodes",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=0,i=0,o=0;oo&&(t=t>0?o:-o),t}},{key:"_performStep",value:function(t){var e=this.body.nodes[t],i=this.physicsBody.forces[t],o=this.physicsBody.velocities[t];return this.previousStates[t]={x:e.x,y:e.y,vx:o.x,vy:o.y},!1===e.options.fixed.x?(o.x=this.calculateComponentVelocity(o.x,i.x,e.options.mass),e.x+=o.x*this.timestep):(i.x=0,o.x=0),!1===e.options.fixed.y?(o.y=this.calculateComponentVelocity(o.y,i.y,e.options.mass),e.y+=o.y*this.timestep):(i.y=0,o.y=0),Math.sqrt(Math.pow(o.x,2)+Math.pow(o.y,2))}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)if(t.hasOwnProperty(e)&&t[e].x&&t[e].y){var i=t[e].options.fixed;this.freezeCache[e]={x:i.x,y:i.y},i.x=!0,i.y=!0}}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.stabilization.iterations;if("number"!=typeof e&&(e=this.options.stabilization.iterations,console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",e)),0===this.physicsBody.physicsNodeIndices.length)return void(this.ready=!0);this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,!0===this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationIterations=0,setTimeout(function(){ +return t._stabilizationBatch()},0)}},{key:"_startStabilizing",value:function(){return!0!==this.startedStabilization&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}},{key:"_stabilizationBatch",value:function(){var t=this,e=function(){return!1===t.stabilized&&t.stabilizationIterations0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(76).default,f=i(228).default,m=i(74).default,v=i(48).default,g=function(){function t(e){var i=this;(0,d.default)(this,t),this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},c.extend(this.options,this.defaultOptions),this.body.emitter.on("_resetData",function(){i.clusteredNodes={},i.clusteredEdges={}})}return(0,u.default)(t,[{key:"clusterByHubsize",value:function(t,e){void 0===t?t=this._getHubSize():"object"===(void 0===t?"undefined":(0,a.default)(t))&&(e=this._checkOptions(t),t=this._getHubSize());for(var i=[],o=0;o=t&&i.push(n.id)}for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{},i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===e.joinCondition)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);var o={},n={};c.forEach(this.body.nodes,function(i,s){var r=p.cloneOptions(i);!0===e.joinCondition(r)&&(o[s]=i,c.forEach(i.edges,function(e){void 0===t.clusteredEdges[e.id]&&(n[e.id]=e)}))}),this._cluster(o,n,e,i)}},{key:"clusterByEdgeCount",value:function(t,e){var i=this,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e=this._checkOptions(e);for(var n=[],r={},a=void 0,h=void 0,d=void 0,l=0;l0&&(0,s.default)(m).length>0&&!0===b)if(c=function(){for(var t=0;t1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,t,e)}},{key:"clusterBridges",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,t,e)}},{key:"clusterByConnection",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No nodeId supplied to clusterByConnection!");if(void 0===this.body.nodes[t])throw new Error("The nodeId given to clusterByConnection does not exist!");var o=this.body.nodes[t];e=this._checkOptions(e,o),void 0===e.clusterNodeProperties.x&&(e.clusterNodeProperties.x=o.x),void 0===e.clusterNodeProperties.y&&(e.clusterNodeProperties.y=o.y),void 0===e.clusterNodeProperties.fixed&&(e.clusterNodeProperties.fixed={},e.clusterNodeProperties.fixed.x=o.options.fixed.x,e.clusterNodeProperties.fixed.y=o.options.fixed.y);var n={},r={},a=o.id,h=p.cloneOptions(o);n[a]=o;for(var d=0;d-1&&(r[g.id]=g)}this._cluster(n,r,e,i)}},{key:"_createClusterEdges",value:function(t,e,i,o){for(var n=void 0,r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,u=(0,s.default)(t),c=[],p=0;p0&&void 0!==arguments[0]?arguments[0]:{};return void 0===t.clusterEdgeProperties&&(t.clusterEdgeProperties={}),void 0===t.clusterNodeProperties&&(t.clusterNodeProperties={}),t}},{key:"_cluster",value:function(t,e,i){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],n=[];for(var r in t)t.hasOwnProperty(r)&&void 0!==this.clusteredNodes[r]&&n.push(r);for(var a=0;ao?a.x:o,n=a.yr?a.y:r;return{x:.5*(i+o),y:.5*(n+r)}}},{key:"openCluster",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");var o=this.body.nodes[t];if(void 0===o)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(!0!==o.isCluster||void 0===o.containedNodes||void 0===o.containedEdges)throw new Error("The node:"+t+" is not a valid cluster.");var n=this.findNode(t),s=n.indexOf(t)-1;if(s>=0){var r=n[s];return this.body.nodes[r]._openChildCluster(t),delete this.body.nodes[t],void(!0===i&&this.body.emitter.emit("_dataChanged"))}var a=o.containedNodes,h=o.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&"function"==typeof e.releaseFunction){var d={},l={x:o.x,y:o.y};for(var u in a)if(a.hasOwnProperty(u)){var p=this.body.nodes[u];d[u]={x:p.x,y:p.y}}var f=e.releaseFunction(l,d);for(var m in a)if(a.hasOwnProperty(m)){var v=this.body.nodes[m];void 0!==f[m]&&(v.x=void 0===f[m].x?o.x:f[m].x,v.y=void 0===f[m].y?o.y:f[m].y)}}else c.forEach(a,function(t){!1===t.options.fixed.x&&(t.x=o.x),!1===t.options.fixed.y&&(t.y=o.y)});for(var g in a)if(a.hasOwnProperty(g)){var y=this.body.nodes[g];y.vx=o.vx,y.vy=o.vy,y.setOptions({physics:!0}),delete this.clusteredNodes[g]}for(var b=[],_=0;_0&&n<100;){var s=e.pop();if(void 0!==s){var r=this.body.edges[s];if(void 0!==r){n++;var a=r.clusteringEdgeReplacingIds;if(void 0===a)o.push(s);else for(var h=0;ho&&(o=s.edges.length),t+=s.edges.length,e+=Math.pow(s.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a);return h>o&&(h=o),h}},{key:"_createClusteredEdge",value:function(t,e,i,o,n){var s=p.cloneOptions(i,"edge");c.deepExtend(s,o),s.from=t,s.to=e,s.id="clusterEdge:"+c.randomUUID(),void 0!==n&&c.deepExtend(s,n);var r=this.body.functions.createEdge(s);return r.clusteringEdgeReplacingIds=[i.id],r.connect(),this.body.edges[r.id]=r,r}},{key:"_clusterEdges",value:function(t,e,i,o){if(e instanceof m){var n=e,s={};s[n.id]=n,e=s}if(t instanceof v){var r=t,a={};a[r.id]=r,t=a}if(void 0===i||null===i)throw new Error("_clusterEdges: parameter clusterNode required");void 0===o&&(o=i.clusterEdgeProperties),this._createClusterEdges(t,e,i,o);for(var h in e)if(e.hasOwnProperty(h)&&void 0!==this.body.edges[h]){var d=this.body.edges[h];this._backupEdgeOptions(d),d.setOptions({physics:!1})}for(var l in t)t.hasOwnProperty(l)&&(this.clusteredNodes[l]={clusterId:i.id,node:this.body.nodes[l]},this.body.nodes[l].setOptions({physics:!1}))}},{key:"_getClusterNodeForNode",value:function(t){if(void 0!==t){var e=this.clusteredNodes[t];if(void 0!==e){var i=e.clusterId;if(void 0!==i)return this.body.nodes[i]}}}},{key:"_filter",value:function(t,e){var i=[];return c.forEach(t,function(t){e(t)&&i.push(t)}),i}},{key:"_updateState",value:function(){var t=this,e=void 0,i=[],o=[],n=function(e){c.forEach(t.body.nodes,function(t){!0===t.isCluster&&e(t)})};for(e in this.clusteredNodes)if(this.clusteredNodes.hasOwnProperty(e)){var r=this.body.nodes[e];void 0===r&&i.push(e)}n(function(t){for(var e=0;e0}e.endPointsValid()&&n||o.push(i)}),n(function(e){c.forEach(o,function(i){delete e.containedEdges[i],c.forEach(e.edges,function(n,s){if(n.id===i)return void(e.edges[s]=null);n.clusteringEdgeReplacingIds=t._filter(n.clusteringEdgeReplacingIds,function(t){return-1===o.indexOf(t)})}),e.edges=t._filter(e.edges,function(t){return null!==t})})}),c.forEach(o,function(e){delete t.clusteredEdges[e]}),c.forEach(o,function(e){delete t.body.edges[e]});var h=(0,s.default)(this.body.edges);c.forEach(h,function(e){var i=t.body.edges[e],o=t._isClusteredNode(i.fromId)||t._isClusteredNode(i.toId);if(o!==t._isClusteredEdge(i.id)){if(!o)throw new Error("remove edge from clustering not implemented!");var n=t._getClusterNodeForNode(i.fromId);void 0!==n&&t._clusterEdges(t.body.nodes[i.fromId],i,n);var s=t._getClusterNodeForNode(i.toId);void 0!==s&&t._clusterEdges(t.body.nodes[i.toId],i,s)}});for(var d=!1,l=!0;l;)!function(){var e=[];n(function(t){var i=(0,s.default)(t.containedNodes).length,o=!0===t.options.allowSingleNodeCluster;(o&&i<1||!o&&i<2)&&e.push(t.id)});for(var i=0;i0,d=d||l}();d&&this._updateState()}},{key:"_isClusteredNode",value:function(t){return void 0!==this.clusteredNodes[t]}},{key:"_isClusteredEdge",value:function(t){return void 0!==this.clusteredEdges[t]}}]),t}();e.default=g},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(2),m=i(48).default,v=function(t){function e(t,i,o,n,r,h){(0,a.default)(this,e);var d=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o,n,r,h));return d.isCluster=!0,d.containedNodes={},d.containedEdges={},d}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_openChildCluster",value:function(t){var e=this,i=this.body.nodes[t];if(void 0===this.containedNodes[t])throw new Error("node with id: "+t+" not in current cluster");if(!i.isCluster)throw new Error("node with id: "+t+" is not a cluster");delete this.containedNodes[t],f.forEach(i.edges,function(t){delete e.containedEdges[t.id]}),f.forEach(i.containedNodes,function(t,i){e.containedNodes[i]=t}),i.containedNodes={},f.forEach(i.containedEdges,function(t,i){e.containedEdges[i]=t}),i.containedEdges={},f.forEach(i.edges,function(t){f.forEach(e.edges,function(i){var o=i.clusteringEdgeReplacingIds.indexOf(t.id);-1!==o&&(f.forEach(t.clusteringEdgeReplacingIds,function(t){i.clusteringEdgeReplacingIds.push(t),e.body.edges[t].edgeReplacedById=i.id}),i.clusteringEdgeReplacingIds.splice(o,1))})}),i.edges=[]}}]),e}(m);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){var t;void 0!==window&&(t=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),window.requestAnimationFrame=void 0===t?function(t){t()}:t}Object.defineProperty(e,"__esModule",{value:!0});var s=i(0),r=o(s),a=i(1),h=o(a),d=i(2),l=function(){function t(e,i){(0,r.default)(this,t),n(),this.body=e,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},d.extend(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return(0,h.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("dragStart",function(){t.dragging=!0}),this.body.emitter.on("dragEnd",function(){t.dragging=!1}),this.body.emitter.on("_resizeNodes",function(){t._resizeNodes()}),this.body.emitter.on("_redraw",function(){!1===t.renderingActive&&t._redraw()}),this.body.emitter.on("_blockRedraw",function(){t.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",function(){t.allowRedraw=!0,t.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){t.renderRequests+=1,t.renderingActive=!0,t._startRendering()}),this.body.emitter.on("_stopRendering",function(){t.renderRequests-=1,t.renderingActive=t.renderRequests>0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.allowRedraw=!1,t.renderingActive=!1,!0===t.requiresTimeout?clearTimeout(t.renderTimer):window.cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];d.selectiveDeepExtend(e,this.options,t)}}},{key:"_requestNextFrame",value:function(t,e){if("undefined"!=typeof window){var i=void 0,o=window;return!0===this.requiresTimeout?i=o.setTimeout(t,e):o.requestAnimationFrame&&(i=o.requestAnimationFrame(t)),i}}},{key:"_startRendering",value:function(){!0===this.renderingActive&&void 0===this.renderTimer&&(this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval))}},{key:"_renderStep",value:function(){!0===this.renderingActive&&(this.renderTimer=void 0,!0===this.requiresTimeout&&this._startRendering(),this._redraw(),!1===this.requiresTimeout&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;!0!==this.redrawRequested&&!1===this.renderingActive&&!0===this.allowRedraw&&(this.redrawRequested=!0,this._requestNextFrame(function(){t._redraw(!1)},0))}},{key:"_redraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!0===this.allowRedraw){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1,0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.canvas.setTransform();var e=this.canvas.getContext(),i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(e.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),!1===t&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&this._drawEdges(e),(!1===this.dragging||!0===this.dragging&&!1===this.options.hideNodesOnDrag)&&this._drawNodes(e,t),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),!0===t&&e.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){this.canvas.setTransform();var t=this.canvas.getContext();t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t,i.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=this.canvas.DOMtoCanvas({x:-20,y:-20}),a=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+20,y:this.canvas.frame.canvas.clientHeight+20}),h={top:r.y,left:r.x,bottom:a.y,right:a.x},d=0;d0&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;!0===this.initialized&&(this.cameraState.previousWidth=this.frame.canvas.width/t,this.cameraState.previousHeight=this.frame.canvas.height/t,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/t,y:.5*this.frame.canvas.height/t}))}},{key:"_setCameraState",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0){var t=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,e=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=t&&1!=e?i=.5*this.cameraState.scale*(t+e):1!=t?i=this.cameraState.scale*t:1!=e&&(i=this.cameraState.scale*e),this.body.view.scale=i;var o=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),n={x:o.x-this.cameraState.position.x,y:o.y-this.cameraState.position.y};this.body.view.translation.x+=n.x*this.body.view.scale,this.body.view.translation.y+=n.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==t.indexOf("%")||-1!==t.indexOf("px"))return t;if(-1===t.indexOf("%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900, +this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new h(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:h.DIRECTION_ALL}),d.onTouch(this.hammer,function(e){t.body.eventListeners.onTouch(e)}),this.hammer.on("tap",function(e){t.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",function(e){t.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",function(e){t.body.eventListeners.onHold(e)}),this.hammer.on("panstart",function(e){t.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",function(e){t.body.eventListeners.onDrag(e)}),this.hammer.on("panend",function(e){t.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",function(e){t.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("mousewheel",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",function(e){t.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",function(e){t.body.eventListeners.onContext(e)}),this.hammerFrame=new h(this.frame),d.onRelease(this.hammerFrame,function(e){t.body.eventListeners.onRelease(e)})}},{key:"setSize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.width,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.pixelRatio;if(this._setPixelRatio(),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e)this._getCameraState(s),this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{var r=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),a=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.frame.canvas.width===r&&this.frame.canvas.height===a||this._getCameraState(s),this.frame.canvas.width!==r&&(this.frame.canvas.width=r,i=!0),this.frame.canvas.height!==a&&(this.frame.canvas.height=a,i=!0)}return!0===i&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"getContext",value:function(){return this.frame.canvas.getContext("2d")}},{key:"_determinePixelRatio",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");var e=1;return"undefined"!=typeof window&&(e=window.devicePixelRatio||1),e/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}},{key:"_setPixelRatio",value:function(){this.pixelRatio=this._determinePixelRatio()}},{key:"setTransform",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(76).default,l=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",this.fit.bind(this)),this.body.emitter.on("animationFinished",function(){o.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return(0,a.default)(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t}},{key:"fit",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{nodes:[]},e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=void 0;if(void 0!==t.nodes&&0!==t.nodes.length||(t.nodes=this.body.nodeIndices),!0===e){var n=0;for(var s in this.body.nodes)if(this.body.nodes.hasOwnProperty(s)){var r=this.body.nodes[s];!0===r.predefinedPosition&&(n+=1)}if(n>.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=d.getRange(this.body.nodes,t.nodes);o=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;o*=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600)}else{this.body.emitter.emit("_resizeNodes"),i=d.getRange(this.body.nodes,t.nodes);var a=1.1*Math.abs(i.maxX-i.minX),h=1.1*Math.abs(i.maxY-i.minY),l=this.canvas.frame.canvas.clientWidth/a,u=this.canvas.frame.canvas.clientHeight/h;o=l<=u?l:u}o>1?o=1:0===o&&(o=1);var c=d.findCenter(i),p={position:c,scale:o,animation:t.animation};this.moveTo(p)}},{key:"focus",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){if(void 0===t)return void(t={});void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.getViewPosition()),void 0===t.animation&&(t.animation={duration:0}),!1===t.animation&&(t.animation={duration:0}),!0===t.animation&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),this.animateView(t)}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),!0===t.locked&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=!0===t?1:this.easingTime;var e=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(233).default,l=i(104).default,u=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.navigationHandler=new d(e,i),this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.body.eventListeners.onContext=this.onContext.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=this.getPointer.bind(this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0},h.extend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("destroy",function(){clearTimeout(t.popupTimer),delete t.body.functions.getPointer})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"];h.selectiveNotDeepExtend(e,this.options,t),h.mergeOptions(this.options,t,"keyboard"),t.tooltip&&(h.extend(this.options.tooltip,t.tooltip),t.tooltip.color&&(this.options.tooltip.color=h.parseColor(t.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:"getPointer",value:function(t){return{x:t.x-h.getAbsoluteLeft(this.canvas.frame.canvas),y:t.y-h.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:"onTouch",value:function(t){(new Date).valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.selectionHandler.getSelection(),n=!1;n=!0===i?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var s=this.selectionHandler.getSelection(),r=this._determineDifference(o,s),a=this._determineDifference(s,o);r.edges.length>0&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,o),n=!0),r.nodes.length>0&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,o),n=!0),a.nodes.length>0&&(this.selectionHandler._generateClickEvent("selectNode",e,t),n=!0),a.edges.length>0&&(this.selectionHandler._generateClickEvent("selectEdge",e,t),n=!0),!0===n&&this.selectionHandler._generateClickEvent("select",e,t)}},{key:"_determineDifference",value:function(t,e){var i=function(t,e){for(var i=[],o=0;o10&&(t=10);var o=void 0;void 0!==this.drag&&!0===this.drag.dragging&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),i0&&(this.popupObj=h[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&!1===s){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],g=0;g0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new l(this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&!0===(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e))){var o=this.selectionHandler.getNodeAt(t);i=void 0!==o&&o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));!1===i&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(10),d=i(38),l=i(36),u=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",function(){o.activated=!0,o.configureKeyboardBindings()}),this.body.emitter.on("deactivate",function(){o.activated=!1,o.configureKeyboardBindings()}),this.body.emitter.on("destroy",function(){void 0!==o.keycharm&&o.keycharm.destroy()}),this.options={}}return(0,a.default)(t,[{key:"setOptions",value:function(t){void 0!==t&&(this.options=t,this.create())}},{key:"create",value:function(){!0===this.options.navigationButtons?!1===this.iconsCreated&&this.loadNavigationElements():!0===this.iconsCreated&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:"cleanNavigation",value:function(){if(0!=this.navigationHammers.length){for(var t=0;t700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){var t=this.body.view.scale,e=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}},{key:"_zoomOut",value:function(){var t=this.body.view.scale,e=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}},{key:"configureKeyboardBindings",value:function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),!0===this.options.keyboard.enabled&&(!0===this.options.keyboard.bindToWindow?this.keycharm=l({container:window,preventDefault:!0}):this.keycharm=l({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),!0===this.activated&&(this.keycharm.bind("up",function(){t.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){t.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){t.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){t.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){t.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){t.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){t.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){t.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){t.unbindFromRedraw("_zoomOut")},"keyup")))}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(48).default,d=i(74).default,l=i(2),u=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.selectionObj={nodes:[],edges:[]},this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},l.extend(this.options,this.defaultOptions),this.body.emitter.on("_dataChanged",function(){o.updateSelection()})}return(0,a.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){var e=["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"];l.selectiveDeepExtend(e,this.options,t)}}},{key:"selectOnPoint",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);this.unselectAll(),void 0!==i&&(e=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return e}},{key:"selectAdditionalOnPoint",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);void 0!==i&&(e=!0,!0===i.isSelected()?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return e}},{key:"_initBaseEvent",value:function(t,e){var i={};return i.pointer={DOM:{x:e.x,y:e.y},canvas:this.canvas.DOMtoCanvas(e)},i.event=t,i}},{key:"_generateClickEvent",value:function(t,e,i,o){var n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s=this._initBaseEvent(e,i);if(!0===n)s.nodes=[],s.edges=[];else{var r=this.getSelection();s.nodes=r.nodes,s.edges=r.edges}void 0!==o&&(s.previousSelection=o),"click"==t&&(s.items=this.getClickedItems(i)),this.body.emitter.emit(t,s)}},{key:"selectObject",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;return void 0!==t&&(t instanceof h&&!0===e&&this._selectConnectedEdges(t),t.select(),this._addToSelection(t),!0)}},{key:"deselectObject",value:function(t){!0===t.isSelected()&&(t.selected=!1,this._removeFromSelection(t))}},{key:"_getAllNodesOverlappingWith",value:function(t){for(var e=[],i=this.body.nodes,o=0;o1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(t),o=this._getAllNodesOverlappingWith(i);return o.length>0?!0===e?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,o=0;o1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(t),o=10,n=null,s=this.body.edges,r=0;r1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,o=void 0;if(!t||!t.nodes&&!t.edges)throw"Selection must be an object with nodes and/or edges properties";if((e.unselectAll||void 0===e.unselectAll)&&this.unselectAll(),t.nodes)for(i=0;i1&&void 0!==arguments[1])||arguments[1];if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({nodes:t},{highlightEdges:e})}},{key:"selectEdges",value:function(t){if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({edges:t})}},{key:"updateSelection",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.body.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.body.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},{key:"getClickedItems",value:function(t){for(var e=this.canvas.DOMtoCanvas(t),i=[],o=this.body.nodeIndices,n=this.body.nodes,s=o.length-1;s>=0;s--){var r=n[o[s]],a=r.getItemsOnPoint(e);i.push.apply(i,a)}for(var h=this.body.edgeIndices,d=this.body.edges,l=h.length-1;l>=0;l--){var u=d[h[l]],c=u.getItemsOnPoint(e);i.push.apply(i,c)}return i}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(31),s=o(n),r=i(6),a=o(r),h=i(8),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(76).default,v=i(236),g=v.HorizontalStrategy,y=v.VerticalStrategy,b=function(){function t(){(0,u.default)(this,t),this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}return(0,p.default)(t,[{key:"addRelation",value:function(t,e){void 0===this.childrenReference[t]&&(this.childrenReference[t]=[]),this.childrenReference[t].push(e),void 0===this.parentReference[e]&&(this.parentReference[e]=[]),this.parentReference[e].push(t)}},{key:"checkIfTree",value:function(){for(var t in this.parentReference)if(this.parentReference[t].length>1)return void(this.isTree=!1);this.isTree=!0}},{key:"numTrees",value:function(){return this.treeIndex+1}},{key:"setTreeIndex",value:function(t,e){void 0!==e&&void 0===this.trees[t.id]&&(this.trees[t.id]=e,this.treeIndex=Math.max(e,this.treeIndex))}},{key:"ensureLevel",value:function(t){void 0===this.levels[t]&&(this.levels[t]=0)}},{key:"getMaxLevel",value:function(t){var e=this,i={};return function t(o){if(void 0!==i[o])return i[o];var n=e.levels[o];if(e.childrenReference[o]){var s=e.childrenReference[o];if(s.length>0)for(var r=0;r0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(e);if(!0===o)return this.body.emitter.emit("refresh"),f.deepExtend(e,this.optionsBackup)}return e}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(t){if(!0===this.options.hierarchical.enabled){var e=this.optionsBackup.physics;void 0===t.physics||!0===t.physics?(t.physics={enabled:void 0===e.enabled||e.enabled,solver:"hierarchicalRepulsion"},e.enabled=void 0===e.enabled||e.enabled,e.solver=e.solver||"barnesHut"):"object"===(0,a.default)(t.physics)?(e.enabled=void 0===t.physics.enabled||t.physics.enabled,e.solver=t.physics.solver||"barnesHut",t.physics.solver="hierarchicalRepulsion"):!1!==t.physics&&(e.solver="barnesHut",t.physics={solver:"hierarchicalRepulsion"});var i=this.direction.curveType();if(void 0===t.edges)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1};else if(void 0===t.edges.smooth)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1;else if("boolean"==typeof t.edges.smooth)this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:i};else{var o=t.edges.smooth;void 0!==o.type&&"dynamic"!==o.type&&(i=o.type),this.optionsBackup.edges={smooth:void 0===o.enabled||o.enabled,type:void 0===o.type?"dynamic":o.type,roundness:void 0===o.roundness?.5:o.roundness,forceDirection:void 0!==o.forceDirection&&o.forceDirection},t.edges.smooth={enabled:void 0===o.enabled||o.enabled,type:i,roundness:void 0===o.roundness?.5:o.roundness,forceDirection:void 0!==o.forceDirection&&o.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(!0!==this.options.hierarchical.enabled){this.randomSeed=this.initialRandomSeed;for(var e=t.length+50,i=0;i150){for(var s=t.length;t.length>150&&o<=10;){o+=1;var r=t.length;o%3==0?this.body.modules.clustering.clusterBridges(n):this.body.modules.clustering.clusterOutliers(n);if(r==t.length&&o%3!=0)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*s)})}o>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(t,this.body.edgeIndices,!0),this._shiftToCenter();for(var a=0;a0){var t=void 0,e=void 0,i=!1,o=!1;this.lastNodeOnLevel={},this.hierarchical=new b;for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0!==t.options.level?(i=!0,this.hierarchical.levels[e]=t.options.level):o=!0);if(!0===o&&!0===i)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");if(!0===o){var n=this.options.hierarchical.sortMethod;"hubsize"===n?this._determineLevelsByHubsize():"directed"===n?this._determineLevelsDirected():"custom"===n&&this._determineLevelsCustomCallback()}for(var s in this.body.nodes)this.body.nodes.hasOwnProperty(s)&&this.hierarchical.ensureLevel(s);var r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var t=this,e=!1,i={},o=function(e,i){var o=t.hierarchical.trees;for(var n in o)o.hasOwnProperty(n)&&o[n]===e&&t.direction.shift(n,i)},n=function(){for(var e=[],i=0;i0)for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:1e9,o=1e9,n=1e9,r=1e9,a=-1e9;for(var h in e)if(e.hasOwnProperty(h)){var d=t.body.nodes[h],l=t.hierarchical.levels[d.id],u=t.direction.getPosition(d),c=t._getSpaceAroundNode(d,e),p=(0,s.default)(c,2),f=p[0],m=p[1];o=Math.min(f,o),n=Math.min(m,n),l<=i&&(r=Math.min(u,r),a=Math.max(u,a))}return[r,a,o,n]},h=function(e,i){var o=t.hierarchical.getMaxLevel(e.id),n=t.hierarchical.getMaxLevel(i.id);return Math.min(o,n)},d=function(e,i,o){for(var n=t.hierarchical,s=0;s1)for(var h=0;h2&&void 0!==arguments[2]&&arguments[2],s=t.direction.getPosition(i),d=t.direction.getPosition(o),l=Math.abs(d-s),u=t.options.hierarchical.nodeSpacing;if(l>u){var c={},p={};r(i,c),r(o,p);var f=h(i,o),m=a(c,f),v=a(p,f),g=m[1],y=v[0],b=v[2];if(Math.abs(g-y)>u){var _=g-y+u;_<-b+u&&(_=-b+u),_<0&&(t._shiftBlock(o.id,_),e=!0,!0===n&&t._centerParent(o))}}},u=function(o,n){for(var h=n.id,d=n.edges,l=t.hierarchical.levels[n.id],u=t.options.hierarchical.levelSeparation*t.options.hierarchical.levelSeparation,c={},p=[],f=0;f0?p=Math.min(c,u-t.options.hierarchical.nodeSpacing):c<0&&(p=-Math.min(-c,l-t.options.hierarchical.nodeSpacing)),0!=p&&(t._shiftBlock(n.id,p),e=!0)}(_),_=b(o,d),function(i){var o=t.direction.getPosition(n),r=t._getSpaceAroundNode(n),a=(0,s.default)(r,2),h=a[0],d=a[1],l=i-o,u=o;l>0?u=Math.min(o+(d-t.options.hierarchical.nodeSpacing),i):l<0&&(u=Math.max(o-(h-t.options.hierarchical.nodeSpacing),i)),u!==o&&(t.direction.setPosition(n,u),e=!0)}(_)};!0===this.options.hierarchical.blockShifting&&(function(i){var o=t.hierarchical.getLevels();o=o.reverse();for(var n=0;n0&&Math.abs(p)0&&(a=this.direction.getPosition(i[n-1])+r),this.direction.setPosition(s,a,e),this._validatePositionAndContinue(s,e,a),o++}}}}},{key:"_placeBranchNodes",value:function(t,e){var i=this.hierarchical.childrenReference[t];if(void 0!==i){for(var o=[],n=0;ne&&void 0===this.positionedNodes[r.id]))return;var h=this.options.hierarchical.nodeSpacing,d=void 0;d=0===s?this.direction.getPosition(this.body.nodes[t]):this.direction.getPosition(o[s-1])+h,this.direction.setPosition(r,d,a),this._validatePositionAndContinue(r,a,d)}var l=this._getCenterPosition(o);this.direction.setPosition(this.body.nodes[t],l,e)}}},{key:"_validatePositionAndContinue",value:function(t,e,i){if(this.hierarchical.isTree){if(void 0!==this.lastNodeOnLevel[e]){var o=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[e]]);if(i-ot.hierarchical.levels[e.id]&&t.hierarchical.addRelation(e.id,i.id)};this._crawlNetwork(e),this.hierarchical.checkIfTree()}},{key:"_crawlNetwork",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},i=arguments[1],o={},n=function i(n,s){if(void 0===o[n.id]){t.hierarchical.setTreeIndex(n,s),o[n.id]=!0;for(var r=void 0,a=t._getActiveEdges(n),h=0;h2&&void 0!==arguments[2]?arguments[2]:void 0;this.fake_use(t,e,i),this.abstract()}},{key:"getTreeSize",value:function(t){return this.fake_use(t),this.abstract()}},{key:"sort",value:function(t){this.fake_use(t),this.abstract()}},{key:"fix",value:function(t,e){this.fake_use(t,e),this.abstract()}},{key:"shift",value:function(t,e){this.fake_use(t,e),this.abstract()}}]),t}(),m=function(t){function e(t){(0,u.default)(this,e);var i=(0,a.default)(this,(e.__proto__||(0,s.default)(e)).call(this));return i.layout=t,i}return(0,d.default)(e,t),(0,p.default)(e,[{key:"curveType",value:function(){return"horizontal"}},{key:"getPosition",value:function(t){return t.x}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.x=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_x,max:e.max_x}}},{key:"sort",value:function(t){t.sort(function(t,e){return void 0===t.x||void 0===e.x?0:t.x-e.x})}},{key:"fix",value:function(t,e){t.y=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.y=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].x+=e}}]),e}(f),v=function(t){function e(t){(0,u.default)(this,e);var i=(0,a.default)(this,(e.__proto__||(0,s.default)(e)).call(this));return i.layout=t,i}return(0,d.default)(e,t),(0,p.default)(e,[{key:"curveType",value:function(){return"vertical"}},{key:"getPosition",value:function(t){return t.y}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.y=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_y,max:e.max_y}}},{key:"sort",value:function(t){t.sort(function(t,e){return void 0===t.y||void 0===e.y?0:t.y-e.y})}},{key:"fix",value:function(t,e){t.x=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.x=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].y+=e}}]),e}(f);e.HorizontalStrategy=v,e.VerticalStrategy=m},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(20),a=o(r),h=i(6),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(10),v=i(38),g=function(){function t(e,i,o){var n=this;(0,u.default)(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this.manipulationHammers=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},f.extend(this.options,this.defaultOptions),this.body.emitter.on("destroy",function(){n._clean()}),this.body.emitter.on("_dataChanged",this._restore.bind(this)),this.body.emitter.on("_resetData",this._restore.bind(this))}return(0,p.default)(t,[{key:"_restore",value:function(){!1!==this.inMode&&(!0===this.options.initiallyActive?this.enableEditMode():this.disableEditMode())}},{key:"setOptions",value:function(t,e,i){void 0!==e&&(void 0!==e.locale?this.options.locale=e.locale:this.options.locale=i.locale,void 0!==e.locales?this.options.locales=e.locales:this.options.locales=i.locales),void 0!==t&&("boolean"==typeof t?this.options.enabled=t:(this.options.enabled=!0,f.deepExtend(this.options,t)),!0===this.options.initiallyActive&&(this.editMode=!0),this._setup())}},{key:"toggleEditMode",value:function(){!0===this.editMode?this.disableEditMode():this.enableEditMode()}},{key:"enableEditMode",value:function(){this.editMode=!0,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}},{key:"disableEditMode",value:function(){this.editMode=!1,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}},{key:"showManipulatorToolbar",value:function(){if(this._clean(),this.manipulationDOM={},!0===this.guiEnabled){this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";var t=this.selectionHandler._getSelectedNodeCount(),e=this.selectionHandler._getSelectedEdgeCount(),i=t+e,o=this.options.locales[this.options.locale],n=!1;!1!==this.options.addNode&&(this._createAddNodeButton(o),n=!0),!1!==this.options.addEdge&&(!0===n?this._createSeperator(1):n=!0,this._createAddEdgeButton(o)),1===t&&"function"==typeof this.options.editNode?(!0===n?this._createSeperator(2):n=!0,this._createEditNodeButton(o)):1===e&&0===t&&!1!==this.options.editEdge&&(!0===n?this._createSeperator(3):n=!0,this._createEditEdgeButton(o)),0!==i&&(t>0&&!1!==this.options.deleteNode?(!0===n&&this._createSeperator(4),this._createDeleteButton(o)):0===t&&!1!==this.options.deleteEdge&&(!0===n&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addNode",!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean();var e=this.selectionHandler._getSelectedNode();if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(!0!==e.isCluster){var i=f.deepExtend({},e.options,!1);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(e){null!==e&&void 0!==e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addEdge",!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t), +this._createSeperator(),this._createDescription(t.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",this._dragStartEdge.bind(this)),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="editEdge","object"===(0,d.default)(this.options.editEdge)&&"function"==typeof this.options.editEdge.editWithoutDrag&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId)){var t=this.body.edges[this.edgeBeingEditedId];return void this._performEditEdge(t.from,t.to)}if(!0===this.guiEnabled){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId){var i=this.body.edges[this.edgeBeingEditedId],o=this._getNewTargetNode(i.from.x,i.from.y),n=this._getNewTargetNode(i.to.x,i.to.y);this.temporaryIds.nodes.push(o.id),this.temporaryIds.nodes.push(n.id),this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id),this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id),this._temporaryBindUI("onTouch",this._controlNodeTouch.bind(this)),this._temporaryBindUI("onTap",function(){}),this._temporaryBindUI("onHold",function(){}),this._temporaryBindUI("onDragStart",this._controlNodeDragStart.bind(this)),this._temporaryBindUI("onDrag",this._controlNodeDrag.bind(this)),this._temporaryBindUI("onDragEnd",this._controlNodeDragEnd.bind(this)),this._temporaryBindUI("onMouseMove",function(){}),this._temporaryBindEvent("beforeDrawing",function(t){var e=i.edgeType.findBorderPositions(t);!1===o.selected&&(o.x=e.from.x,o.y=e.from.y),!1===n.selected&&(n.x=e.to.x,n.y=e.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(e.length>0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i};if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){!0===this.options.enabled?(this.guiEnabled=!0,this._createWrappers(),!1===this.editMode?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",!0===this.editMode?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",!0===this.editMode?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=f.deepExtend({},this.options.controlNodeStyle);i.id="targetNode"+f.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e;var o=this.body.functions.createNode(i);return o.shape.boundingBox={left:t,right:t,top:e,bottom:e},o}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},f.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,!0===this.guiEnabled&&(f.recursiveDOMDelete(this.editModeDiv),f.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+t]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+t].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+t])}},{key:"_createAddNodeButton",value:function(t){var e=this._createButton("addNode","vis-button vis-add",t.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addNodeMode.bind(this))}},{key:"_createAddEdgeButton",value:function(t){var e=this._createButton("addEdge","vis-button vis-connect",t.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addEdgeMode.bind(this))}},{key:"_createEditNodeButton",value:function(t){var e=this._createButton("editNode","vis-button vis-edit",t.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editNode.bind(this))}},{key:"_createEditEdgeButton",value:function(t){var e=this._createButton("editEdge","vis-button vis-edit",t.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editEdgeMode.bind(this))}},{key:"_createDeleteButton",value:function(t){var e;e=this.options.rtl?"vis-button vis-delete-rtl":"vis-button vis-delete";var i=this._createButton("delete",e,t.del||this.options.locales.en.del);this.manipulationDiv.appendChild(i),this._bindHammerToDiv(i,this.deleteSelected.bind(this))}},{key:"_createBackButton",value:function(t){var e=this._createButton("back","vis-button vis-back",t.back||this.options.locales.en.back);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.showManipulatorToolbar.bind(this))}},{key:"_createButton",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vis-label";return this.manipulationDOM[t+"Div"]=document.createElement("div"),this.manipulationDOM[t+"Div"].className=e,this.manipulationDOM[t+"Label"]=document.createElement("div"),this.manipulationDOM[t+"Label"].className=o,this.manipulationDOM[t+"Label"].innerHTML=i,this.manipulationDOM[t+"Div"].appendChild(this.manipulationDOM[t+"Label"]),this.manipulationDOM[t+"Div"]}},{key:"_createDescription",value:function(t){this.manipulationDiv.appendChild(this._createButton("description","vis-button vis-none",t))}},{key:"_temporaryBindEvent",value:function(t,e){this.temporaryEventFunctions.push({event:t,boundFunction:e}),this.body.emitter.on(t,e)}},{key:"_temporaryBindUI",value:function(t,e){if(void 0===this.body.eventListeners[t])throw new Error("This UI function does not exist. Typo? You tried: "+t+" possible are: "+(0,a.default)((0,s.default)(this.body.eventListeners)));this.temporaryUIFunctions[t]=this.body.eventListeners[t],this.body.eventListeners[t]=e}},{key:"_unbindTemporaryUIs",value:function(){for(var t in this.temporaryUIFunctions)this.temporaryUIFunctions.hasOwnProperty(t)&&(this.body.eventListeners[t]=this.temporaryUIFunctions[t],delete this.temporaryUIFunctions[t]);this.temporaryUIFunctions={}}},{key:"_unbindTemporaryEvents",value:function(){for(var t=0;t=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(!0===s.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=f.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(!0===i.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+f.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(!0===s.isCluster?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_dragStartEdge",value:function(t){var e=this.lastTouch;this.selectionHandler._generateClickEvent("dragStart",t,e,void 0,!0)}},{key:"_performAddNode",value:function(t){var e=this,i={id:f.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e,label:this.body.data.edges._data[this.edgeBeingEditedId].label},n=this.options.editEdge;if("object"===(void 0===n?"undefined":(0,d.default)(n))&&(n=n.editWithoutDrag),"function"==typeof n){if(2!==n.length)throw new Error("The function for edit does not support two arguments (data, callback)");n(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw"),i.showManipulatorToolbar()):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e.default=g},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(31),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(239),u=o(l),c=function(){function t(e,i,o){(0,a.default)(this,t),this.body=e,this.springLength=i,this.springConstant=o,this.distanceSolver=new u.default}return(0,d.default)(t,[{key:"setOptions",value:function(t){t&&(t.springLength&&(this.springLength=t.springLength),t.springConstant&&(this.springConstant=t.springConstant))}},{key:"solve",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.distanceSolver.getDistances(this.body,t,e);this._createL_matrix(o),this._createK_matrix(o),this._createE_matrix();for(var n=0,r=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),a=1e9,h=0,d=0,l=0,u=0,c=0;a>.01&&n1&&c<5;){c+=1,this._moveNode(h,d,l);var m=this._getEnergy(h),v=(0,s.default)(m,3);u=v[0],d=v[1],l=v[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=0,n=e[0],r=0,a=0,h=0;h