{ "version": 3, "sources": ["angular:script/global:scripts.js"], "sourcesContent": ["/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(ie,e){\"use strict\";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType&&\"function\"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement(\"script\");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[i.call(e)]||\"object\":typeof e}var t=\"3.7.1\",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&\"length\"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0+~]|\"+ge+\")\"+ge+\"*\"),x=new RegExp(ge+\"|>\"),j=new RegExp(g),A=new RegExp(\"^\"+t+\"$\"),D={ID:new RegExp(\"^#(\"+t+\")\"),CLASS:new RegExp(\"^\\\\.(\"+t+\")\"),TAG:new RegExp(\"^(\"+t+\"|[*])\"),ATTR:new RegExp(\"^\"+p),PSEUDO:new RegExp(\"^\"+g),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+ge+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+ge+\"*(?:([+-]|)\"+ge+\"*(\\\\d+)|))\"+ge+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+f+\")$\",\"i\"),needsContext:new RegExp(\"^\"+ge+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+ge+\"*((?:-\\\\d)?\\\\d*)\"+ge+\"*\\\\)|)(?=[^-]|$)\",\"i\")},N=/^(?:input|select|textarea|button)$/i,q=/^h\\d$/i,L=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,H=/[+~]/,O=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+ge+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),P=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,\"fieldset\")},{dir:\"parentNode\",next:\"legend\"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+\" \"]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute(\"id\"))?s=ce.escapeSelector(s):e.setAttribute(\"id\",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+Q(l[o]);c=l.join(\",\")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute(\"id\")}}}return re(t.replace(ve,\"$1\"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,\"input\")&&e.type===t}}function _(t){return function(e){return(fe(e,\"input\")||fe(e,\"button\"))&&e.type===t}}function z(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener(\"unload\",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,\"*\")}),le.scope=$(function(){return T.querySelectorAll(\":scope\")}),le.cssHas=$(function(){try{return T.querySelector(\":has(*,:jqfake)\"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[selected]\").length||d.push(\"\\\\[\"+ge+\"*(?:value|\"+f+\")\"),e.querySelectorAll(\"[id~=\"+S+\"-]\").length||d.push(\"~=\"),e.querySelectorAll(\"a#\"+S+\"+*\").length||d.push(\".#.+[+~]\"),e.querySelectorAll(\":checked\").length||d.push(\":checked\"),(t=T.createElement(\"input\")).setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&d.push(\":enabled\",\":disabled\"),(t=T.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||d.push(\"\\\\[\"+ge+\"*name\"+ge+\"*=\"+ge+\"*(?:''|\\\"\\\")\")}),le.cssHas||d.push(\":has\"),d=d.length&&new RegExp(d.join(\"|\")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+\" \"]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||\"\").replace(O,P),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+\" \"];return t||(t=new RegExp(\"(^|\"+ge+\")\"+e+\"(\"+ge+\"|$)\"))&&s(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\\x20\\t\\r\\n\\f]*)/i,Ce=/^$|^module$|\\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement(\"div\")),(be=C.createElement(\"input\")).setAttribute(\"type\",\"radio\"),be.setAttribute(\"checked\",\"checked\"),be.setAttribute(\"name\",\"t\"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML=\"\",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML=\"\",le.option=!!xe.lastChild;var ke={thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function Se(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n\",\"\"]);var je=/<|&#?\\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\\s*$/g;function Re(e,t){return fe(e,\"table\")&&fe(11!==t.nodeType?t:t.firstChild,\"tr\")&&ce(e).children(\"tbody\")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function We(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\\?(?=&|$)|\\?\\?/;ce.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Kt.pop()||ce.expando+\"_\"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Zt.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,\"$1\"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||ce.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),\"script\"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument(\"\").body).innerHTML=\"
\",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1\").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,\"position\"),c=ce(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=ce.css(e,\"top\"),u=ce.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===ce.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===ce.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,\"borderTopWidth\",!0),i.left+=ce.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-ce.css(r,\"marginTop\",!0),left:t.left-i.left-ce.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===ce.css(e,\"position\"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each([\"top\",\"left\"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+\"px\":t})}),ce.each({Height:\"height\",Width:\"width\"},function(a,s){ce.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.on(\"mouseenter\",e).on(\"mouseleave\",t||e)}}),ce.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){ce.fn[n]=function(e,t){return 00&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||\"\").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&((\"body\"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return\"html\"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return[\"html\",\"body\",\"#document\"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return[\"table\",\"td\",\"th\"].indexOf(l(e))>=0}function j(e){return r(e)&&\"fixed\"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&\"static\"===m(i).position;)i=j(i);return i&&(\"html\"===l(i)||\"body\"===l(i)&&\"static\"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&\"fixed\"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&[\"html\",\"body\"].indexOf(l(n))<0;){var i=m(n);if(\"none\"!==i.transform||\"none\"!==i.perspective||\"paint\"===i.contain||-1!==[\"transform\",\"perspective\"].indexOf(i.willChange)||t&&\"filter\"===i.willChange||t&&i.filter&&\"none\"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D=\"top\",A=\"bottom\",L=\"right\",P=\"left\",M=\"auto\",k=[D,A,L,P],W=\"start\",B=\"end\",H=\"viewport\",T=\"popper\",R=k.reduce((function(e,t){return e.concat([t+\"-\"+W,t+\"-\"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+\"-\"+W,t+\"-\"+B])}),[]),V=[\"beforeRead\",\"read\",\"afterRead\",\"beforeMain\",\"main\",\"afterMain\",\"beforeWrite\",\"write\",\"afterWrite\"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function N(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function I(e,r,o){return r===H?N(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&\"fixed\"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,\"fixed\"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):N(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return\"rtl\"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function _(e,t,o,s){var f=\"clippingParents\"===t?function(e){var t=w(b(e)),o=[\"absolute\",\"fixed\"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&C(e,o)&&\"body\"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=I(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),I(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function F(e){return e.split(\"-\")[0]}function U(e){return e.split(\"-\")[1]}function z(e){return[\"top\",\"bottom\"].indexOf(e)>=0?\"x\":\"y\"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?F(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p=\"y\"===c?\"height\":\"width\";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?\"clippingParents\":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y(\"number\"!=typeof b?b:G(b,k)),w=m===T?\"reference\":T,O=e.rects.popper,j=e.elements[y?w:m],E=_(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:\"absolute\",placement:i}),W=N(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?\"y\":\"x\";R[e]+=V[n]*t}))}return R}var K={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i=\"function\"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:\"end\",end:\"start\"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[F(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:\"flip\",enabled:!0,phase:\"main\",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=F(v),g=f||(y===v||!h?[fe(v)]:function(e){if(F(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(F(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?\"width\":\"height\",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var C=fe(q),N=[];if(i&&N.push(V[H]<=0),s&&N.push(V[q]<=0,V[C]<=0),N.every((function(e){return e}))){E=B,j=!1;break}O.set(B,N)}if(j)for(var I=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,\"break\"},_=h?3:1;_>0;_--){if(\"break\"===I(_))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:[\"offset\"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=F(t.placement),w=U(t.placement),O=!w,j=z(x),M=\"x\"===j?\"y\":\"x\",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T=\"function\"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R=\"number\"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,C=\"y\"===j?D:P,N=\"y\"===j?A:L,I=\"y\"===j?\"height\":\"width\",_=k[j],X=_+b[C],Y=_-b[N],G=m?-H[I]/2:0,K=w===W?B[I]:H[I],Q=w===W?-H[I]:-B[I],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData[\"arrow#persistent\"]?t.modifiersData[\"arrow#persistent\"].padding:{top:0,right:0,bottom:0,left:0},te=ee[C],ne=ee[N],re=de(0,B[I],$[I]),oe=O?B[I]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[I]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?\"y\"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=_+ie-fe,pe=de(m?a(X,_+oe-fe-se):X,_,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-_}if(c){var ue,le=\"x\"===j?D:P,he=\"x\"===j?A:L,me=k[M],ve=\"y\"===M?\"height\":\"width\",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:[\"offset\"]};var me={name:\"arrow\",enabled:!0,phase:\"main\",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=F(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?\"height\":\"width\";if(i&&a){var p=function(e,t){return Y(\"number\"!=typeof(e=\"function\"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l=\"y\"===f?D:P,d=\"y\"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?\"y\"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?\"[data-popper-arrow]\":n;null!=r&&(\"string\"!=typeof r||(r=t.elements.popper.querySelector(r)))&&C(t.elements.popper,r)&&(t.elements.arrow=r)},requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:\"hide\",enabled:!0,phase:\"main\",requiresIfExists:[\"preventOverflow\"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:\"reference\"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{\"data-popper-reference-hidden\":p,\"data-popper-escaped\":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,\"__esModule\",{value:!0})}));\n//# sourceMappingURL=popper.min.js.map\n\n/*!\n * Bootstrap v5.3.2 (https://getbootstrap.com/)\n * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(require(\"@popperjs/core\")):\"function\"==typeof define&&define.amd?define([\"@popperjs/core\"],e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){\"use strict\";function e(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:\"Module\"}});if(t)for(const i in t)if(\"default\"!==i){const s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:()=>t[i]})}return e.default=t,Object.freeze(e)}const i=e(t),s=new Map,n={set(t,e,i){s.has(t)||s.set(t,new Map);const n=s.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>s.has(t)&&s.get(t).get(e)||null,remove(t,e){if(!s.has(t))return;const i=s.get(t);i.delete(e),0===i.size&&s.delete(t)}},o=\"transitionend\",r=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\\s\"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),a=t=>{t.dispatchEvent(new Event(o))},l=t=>!(!t||\"object\"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),c=t=>l(t)?t.jquery?t[0]:t:\"string\"==typeof t&&t.length>0?document.querySelector(r(t)):null,h=t=>{if(!l(t)||0===t.getClientRects().length)return!1;const e=\"visible\"===getComputedStyle(t).getPropertyValue(\"visibility\"),i=t.closest(\"details:not([open])\");if(!i)return e;if(i!==t){const e=t.closest(\"summary\");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains(\"disabled\")||(void 0!==t.disabled?t.disabled:t.hasAttribute(\"disabled\")&&\"false\"!==t.getAttribute(\"disabled\")),u=t=>{if(!document.documentElement.attachShadow)return null;if(\"function\"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?u(t.parentNode):null},_=()=>{},g=t=>{t.offsetHeight},f=()=>window.jQuery&&!document.body.hasAttribute(\"data-bs-no-jquery\")?window.jQuery:null,m=[],p=()=>\"rtl\"===document.documentElement.dir,b=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,s=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=s,t.jQueryInterface)}},\"loading\"===document.readyState?(m.length||document.addEventListener(\"DOMContentLoaded\",(()=>{for(const t of m)t()})),m.push(e)):e()},v=(t,e=[],i=t)=>\"function\"==typeof t?t(...e):i,y=(t,e,i=!0)=>{if(!i)return void v(t);const s=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(\",\")[0],i=i.split(\",\")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let n=!1;const r=({target:i})=>{i===e&&(n=!0,e.removeEventListener(o,r),v(t))};e.addEventListener(o,r),setTimeout((()=>{n||a(e)}),s)},w=(t,e,i,s)=>{const n=t.length;let o=t.indexOf(e);return-1===o?!i&&s?t[n-1]:t[0]:(o+=i?1:-1,s&&(o=(o+n)%n),t[Math.max(0,Math.min(o,n-1))])},A=/[^.]*(?=\\..*)\\.|.*/,E=/\\..*/,C=/::\\d+$/,T={};let k=1;const $={mouseenter:\"mouseover\",mouseleave:\"mouseout\"},S=new Set([\"click\",\"dblclick\",\"mouseup\",\"mousedown\",\"contextmenu\",\"mousewheel\",\"DOMMouseScroll\",\"mouseover\",\"mouseout\",\"mousemove\",\"selectstart\",\"selectend\",\"keydown\",\"keypress\",\"keyup\",\"orientationchange\",\"touchstart\",\"touchmove\",\"touchend\",\"touchcancel\",\"pointerdown\",\"pointermove\",\"pointerup\",\"pointerleave\",\"pointercancel\",\"gesturestart\",\"gesturechange\",\"gestureend\",\"focus\",\"blur\",\"change\",\"reset\",\"select\",\"submit\",\"focusin\",\"focusout\",\"load\",\"unload\",\"beforeunload\",\"resize\",\"move\",\"DOMContentLoaded\",\"readystatechange\",\"error\",\"abort\",\"scroll\"]);function L(t,e){return e&&`${e}::${k++}`||t.uidEvent||k++}function O(t){const e=L(t);return t.uidEvent=e,T[e]=T[e]||{},T[e]}function I(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function D(t,e,i){const s=\"string\"==typeof e,n=s?i:e||i;let o=M(t);return S.has(o)||(o=t),[s,n,o]}function N(t,e,i,s,n){if(\"string\"!=typeof e||!t)return;let[o,r,a]=D(e,i,s);if(e in $){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=O(t),c=l[a]||(l[a]={}),h=I(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=L(r,e.replace(A,\"\")),u=o?function(t,e,i){return function s(n){const o=t.querySelectorAll(e);for(let{target:r}=n;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return F(n,{delegateTarget:r}),s.oneOff&&j.off(t,n.type,e,i),i.apply(r,[n])}}(t,i,r):function(t,e){return function i(s){return F(s,{delegateTarget:t}),i.oneOff&&j.off(t,s.type,e),e.apply(t,[s])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function P(t,e,i,s,n){const o=I(e[i],s,n);o&&(t.removeEventListener(i,o,Boolean(n)),delete e[i][o.uidEvent])}function x(t,e,i,s){const n=e[i]||{};for(const[o,r]of Object.entries(n))o.includes(s)&&P(t,e,i,r.callable,r.delegationSelector)}function M(t){return t=t.replace(E,\"\"),$[t]||t}const j={on(t,e,i,s){N(t,e,i,s,!1)},one(t,e,i,s){N(t,e,i,s,!0)},off(t,e,i,s){if(\"string\"!=typeof e||!t)return;const[n,o,r]=D(e,i,s),a=r!==e,l=O(t),c=l[r]||{},h=e.startsWith(\".\");if(void 0===o){if(h)for(const i of Object.keys(l))x(t,l,i,e.slice(1));for(const[i,s]of Object.entries(c)){const n=i.replace(C,\"\");a&&!e.includes(n)||P(t,l,r,s.callable,s.delegationSelector)}}else{if(!Object.keys(c).length)return;P(t,l,r,o,n?i:null)}},trigger(t,e,i){if(\"string\"!=typeof e||!t)return null;const s=f();let n=null,o=!0,r=!0,a=!1;e!==M(e)&&s&&(n=s.Event(e,i),s(t).trigger(n),o=!n.isPropagationStopped(),r=!n.isImmediatePropagationStopped(),a=n.isDefaultPrevented());const l=F(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&n&&n.preventDefault(),l}};function F(t,e={}){for(const[i,s]of Object.entries(e))try{t[i]=s}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>s})}return t}function z(t){if(\"true\"===t)return!0;if(\"false\"===t)return!1;if(t===Number(t).toString())return Number(t);if(\"\"===t||\"null\"===t)return null;if(\"string\"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function H(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const B={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${H(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${H(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith(\"bs\")&&!t.startsWith(\"bsConfig\")));for(const s of i){let i=s.replace(/^bs/,\"\");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=z(t.dataset[s])}return e},getDataAttribute:(t,e)=>z(t.getAttribute(`data-bs-${H(e)}`))};class q{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method \"NAME\", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=l(e)?B.getDataAttribute(e,\"config\"):{};return{...this.constructor.Default,...\"object\"==typeof i?i:{},...l(e)?B.getDataAttributes(e):{},...\"object\"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[s,n]of Object.entries(e)){const e=t[s],o=l(e)?\"element\":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${s}\" provided type \"${o}\" but expected type \"${n}\".`)}var i}}class W extends q{constructor(t,e){super(),(t=c(t))&&(this._element=t,this._config=this._getConfig(e),n.set(this._element,this.constructor.DATA_KEY,this))}dispose(){n.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){y(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return n.get(c(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,\"object\"==typeof e?e:null)}static get VERSION(){return\"5.3.2\"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const R=t=>{let e=t.getAttribute(\"data-bs-target\");if(!e||\"#\"===e){let i=t.getAttribute(\"href\");if(!i||!i.includes(\"#\")&&!i.startsWith(\".\"))return null;i.includes(\"#\")&&!i.startsWith(\"#\")&&(i=`#${i.split(\"#\")[1]}`),e=i&&\"#\"!==i?r(i.trim()):null}return e},K={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let s=t.parentNode.closest(e);for(;s;)i.push(s),s=s.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=[\"a\",\"button\",\"input\",\"textarea\",\"select\",\"details\",\"[tabindex]\",'[contenteditable=\"true\"]'].map((t=>`${t}:not([tabindex^=\"-\"])`)).join(\",\");return this.find(e,t).filter((t=>!d(t)&&h(t)))},getSelectorFromElement(t){const e=R(t);return e&&K.findOne(e)?e:null},getElementFromSelector(t){const e=R(t);return e?K.findOne(e):null},getMultipleElementsFromSelector(t){const e=R(t);return e?K.find(e):[]}},V=(t,e=\"hide\")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss=\"${s}\"]`,(function(i){if([\"A\",\"AREA\"].includes(this.tagName)&&i.preventDefault(),d(this))return;const n=K.getElementFromSelector(this)||this.closest(`.${s}`);t.getOrCreateInstance(n)[e]()}))},Q=\".bs.alert\",X=`close${Q}`,Y=`closed${Q}`;class U extends W{static get NAME(){return\"alert\"}close(){if(j.trigger(this._element,X).defaultPrevented)return;this._element.classList.remove(\"show\");const t=this._element.classList.contains(\"fade\");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),j.trigger(this._element,Y),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=U.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}V(U,\"close\"),b(U);const G='[data-bs-toggle=\"button\"]';class J extends W{static get NAME(){return\"button\"}toggle(){this._element.setAttribute(\"aria-pressed\",this._element.classList.toggle(\"active\"))}static jQueryInterface(t){return this.each((function(){const e=J.getOrCreateInstance(this);\"toggle\"===t&&e[t]()}))}}j.on(document,\"click.bs.button.data-api\",G,(t=>{t.preventDefault();const e=t.target.closest(G);J.getOrCreateInstance(e).toggle()})),b(J);const Z=\".bs.swipe\",tt=`touchstart${Z}`,et=`touchmove${Z}`,it=`touchend${Z}`,st=`pointerdown${Z}`,nt=`pointerup${Z}`,ot={endCallback:null,leftCallback:null,rightCallback:null},rt={endCallback:\"(function|null)\",leftCallback:\"(function|null)\",rightCallback:\"(function|null)\"};class at extends q{constructor(t,e){super(),this._element=t,t&&at.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return ot}static get DefaultType(){return rt}static get NAME(){return\"swipe\"}dispose(){j.off(this._element,Z)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),v(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&v(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(j.on(this._element,st,(t=>this._start(t))),j.on(this._element,nt,(t=>this._end(t))),this._element.classList.add(\"pointer-event\")):(j.on(this._element,tt,(t=>this._start(t))),j.on(this._element,et,(t=>this._move(t))),j.on(this._element,it,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&(\"pen\"===t.pointerType||\"touch\"===t.pointerType)}static isSupported(){return\"ontouchstart\"in document.documentElement||navigator.maxTouchPoints>0}}const lt=\".bs.carousel\",ct=\".data-api\",ht=\"next\",dt=\"prev\",ut=\"left\",_t=\"right\",gt=`slide${lt}`,ft=`slid${lt}`,mt=`keydown${lt}`,pt=`mouseenter${lt}`,bt=`mouseleave${lt}`,vt=`dragstart${lt}`,yt=`load${lt}${ct}`,wt=`click${lt}${ct}`,At=\"carousel\",Et=\"active\",Ct=\".active\",Tt=\".carousel-item\",kt=Ct+Tt,$t={ArrowLeft:_t,ArrowRight:ut},St={interval:5e3,keyboard:!0,pause:\"hover\",ride:!1,touch:!0,wrap:!0},Lt={interval:\"(number|boolean)\",keyboard:\"boolean\",pause:\"(string|boolean)\",ride:\"(boolean|string)\",touch:\"boolean\",wrap:\"boolean\"};class Ot extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=K.findOne(\".carousel-indicators\",this._element),this._addEventListeners(),this._config.ride===At&&this.cycle()}static get Default(){return St}static get DefaultType(){return Lt}static get NAME(){return\"carousel\"}next(){this._slide(ht)}nextWhenVisible(){!document.hidden&&h(this._element)&&this.next()}prev(){this._slide(dt)}pause(){this._isSliding&&a(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?j.one(this._element,ft,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,ft,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const s=t>i?ht:dt;this._slide(s,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&j.on(this._element,mt,(t=>this._keydown(t))),\"hover\"===this._config.pause&&(j.on(this._element,pt,(()=>this.pause())),j.on(this._element,bt,(()=>this._maybeEnableCycle()))),this._config.touch&&at.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of K.find(\".carousel-item img\",this._element))j.on(t,vt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ut)),rightCallback:()=>this._slide(this._directionToOrder(_t)),endCallback:()=>{\"hover\"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new at(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=$t[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=K.findOne(Ct,this._indicatorsElement);e.classList.remove(Et),e.removeAttribute(\"aria-current\");const i=K.findOne(`[data-bs-slide-to=\"${t}\"]`,this._indicatorsElement);i&&(i.classList.add(Et),i.setAttribute(\"aria-current\",\"true\"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute(\"data-bs-interval\"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),s=t===ht,n=e||w(this._getItems(),i,s,this._config.wrap);if(n===i)return;const o=this._getItemIndex(n),r=e=>j.trigger(this._element,e,{relatedTarget:n,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(gt).defaultPrevented)return;if(!i||!n)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=n;const l=s?\"carousel-item-start\":\"carousel-item-end\",c=s?\"carousel-item-next\":\"carousel-item-prev\";n.classList.add(c),g(n),i.classList.add(l),n.classList.add(l),this._queueCallback((()=>{n.classList.remove(l,c),n.classList.add(Et),i.classList.remove(Et,c,l),this._isSliding=!1,r(ft)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains(\"slide\")}_getActive(){return K.findOne(kt,this._element)}_getItems(){return K.find(Tt,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ut?dt:ht:t===ut?ht:dt}_orderToDirection(t){return p()?t===dt?ut:_t:t===dt?_t:ut}static jQueryInterface(t){return this.each((function(){const e=Ot.getOrCreateInstance(this,t);if(\"number\"!=typeof t){if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}else e.to(t)}))}}j.on(document,wt,\"[data-bs-slide], [data-bs-slide-to]\",(function(t){const e=K.getElementFromSelector(this);if(!e||!e.classList.contains(At))return;t.preventDefault();const i=Ot.getOrCreateInstance(e),s=this.getAttribute(\"data-bs-slide-to\");return s?(i.to(s),void i._maybeEnableCycle()):\"next\"===B.getDataAttribute(this,\"slide\")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),j.on(window,yt,(()=>{const t=K.find('[data-bs-ride=\"carousel\"]');for(const e of t)Ot.getOrCreateInstance(e)})),b(Ot);const It=\".bs.collapse\",Dt=`show${It}`,Nt=`shown${It}`,Pt=`hide${It}`,xt=`hidden${It}`,Mt=`click${It}.data-api`,jt=\"show\",Ft=\"collapse\",zt=\"collapsing\",Ht=`:scope .${Ft} .${Ft}`,Bt='[data-bs-toggle=\"collapse\"]',qt={parent:null,toggle:!0},Wt={parent:\"(null|element)\",toggle:\"boolean\"};class Rt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=K.find(Bt);for(const t of i){const e=K.getSelectorFromElement(t),i=K.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return qt}static get DefaultType(){return Wt}static get NAME(){return\"collapse\"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(\".collapse.show, .collapse.collapsing\").filter((t=>t!==this._element)).map((t=>Rt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(j.trigger(this._element,Dt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Ft),this._element.classList.add(zt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(zt),this._element.classList.add(Ft,jt),this._element.style[e]=\"\",j.trigger(this._element,Nt)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,Pt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,g(this._element),this._element.classList.add(zt),this._element.classList.remove(Ft,jt);for(const t of this._triggerArray){const e=K.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]=\"\",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(zt),this._element.classList.add(Ft),j.trigger(this._element,xt)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(jt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=c(t.parent),t}_getDimension(){return this._element.classList.contains(\"collapse-horizontal\")?\"width\":\"height\"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Bt);for(const e of t){const t=K.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=K.find(Ht,this._config.parent);return K.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle(\"collapsed\",!e),i.setAttribute(\"aria-expanded\",e)}static jQueryInterface(t){const e={};return\"string\"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Rt.getOrCreateInstance(this,e);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t]()}}))}}j.on(document,Mt,Bt,(function(t){(\"A\"===t.target.tagName||t.delegateTarget&&\"A\"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of K.getMultipleElementsFromSelector(this))Rt.getOrCreateInstance(t,{toggle:!1}).toggle()})),b(Rt);const Kt=\"dropdown\",Vt=\".bs.dropdown\",Qt=\".data-api\",Xt=\"ArrowUp\",Yt=\"ArrowDown\",Ut=`hide${Vt}`,Gt=`hidden${Vt}`,Jt=`show${Vt}`,Zt=`shown${Vt}`,te=`click${Vt}${Qt}`,ee=`keydown${Vt}${Qt}`,ie=`keyup${Vt}${Qt}`,se=\"show\",ne='[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)',oe=`${ne}.${se}`,re=\".dropdown-menu\",ae=p()?\"top-end\":\"top-start\",le=p()?\"top-start\":\"top-end\",ce=p()?\"bottom-end\":\"bottom-start\",he=p()?\"bottom-start\":\"bottom-end\",de=p()?\"left-start\":\"right-start\",ue=p()?\"right-start\":\"left-start\",_e={autoClose:!0,boundary:\"clippingParents\",display:\"dynamic\",offset:[0,2],popperConfig:null,reference:\"toggle\"},ge={autoClose:\"(boolean|string)\",boundary:\"(string|element)\",display:\"string\",offset:\"(array|string|function)\",popperConfig:\"(null|object|function)\",reference:\"(string|element|object)\"};class fe extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=K.next(this._element,re)[0]||K.prev(this._element,re)[0]||K.findOne(re,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return _e}static get DefaultType(){return ge}static get NAME(){return Kt}toggle(){return this._isShown()?this.hide():this.show()}show(){if(d(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!j.trigger(this._element,Jt,t).defaultPrevented){if(this._createPopper(),\"ontouchstart\"in document.documentElement&&!this._parent.closest(\".navbar-nav\"))for(const t of[].concat(...document.body.children))j.on(t,\"mouseover\",_);this._element.focus(),this._element.setAttribute(\"aria-expanded\",!0),this._menu.classList.add(se),this._element.classList.add(se),j.trigger(this._element,Zt,t)}}hide(){if(d(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!j.trigger(this._element,Ut,t).defaultPrevented){if(\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))j.off(t,\"mouseover\",_);this._popper&&this._popper.destroy(),this._menu.classList.remove(se),this._element.classList.remove(se),this._element.setAttribute(\"aria-expanded\",\"false\"),B.removeDataAttribute(this._menu,\"popper\"),j.trigger(this._element,Gt,t)}}_getConfig(t){if(\"object\"==typeof(t=super._getConfig(t)).reference&&!l(t.reference)&&\"function\"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Kt.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);return t}_createPopper(){if(void 0===i)throw new TypeError(\"Bootstrap's dropdowns require Popper (https://popper.js.org)\");let t=this._element;\"parent\"===this._config.reference?t=this._parent:l(this._config.reference)?t=c(this._config.reference):\"object\"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=i.createPopper(t,this._menu,e)}_isShown(){return this._menu.classList.contains(se)}_getPlacement(){const t=this._parent;if(t.classList.contains(\"dropend\"))return de;if(t.classList.contains(\"dropstart\"))return ue;if(t.classList.contains(\"dropup-center\"))return\"top\";if(t.classList.contains(\"dropdown-center\"))return\"bottom\";const e=\"end\"===getComputedStyle(this._menu).getPropertyValue(\"--bs-position\").trim();return t.classList.contains(\"dropup\")?e?le:ae:e?he:ce}_detectNavbar(){return null!==this._element.closest(\".navbar\")}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map((t=>Number.parseInt(t,10))):\"function\"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"offset\",options:{offset:this._getOffset()}}]};return(this._inNavbar||\"static\"===this._config.display)&&(B.setDataAttribute(this._menu,\"popper\",\"static\"),t.modifiers=[{name:\"applyStyles\",enabled:!1}]),{...t,...v(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=K.find(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\",this._menu).filter((t=>h(t)));i.length&&w(i,e,t===Yt,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=fe.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}static clearMenus(t){if(2===t.button||\"keyup\"===t.type&&\"Tab\"!==t.key)return;const e=K.find(oe);for(const i of e){const e=fe.getInstance(i);if(!e||!1===e._config.autoClose)continue;const s=t.composedPath(),n=s.includes(e._menu);if(s.includes(e._element)||\"inside\"===e._config.autoClose&&!n||\"outside\"===e._config.autoClose&&n)continue;if(e._menu.contains(t.target)&&(\"keyup\"===t.type&&\"Tab\"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};\"click\"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i=\"Escape\"===t.key,s=[Xt,Yt].includes(t.key);if(!s&&!i)return;if(e&&!i)return;t.preventDefault();const n=this.matches(ne)?this:K.prev(this,ne)[0]||K.next(this,ne)[0]||K.findOne(ne,t.delegateTarget.parentNode),o=fe.getOrCreateInstance(n);if(s)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),n.focus())}}j.on(document,ee,ne,fe.dataApiKeydownHandler),j.on(document,ee,re,fe.dataApiKeydownHandler),j.on(document,te,fe.clearMenus),j.on(document,ie,fe.clearMenus),j.on(document,te,ne,(function(t){t.preventDefault(),fe.getOrCreateInstance(this).toggle()})),b(fe);const me=\"backdrop\",pe=\"show\",be=`mousedown.bs.${me}`,ve={className:\"modal-backdrop\",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:\"body\"},ye={className:\"string\",clickCallback:\"(function|null)\",isAnimated:\"boolean\",isVisible:\"boolean\",rootElement:\"(element|string)\"};class we extends q{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return ve}static get DefaultType(){return ye}static get NAME(){return me}show(t){if(!this._config.isVisible)return void v(t);this._append();const e=this._getElement();this._config.isAnimated&&g(e),e.classList.add(pe),this._emulateAnimation((()=>{v(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(pe),this._emulateAnimation((()=>{this.dispose(),v(t)}))):v(t)}dispose(){this._isAppended&&(j.off(this._element,be),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement(\"div\");t.className=this._config.className,this._config.isAnimated&&t.classList.add(\"fade\"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=c(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),j.on(t,be,(()=>{v(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){y(t,this._getElement(),this._config.isAnimated)}}const Ae=\".bs.focustrap\",Ee=`focusin${Ae}`,Ce=`keydown.tab${Ae}`,Te=\"backward\",ke={autofocus:!0,trapElement:null},$e={autofocus:\"boolean\",trapElement:\"element\"};class Se extends q{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return ke}static get DefaultType(){return $e}static get NAME(){return\"focustrap\"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),j.off(document,Ae),j.on(document,Ee,(t=>this._handleFocusin(t))),j.on(document,Ce,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,Ae))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=K.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===Te?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){\"Tab\"===t.key&&(this._lastTabNavDirection=t.shiftKey?Te:\"forward\")}}const Le=\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\",Oe=\".sticky-top\",Ie=\"padding-right\",De=\"margin-right\";class Ne{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,Ie,(e=>e+t)),this._setElementAttributes(Le,Ie,(e=>e+t)),this._setElementAttributes(Oe,De,(e=>e-t))}reset(){this._resetElementAttributes(this._element,\"overflow\"),this._resetElementAttributes(this._element,Ie),this._resetElementAttributes(Le,Ie),this._resetElementAttributes(Oe,De)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,\"overflow\"),this._element.style.overflow=\"hidden\"}_setElementAttributes(t,e,i){const s=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+s)return;this._saveInitialAttribute(t,e);const n=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(n))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&B.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=B.getDataAttribute(t,e);null!==i?(B.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(l(t))e(t);else for(const i of K.find(t,this._element))e(i)}}const Pe=\".bs.modal\",xe=`hide${Pe}`,Me=`hidePrevented${Pe}`,je=`hidden${Pe}`,Fe=`show${Pe}`,ze=`shown${Pe}`,He=`resize${Pe}`,Be=`click.dismiss${Pe}`,qe=`mousedown.dismiss${Pe}`,We=`keydown.dismiss${Pe}`,Re=`click${Pe}.data-api`,Ke=\"modal-open\",Ve=\"show\",Qe=\"modal-static\",Xe={backdrop:!0,focus:!0,keyboard:!0},Ye={backdrop:\"(boolean|string)\",focus:\"boolean\",keyboard:\"boolean\"};class Ue extends W{constructor(t,e){super(t,e),this._dialog=K.findOne(\".modal-dialog\",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Ne,this._addEventListeners()}static get Default(){return Xe}static get DefaultType(){return Ye}static get NAME(){return\"modal\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,Fe,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Ke),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(j.trigger(this._element,xe).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Ve),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){j.off(window,Pe),j.off(this._dialog,Pe),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new we({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Se({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display=\"block\",this._element.removeAttribute(\"aria-hidden\"),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.scrollTop=0;const e=K.findOne(\".modal-body\",this._dialog);e&&(e.scrollTop=0),g(this._element),this._element.classList.add(Ve),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,ze,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){j.on(this._element,We,(t=>{\"Escape\"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),j.on(window,He,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),j.on(this._element,qe,(t=>{j.one(this._element,Be,(e=>{this._element===t.target&&this._element===e.target&&(\"static\"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display=\"none\",this._element.setAttribute(\"aria-hidden\",!0),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Ke),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,je)}))}_isAnimated(){return this._element.classList.contains(\"fade\")}_triggerBackdropTransition(){if(j.trigger(this._element,Me).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;\"hidden\"===e||this._element.classList.contains(Qe)||(t||(this._element.style.overflowY=\"hidden\"),this._element.classList.add(Qe),this._queueCallback((()=>{this._element.classList.remove(Qe),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?\"paddingLeft\":\"paddingRight\";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?\"paddingRight\":\"paddingLeft\";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft=\"\",this._element.style.paddingRight=\"\"}static jQueryInterface(t,e){return this.each((function(){const i=Ue.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t](e)}}))}}j.on(document,Re,'[data-bs-toggle=\"modal\"]',(function(t){const e=K.getElementFromSelector(this);[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),j.one(e,Fe,(t=>{t.defaultPrevented||j.one(e,je,(()=>{h(this)&&this.focus()}))}));const i=K.findOne(\".modal.show\");i&&Ue.getInstance(i).hide(),Ue.getOrCreateInstance(e).toggle(this)})),V(Ue),b(Ue);const Ge=\".bs.offcanvas\",Je=\".data-api\",Ze=`load${Ge}${Je}`,ti=\"show\",ei=\"showing\",ii=\"hiding\",si=\".offcanvas.show\",ni=`show${Ge}`,oi=`shown${Ge}`,ri=`hide${Ge}`,ai=`hidePrevented${Ge}`,li=`hidden${Ge}`,ci=`resize${Ge}`,hi=`click${Ge}${Je}`,di=`keydown.dismiss${Ge}`,ui={backdrop:!0,keyboard:!0,scroll:!1},_i={backdrop:\"(boolean|string)\",keyboard:\"boolean\",scroll:\"boolean\"};class gi extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return ui}static get DefaultType(){return _i}static get NAME(){return\"offcanvas\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,ni,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new Ne).hide(),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.classList.add(ei),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(ti),this._element.classList.remove(ei),j.trigger(this._element,oi,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,ri).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(ii),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(ti,ii),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._config.scroll||(new Ne).reset(),j.trigger(this._element,li)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new we({className:\"offcanvas-backdrop\",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{\"static\"!==this._config.backdrop?this.hide():j.trigger(this._element,ai)}:null})}_initializeFocusTrap(){return new Se({trapElement:this._element})}_addEventListeners(){j.on(this._element,di,(t=>{\"Escape\"===t.key&&(this._config.keyboard?this.hide():j.trigger(this._element,ai))}))}static jQueryInterface(t){return this.each((function(){const e=gi.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}j.on(document,hi,'[data-bs-toggle=\"offcanvas\"]',(function(t){const e=K.getElementFromSelector(this);if([\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),d(this))return;j.one(e,li,(()=>{h(this)&&this.focus()}));const i=K.findOne(si);i&&i!==e&&gi.getInstance(i).hide(),gi.getOrCreateInstance(e).toggle(this)})),j.on(window,Ze,(()=>{for(const t of K.find(si))gi.getOrCreateInstance(t).show()})),j.on(window,ci,(()=>{for(const t of K.find(\"[aria-modal][class*=show][class*=offcanvas-]\"))\"fixed\"!==getComputedStyle(t).position&&gi.getOrCreateInstance(t).hide()})),V(gi),b(gi);const fi={\"*\":[\"class\",\"dir\",\"id\",\"lang\",\"role\",/^aria-[\\w-]*$/i],a:[\"target\",\"href\",\"title\",\"rel\"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:[\"src\",\"srcset\",\"alt\",\"title\",\"width\",\"height\"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},mi=new Set([\"background\",\"cite\",\"href\",\"itemtype\",\"longdesc\",\"poster\",\"src\",\"xlink:href\"]),pi=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,bi=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!mi.has(i)||Boolean(pi.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},vi={allowList:fi,content:{},extraClass:\"\",html:!1,sanitize:!0,sanitizeFn:null,template:\"
\"},yi={allowList:\"object\",content:\"object\",extraClass:\"(string|function)\",html:\"boolean\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",template:\"string\"},wi={entry:\"(string|element|function|null)\",selector:\"(string|element)\"};class Ai extends q{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return vi}static get DefaultType(){return yi}static get NAME(){return\"TemplateFactory\"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement(\"div\");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(\" \")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},wi)}_setContent(t,e,i){const s=K.findOne(i,t);s&&((e=this._resolvePossibleFunction(e))?l(e)?this._putElementInTemplate(c(e),s):this._config.html?s.innerHTML=this._maybeSanitize(e):s.textContent=e:s.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&\"function\"==typeof i)return i(t);const s=(new window.DOMParser).parseFromString(t,\"text/html\"),n=[].concat(...s.body.querySelectorAll(\"*\"));for(const t of n){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const s=[].concat(...t.attributes),n=[].concat(e[\"*\"]||[],e[i]||[]);for(const e of s)bi(e,n)||t.removeAttribute(e.nodeName)}return s.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return v(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML=\"\",void e.append(t);e.textContent=t.textContent}}const Ei=new Set([\"sanitize\",\"allowList\",\"sanitizeFn\"]),Ci=\"fade\",Ti=\"show\",ki=\".modal\",$i=\"hide.bs.modal\",Si=\"hover\",Li=\"focus\",Oi={AUTO:\"auto\",TOP:\"top\",RIGHT:p()?\"left\":\"right\",BOTTOM:\"bottom\",LEFT:p()?\"right\":\"left\"},Ii={allowList:fi,animation:!0,boundary:\"clippingParents\",container:!1,customClass:\"\",delay:0,fallbackPlacements:[\"top\",\"right\",\"bottom\",\"left\"],html:!1,offset:[0,6],placement:\"top\",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'
',title:\"\",trigger:\"hover focus\"},Di={allowList:\"object\",animation:\"boolean\",boundary:\"(string|element)\",container:\"(string|element|boolean)\",customClass:\"(string|function)\",delay:\"(number|object)\",fallbackPlacements:\"array\",html:\"boolean\",offset:\"(array|string|function)\",placement:\"(string|function)\",popperConfig:\"(null|object|function)\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",selector:\"(string|boolean)\",template:\"string\",title:\"(string|element|function)\",trigger:\"string\"};class Ni extends W{constructor(t,e){if(void 0===i)throw new TypeError(\"Bootstrap's tooltips require Popper (https://popper.js.org)\");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Ii}static get DefaultType(){return Di}static get NAME(){return\"tooltip\"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(ki),$i,this._hideModalHandler),this._element.getAttribute(\"data-bs-original-title\")&&this._element.setAttribute(\"title\",this._element.getAttribute(\"data-bs-original-title\")),this._disposePopper(),super.dispose()}show(){if(\"none\"===this._element.style.display)throw new Error(\"Please use show on visible elements\");if(!this._isWithContent()||!this._isEnabled)return;const t=j.trigger(this._element,this.constructor.eventName(\"show\")),e=(u(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute(\"aria-describedby\",i.getAttribute(\"id\"));const{container:s}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(i),j.trigger(this._element,this.constructor.eventName(\"inserted\"))),this._popper=this._createPopper(i),i.classList.add(Ti),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))j.on(t,\"mouseover\",_);this._queueCallback((()=>{j.trigger(this._element,this.constructor.eventName(\"shown\")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!j.trigger(this._element,this.constructor.eventName(\"hide\")).defaultPrevented){if(this._getTipElement().classList.remove(Ti),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))j.off(t,\"mouseover\",_);this._activeTrigger.click=!1,this._activeTrigger[Li]=!1,this._activeTrigger[Si]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute(\"aria-describedby\"),j.trigger(this._element,this.constructor.eventName(\"hidden\")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ci,Ti),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute(\"id\",i),this._isAnimated()&&e.classList.add(Ci),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Ai({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{\".tooltip-inner\":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute(\"data-bs-original-title\")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ci)}_isShown(){return this.tip&&this.tip.classList.contains(Ti)}_createPopper(t){const e=v(this._config.placement,[this,t,this._element]),s=Oi[e.toUpperCase()];return i.createPopper(this._element,t,this._getPopperConfig(s))}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map((t=>Number.parseInt(t,10))):\"function\"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return v(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:\"flip\",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:\"offset\",options:{offset:this._getOffset()}},{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"arrow\",options:{element:`.${this.constructor.NAME}-arrow`}},{name:\"preSetPlacement\",enabled:!0,phase:\"beforeMain\",fn:t=>{this._getTipElement().setAttribute(\"data-popper-placement\",t.state.placement)}}]};return{...e,...v(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(\" \");for(const e of t)if(\"click\"===e)j.on(this._element,this.constructor.eventName(\"click\"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if(\"manual\"!==e){const t=e===Si?this.constructor.eventName(\"mouseenter\"):this.constructor.eventName(\"focusin\"),i=e===Si?this.constructor.eventName(\"mouseleave\"):this.constructor.eventName(\"focusout\");j.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusin\"===t.type?Li:Si]=!0,e._enter()})),j.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusout\"===t.type?Li:Si]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(ki),$i,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute(\"title\");t&&(this._element.getAttribute(\"aria-label\")||this._element.textContent.trim()||this._element.setAttribute(\"aria-label\",t),this._element.setAttribute(\"data-bs-original-title\",t),this._element.removeAttribute(\"title\"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=B.getDataAttributes(this._element);for(const t of Object.keys(e))Ei.has(t)&&delete e[t];return t={...e,...\"object\"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:c(t.container),\"number\"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),\"number\"==typeof t.title&&(t.title=t.title.toString()),\"number\"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger=\"manual\",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=Ni.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}b(Ni);const Pi={...Ni.Default,content:\"\",offset:[0,8],placement:\"right\",template:'

',trigger:\"click\"},xi={...Ni.DefaultType,content:\"(null|string|element|function)\"};class Mi extends Ni{static get Default(){return Pi}static get DefaultType(){return xi}static get NAME(){return\"popover\"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{\".popover-header\":this._getTitle(),\".popover-body\":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=Mi.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}b(Mi);const ji=\".bs.scrollspy\",Fi=`activate${ji}`,zi=`click${ji}`,Hi=`load${ji}.data-api`,Bi=\"active\",qi=\"[href]\",Wi=\".nav-link\",Ri=`${Wi}, .nav-item > ${Wi}, .list-group-item`,Ki={offset:null,rootMargin:\"0px 0px -25%\",smoothScroll:!1,target:null,threshold:[.1,.5,1]},Vi={offset:\"(number|null)\",rootMargin:\"string\",smoothScroll:\"boolean\",target:\"element\",threshold:\"array\"};class Qi extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=\"visible\"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Ki}static get DefaultType(){return Vi}static get NAME(){return\"scrollspy\"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=c(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,\"string\"==typeof t.threshold&&(t.threshold=t.threshold.split(\",\").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(j.off(this._config.target,zi),j.on(this._config.target,zi,qi,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,s=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:s,behavior:\"smooth\"});i.scrollTop=s}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},s=(this._rootElement||document.documentElement).scrollTop,n=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(n&&t){if(i(o),!s)return}else n||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=K.find(qi,this._config.target);for(const e of t){if(!e.hash||d(e))continue;const t=K.findOne(decodeURI(e.hash),this._element);h(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(Bi),this._activateParents(t),j.trigger(this._element,Fi,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains(\"dropdown-item\"))K.findOne(\".dropdown-toggle\",t.closest(\".dropdown\")).classList.add(Bi);else for(const e of K.parents(t,\".nav, .list-group\"))for(const t of K.prev(e,Ri))t.classList.add(Bi)}_clearActiveClass(t){t.classList.remove(Bi);const e=K.find(`${qi}.${Bi}`,t);for(const t of e)t.classList.remove(Bi)}static jQueryInterface(t){return this.each((function(){const e=Qi.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}j.on(window,Hi,(()=>{for(const t of K.find('[data-bs-spy=\"scroll\"]'))Qi.getOrCreateInstance(t)})),b(Qi);const Xi=\".bs.tab\",Yi=`hide${Xi}`,Ui=`hidden${Xi}`,Gi=`show${Xi}`,Ji=`shown${Xi}`,Zi=`click${Xi}`,ts=`keydown${Xi}`,es=`load${Xi}`,is=\"ArrowLeft\",ss=\"ArrowRight\",ns=\"ArrowUp\",os=\"ArrowDown\",rs=\"Home\",as=\"End\",ls=\"active\",cs=\"fade\",hs=\"show\",ds=\".dropdown-toggle\",us=`:not(${ds})`,_s='[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]',gs=`.nav-link${us}, .list-group-item${us}, [role=\"tab\"]${us}, ${_s}`,fs=`.${ls}[data-bs-toggle=\"tab\"], .${ls}[data-bs-toggle=\"pill\"], .${ls}[data-bs-toggle=\"list\"]`;class ms extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role=\"tablist\"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),j.on(this._element,ts,(t=>this._keydown(t))))}static get NAME(){return\"tab\"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?j.trigger(e,Yi,{relatedTarget:t}):null;j.trigger(t,Gi,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(ls),this._activate(K.getElementFromSelector(t)),this._queueCallback((()=>{\"tab\"===t.getAttribute(\"role\")?(t.removeAttribute(\"tabindex\"),t.setAttribute(\"aria-selected\",!0),this._toggleDropDown(t,!0),j.trigger(t,Ji,{relatedTarget:e})):t.classList.add(hs)}),t,t.classList.contains(cs)))}_deactivate(t,e){t&&(t.classList.remove(ls),t.blur(),this._deactivate(K.getElementFromSelector(t)),this._queueCallback((()=>{\"tab\"===t.getAttribute(\"role\")?(t.setAttribute(\"aria-selected\",!1),t.setAttribute(\"tabindex\",\"-1\"),this._toggleDropDown(t,!1),j.trigger(t,Ui,{relatedTarget:e})):t.classList.remove(hs)}),t,t.classList.contains(cs)))}_keydown(t){if(![is,ss,ns,os,rs,as].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!d(t)));let i;if([rs,as].includes(t.key))i=e[t.key===rs?0:e.length-1];else{const s=[ss,os].includes(t.key);i=w(e,t.target,s,!0)}i&&(i.focus({preventScroll:!0}),ms.getOrCreateInstance(i).show())}_getChildren(){return K.find(gs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,\"role\",\"tablist\");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute(\"aria-selected\",e),i!==t&&this._setAttributeIfNotExists(i,\"role\",\"presentation\"),e||t.setAttribute(\"tabindex\",\"-1\"),this._setAttributeIfNotExists(t,\"role\",\"tab\"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=K.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,\"role\",\"tabpanel\"),t.id&&this._setAttributeIfNotExists(e,\"aria-labelledby\",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains(\"dropdown\"))return;const s=(t,s)=>{const n=K.findOne(t,i);n&&n.classList.toggle(s,e)};s(ds,ls),s(\".dropdown-menu\",hs),i.setAttribute(\"aria-expanded\",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(ls)}_getInnerElement(t){return t.matches(gs)?t:K.findOne(gs,t)}_getOuterElement(t){return t.closest(\".nav-item, .list-group-item\")||t}static jQueryInterface(t){return this.each((function(){const e=ms.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}j.on(document,Zi,_s,(function(t){[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),d(this)||ms.getOrCreateInstance(this).show()})),j.on(window,es,(()=>{for(const t of K.find(fs))ms.getOrCreateInstance(t)})),b(ms);const ps=\".bs.toast\",bs=`mouseover${ps}`,vs=`mouseout${ps}`,ys=`focusin${ps}`,ws=`focusout${ps}`,As=`hide${ps}`,Es=`hidden${ps}`,Cs=`show${ps}`,Ts=`shown${ps}`,ks=\"hide\",$s=\"show\",Ss=\"showing\",Ls={animation:\"boolean\",autohide:\"boolean\",delay:\"number\"},Os={animation:!0,autohide:!0,delay:5e3};class Is extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Os}static get DefaultType(){return Ls}static get NAME(){return\"toast\"}show(){j.trigger(this._element,Cs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add(\"fade\"),this._element.classList.remove(ks),g(this._element),this._element.classList.add($s,Ss),this._queueCallback((()=>{this._element.classList.remove(Ss),j.trigger(this._element,Ts),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(j.trigger(this._element,As).defaultPrevented||(this._element.classList.add(Ss),this._queueCallback((()=>{this._element.classList.add(ks),this._element.classList.remove(Ss,$s),j.trigger(this._element,Es)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove($s),super.dispose()}isShown(){return this._element.classList.contains($s)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case\"mouseover\":case\"mouseout\":this._hasMouseInteraction=e;break;case\"focusin\":case\"focusout\":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){j.on(this._element,bs,(t=>this._onInteraction(t,!0))),j.on(this._element,vs,(t=>this._onInteraction(t,!1))),j.on(this._element,ys,(t=>this._onInteraction(t,!0))),j.on(this._element,ws,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Is.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}return V(Is),b(Is),{Alert:U,Button:J,Carousel:Ot,Collapse:Rt,Dropdown:fe,Modal:Ue,Offcanvas:gi,Popover:Mi,ScrollSpy:Qi,Tab:ms,Toast:Is,Tooltip:Ni}}));\n//# sourceMappingURL=bootstrap.min.js.map\n// This file is the concatenation of many js files.\r\n// See http://github.com/jimhigson/oboe.js for the raw source\r\n\r\n// having a local undefined, window, Object etc allows slightly better minification:\r\n(function (window, Object, Array, Error, JSON, undefined) {\r\n\r\n // v2.1.3-15-g7432b49\r\n\r\n /*\r\n \r\n Copyright (c) 2013, Jim Higson\r\n \r\n All rights reserved.\r\n \r\n Redistribution and use in source and binary forms, with or without\r\n modification, are permitted provided that the following conditions are\r\n met:\r\n \r\n 1. Redistributions of source code must retain the above copyright\r\n notice, this list of conditions and the following disclaimer.\r\n \r\n 2. Redistributions in binary form must reproduce the above copyright\r\n notice, this list of conditions and the following disclaimer in the\r\n documentation and/or other materials provided with the distribution.\r\n \r\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\r\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\r\n TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\r\n PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r\n HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\r\n TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\r\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n \r\n */\r\n\r\n /** \r\n * Partially complete a function.\r\n * \r\n * var add3 = partialComplete( function add(a,b){return a+b}, 3 );\r\n * \r\n * add3(4) // gives 7\r\n * \r\n * function wrap(left, right, cen){return left + \" \" + cen + \" \" + right;}\r\n * \r\n * var pirateGreeting = partialComplete( wrap , \"I'm\", \", a mighty pirate!\" );\r\n * \r\n * pirateGreeting(\"Guybrush Threepwood\"); \r\n * // gives \"I'm Guybrush Threepwood, a mighty pirate!\"\r\n */\r\n var partialComplete = varArgs(function (fn, args) {\r\n\r\n // this isn't the shortest way to write this but it does\r\n // avoid creating a new array each time to pass to fn.apply,\r\n // otherwise could just call boundArgs.concat(callArgs) \r\n\r\n var numBoundArgs = args.length;\r\n\r\n return varArgs(function (callArgs) {\r\n\r\n for (var i = 0; i < callArgs.length; i++) {\r\n args[numBoundArgs + i] = callArgs[i];\r\n }\r\n\r\n args.length = numBoundArgs + callArgs.length;\r\n\r\n return fn.apply(this, args);\r\n });\r\n }),\r\n\r\n /**\r\n * Compose zero or more functions:\r\n * \r\n * compose(f1, f2, f3)(x) = f1(f2(f3(x))))\r\n * \r\n * The last (inner-most) function may take more than one parameter:\r\n * \r\n * compose(f1, f2, f3)(x,y) = f1(f2(f3(x,y))))\r\n */\r\n compose = varArgs(function (fns) {\r\n\r\n var fnsList = arrayAsList(fns);\r\n\r\n function next(params, curFn) {\r\n return [apply(params, curFn)];\r\n }\r\n\r\n return varArgs(function (startParams) {\r\n\r\n return foldR(next, startParams, fnsList)[0];\r\n });\r\n });\r\n\r\n /**\r\n * A more optimised version of compose that takes exactly two functions\r\n * @param f1\r\n * @param f2\r\n */\r\n function compose2(f1, f2) {\r\n return function () {\r\n return f1.call(this, f2.apply(this, arguments));\r\n }\r\n }\r\n\r\n /**\r\n * Generic form for a function to get a property from an object\r\n * \r\n * var o = {\r\n * foo:'bar'\r\n * }\r\n * \r\n * var getFoo = attr('foo')\r\n * \r\n * fetFoo(o) // returns 'bar'\r\n * \r\n * @param {String} key the property name\r\n */\r\n function attr(key) {\r\n return function (o) { return o[key]; };\r\n }\r\n\r\n /**\r\n * Call a list of functions with the same args until one returns a \r\n * truthy result. Similar to the || operator.\r\n * \r\n * So:\r\n * lazyUnion([f1,f2,f3 ... fn])( p1, p2 ... pn )\r\n * \r\n * Is equivalent to: \r\n * apply([p1, p2 ... pn], f1) || \r\n * apply([p1, p2 ... pn], f2) || \r\n * apply([p1, p2 ... pn], f3) ... apply(fn, [p1, p2 ... pn]) \r\n * \r\n * @returns the first return value that is given that is truthy.\r\n */\r\n var lazyUnion = varArgs(function (fns) {\r\n\r\n return varArgs(function (params) {\r\n\r\n var maybeValue;\r\n\r\n for (var i = 0; i < len(fns); i++) {\r\n\r\n maybeValue = apply(params, fns[i]);\r\n\r\n if (maybeValue) {\r\n return maybeValue;\r\n }\r\n }\r\n });\r\n });\r\n\r\n /**\r\n * This file declares various pieces of functional programming.\r\n * \r\n * This isn't a general purpose functional library, to keep things small it\r\n * has just the parts useful for Oboe.js.\r\n */\r\n\r\n\r\n /**\r\n * Call a single function with the given arguments array.\r\n * Basically, a functional-style version of the OO-style Function#apply for \r\n * when we don't care about the context ('this') of the call.\r\n * \r\n * The order of arguments allows partial completion of the arguments array\r\n */\r\n function apply(args, fn) {\r\n return fn.apply(undefined, args);\r\n }\r\n\r\n /**\r\n * Define variable argument functions but cut out all that tedious messing about \r\n * with the arguments object. Delivers the variable-length part of the arguments\r\n * list as an array.\r\n * \r\n * Eg:\r\n * \r\n * var myFunction = varArgs(\r\n * function( fixedArgument, otherFixedArgument, variableNumberOfArguments ){\r\n * console.log( variableNumberOfArguments );\r\n * }\r\n * )\r\n * \r\n * myFunction('a', 'b', 1, 2, 3); // logs [1,2,3]\r\n * \r\n * var myOtherFunction = varArgs(function( variableNumberOfArguments ){\r\n * console.log( variableNumberOfArguments );\r\n * })\r\n * \r\n * myFunction(1, 2, 3); // logs [1,2,3]\r\n * \r\n */\r\n function varArgs(fn) {\r\n\r\n var numberOfFixedArguments = fn.length - 1,\r\n slice = Array.prototype.slice;\r\n\r\n\r\n if (numberOfFixedArguments == 0) {\r\n // an optimised case for when there are no fixed args: \r\n\r\n return function () {\r\n return fn.call(this, slice.call(arguments));\r\n }\r\n\r\n } else if (numberOfFixedArguments == 1) {\r\n // an optimised case for when there are is one fixed args:\r\n\r\n return function () {\r\n return fn.call(this, arguments[0], slice.call(arguments, 1));\r\n }\r\n }\r\n\r\n // general case \r\n\r\n // we know how many arguments fn will always take. Create a\r\n // fixed-size array to hold that many, to be re-used on\r\n // every call to the returned function\r\n var argsHolder = Array(fn.length);\r\n\r\n return function () {\r\n\r\n for (var i = 0; i < numberOfFixedArguments; i++) {\r\n argsHolder[i] = arguments[i];\r\n }\r\n\r\n argsHolder[numberOfFixedArguments] =\r\n slice.call(arguments, numberOfFixedArguments);\r\n\r\n return fn.apply(this, argsHolder);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Swap the order of parameters to a binary function\r\n * \r\n * A bit like this flip: http://zvon.org/other/haskell/Outputprelude/flip_f.html\r\n */\r\n function flip(fn) {\r\n return function (a, b) {\r\n return fn(b, a);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Create a function which is the intersection of two other functions.\r\n * \r\n * Like the && operator, if the first is truthy, the second is never called,\r\n * otherwise the return value from the second is returned.\r\n */\r\n function lazyIntersection(fn1, fn2) {\r\n\r\n return function (param) {\r\n\r\n return fn1(param) && fn2(param);\r\n };\r\n }\r\n\r\n /**\r\n * A function which does nothing\r\n */\r\n function noop() { }\r\n\r\n /**\r\n * A function which is always happy\r\n */\r\n function always() { return true }\r\n\r\n /**\r\n * Create a function which always returns the same\r\n * value\r\n * \r\n * var return3 = functor(3);\r\n * \r\n * return3() // gives 3\r\n * return3() // still gives 3\r\n * return3() // will always give 3\r\n */\r\n function functor(val) {\r\n return function () {\r\n return val;\r\n }\r\n }\r\n\r\n /**\r\n * This file defines some loosely associated syntactic sugar for \r\n * Javascript programming \r\n */\r\n\r\n\r\n /**\r\n * Returns true if the given candidate is of type T\r\n */\r\n function isOfType(T, maybeSomething) {\r\n return maybeSomething && maybeSomething.constructor === T;\r\n }\r\n\r\n var len = attr('length'),\r\n isString = partialComplete(isOfType, String);\r\n\r\n /** \r\n * I don't like saying this:\r\n * \r\n * foo !=== undefined\r\n * \r\n * because of the double-negative. I find this:\r\n * \r\n * defined(foo)\r\n * \r\n * easier to read.\r\n */\r\n function defined(value) {\r\n return value !== undefined;\r\n }\r\n\r\n /**\r\n * Returns true if object o has a key named like every property in \r\n * the properties array. Will give false if any are missing, or if o \r\n * is not an object.\r\n */\r\n function hasAllProperties(fieldList, o) {\r\n\r\n return (o instanceof Object)\r\n &&\r\n all(function (field) {\r\n return (field in o);\r\n }, fieldList);\r\n }\r\n /**\r\n * Like cons in Lisp\r\n */\r\n function cons(x, xs) {\r\n\r\n /* Internally lists are linked 2-element Javascript arrays.\r\n \r\n Ideally the return here would be Object.freeze([x,xs])\r\n so that bugs related to mutation are found fast.\r\n However, cons is right on the critical path for\r\n performance and this slows oboe-mark down by\r\n ~25%. Under theoretical future JS engines that freeze more\r\n efficiently (possibly even use immutability to\r\n run faster) this should be considered for\r\n restoration.\r\n */\r\n\r\n return [x, xs];\r\n }\r\n\r\n /**\r\n * The empty list\r\n */\r\n var emptyList = null,\r\n\r\n /**\r\n * Get the head of a list.\r\n * \r\n * Ie, head(cons(a,b)) = a\r\n */\r\n head = attr(0),\r\n\r\n /**\r\n * Get the tail of a list.\r\n * \r\n * Ie, tail(cons(a,b)) = b\r\n */\r\n tail = attr(1);\r\n\r\n\r\n /** \r\n * Converts an array to a list \r\n * \r\n * asList([a,b,c])\r\n * \r\n * is equivalent to:\r\n * \r\n * cons(a, cons(b, cons(c, emptyList))) \r\n **/\r\n function arrayAsList(inputArray) {\r\n\r\n return reverseList(\r\n inputArray.reduce(\r\n flip(cons),\r\n emptyList\r\n )\r\n );\r\n }\r\n\r\n /**\r\n * A varargs version of arrayAsList. Works a bit like list\r\n * in LISP.\r\n * \r\n * list(a,b,c) \r\n * \r\n * is equivalent to:\r\n * \r\n * cons(a, cons(b, cons(c, emptyList)))\r\n */\r\n var list = varArgs(arrayAsList);\r\n\r\n /**\r\n * Convert a list back to a js native array\r\n */\r\n function listAsArray(list) {\r\n\r\n return foldR(function (arraySoFar, listItem) {\r\n\r\n arraySoFar.unshift(listItem);\r\n return arraySoFar;\r\n\r\n }, [], list);\r\n\r\n }\r\n\r\n /**\r\n * Map a function over a list \r\n */\r\n function map(fn, list) {\r\n\r\n return list\r\n ? cons(fn(head(list)), map(fn, tail(list)))\r\n : emptyList\r\n ;\r\n }\r\n\r\n /**\r\n * foldR implementation. Reduce a list down to a single value.\r\n * \r\n * @pram {Function} fn (rightEval, curVal) -> result \r\n */\r\n function foldR(fn, startValue, list) {\r\n\r\n return list\r\n ? fn(foldR(fn, startValue, tail(list)), head(list))\r\n : startValue\r\n ;\r\n }\r\n\r\n /**\r\n * foldR implementation. Reduce a list down to a single value.\r\n * \r\n * @pram {Function} fn (rightEval, curVal) -> result \r\n */\r\n function foldR1(fn, list) {\r\n\r\n return tail(list)\r\n ? fn(foldR1(fn, tail(list)), head(list))\r\n : head(list)\r\n ;\r\n }\r\n\r\n\r\n /**\r\n * Return a list like the one given but with the first instance equal \r\n * to item removed \r\n */\r\n function without(list, test, removedFn) {\r\n\r\n return withoutInner(list, removedFn || noop);\r\n\r\n function withoutInner(subList, removedFn) {\r\n return subList\r\n ? (test(head(subList))\r\n ? (removedFn(head(subList)), tail(subList))\r\n : cons(head(subList), withoutInner(tail(subList), removedFn))\r\n )\r\n : emptyList\r\n ;\r\n }\r\n }\r\n\r\n /** \r\n * Returns true if the given function holds for every item in \r\n * the list, false otherwise \r\n */\r\n function all(fn, list) {\r\n\r\n return !list ||\r\n (fn(head(list)) && all(fn, tail(list)));\r\n }\r\n\r\n /**\r\n * Call every function in a list of functions with the same arguments\r\n * \r\n * This doesn't make any sense if we're doing pure functional because \r\n * it doesn't return anything. Hence, this is only really useful if the\r\n * functions being called have side-effects. \r\n */\r\n function applyEach(fnList, args) {\r\n\r\n if (fnList) {\r\n head(fnList).apply(null, args);\r\n\r\n applyEach(tail(fnList), args);\r\n }\r\n }\r\n\r\n /**\r\n * Reverse the order of a list\r\n */\r\n function reverseList(list) {\r\n\r\n // js re-implementation of 3rd solution from:\r\n // http://www.haskell.org/haskellwiki/99_questions/Solutions/5\r\n function reverseInner(list, reversedAlready) {\r\n if (!list) {\r\n return reversedAlready;\r\n }\r\n\r\n return reverseInner(tail(list), cons(head(list), reversedAlready))\r\n }\r\n\r\n return reverseInner(list, emptyList);\r\n }\r\n\r\n function first(test, list) {\r\n return list &&\r\n (test(head(list))\r\n ? head(list)\r\n : first(test, tail(list)));\r\n }\r\n\r\n /* \r\n This is a slightly hacked-up browser only version of clarinet \r\n \r\n * some features removed to help keep browser Oboe under \r\n the 5k micro-library limit\r\n * plug directly into event bus\r\n \r\n For the original go here:\r\n https://github.com/dscape/clarinet\r\n \r\n We receive the events:\r\n STREAM_DATA\r\n STREAM_END\r\n \r\n We emit the events:\r\n SAX_KEY\r\n SAX_VALUE_OPEN\r\n SAX_VALUE_CLOSE \r\n FAIL_EVENT \r\n */\r\n\r\n function clarinet(eventBus) {\r\n \"use strict\";\r\n\r\n var\r\n // shortcut some events on the bus\r\n emitSaxKey = eventBus(SAX_KEY).emit,\r\n emitValueOpen = eventBus(SAX_VALUE_OPEN).emit,\r\n emitValueClose = eventBus(SAX_VALUE_CLOSE).emit,\r\n emitFail = eventBus(FAIL_EVENT).emit,\r\n\r\n MAX_BUFFER_LENGTH = 64 * 1024\r\n , stringTokenPattern = /[\\\\\"\\n]/g\r\n , _n = 0\r\n\r\n // states\r\n , BEGIN = _n++\r\n , VALUE = _n++ // general stuff\r\n , OPEN_OBJECT = _n++ // {\r\n , CLOSE_OBJECT = _n++ // }\r\n , OPEN_ARRAY = _n++ // [\r\n , CLOSE_ARRAY = _n++ // ]\r\n , STRING = _n++ // \"\"\r\n , OPEN_KEY = _n++ // , \"a\"\r\n , CLOSE_KEY = _n++ // :\r\n , TRUE = _n++ // r\r\n , TRUE2 = _n++ // u\r\n , TRUE3 = _n++ // e\r\n , FALSE = _n++ // a\r\n , FALSE2 = _n++ // l\r\n , FALSE3 = _n++ // s\r\n , FALSE4 = _n++ // e\r\n , NULL = _n++ // u\r\n , NULL2 = _n++ // l\r\n , NULL3 = _n++ // l\r\n , NUMBER_DECIMAL_POINT = _n++ // .\r\n , NUMBER_DIGIT = _n // [0-9]\r\n\r\n // setup initial parser values\r\n , bufferCheckPosition = MAX_BUFFER_LENGTH\r\n , latestError\r\n , c\r\n , p\r\n , textNode = undefined\r\n , numberNode = \"\"\r\n , slashed = false\r\n , closed = false\r\n , state = BEGIN\r\n , stack = []\r\n , unicodeS = null\r\n , unicodeI = 0\r\n , depth = 0\r\n , position = 0\r\n , column = 0 //mostly for error reporting\r\n , line = 1\r\n ;\r\n\r\n function checkBufferLength() {\r\n\r\n var maxActual = 0;\r\n\r\n if (textNode !== undefined && textNode.length > MAX_BUFFER_LENGTH) {\r\n emitError(\"Max buffer length exceeded: textNode\");\r\n maxActual = Math.max(maxActual, textNode.length);\r\n }\r\n if (numberNode.length > MAX_BUFFER_LENGTH) {\r\n emitError(\"Max buffer length exceeded: numberNode\");\r\n maxActual = Math.max(maxActual, numberNode.length);\r\n }\r\n\r\n bufferCheckPosition = (MAX_BUFFER_LENGTH - maxActual)\r\n + position;\r\n }\r\n\r\n eventBus(STREAM_DATA).on(handleData);\r\n\r\n /* At the end of the http content close the clarinet \r\n This will provide an error if the total content provided was not \r\n valid json, ie if not all arrays, objects and Strings closed properly */\r\n eventBus(STREAM_END).on(handleStreamEnd);\r\n\r\n function emitError(errorString) {\r\n if (textNode !== undefined) {\r\n emitValueOpen(textNode);\r\n emitValueClose();\r\n textNode = undefined;\r\n }\r\n\r\n latestError = Error(errorString + \"\\nLn: \" + line +\r\n \"\\nCol: \" + column +\r\n \"\\nChr: \" + c);\r\n\r\n emitFail(errorReport(undefined, undefined, latestError));\r\n }\r\n\r\n function handleStreamEnd() {\r\n if (state == BEGIN) {\r\n // Handle the case where the stream closes without ever receiving\r\n // any input. This isn't an error - response bodies can be blank,\r\n // particularly for 204 http responses\r\n\r\n // Because of how Oboe is currently implemented, we parse a\r\n // completely empty stream as containing an empty object.\r\n // This is because Oboe's done event is only fired when the\r\n // root object of the JSON stream closes.\r\n\r\n // This should be decoupled and attached instead to the input stream\r\n // from the http (or whatever) resource ending.\r\n // If this decoupling could happen the SAX parser could simply emit\r\n // zero events on a completely empty input.\r\n emitValueOpen({});\r\n emitValueClose();\r\n\r\n closed = true;\r\n return;\r\n }\r\n\r\n if (state !== VALUE || depth !== 0)\r\n emitError(\"Unexpected end\");\r\n\r\n if (textNode !== undefined) {\r\n emitValueOpen(textNode);\r\n emitValueClose();\r\n textNode = undefined;\r\n }\r\n\r\n closed = true;\r\n }\r\n\r\n function whitespace(c) {\r\n return c == '\\r' || c == '\\n' || c == ' ' || c == '\\t';\r\n }\r\n\r\n function handleData(chunk) {\r\n\r\n // this used to throw the error but inside Oboe we will have already\r\n // gotten the error when it was emitted. The important thing is to\r\n // not continue with the parse.\r\n if (latestError)\r\n return;\r\n\r\n if (closed) {\r\n return emitError(\"Cannot write after close\");\r\n }\r\n\r\n var i = 0;\r\n c = chunk[0];\r\n\r\n while (c) {\r\n if (i > 0) {\r\n p = c;\r\n }\r\n c = chunk[i++];\r\n if (!c) break;\r\n\r\n position++;\r\n if (c == \"\\n\") {\r\n line++;\r\n column = 0;\r\n } else column++;\r\n switch (state) {\r\n\r\n case BEGIN:\r\n if (c === \"{\") state = OPEN_OBJECT;\r\n else if (c === \"[\") state = OPEN_ARRAY;\r\n else if (!whitespace(c))\r\n return emitError(\"Non-whitespace before {[.\");\r\n continue;\r\n\r\n case OPEN_KEY:\r\n case OPEN_OBJECT:\r\n if (whitespace(c)) continue;\r\n if (state === OPEN_KEY) stack.push(CLOSE_KEY);\r\n else {\r\n if (c === '}') {\r\n emitValueOpen({});\r\n emitValueClose();\r\n state = stack.pop() || VALUE;\r\n continue;\r\n } else stack.push(CLOSE_OBJECT);\r\n }\r\n if (c === '\"')\r\n state = STRING;\r\n else\r\n return emitError(\"Malformed object key should start with \\\" \");\r\n continue;\r\n\r\n case CLOSE_KEY:\r\n case CLOSE_OBJECT:\r\n if (whitespace(c)) continue;\r\n\r\n if (c === ':') {\r\n if (state === CLOSE_OBJECT) {\r\n stack.push(CLOSE_OBJECT);\r\n\r\n if (textNode !== undefined) {\r\n // was previously (in upstream Clarinet) one event\r\n // - object open came with the text of the first\r\n emitValueOpen({});\r\n emitSaxKey(textNode);\r\n textNode = undefined;\r\n }\r\n depth++;\r\n } else {\r\n if (textNode !== undefined) {\r\n emitSaxKey(textNode);\r\n textNode = undefined;\r\n }\r\n }\r\n state = VALUE;\r\n } else if (c === '}') {\r\n if (textNode !== undefined) {\r\n emitValueOpen(textNode);\r\n emitValueClose();\r\n textNode = undefined;\r\n }\r\n emitValueClose();\r\n depth--;\r\n state = stack.pop() || VALUE;\r\n } else if (c === ',') {\r\n if (state === CLOSE_OBJECT)\r\n stack.push(CLOSE_OBJECT);\r\n if (textNode !== undefined) {\r\n emitValueOpen(textNode);\r\n emitValueClose();\r\n textNode = undefined;\r\n }\r\n state = OPEN_KEY;\r\n } else\r\n return emitError('Bad object');\r\n continue;\r\n\r\n case OPEN_ARRAY: // after an array there always a value\r\n case VALUE:\r\n if (whitespace(c)) continue;\r\n if (state === OPEN_ARRAY) {\r\n emitValueOpen([]);\r\n depth++;\r\n state = VALUE;\r\n if (c === ']') {\r\n emitValueClose();\r\n depth--;\r\n state = stack.pop() || VALUE;\r\n continue;\r\n } else {\r\n stack.push(CLOSE_ARRAY);\r\n }\r\n }\r\n if (c === '\"') state = STRING;\r\n else if (c === '{') state = OPEN_OBJECT;\r\n else if (c === '[') state = OPEN_ARRAY;\r\n else if (c === 't') state = TRUE;\r\n else if (c === 'f') state = FALSE;\r\n else if (c === 'n') state = NULL;\r\n else if (c === '-') { // keep and continue\r\n numberNode += c;\r\n } else if (c === '0') {\r\n numberNode += c;\r\n state = NUMBER_DIGIT;\r\n } else if ('123456789'.indexOf(c) !== -1) {\r\n numberNode += c;\r\n state = NUMBER_DIGIT;\r\n } else\r\n return emitError(\"Bad value\");\r\n continue;\r\n\r\n case CLOSE_ARRAY:\r\n if (c === ',') {\r\n stack.push(CLOSE_ARRAY);\r\n if (textNode !== undefined) {\r\n emitValueOpen(textNode);\r\n emitValueClose();\r\n textNode = undefined;\r\n }\r\n state = VALUE;\r\n } else if (c === ']') {\r\n if (textNode !== undefined) {\r\n emitValueOpen(textNode);\r\n emitValueClose();\r\n textNode = undefined;\r\n }\r\n emitValueClose();\r\n depth--;\r\n state = stack.pop() || VALUE;\r\n } else if (whitespace(c))\r\n continue;\r\n else\r\n return emitError('Bad array');\r\n continue;\r\n\r\n case STRING:\r\n if (textNode === undefined) {\r\n textNode = \"\";\r\n }\r\n\r\n // thanks thejh, this is an about 50% performance improvement.\r\n var starti = i - 1;\r\n\r\n STRING_BIGLOOP: while (true) {\r\n\r\n // zero means \"no unicode active\". 1-4 mean \"parse some more\". end after 4.\r\n while (unicodeI > 0) {\r\n unicodeS += c;\r\n c = chunk.charAt(i++);\r\n if (unicodeI === 4) {\r\n // TODO this might be slow? well, probably not used too often anyway\r\n textNode += String.fromCharCode(parseInt(unicodeS, 16));\r\n unicodeI = 0;\r\n starti = i - 1;\r\n } else {\r\n unicodeI++;\r\n }\r\n // we can just break here: no stuff we skipped that still has to be sliced out or so\r\n if (!c) break STRING_BIGLOOP;\r\n }\r\n if (c === '\"' && !slashed) {\r\n state = stack.pop() || VALUE;\r\n textNode += chunk.substring(starti, i - 1);\r\n break;\r\n }\r\n if (c === '\\\\' && !slashed) {\r\n slashed = true;\r\n textNode += chunk.substring(starti, i - 1);\r\n c = chunk.charAt(i++);\r\n if (!c) break;\r\n }\r\n if (slashed) {\r\n slashed = false;\r\n if (c === 'n') { textNode += '\\n'; }\r\n else if (c === 'r') { textNode += '\\r'; }\r\n else if (c === 't') { textNode += '\\t'; }\r\n else if (c === 'f') { textNode += '\\f'; }\r\n else if (c === 'b') { textNode += '\\b'; }\r\n else if (c === 'u') {\r\n // \\uxxxx. meh!\r\n unicodeI = 1;\r\n unicodeS = '';\r\n } else {\r\n textNode += c;\r\n }\r\n c = chunk.charAt(i++);\r\n starti = i - 1;\r\n if (!c) break;\r\n else continue;\r\n }\r\n\r\n stringTokenPattern.lastIndex = i;\r\n var reResult = stringTokenPattern.exec(chunk);\r\n if (!reResult) {\r\n i = chunk.length + 1;\r\n textNode += chunk.substring(starti, i - 1);\r\n break;\r\n }\r\n i = reResult.index + 1;\r\n c = chunk.charAt(reResult.index);\r\n if (!c) {\r\n textNode += chunk.substring(starti, i - 1);\r\n break;\r\n }\r\n }\r\n continue;\r\n\r\n case TRUE:\r\n if (!c) continue; // strange buffers\r\n if (c === 'r') state = TRUE2;\r\n else\r\n return emitError('Invalid true started with t' + c);\r\n continue;\r\n\r\n case TRUE2:\r\n if (!c) continue;\r\n if (c === 'u') state = TRUE3;\r\n else\r\n return emitError('Invalid true started with tr' + c);\r\n continue;\r\n\r\n case TRUE3:\r\n if (!c) continue;\r\n if (c === 'e') {\r\n emitValueOpen(true);\r\n emitValueClose();\r\n state = stack.pop() || VALUE;\r\n } else\r\n return emitError('Invalid true started with tru' + c);\r\n continue;\r\n\r\n case FALSE:\r\n if (!c) continue;\r\n if (c === 'a') state = FALSE2;\r\n else\r\n return emitError('Invalid false started with f' + c);\r\n continue;\r\n\r\n case FALSE2:\r\n if (!c) continue;\r\n if (c === 'l') state = FALSE3;\r\n else\r\n return emitError('Invalid false started with fa' + c);\r\n continue;\r\n\r\n case FALSE3:\r\n if (!c) continue;\r\n if (c === 's') state = FALSE4;\r\n else\r\n return emitError('Invalid false started with fal' + c);\r\n continue;\r\n\r\n case FALSE4:\r\n if (!c) continue;\r\n if (c === 'e') {\r\n emitValueOpen(false);\r\n emitValueClose();\r\n state = stack.pop() || VALUE;\r\n } else\r\n return emitError('Invalid false started with fals' + c);\r\n continue;\r\n\r\n case NULL:\r\n if (!c) continue;\r\n if (c === 'u') state = NULL2;\r\n else\r\n return emitError('Invalid null started with n' + c);\r\n continue;\r\n\r\n case NULL2:\r\n if (!c) continue;\r\n if (c === 'l') state = NULL3;\r\n else\r\n return emitError('Invalid null started with nu' + c);\r\n continue;\r\n\r\n case NULL3:\r\n if (!c) continue;\r\n if (c === 'l') {\r\n emitValueOpen(null);\r\n emitValueClose();\r\n state = stack.pop() || VALUE;\r\n } else\r\n return emitError('Invalid null started with nul' + c);\r\n continue;\r\n\r\n case NUMBER_DECIMAL_POINT:\r\n if (c === '.') {\r\n numberNode += c;\r\n state = NUMBER_DIGIT;\r\n } else\r\n return emitError('Leading zero not followed by .');\r\n continue;\r\n\r\n case NUMBER_DIGIT:\r\n if ('0123456789'.indexOf(c) !== -1) numberNode += c;\r\n else if (c === '.') {\r\n if (numberNode.indexOf('.') !== -1)\r\n return emitError('Invalid number has two dots');\r\n numberNode += c;\r\n } else if (c === 'e' || c === 'E') {\r\n if (numberNode.indexOf('e') !== -1 ||\r\n numberNode.indexOf('E') !== -1)\r\n return emitError('Invalid number has two exponential');\r\n numberNode += c;\r\n } else if (c === \"+\" || c === \"-\") {\r\n if (!(p === 'e' || p === 'E'))\r\n return emitError('Invalid symbol in number');\r\n numberNode += c;\r\n } else {\r\n if (numberNode) {\r\n emitValueOpen(parseFloat(numberNode));\r\n emitValueClose();\r\n numberNode = \"\";\r\n }\r\n i--; // go back one\r\n state = stack.pop() || VALUE;\r\n }\r\n continue;\r\n\r\n default:\r\n return emitError(\"Unknown state: \" + state);\r\n }\r\n }\r\n if (position >= bufferCheckPosition)\r\n checkBufferLength();\r\n }\r\n }\r\n\r\n\r\n /** \r\n * A bridge used to assign stateless functions to listen to clarinet.\r\n * \r\n * As well as the parameter from clarinet, each callback will also be passed\r\n * the result of the last callback.\r\n * \r\n * This may also be used to clear all listeners by assigning zero handlers:\r\n * \r\n * ascentManager( clarinet, {} )\r\n */\r\n function ascentManager(oboeBus, handlers) {\r\n \"use strict\";\r\n\r\n var listenerId = {},\r\n ascent;\r\n\r\n function stateAfter(handler) {\r\n return function (param) {\r\n ascent = handler(ascent, param);\r\n }\r\n }\r\n\r\n for (var eventName in handlers) {\r\n\r\n oboeBus(eventName).on(stateAfter(handlers[eventName]), listenerId);\r\n }\r\n\r\n oboeBus(NODE_SWAP).on(function (newNode) {\r\n\r\n var oldHead = head(ascent),\r\n key = keyOf(oldHead),\r\n ancestors = tail(ascent),\r\n parentNode;\r\n\r\n if (ancestors) {\r\n parentNode = nodeOf(head(ancestors));\r\n parentNode[key] = newNode;\r\n }\r\n });\r\n\r\n oboeBus(NODE_DROP).on(function () {\r\n\r\n var oldHead = head(ascent),\r\n key = keyOf(oldHead),\r\n ancestors = tail(ascent),\r\n parentNode;\r\n\r\n if (ancestors) {\r\n parentNode = nodeOf(head(ancestors));\r\n\r\n delete parentNode[key];\r\n }\r\n });\r\n\r\n oboeBus(ABORTING).on(function () {\r\n\r\n for (var eventName in handlers) {\r\n oboeBus(eventName).un(listenerId);\r\n }\r\n });\r\n }\r\n\r\n // based on gist https://gist.github.com/monsur/706839\r\n\r\n /**\r\n * XmlHttpRequest's getAllResponseHeaders() method returns a string of response\r\n * headers according to the format described here:\r\n * http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders-method\r\n * This method parses that string into a user-friendly key/value pair object.\r\n */\r\n function parseResponseHeaders(headerStr) {\r\n var headers = {};\r\n\r\n headerStr && headerStr.split('\\u000d\\u000a')\r\n .forEach(function (headerPair) {\r\n\r\n // Can't use split() here because it does the wrong thing\r\n // if the header value has the string \": \" in it.\r\n var index = headerPair.indexOf('\\u003a\\u0020');\r\n\r\n headers[headerPair.substring(0, index)]\r\n = headerPair.substring(index + 2);\r\n });\r\n\r\n return headers;\r\n }\r\n\r\n /**\r\n * Detect if a given URL is cross-origin in the scope of the\r\n * current page.\r\n * \r\n * Browser only (since cross-origin has no meaning in Node.js)\r\n *\r\n * @param {Object} pageLocation - as in window.location\r\n * @param {Object} ajaxHost - an object like window.location describing the \r\n * origin of the url that we want to ajax in\r\n */\r\n function isCrossOrigin(pageLocation, ajaxHost) {\r\n\r\n /*\r\n * NB: defaultPort only knows http and https.\r\n * Returns undefined otherwise.\r\n */\r\n function defaultPort(protocol) {\r\n return { 'http:': 80, 'https:': 443 }[protocol];\r\n }\r\n\r\n function portOf(location) {\r\n // pageLocation should always have a protocol. ajaxHost if no port or\r\n // protocol is specified, should use the port of the containing page\r\n\r\n return location.port || defaultPort(location.protocol || pageLocation.protocol);\r\n }\r\n\r\n // if ajaxHost doesn't give a domain, port is the same as pageLocation\r\n // it can't give a protocol but not a domain\r\n // it can't give a port but not a domain\r\n\r\n return !!((ajaxHost.protocol && (ajaxHost.protocol != pageLocation.protocol)) ||\r\n (ajaxHost.host && (ajaxHost.host != pageLocation.host)) ||\r\n (ajaxHost.host && (portOf(ajaxHost) != portOf(pageLocation)))\r\n );\r\n }\r\n\r\n /* turn any url into an object like window.location */\r\n function parseUrlOrigin(url) {\r\n // url could be domain-relative\r\n // url could give a domain\r\n\r\n // cross origin means:\r\n // same domain\r\n // same port\r\n // some protocol\r\n // so, same everything up to the first (single) slash \r\n // if such is given\r\n //\r\n // can ignore everything after that \r\n\r\n var URL_HOST_PATTERN = /(\\w+:)?(?:\\/\\/)([\\w.-]+)?(?::(\\d+))?\\/?/,\r\n\r\n // if no match, use an empty array so that\r\n // subexpressions 1,2,3 are all undefined\r\n // and will ultimately return all empty\r\n // strings as the parse result:\r\n urlHostMatch = URL_HOST_PATTERN.exec(url) || [];\r\n\r\n return {\r\n protocol: urlHostMatch[1] || '',\r\n host: urlHostMatch[2] || '',\r\n port: urlHostMatch[3] || ''\r\n };\r\n }\r\n\r\n function httpTransport() {\r\n return new XMLHttpRequest();\r\n }\r\n\r\n /**\r\n * A wrapper around the browser XmlHttpRequest object that raises an \r\n * event whenever a new part of the response is available.\r\n * \r\n * In older browsers progressive reading is impossible so all the \r\n * content is given in a single call. For newer ones several events\r\n * should be raised, allowing progressive interpretation of the response.\r\n * \r\n * @param {Function} oboeBus an event bus local to this Oboe instance\r\n * @param {XMLHttpRequest} xhr the xhr to use as the transport. Under normal\r\n * operation, will have been created using httpTransport() above\r\n * but for tests a stub can be provided instead.\r\n * @param {String} method one of 'GET' 'POST' 'PUT' 'PATCH' 'DELETE'\r\n * @param {String} url the url to make a request to\r\n * @param {String|Null} data some content to be sent with the request.\r\n * Only valid if method is POST or PUT.\r\n * @param {Object} [headers] the http request headers to send\r\n * @param {boolean} withCredentials the XHR withCredentials property will be\r\n * set to this value\r\n */\r\n function streamingHttp(oboeBus, xhr, method, url, data, headers, withCredentials) {\r\n\r\n \"use strict\";\r\n\r\n var emitStreamData = oboeBus(STREAM_DATA).emit,\r\n emitFail = oboeBus(FAIL_EVENT).emit,\r\n numberOfCharsAlreadyGivenToCallback = 0,\r\n stillToSendStartEvent = true;\r\n\r\n // When an ABORTING message is put on the event bus abort \r\n // the ajax request \r\n oboeBus(ABORTING).on(function () {\r\n\r\n // if we keep the onreadystatechange while aborting the XHR gives \r\n // a callback like a successful call so first remove this listener\r\n // by assigning null:\r\n xhr.onreadystatechange = null;\r\n\r\n xhr.abort();\r\n });\r\n\r\n /** \r\n * Handle input from the underlying xhr: either a state change,\r\n * the progress event or the request being complete.\r\n */\r\n function handleProgress() {\r\n\r\n var textSoFar = xhr.responseText,\r\n newText = textSoFar.substr(numberOfCharsAlreadyGivenToCallback);\r\n\r\n\r\n /* Raise the event for new text.\r\n \r\n On older browsers, the new text is the whole response. \r\n On newer/better ones, the fragment part that we got since \r\n last progress. */\r\n\r\n if (newText) {\r\n emitStreamData(newText);\r\n }\r\n\r\n numberOfCharsAlreadyGivenToCallback = len(textSoFar);\r\n }\r\n\r\n\r\n if ('onprogress' in xhr) { // detect browser support for progressive delivery\r\n xhr.onprogress = handleProgress;\r\n }\r\n\r\n xhr.onreadystatechange = function () {\r\n\r\n function sendStartIfNotAlready() {\r\n // Internet Explorer is very unreliable as to when xhr.status etc can\r\n // be read so has to be protected with try/catch and tried again on \r\n // the next readyState if it fails\r\n try {\r\n stillToSendStartEvent && oboeBus(HTTP_START).emit(\r\n xhr.status,\r\n parseResponseHeaders(xhr.getAllResponseHeaders()));\r\n stillToSendStartEvent = false;\r\n } catch (e) {/* do nothing, will try again on next readyState*/ }\r\n }\r\n\r\n switch (xhr.readyState) {\r\n\r\n case 2: // HEADERS_RECEIVED\r\n case 3: // LOADING\r\n return sendStartIfNotAlready();\r\n\r\n case 4: // DONE\r\n sendStartIfNotAlready(); // if xhr.status hasn't been available yet, it must be NOW, huh IE?\r\n\r\n // is this a 2xx http code?\r\n var successful = String(xhr.status)[0] == 2;\r\n\r\n if (successful) {\r\n // In Chrome 29 (not 28) no onprogress is emitted when a response\r\n // is complete before the onload. We need to always do handleInput\r\n // in case we get the load but have not had a final progress event.\r\n // This looks like a bug and may change in future but let's take\r\n // the safest approach and assume we might not have received a \r\n // progress event for each part of the response\r\n handleProgress();\r\n\r\n oboeBus(STREAM_END).emit();\r\n } else {\r\n\r\n emitFail(errorReport(\r\n xhr.status,\r\n xhr.responseText\r\n ));\r\n }\r\n }\r\n };\r\n\r\n try {\r\n\r\n xhr.open(method, url, true);\r\n\r\n for (var headerName in headers) {\r\n if (headerName !== 'Content-Length') {\r\n xhr.setRequestHeader(headerName, headers[headerName]);\r\n }\r\n }\r\n\r\n if (!isCrossOrigin(window.location, parseUrlOrigin(url))) {\r\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\r\n }\r\n\r\n xhr.withCredentials = withCredentials;\r\n\r\n xhr.send(data);\r\n\r\n } catch (e) {\r\n\r\n // To keep a consistent interface with Node, we can't emit an event here.\r\n // Node's streaming http adaptor receives the error as an asynchronous\r\n // event rather than as an exception. If we emitted now, the Oboe user\r\n // has had no chance to add a .fail listener so there is no way\r\n // the event could be useful. For both these reasons defer the\r\n // firing to the next JS frame. \r\n window.setTimeout(\r\n partialComplete(emitFail, errorReport(undefined, undefined, e))\r\n , 0\r\n );\r\n }\r\n }\r\n\r\n var jsonPathSyntax = (function () {\r\n\r\n var\r\n\r\n /** \r\n * Export a regular expression as a simple function by exposing just \r\n * the Regex#exec. This allows regex tests to be used under the same \r\n * interface as differently implemented tests, or for a user of the\r\n * tests to not concern themselves with their implementation as regular\r\n * expressions.\r\n * \r\n * This could also be expressed point-free as:\r\n * Function.prototype.bind.bind(RegExp.prototype.exec),\r\n * \r\n * But that's far too confusing! (and not even smaller once minified \r\n * and gzipped)\r\n */\r\n regexDescriptor = function regexDescriptor(regex) {\r\n return regex.exec.bind(regex);\r\n }\r\n\r\n /**\r\n * Join several regular expressions and express as a function.\r\n * This allows the token patterns to reuse component regular expressions\r\n * instead of being expressed in full using huge and confusing regular\r\n * expressions.\r\n */\r\n , jsonPathClause = varArgs(function (componentRegexes) {\r\n\r\n // The regular expressions all start with ^ because we \r\n // only want to find matches at the start of the \r\n // JSONPath fragment we are inspecting \r\n componentRegexes.unshift(/^/);\r\n\r\n return regexDescriptor(\r\n RegExp(\r\n componentRegexes.map(attr('source')).join('')\r\n )\r\n );\r\n })\r\n\r\n , possiblyCapturing = /(\\$?)/\r\n , namedNode = /([\\w-_]+|\\*)/\r\n , namePlaceholder = /()/\r\n , nodeInArrayNotation = /\\[\"([^\"]+)\"\\]/\r\n , numberedNodeInArrayNotation = /\\[(\\d+|\\*)\\]/\r\n , fieldList = /{([\\w ]*?)}/\r\n , optionalFieldList = /(?:{([\\w ]*?)})?/\r\n\r\n\r\n // foo or * \r\n , jsonPathNamedNodeInObjectNotation = jsonPathClause(\r\n possiblyCapturing,\r\n namedNode,\r\n optionalFieldList\r\n )\r\n\r\n // [\"foo\"] \r\n , jsonPathNamedNodeInArrayNotation = jsonPathClause(\r\n possiblyCapturing,\r\n nodeInArrayNotation,\r\n optionalFieldList\r\n )\r\n\r\n // [2] or [*] \r\n , jsonPathNumberedNodeInArrayNotation = jsonPathClause(\r\n possiblyCapturing,\r\n numberedNodeInArrayNotation,\r\n optionalFieldList\r\n )\r\n\r\n // {a b c} \r\n , jsonPathPureDuckTyping = jsonPathClause(\r\n possiblyCapturing,\r\n namePlaceholder,\r\n fieldList\r\n )\r\n\r\n // ..\r\n , jsonPathDoubleDot = jsonPathClause(/\\.\\./)\r\n\r\n // .\r\n , jsonPathDot = jsonPathClause(/\\./)\r\n\r\n // !\r\n , jsonPathBang = jsonPathClause(\r\n possiblyCapturing,\r\n /!/\r\n )\r\n\r\n // nada!\r\n , emptyString = jsonPathClause(/$/)\r\n\r\n ;\r\n\r\n\r\n /* We export only a single function. When called, this function injects \r\n into another function the descriptors from above. \r\n */\r\n return function (fn) {\r\n return fn(\r\n lazyUnion(\r\n jsonPathNamedNodeInObjectNotation\r\n , jsonPathNamedNodeInArrayNotation\r\n , jsonPathNumberedNodeInArrayNotation\r\n , jsonPathPureDuckTyping\r\n )\r\n , jsonPathDoubleDot\r\n , jsonPathDot\r\n , jsonPathBang\r\n , emptyString\r\n );\r\n };\r\n\r\n }());\r\n /**\r\n * Get a new key->node mapping\r\n * \r\n * @param {String|Number} key\r\n * @param {Object|Array|String|Number|null} node a value found in the json\r\n */\r\n function namedNode(key, node) {\r\n return { key: key, node: node };\r\n }\r\n\r\n /** get the key of a namedNode */\r\n var keyOf = attr('key');\r\n\r\n /** get the node from a namedNode */\r\n var nodeOf = attr('node');\r\n /** \r\n * This file provides various listeners which can be used to build up\r\n * a changing ascent based on the callbacks provided by Clarinet. It listens\r\n * to the low-level events from Clarinet and emits higher-level ones.\r\n * \r\n * The building up is stateless so to track a JSON file\r\n * ascentManager.js is required to store the ascent state\r\n * between calls.\r\n */\r\n\r\n\r\n\r\n /** \r\n * A special value to use in the path list to represent the path 'to' a root \r\n * object (which doesn't really have any path). This prevents the need for \r\n * special-casing detection of the root object and allows it to be treated \r\n * like any other object. We might think of this as being similar to the \r\n * 'unnamed root' domain \".\", eg if I go to \r\n * http://en.wikipedia.org./wiki/En/Main_page the dot after 'org' deliminates \r\n * the unnamed root of the DNS.\r\n * \r\n * This is kept as an object to take advantage that in Javascript's OO objects \r\n * are guaranteed to be distinct, therefore no other object can possibly clash \r\n * with this one. Strings, numbers etc provide no such guarantee. \r\n **/\r\n var ROOT_PATH = {};\r\n\r\n\r\n /**\r\n * Create a new set of handlers for clarinet's events, bound to the emit \r\n * function given. \r\n */\r\n function incrementalContentBuilder(oboeBus) {\r\n\r\n var emitNodeOpened = oboeBus(NODE_OPENED).emit,\r\n emitNodeClosed = oboeBus(NODE_CLOSED).emit,\r\n emitRootOpened = oboeBus(ROOT_PATH_FOUND).emit,\r\n emitRootClosed = oboeBus(ROOT_NODE_FOUND).emit;\r\n\r\n function arrayIndicesAreKeys(possiblyInconsistentAscent, newDeepestNode) {\r\n\r\n /* for values in arrays we aren't pre-warned of the coming paths \r\n (Clarinet gives no call to onkey like it does for values in objects) \r\n so if we are in an array we need to create this path ourselves. The \r\n key will be len(parentNode) because array keys are always sequential \r\n numbers. */\r\n\r\n var parentNode = nodeOf(head(possiblyInconsistentAscent));\r\n\r\n return isOfType(Array, parentNode)\r\n ?\r\n keyFound(possiblyInconsistentAscent,\r\n len(parentNode),\r\n newDeepestNode\r\n )\r\n :\r\n // nothing needed, return unchanged\r\n possiblyInconsistentAscent\r\n ;\r\n }\r\n\r\n function nodeOpened(ascent, newDeepestNode) {\r\n\r\n if (!ascent) {\r\n // we discovered the root node, \r\n emitRootOpened(newDeepestNode);\r\n\r\n return keyFound(ascent, ROOT_PATH, newDeepestNode);\r\n }\r\n\r\n // we discovered a non-root node\r\n\r\n var arrayConsistentAscent = arrayIndicesAreKeys(ascent, newDeepestNode),\r\n ancestorBranches = tail(arrayConsistentAscent),\r\n previouslyUnmappedName = keyOf(head(arrayConsistentAscent));\r\n\r\n appendBuiltContent(\r\n ancestorBranches,\r\n previouslyUnmappedName,\r\n newDeepestNode\r\n );\r\n\r\n return cons(\r\n namedNode(previouslyUnmappedName, newDeepestNode),\r\n ancestorBranches\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Add a new value to the object we are building up to represent the\r\n * parsed JSON\r\n */\r\n function appendBuiltContent(ancestorBranches, key, node) {\r\n\r\n nodeOf(head(ancestorBranches))[key] = node;\r\n }\r\n\r\n\r\n /**\r\n * For when we find a new key in the json.\r\n * \r\n * @param {String|Number|Object} newDeepestName the key. If we are in an \r\n * array will be a number, otherwise a string. May take the special \r\n * value ROOT_PATH if the root node has just been found\r\n * \r\n * @param {String|Number|Object|Array|Null|undefined} [maybeNewDeepestNode] \r\n * usually this won't be known so can be undefined. Can't use null \r\n * to represent unknown because null is a valid value in JSON\r\n **/\r\n function keyFound(ascent, newDeepestName, maybeNewDeepestNode) {\r\n\r\n if (ascent) { // if not root\r\n\r\n // If we have the key but (unless adding to an array) no known value\r\n // yet. Put that key in the output but against no defined value: \r\n appendBuiltContent(ascent, newDeepestName, maybeNewDeepestNode);\r\n }\r\n\r\n var ascentWithNewPath = cons(\r\n namedNode(newDeepestName,\r\n maybeNewDeepestNode),\r\n ascent\r\n );\r\n\r\n emitNodeOpened(ascentWithNewPath);\r\n\r\n return ascentWithNewPath;\r\n }\r\n\r\n\r\n /**\r\n * For when the current node ends.\r\n */\r\n function nodeClosed(ascent) {\r\n\r\n emitNodeClosed(ascent);\r\n\r\n return tail(ascent) ||\r\n // If there are no nodes left in the ascent the root node\r\n // just closed. Emit a special event for this: \r\n emitRootClosed(nodeOf(head(ascent)));\r\n }\r\n\r\n var contentBuilderHandlers = {};\r\n contentBuilderHandlers[SAX_VALUE_OPEN] = nodeOpened;\r\n contentBuilderHandlers[SAX_VALUE_CLOSE] = nodeClosed;\r\n contentBuilderHandlers[SAX_KEY] = keyFound;\r\n return contentBuilderHandlers;\r\n }\r\n\r\n /**\r\n * The jsonPath evaluator compiler used for Oboe.js. \r\n * \r\n * One function is exposed. This function takes a String JSONPath spec and \r\n * returns a function to test candidate ascents for matches.\r\n * \r\n * String jsonPath -> (List ascent) -> Boolean|Object\r\n *\r\n * This file is coded in a pure functional style. That is, no function has \r\n * side effects, every function evaluates to the same value for the same \r\n * arguments and no variables are reassigned.\r\n */\r\n // the call to jsonPathSyntax injects the token syntaxes that are needed \r\n // inside the compiler\r\n var jsonPathCompiler = jsonPathSyntax(function (pathNodeSyntax,\r\n doubleDotSyntax,\r\n dotSyntax,\r\n bangSyntax,\r\n emptySyntax) {\r\n\r\n var CAPTURING_INDEX = 1;\r\n var NAME_INDEX = 2;\r\n var FIELD_LIST_INDEX = 3;\r\n\r\n var headKey = compose2(keyOf, head),\r\n headNode = compose2(nodeOf, head);\r\n\r\n /**\r\n * Create an evaluator function for a named path node, expressed in the\r\n * JSONPath like:\r\n * foo\r\n * [\"bar\"]\r\n * [2] \r\n */\r\n function nameClause(previousExpr, detection) {\r\n\r\n var name = detection[NAME_INDEX],\r\n\r\n matchesName = (!name || name == '*')\r\n ? always\r\n : function (ascent) { return headKey(ascent) == name };\r\n\r\n\r\n return lazyIntersection(matchesName, previousExpr);\r\n }\r\n\r\n /**\r\n * Create an evaluator function for a a duck-typed node, expressed like:\r\n * \r\n * {spin, taste, colour}\r\n * .particle{spin, taste, colour}\r\n * *{spin, taste, colour}\r\n */\r\n function duckTypeClause(previousExpr, detection) {\r\n\r\n var fieldListStr = detection[FIELD_LIST_INDEX];\r\n\r\n if (!fieldListStr)\r\n return previousExpr; // don't wrap at all, return given expr as-is \r\n\r\n var hasAllrequiredFields = partialComplete(\r\n hasAllProperties,\r\n arrayAsList(fieldListStr.split(/\\W+/))\r\n ),\r\n\r\n isMatch = compose2(\r\n hasAllrequiredFields,\r\n headNode\r\n );\r\n\r\n return lazyIntersection(isMatch, previousExpr);\r\n }\r\n\r\n /**\r\n * Expression for $, returns the evaluator function\r\n */\r\n function capture(previousExpr, detection) {\r\n\r\n // extract meaning from the detection \r\n var capturing = !!detection[CAPTURING_INDEX];\r\n\r\n if (!capturing)\r\n return previousExpr; // don't wrap at all, return given expr as-is \r\n\r\n return lazyIntersection(previousExpr, head);\r\n\r\n }\r\n\r\n /**\r\n * Create an evaluator function that moves onto the next item on the \r\n * lists. This function is the place where the logic to move up a \r\n * level in the ascent exists. \r\n * \r\n * Eg, for JSONPath \".foo\" we need skip1(nameClause(always, [,'foo']))\r\n */\r\n function skip1(previousExpr) {\r\n\r\n\r\n if (previousExpr == always) {\r\n /* If there is no previous expression this consume command \r\n is at the start of the jsonPath.\r\n Since JSONPath specifies what we'd like to find but not \r\n necessarily everything leading down to it, when running\r\n out of JSONPath to check against we default to true */\r\n return always;\r\n }\r\n\r\n /** return true if the ascent we have contains only the JSON root,\r\n * false otherwise\r\n */\r\n function notAtRoot(ascent) {\r\n return headKey(ascent) != ROOT_PATH;\r\n }\r\n\r\n return lazyIntersection(\r\n /* If we're already at the root but there are more \r\n expressions to satisfy, can't consume any more. No match.\r\n \r\n This check is why none of the other exprs have to be able \r\n to handle empty lists; skip1 is the only evaluator that \r\n moves onto the next token and it refuses to do so once it \r\n reaches the last item in the list. */\r\n notAtRoot,\r\n\r\n /* We are not at the root of the ascent yet.\r\n Move to the next level of the ascent by handing only \r\n the tail to the previous expression */\r\n compose2(previousExpr, tail)\r\n );\r\n\r\n }\r\n\r\n /**\r\n * Create an evaluator function for the .. (double dot) token. Consumes\r\n * zero or more levels of the ascent, the fewest that are required to find\r\n * a match when given to previousExpr.\r\n */\r\n function skipMany(previousExpr) {\r\n\r\n if (previousExpr == always) {\r\n /* If there is no previous expression this consume command \r\n is at the start of the jsonPath.\r\n Since JSONPath specifies what we'd like to find but not \r\n necessarily everything leading down to it, when running\r\n out of JSONPath to check against we default to true */\r\n return always;\r\n }\r\n\r\n var\r\n // In JSONPath .. is equivalent to !.. so if .. reaches the root\r\n // the match has succeeded. Ie, we might write ..foo or !..foo\r\n // and both should match identically.\r\n terminalCaseWhenArrivingAtRoot = rootExpr(),\r\n terminalCaseWhenPreviousExpressionIsSatisfied = previousExpr,\r\n recursiveCase = skip1(function (ascent) {\r\n return cases(ascent);\r\n }),\r\n\r\n cases = lazyUnion(\r\n terminalCaseWhenArrivingAtRoot\r\n , terminalCaseWhenPreviousExpressionIsSatisfied\r\n , recursiveCase\r\n );\r\n\r\n return cases;\r\n }\r\n\r\n /**\r\n * Generate an evaluator for ! - matches only the root element of the json\r\n * and ignores any previous expressions since nothing may precede !. \r\n */\r\n function rootExpr() {\r\n\r\n return function (ascent) {\r\n return headKey(ascent) == ROOT_PATH;\r\n };\r\n }\r\n\r\n /**\r\n * Generate a statement wrapper to sit around the outermost \r\n * clause evaluator.\r\n * \r\n * Handles the case where the capturing is implicit because the JSONPath\r\n * did not contain a '$' by returning the last node.\r\n */\r\n function statementExpr(lastClause) {\r\n\r\n return function (ascent) {\r\n\r\n // kick off the evaluation by passing through to the last clause\r\n var exprMatch = lastClause(ascent);\r\n\r\n return exprMatch === true ? head(ascent) : exprMatch;\r\n };\r\n }\r\n\r\n /**\r\n * For when a token has been found in the JSONPath input.\r\n * Compiles the parser for that token and returns in combination with the\r\n * parser already generated.\r\n * \r\n * @param {Function} exprs a list of the clause evaluator generators for\r\n * the token that was found\r\n * @param {Function} parserGeneratedSoFar the parser already found\r\n * @param {Array} detection the match given by the regex engine when \r\n * the feature was found\r\n */\r\n function expressionsReader(exprs, parserGeneratedSoFar, detection) {\r\n\r\n // if exprs is zero-length foldR will pass back the \r\n // parserGeneratedSoFar as-is so we don't need to treat \r\n // this as a special case\r\n\r\n return foldR(\r\n function (parserGeneratedSoFar, expr) {\r\n\r\n return expr(parserGeneratedSoFar, detection);\r\n },\r\n parserGeneratedSoFar,\r\n exprs\r\n );\r\n\r\n }\r\n\r\n /** \r\n * If jsonPath matches the given detector function, creates a function which\r\n * evaluates against every clause in the clauseEvaluatorGenerators. The\r\n * created function is propagated to the onSuccess function, along with\r\n * the remaining unparsed JSONPath substring.\r\n * \r\n * The intended use is to create a clauseMatcher by filling in\r\n * the first two arguments, thus providing a function that knows\r\n * some syntax to match and what kind of generator to create if it\r\n * finds it. The parameter list once completed is:\r\n * \r\n * (jsonPath, parserGeneratedSoFar, onSuccess)\r\n * \r\n * onSuccess may be compileJsonPathToFunction, to recursively continue \r\n * parsing after finding a match or returnFoundParser to stop here.\r\n */\r\n function generateClauseReaderIfTokenFound(\r\n\r\n tokenDetector, clauseEvaluatorGenerators,\r\n\r\n jsonPath, parserGeneratedSoFar, onSuccess) {\r\n\r\n var detected = tokenDetector(jsonPath);\r\n\r\n if (detected) {\r\n var compiledParser = expressionsReader(\r\n clauseEvaluatorGenerators,\r\n parserGeneratedSoFar,\r\n detected\r\n ),\r\n\r\n remainingUnparsedJsonPath = jsonPath.substr(len(detected[0]));\r\n\r\n return onSuccess(remainingUnparsedJsonPath, compiledParser);\r\n }\r\n }\r\n\r\n /**\r\n * Partially completes generateClauseReaderIfTokenFound above. \r\n */\r\n function clauseMatcher(tokenDetector, exprs) {\r\n\r\n return partialComplete(\r\n generateClauseReaderIfTokenFound,\r\n tokenDetector,\r\n exprs\r\n );\r\n }\r\n\r\n /**\r\n * clauseForJsonPath is a function which attempts to match against \r\n * several clause matchers in order until one matches. If non match the\r\n * jsonPath expression is invalid and an error is thrown.\r\n * \r\n * The parameter list is the same as a single clauseMatcher:\r\n * \r\n * (jsonPath, parserGeneratedSoFar, onSuccess)\r\n */\r\n var clauseForJsonPath = lazyUnion(\r\n\r\n clauseMatcher(pathNodeSyntax, list(capture,\r\n duckTypeClause,\r\n nameClause,\r\n skip1))\r\n\r\n , clauseMatcher(doubleDotSyntax, list(skipMany))\r\n\r\n // dot is a separator only (like whitespace in other languages) but \r\n // rather than make it a special case, use an empty list of \r\n // expressions when this token is found\r\n , clauseMatcher(dotSyntax, list())\r\n\r\n , clauseMatcher(bangSyntax, list(capture,\r\n rootExpr))\r\n\r\n , clauseMatcher(emptySyntax, list(statementExpr))\r\n\r\n , function (jsonPath) {\r\n throw Error('\"' + jsonPath + '\" could not be tokenised')\r\n }\r\n );\r\n\r\n\r\n /**\r\n * One of two possible values for the onSuccess argument of \r\n * generateClauseReaderIfTokenFound.\r\n * \r\n * When this function is used, generateClauseReaderIfTokenFound simply \r\n * returns the compiledParser that it made, regardless of if there is \r\n * any remaining jsonPath to be compiled.\r\n */\r\n function returnFoundParser(_remainingJsonPath, compiledParser) {\r\n return compiledParser\r\n }\r\n\r\n /**\r\n * Recursively compile a JSONPath expression.\r\n * \r\n * This function serves as one of two possible values for the onSuccess \r\n * argument of generateClauseReaderIfTokenFound, meaning continue to\r\n * recursively compile. Otherwise, returnFoundParser is given and\r\n * compilation terminates.\r\n */\r\n function compileJsonPathToFunction(uncompiledJsonPath,\r\n parserGeneratedSoFar) {\r\n\r\n /**\r\n * On finding a match, if there is remaining text to be compiled\r\n * we want to either continue parsing using a recursive call to \r\n * compileJsonPathToFunction. Otherwise, we want to stop and return \r\n * the parser that we have found so far.\r\n */\r\n var onFind = uncompiledJsonPath\r\n ? compileJsonPathToFunction\r\n : returnFoundParser;\r\n\r\n return clauseForJsonPath(\r\n uncompiledJsonPath,\r\n parserGeneratedSoFar,\r\n onFind\r\n );\r\n }\r\n\r\n /**\r\n * This is the function that we expose to the rest of the library.\r\n */\r\n return function (jsonPath) {\r\n\r\n try {\r\n // Kick off the recursive parsing of the jsonPath \r\n return compileJsonPathToFunction(jsonPath, always);\r\n\r\n } catch (e) {\r\n throw Error('Could not compile \"' + jsonPath +\r\n '\" because ' + e.message\r\n );\r\n }\r\n }\r\n\r\n });\r\n\r\n /**\r\n * A pub/sub which is responsible for a single event type. A\r\n * multi-event type event bus is created by pubSub by collecting\r\n * several of these.\r\n *\r\n * @param {String} eventType\r\n * the name of the events managed by this singleEventPubSub\r\n * @param {singleEventPubSub} [newListener]\r\n * place to notify of new listeners\r\n * @param {singleEventPubSub} [removeListener]\r\n * place to notify of when listeners are removed\r\n */\r\n function singleEventPubSub(eventType, newListener, removeListener) {\r\n\r\n /** we are optimised for emitting events over firing them.\r\n * As well as the tuple list which stores event ids and\r\n * listeners there is a list with just the listeners which\r\n * can be iterated more quickly when we are emitting\r\n */\r\n var listenerTupleList,\r\n listenerList;\r\n\r\n function hasId(id) {\r\n return function (tuple) {\r\n return tuple.id == id;\r\n };\r\n }\r\n\r\n return {\r\n\r\n /**\r\n * @param {Function} listener\r\n * @param {*} listenerId\r\n * an id that this listener can later by removed by.\r\n * Can be of any type, to be compared to other ids using ==\r\n */\r\n on: function (listener, listenerId) {\r\n\r\n var tuple = {\r\n listener: listener\r\n , id: listenerId || listener // when no id is given use the\r\n // listener function as the id\r\n };\r\n\r\n if (newListener) {\r\n newListener.emit(eventType, listener, tuple.id);\r\n }\r\n\r\n listenerTupleList = cons(tuple, listenerTupleList);\r\n listenerList = cons(listener, listenerList);\r\n\r\n return this; // chaining\r\n },\r\n\r\n emit: function () {\r\n applyEach(listenerList, arguments);\r\n },\r\n\r\n un: function (listenerId) {\r\n\r\n var removed;\r\n\r\n listenerTupleList = without(\r\n listenerTupleList,\r\n hasId(listenerId),\r\n function (tuple) {\r\n removed = tuple;\r\n }\r\n );\r\n\r\n if (removed) {\r\n listenerList = without(listenerList, function (listener) {\r\n return listener == removed.listener;\r\n });\r\n\r\n if (removeListener) {\r\n removeListener.emit(eventType, removed.listener, removed.id);\r\n }\r\n }\r\n },\r\n\r\n listeners: function () {\r\n // differs from Node EventEmitter: returns list, not array\r\n return listenerList;\r\n },\r\n\r\n hasListener: function (listenerId) {\r\n var test = listenerId ? hasId(listenerId) : always;\r\n\r\n return defined(first(test, listenerTupleList));\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * pubSub is a curried interface for listening to and emitting\r\n * events.\r\n *\r\n * If we get a bus:\r\n *\r\n * var bus = pubSub();\r\n *\r\n * We can listen to event 'foo' like:\r\n *\r\n * bus('foo').on(myCallback)\r\n *\r\n * And emit event foo like:\r\n *\r\n * bus('foo').emit()\r\n *\r\n * or, with a parameter:\r\n *\r\n * bus('foo').emit('bar')\r\n *\r\n * All functions can be cached and don't need to be\r\n * bound. Ie:\r\n *\r\n * var fooEmitter = bus('foo').emit\r\n * fooEmitter('bar'); // emit an event\r\n * fooEmitter('baz'); // emit another\r\n *\r\n * There's also an uncurried[1] shortcut for .emit and .on:\r\n *\r\n * bus.on('foo', callback)\r\n * bus.emit('foo', 'bar')\r\n *\r\n * [1]: http://zvon.org/other/haskell/Outputprelude/uncurry_f.html\r\n */\r\n function pubSub() {\r\n\r\n var singles = {},\r\n newListener = newSingle('newListener'),\r\n removeListener = newSingle('removeListener');\r\n\r\n function newSingle(eventName) {\r\n return singles[eventName] = singleEventPubSub(\r\n eventName,\r\n newListener,\r\n removeListener\r\n );\r\n }\r\n\r\n /** pubSub instances are functions */\r\n function pubSubInstance(eventName) {\r\n\r\n return singles[eventName] || newSingle(eventName);\r\n }\r\n\r\n // add convenience EventEmitter-style uncurried form of 'emit' and 'on'\r\n ['emit', 'on', 'un'].forEach(function (methodName) {\r\n\r\n pubSubInstance[methodName] = varArgs(function (eventName, parameters) {\r\n apply(parameters, pubSubInstance(eventName)[methodName]);\r\n });\r\n });\r\n\r\n return pubSubInstance;\r\n }\r\n\r\n /**\r\n * This file declares some constants to use as names for event types.\r\n */\r\n\r\n var // the events which are never exported are kept as \r\n // the smallest possible representation, in numbers:\r\n _S = 1,\r\n\r\n // fired whenever a new node starts in the JSON stream:\r\n NODE_OPENED = _S++,\r\n\r\n // fired whenever a node closes in the JSON stream:\r\n NODE_CLOSED = _S++,\r\n\r\n // called if a .node callback returns a value - \r\n NODE_SWAP = _S++,\r\n NODE_DROP = _S++,\r\n\r\n FAIL_EVENT = 'fail',\r\n\r\n ROOT_NODE_FOUND = _S++,\r\n ROOT_PATH_FOUND = _S++,\r\n\r\n HTTP_START = 'start',\r\n STREAM_DATA = 'data',\r\n STREAM_END = 'end',\r\n ABORTING = _S++,\r\n\r\n // SAX events butchered from Clarinet\r\n SAX_KEY = _S++,\r\n SAX_VALUE_OPEN = _S++,\r\n SAX_VALUE_CLOSE = _S++;\r\n\r\n function errorReport(statusCode, body, error) {\r\n try {\r\n var jsonBody = JSON.parse(body);\r\n } catch (e) { }\r\n\r\n return {\r\n statusCode: statusCode,\r\n body: body,\r\n jsonBody: jsonBody,\r\n thrown: error\r\n };\r\n }\r\n\r\n /** \r\n * The pattern adaptor listens for newListener and removeListener\r\n * events. When patterns are added or removed it compiles the JSONPath\r\n * and wires them up.\r\n * \r\n * When nodes and paths are found it emits the fully-qualified match \r\n * events with parameters ready to ship to the outside world\r\n */\r\n\r\n function patternAdapter(oboeBus, jsonPathCompiler) {\r\n\r\n var predicateEventMap = {\r\n node: oboeBus(NODE_CLOSED)\r\n , path: oboeBus(NODE_OPENED)\r\n };\r\n\r\n function emitMatchingNode(emitMatch, node, ascent) {\r\n\r\n /* \r\n We're now calling to the outside world where Lisp-style \r\n lists will not be familiar. Convert to standard arrays. \r\n \r\n Also, reverse the order because it is more common to \r\n list paths \"root to leaf\" than \"leaf to root\" */\r\n var descent = reverseList(ascent);\r\n\r\n emitMatch(\r\n node,\r\n\r\n // To make a path, strip off the last item which is the special\r\n // ROOT_PATH token for the 'path' to the root node \r\n listAsArray(tail(map(keyOf, descent))), // path\r\n listAsArray(map(nodeOf, descent)) // ancestors \r\n );\r\n }\r\n\r\n /* \r\n * Set up the catching of events such as NODE_CLOSED and NODE_OPENED and, if \r\n * matching the specified pattern, propagate to pattern-match events such as \r\n * oboeBus('node:!')\r\n * \r\n * \r\n * \r\n * @param {Function} predicateEvent \r\n * either oboeBus(NODE_CLOSED) or oboeBus(NODE_OPENED).\r\n * @param {Function} compiledJsonPath \r\n */\r\n function addUnderlyingListener(fullEventName, predicateEvent, compiledJsonPath) {\r\n\r\n var emitMatch = oboeBus(fullEventName).emit;\r\n\r\n predicateEvent.on(function (ascent) {\r\n\r\n var maybeMatchingMapping = compiledJsonPath(ascent);\r\n\r\n /* Possible values for maybeMatchingMapping are now:\r\n \r\n false: \r\n we did not match \r\n \r\n an object/array/string/number/null: \r\n we matched and have the node that matched.\r\n Because nulls are valid json values this can be null.\r\n \r\n undefined:\r\n we matched but don't have the matching node yet.\r\n ie, we know there is an upcoming node that matches but we \r\n can't say anything else about it. \r\n */\r\n if (maybeMatchingMapping !== false) {\r\n\r\n emitMatchingNode(\r\n emitMatch,\r\n nodeOf(maybeMatchingMapping),\r\n ascent\r\n );\r\n }\r\n }, fullEventName);\r\n\r\n oboeBus('removeListener').on(function (removedEventName) {\r\n\r\n // if the fully qualified match event listener is later removed, clean up \r\n // by removing the underlying listener if it was the last using that pattern:\r\n\r\n if (removedEventName == fullEventName) {\r\n\r\n if (!oboeBus(removedEventName).listeners()) {\r\n predicateEvent.un(fullEventName);\r\n }\r\n }\r\n });\r\n }\r\n\r\n oboeBus('newListener').on(function (fullEventName) {\r\n\r\n var match = /(node|path):(.*)/.exec(fullEventName);\r\n\r\n if (match) {\r\n var predicateEvent = predicateEventMap[match[1]];\r\n\r\n if (!predicateEvent.hasListener(fullEventName)) {\r\n\r\n addUnderlyingListener(\r\n fullEventName,\r\n predicateEvent,\r\n jsonPathCompiler(match[2])\r\n );\r\n }\r\n }\r\n })\r\n\r\n }\r\n\r\n /**\r\n * The instance API is the thing that is returned when oboe() is called.\r\n * it allows:\r\n *\r\n * - listeners for various events to be added and removed\r\n * - the http response header/headers to be read\r\n */\r\n function instanceApi(oboeBus, contentSource) {\r\n\r\n var oboeApi,\r\n fullyQualifiedNamePattern = /^(node|path):./,\r\n rootNodeFinishedEvent = oboeBus(ROOT_NODE_FOUND),\r\n emitNodeDrop = oboeBus(NODE_DROP).emit,\r\n emitNodeSwap = oboeBus(NODE_SWAP).emit,\r\n\r\n /**\r\n * Add any kind of listener that the instance api exposes\r\n */\r\n addListener = varArgs(function (eventId, parameters) {\r\n\r\n if (oboeApi[eventId]) {\r\n\r\n // for events added as .on(event, callback), if there is a\r\n // .event() equivalent with special behaviour , pass through\r\n // to that:\r\n apply(parameters, oboeApi[eventId]);\r\n } else {\r\n\r\n // we have a standard Node.js EventEmitter 2-argument call.\r\n // The first parameter is the listener.\r\n var event = oboeBus(eventId),\r\n listener = parameters[0];\r\n\r\n if (fullyQualifiedNamePattern.test(eventId)) {\r\n\r\n // allow fully-qualified node/path listeners\r\n // to be added\r\n addForgettableCallback(event, listener);\r\n } else {\r\n\r\n // the event has no special handling, pass through\r\n // directly onto the event bus:\r\n event.on(listener);\r\n }\r\n }\r\n\r\n return oboeApi; // chaining\r\n }),\r\n\r\n /**\r\n * Remove any kind of listener that the instance api exposes\r\n */\r\n removeListener = function (eventId, p2, p3) {\r\n\r\n if (eventId == 'done') {\r\n\r\n rootNodeFinishedEvent.un(p2);\r\n\r\n } else if (eventId == 'node' || eventId == 'path') {\r\n\r\n // allow removal of node and path\r\n oboeBus.un(eventId + ':' + p2, p3);\r\n } else {\r\n\r\n // we have a standard Node.js EventEmitter 2-argument call.\r\n // The second parameter is the listener. This may be a call\r\n // to remove a fully-qualified node/path listener but requires\r\n // no special handling\r\n var listener = p2;\r\n\r\n oboeBus(eventId).un(listener);\r\n }\r\n\r\n return oboeApi; // chaining\r\n };\r\n\r\n /**\r\n * Add a callback, wrapped in a try/catch so as to not break the\r\n * execution of Oboe if an exception is thrown (fail events are\r\n * fired instead)\r\n *\r\n * The callback is used as the listener id so that it can later be\r\n * removed using .un(callback)\r\n */\r\n function addProtectedCallback(eventName, callback) {\r\n oboeBus(eventName).on(protectedCallback(callback), callback);\r\n return oboeApi; // chaining\r\n }\r\n\r\n /**\r\n * Add a callback where, if .forget() is called during the callback's\r\n * execution, the callback will be de-registered\r\n */\r\n function addForgettableCallback(event, callback, listenerId) {\r\n\r\n // listenerId is optional and if not given, the original\r\n // callback will be used\r\n listenerId = listenerId || callback;\r\n\r\n var safeCallback = protectedCallback(callback);\r\n\r\n event.on(function () {\r\n\r\n var discard = false;\r\n\r\n oboeApi.forget = function () {\r\n discard = true;\r\n };\r\n\r\n apply(arguments, safeCallback);\r\n\r\n delete oboeApi.forget;\r\n\r\n if (discard) {\r\n event.un(listenerId);\r\n }\r\n }, listenerId);\r\n\r\n return oboeApi; // chaining\r\n }\r\n\r\n /**\r\n * wrap a callback so that if it throws, Oboe.js doesn't crash but instead\r\n * throw the error in another event loop\r\n */\r\n function protectedCallback(callback) {\r\n return function () {\r\n try {\r\n return callback.apply(oboeApi, arguments);\r\n } catch (e) {\r\n setTimeout(function () {\r\n throw new Error(e.message);\r\n });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Return the fully qualified event for when a pattern matches\r\n * either a node or a path\r\n *\r\n * @param type {String} either 'node' or 'path'\r\n */\r\n function fullyQualifiedPatternMatchEvent(type, pattern) {\r\n return oboeBus(type + ':' + pattern);\r\n }\r\n\r\n function wrapCallbackToSwapNodeIfSomethingReturned(callback) {\r\n return function () {\r\n var returnValueFromCallback = callback.apply(this, arguments);\r\n\r\n if (defined(returnValueFromCallback)) {\r\n\r\n if (returnValueFromCallback == oboe.drop) {\r\n emitNodeDrop();\r\n } else {\r\n emitNodeSwap(returnValueFromCallback);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function addSingleNodeOrPathListener(eventId, pattern, callback) {\r\n\r\n var effectiveCallback;\r\n\r\n if (eventId == 'node') {\r\n effectiveCallback = wrapCallbackToSwapNodeIfSomethingReturned(callback);\r\n } else {\r\n effectiveCallback = callback;\r\n }\r\n\r\n addForgettableCallback(\r\n fullyQualifiedPatternMatchEvent(eventId, pattern),\r\n effectiveCallback,\r\n callback\r\n );\r\n }\r\n\r\n /**\r\n * Add several listeners at a time, from a map\r\n */\r\n function addMultipleNodeOrPathListeners(eventId, listenerMap) {\r\n\r\n for (var pattern in listenerMap) {\r\n addSingleNodeOrPathListener(eventId, pattern, listenerMap[pattern]);\r\n }\r\n }\r\n\r\n /**\r\n * implementation behind .onPath() and .onNode()\r\n */\r\n function addNodeOrPathListenerApi(eventId, jsonPathOrListenerMap, callback) {\r\n\r\n if (isString(jsonPathOrListenerMap)) {\r\n addSingleNodeOrPathListener(eventId, jsonPathOrListenerMap, callback);\r\n\r\n } else {\r\n addMultipleNodeOrPathListeners(eventId, jsonPathOrListenerMap);\r\n }\r\n\r\n return oboeApi; // chaining\r\n }\r\n\r\n\r\n // some interface methods are only filled in after we receive\r\n // values and are noops before that:\r\n oboeBus(ROOT_PATH_FOUND).on(function (rootNode) {\r\n oboeApi.root = functor(rootNode);\r\n });\r\n\r\n /**\r\n * When content starts make the headers readable through the\r\n * instance API\r\n */\r\n oboeBus(HTTP_START).on(function (_statusCode, headers) {\r\n\r\n oboeApi.header = function (name) {\r\n return name ? headers[name]\r\n : headers\r\n ;\r\n }\r\n });\r\n\r\n /**\r\n * Construct and return the public API of the Oboe instance to be\r\n * returned to the calling application\r\n */\r\n return oboeApi = {\r\n on: addListener,\r\n addListener: addListener,\r\n removeListener: removeListener,\r\n emit: oboeBus.emit,\r\n\r\n node: partialComplete(addNodeOrPathListenerApi, 'node'),\r\n path: partialComplete(addNodeOrPathListenerApi, 'path'),\r\n\r\n done: partialComplete(addForgettableCallback, rootNodeFinishedEvent),\r\n start: partialComplete(addProtectedCallback, HTTP_START),\r\n\r\n // fail doesn't use protectedCallback because\r\n // could lead to non-terminating loops\r\n fail: oboeBus(FAIL_EVENT).on,\r\n\r\n // public api calling abort fires the ABORTING event\r\n abort: oboeBus(ABORTING).emit,\r\n\r\n // initially return nothing for header and root\r\n header: noop,\r\n root: noop,\r\n\r\n source: contentSource\r\n };\r\n }\r\n\r\n /**\r\n * This file sits just behind the API which is used to attain a new\r\n * Oboe instance. It creates the new components that are required\r\n * and introduces them to each other.\r\n */\r\n\r\n function wire(httpMethodName, contentSource, body, headers, withCredentials) {\r\n\r\n var oboeBus = pubSub();\r\n\r\n // Wire the input stream in if we are given a content source.\r\n // This will usually be the case. If not, the instance created\r\n // will have to be passed content from an external source.\r\n\r\n if (contentSource) {\r\n\r\n streamingHttp(oboeBus,\r\n httpTransport(),\r\n httpMethodName,\r\n contentSource,\r\n body,\r\n headers,\r\n withCredentials\r\n );\r\n }\r\n\r\n clarinet(oboeBus);\r\n\r\n ascentManager(oboeBus, incrementalContentBuilder(oboeBus));\r\n\r\n patternAdapter(oboeBus, jsonPathCompiler);\r\n\r\n return instanceApi(oboeBus, contentSource);\r\n }\r\n\r\n function applyDefaults(passthrough, url, httpMethodName, body, headers, withCredentials, cached) {\r\n\r\n headers = headers ?\r\n // Shallow-clone the headers array. This allows it to be\r\n // modified without side effects to the caller. We don't\r\n // want to change objects that the user passes in.\r\n JSON.parse(JSON.stringify(headers))\r\n : {};\r\n\r\n if (body) {\r\n if (!isString(body)) {\r\n\r\n // If the body is not a string, stringify it. This allows objects to\r\n // be given which will be sent as JSON.\r\n body = JSON.stringify(body);\r\n\r\n // Default Content-Type to JSON unless given otherwise.\r\n headers['Content-Type'] = headers['Content-Type'] || 'application/json';\r\n }\r\n headers['Content-Length'] = headers['Content-Length'] || body.length;\r\n } else {\r\n body = null;\r\n }\r\n\r\n // support cache busting like jQuery.ajax({cache:false})\r\n function modifiedUrl(baseUrl, cached) {\r\n\r\n if (cached === false) {\r\n\r\n if (baseUrl.indexOf('?') == -1) {\r\n baseUrl += '?';\r\n } else {\r\n baseUrl += '&';\r\n }\r\n\r\n baseUrl += '_=' + new Date().getTime();\r\n }\r\n return baseUrl;\r\n }\r\n\r\n return passthrough(httpMethodName || 'GET', modifiedUrl(url, cached), body, headers, withCredentials || false);\r\n }\r\n\r\n // export public API\r\n function oboe(arg1) {\r\n\r\n // We use duck-typing to detect if the parameter given is a stream, with the\r\n // below list of parameters.\r\n // Unpipe and unshift would normally be present on a stream but this breaks\r\n // compatibility with Request streams.\r\n // See https://github.com/jimhigson/oboe.js/issues/65\r\n\r\n var nodeStreamMethodNames = list('resume', 'pause', 'pipe'),\r\n isStream = partialComplete(\r\n hasAllProperties\r\n , nodeStreamMethodNames\r\n );\r\n\r\n if (arg1) {\r\n if (isStream(arg1) || isString(arg1)) {\r\n\r\n // simple version for GETs. Signature is:\r\n // oboe( url )\r\n // or, under node:\r\n // oboe( readableStream )\r\n return applyDefaults(\r\n wire,\r\n arg1 // url\r\n );\r\n\r\n } else {\r\n\r\n // method signature is:\r\n // oboe({method:m, url:u, body:b, headers:{...}})\r\n\r\n return applyDefaults(\r\n wire,\r\n arg1.url,\r\n arg1.method,\r\n arg1.body,\r\n arg1.headers,\r\n arg1.withCredentials,\r\n arg1.cached\r\n );\r\n\r\n }\r\n } else {\r\n // wire up a no-AJAX, no-stream Oboe. Will have to have content \r\n // fed in externally and using .emit.\r\n return wire();\r\n }\r\n }\r\n\r\n /* oboe.drop is a special value. If a node callback returns this value the\r\n parsed node is deleted from the JSON\r\n */\r\n oboe.drop = function () {\r\n return oboe.drop;\r\n };\r\n\r\n\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"oboe\", [], function () { return oboe; });\r\n } else if (typeof exports === 'object') {\r\n module.exports = oboe;\r\n } else {\r\n window.oboe = oboe;\r\n }\r\n})((function () {\r\n // Access to the window object throws an exception in HTML5 web workers so\r\n // point it to \"self\" if it runs in a web worker\r\n try {\r\n return window;\r\n } catch (e) {\r\n return self;\r\n }\r\n}()), Object, Array, Error, JSON);\r\n"], "mappings": "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", "names": ["e", "t", "n", "r", "i", "o", "a", "s", "u", "l", "b", "w", "T", "C", "d", "k", "S", "E", "W", "c", "h", "f", "p", "g", "v", "y", "m", "x", "j", "A", "D", "N", "q", "L", "H", "O", "P", "M", "V", "R", "J", "I", "U", "Y", "Q", "re", "F", "$", "B", "_", "z", "X", "ne", "G", "K", "Z", "ee", "te", "oe", "ie", "ae", "se", "fe", "ce", "pe", "ue", "le", "he", "me", "ve", "ye", "ge", "be", "xe", "we", "window", "Object", "Array", "Error", "JSON", "list", "removedFn", "eventName", "regexDescriptor", "namedNode", "parserGeneratedSoFar", "jsonPathCompiler", "cached"] }