function GetTimeStamp(n){var i,f,e;i=n!=null?new Date(n):new Date;var t=i.getHours(),r=i.getMinutes(),o=i.getDate(),u=t>=12?"pm":"am";return t=t%12,t=t?t:12,r=r<10?"0"+r:r,f=shortMonth[i.getMonth()],e=o+" "+f,isToday(i)?t+":"+r+u:e+" "+t+":"+r+u}function isToday(n){const t=new Date;return n.getDate()==t.getDate()&&n.getMonth()==t.getMonth()&&n.getFullYear()==t.getFullYear()}function GetTime(n){var r=n!=null?new Date(n):new Date;var t=r.getHours(),i=r.getMinutes(),f=r.getDate(),u=t>=12?"pm":"am";return t=t%12,t=t?t:12,i=i<10?"0"+i:i,t+":"+i+u}function GetTimeNow(){return(new Date).getTime()}function ShowLoader(){$("#loader").show()}function HideLoader(){$("#loader").hide()}function Ping(n){console.log("Ping");n&&($(".room:not(#AdminRoom)").addClass("pinged"),n.server.ping())}function PingUser(n,t){n!=null&&n.server.pingUser(t)}function myCUID(){var n=$("#hCUID").val();return(typeof n=="undefined"||n=="")&&(n=GetChatUserIDCookie()),n}function currRoom(){return $("#hRoom").val()}function myCID(){return $("#hCid").val()}function myUname(){return $("#hUname").val()}function notifyMe(){favicon==null&&(favicon=new Favico({animation:"none",position:"up",type:"rectangle"}));notificationCount=notificationCount+1;favicon.badge(notificationCount)}function notifyReset(){(typeof favicon=="undefined"||favicon===null)&&(favicon=new Favico({animation:"none",position:"up",type:"rectangle"}));notificationCount=0;favicon.reset()}function sendscroll(n){if(n!==null){var t=Math.round(showPosition(document.body));t%10==0&&n.server.sendScrollPos(currRoom(),t+"%",GetPage())}}function SetupWake(){setInterval(function(){var n=(new Date).getTime();n>lastWakeTime+4e3&&$(document).trigger("Awaken");lastWakeTime=n},1e4)}var shortMonth,notificationCount,favicon,lastWakeTime;(function(n,t,i){function v(t,i){var u,f;if(n.isArray(t)){for(u=t.length-1;u>=0;u--)f=t[u],n.type(f)==="string"&&r.transports[f]||(i.log("Invalid transport: "+f+", removing it from the transports list."),t.splice(u,1));t.length===0&&(i.log("No transports remain within the specified transport array."),t=null)}else if(r.transports[t]||t==="auto"){if(t==="auto"&&r._.ieVersion<=8)return["longPolling"]}else i.log("Invalid transport: "+t.toString()+"."),t=null;return t}function y(n){return n==="http:"?80:n==="https:"?443:void 0}function h(n,t){return t.match(/:\d+$/)?t:t+":"+y(n)}function p(t,i){var u=this,r=[];u.tryBuffer=function(i){return t.state===n.signalR.connectionState.connecting?(r.push(i),!0):!1};u.drain=function(){if(t.state===n.signalR.connectionState.connected)while(r.length>0)i(r.shift())};u.clear=function(){r=[]}}var f={nojQuery:"jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",noTransportOnInit:"No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.",errorOnNegotiate:"Error during negotiation request.",stoppedWhileLoading:"The connection was stopped during page load.",stoppedWhileNegotiating:"The connection was stopped during the negotiate request.",errorParsingNegotiateResponse:"Error parsing negotiate response.",errorRedirectionExceedsLimit:"Negotiate redirection limit exceeded.",errorDuringStartRequest:"Error during start request. Stopping the connection.",errorFromServer:"Error message received from the server: '{0}'.",stoppedDuringStartRequest:"The connection was stopped during the start request.",errorParsingStartResponse:"Error parsing start response: '{0}'. Stopping the connection.",invalidStartResponse:"Invalid start response: '{0}'. Stopping the connection.",protocolIncompatible:"You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",aspnetCoreSignalrServer:"Detected a connection attempt to an ASP.NET Core SignalR Server. This client only supports connecting to an ASP.NET SignalR Server. See https://aka.ms/signalr-core-differences for details.",sendFailed:"Send failed.",parseFailed:"Failed at parsing response: {0}",longPollFailed:"Long polling request failed.",eventSourceFailedToConnect:"EventSource failed to connect.",eventSourceError:"Error raised by EventSource",webSocketClosed:"WebSocket closed.",pingServerFailedInvalidResponse:"Invalid ping response when pinging server: '{0}'.",pingServerFailed:"Failed to ping server.",pingServerFailedStatusCode:"Failed to ping server.  Server responded with status code {0}, stopping the connection.",pingServerFailedParse:"Failed to parse ping server response, stopping the connection.",noConnectionTransport:"Connection is in an invalid state, there is no transport active.",webSocketsInvalidState:"The Web Socket transport is in an invalid state, transitioning into reconnecting.",reconnectTimeout:"Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",reconnectWindowTimeout:"The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection.",jsonpNotSupportedWithAccessToken:"The JSONP protocol does not support connections that require a Bearer token to connect, such as the Azure SignalR Service."};if(typeof n!="function")throw new Error(f.nojQuery);var r,c,o=t.document.readyState==="complete",e=n(t),l="__Negotiate Aborted__",u={onStart:"onStart",onStarting:"onStarting",onReceived:"onReceived",onError:"onError",onConnectionSlow:"onConnectionSlow",onReconnecting:"onReconnecting",onReconnect:"onReconnect",onStateChanged:"onStateChanged",onDisconnect:"onDisconnect"},w=function(n,i){if(i!==!1){var r;typeof t.console!="undefined"&&(r="["+(new Date).toTimeString()+"] SignalR: "+n,t.console.debug?t.console.debug(r):t.console.log&&t.console.log(r))}},s=function(t,i,r){return i===t.state?(t.state=r,n(t).triggerHandler(u.onStateChanged,[{oldState:i,newState:r}]),!0):!1},b=function(n){return n.state===r.connectionState.disconnected},a=function(n){return n._.keepAliveData.activated&&n.transport.supportsKeepAlive(n)},k=function(i){var f,e;i._.configuredStopReconnectingTimeout||(e=function(t){var i=r._.format(r.resources.reconnectTimeout,t.disconnectTimeout);t.log(i);n(t).triggerHandler(u.onError,[r._.error(i,"TimeoutException")]);t.stop(!1,!1)},i.reconnecting(function(){var n=this;n.state===r.connectionState.reconnecting&&(f=t.setTimeout(function(){e(n)},n.disconnectTimeout))}),i.stateChanged(function(n){n.oldState===r.connectionState.reconnecting&&t.clearTimeout(f)}),i._.configuredStopReconnectingTimeout=!0)};if(r=function(n,t,i){return new r.fn.init(n,t,i)},r._={defaultContentType:"application/x-www-form-urlencoded; charset=UTF-8",ieVersion:function(){var i,n;return t.navigator.appName==="Microsoft Internet Explorer"&&(n=/MSIE ([0-9]+\.[0-9]+)/.exec(t.navigator.userAgent),n&&(i=t.parseFloat(n[1]))),i}(),error:function(n,t,i){var r=new Error(n);return r.source=t,typeof i!="undefined"&&(r.context=i),r},transportError:function(n,t,r,u){var f=this.error(n,r,u);return f.transport=t?t.name:i,f},format:function(){for(var t=arguments[0],n=0;n<arguments.length-1;n++)t=t.replace("{"+n+"}",arguments[n+1]);return t},firefoxMajorVersion:function(n){var t=n.match(/Firefox\/(\d+)/);return!t||!t.length||t.length<2?0:parseInt(t[1],10)},configurePingInterval:function(i){var f=i._.config,e=function(t){n(i).triggerHandler(u.onError,[t])};f&&!i._.pingIntervalId&&f.pingInterval&&(i._.pingIntervalId=t.setInterval(function(){r.transports._logic.pingServer(i).fail(e)},f.pingInterval))}},r.events=u,r.resources=f,r.ajaxDefaults={processData:!0,timeout:null,async:!0,global:!1,cache:!1},r.changeState=s,r.isDisconnecting=b,r.connectionState={connecting:0,connected:1,reconnecting:2,disconnected:4},r.hub={start:function(){throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'><\/script>.");}},typeof e.on=="function")e.on("load",function(){o=!0});else e.load(function(){o=!0});r.fn=r.prototype={init:function(t,i,r){var f=n(this);this.url=t;this.qs=i;this.lastError=null;this._={keepAliveData:{},connectingMessageBuffer:new p(this,function(n){f.triggerHandler(u.onReceived,[n])}),lastMessageAt:(new Date).getTime(),lastActiveAt:(new Date).getTime(),beatInterval:5e3,beatHandle:null,totalTransportConnectTimeout:0,redirectQs:null};typeof r=="boolean"&&(this.logging=r)},_parseResponse:function(n){var t=this;return n?typeof n=="string"?t.json.parse(n):n:n},_originalJson:t.JSON,json:t.JSON,isCrossDomain:function(i,r){var u;return(i=n.trim(i),r=r||t.location,i.indexOf("http")!==0)?!1:(u=t.document.createElement("a"),u.href=i,u.protocol+h(u.protocol,u.host)!==r.protocol+h(r.protocol,r.host))},ajaxDataType:"text",contentType:"application/json; charset=UTF-8",logging:!1,state:r.connectionState.disconnected,clientProtocol:"2.1",supportedProtocols:["1.5","2.0","2.1"],negotiateRedirectSupportedProtocols:["2.0","2.1"],reconnectDelay:2e3,transportConnectTimeout:0,disconnectTimeout:3e4,reconnectWindow:3e4,keepAliveWarnAt:2/3,start:function(i,h){var c=this,y={pingInterval:3e5,waitForPageLoad:!0,transport:"auto",jsonp:!1},g,p=c._deferral||n.Deferred(),w=t.document.createElement("a"),nt=function(i,u){i.url===u&&i.baseUrl||(i.url=u,w.href=i.url,w.protocol&&w.protocol!==":"?(i.protocol=w.protocol,i.host=w.host):(i.protocol=t.document.location.protocol,i.host=w.host||t.document.location.host),i.baseUrl=i.protocol+"//"+i.host,i.wsProtocol=i.protocol==="https:"?"wss://":"ws://",i.url.indexOf("//")===0&&(i.url=t.location.protocol+i.url,i.log("Protocol relative URL detected, normalizing it to '"+i.url+"'.")),i.isCrossDomain(i.url)&&(i.log("Auto detected cross domain url."),y.transport==="auto"&&(y.transport=["webSockets","serverSentEvents","longPolling"]),typeof i.withCredentials=="undefined"&&(i.withCredentials=!0),n.support.cors||(i.ajaxDataType="jsonp",i.log("Using jsonp because this browser doesn't support CORS.")),i.contentType=r._.defaultContentType))},d,b;if(c.lastError=null,c._deferral=p,!c.json)throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");if(n.type(i)==="function"?h=i:n.type(i)==="object"&&(n.extend(y,i),n.type(y.callback)==="function"&&(h=y.callback)),y.transport=v(y.transport,c),!y.transport)throw new Error("SignalR: Invalid transport(s) specified, aborting start.");return(c._.config=y,!o&&y.waitForPageLoad===!0)?(c._.deferredStartHandler=function(){c.start(i,h)},e.bind("load",c._.deferredStartHandler),p.promise()):c.state===r.connectionState.connecting?p.promise():s(c,r.connectionState.disconnected,r.connectionState.connecting)===!1?(p.resolve(c),p.promise()):(k(c),y.transport==="auto"&&y.jsonp===!0&&(y.transport="longPolling"),c.withCredentials=y.withCredentials,c._originalUrl=c.url,c.ajaxDataType=y.jsonp?"jsonp":"text",nt(c,c.url),n(c).bind(u.onStart,function(){n.type(h)==="function"&&h.call(c);p.resolve(c)}),c._.initHandler=r.transports._logic.initHandler(c),g=function(i,o){var l=r._.error(f.noTransportOnInit);if(o=o||0,o>=i.length){o===0?c.log("No transports supported by the server were selected."):o===1?c.log("No fallback transports were selected."):c.log("Fallback transports exhausted.");n(c).triggerHandler(u.onError,[l]);p.reject(l);c.stop();return}if(c.state!==r.connectionState.disconnected){var y=i[o],h=r.transports[y],v=function(){g(i,o+1)};c.transport=h;try{c._.initHandler.start(h,function(){var f=r._.firefoxMajorVersion(t.navigator.userAgent)>=11,i=!0;c.log("The start request succeeded. Transitioning to the connected state.");a(c)&&r.transports._logic.monitorKeepAlive(c);c._.keepAliveData.activated&&r.transports._logic.startHeartbeat(c);r._.configurePingInterval(c);s(c,r.connectionState.connecting,r.connectionState.connected)||c.log("WARNING! The connection was not in the connecting state.");c._.connectingMessageBuffer.drain();n(c).triggerHandler(u.onStart);e.bind("unload",function(){c.log("Window unloading, stopping the connection.");c.stop(i)});f&&e.bind("beforeunload",function(){t.setTimeout(function(){c.stop(i)},0)})},v)}catch(w){c.log(h.name+" transport threw '"+w.message+"' when attempting to start.");v()}}},d=c.url+"/negotiate",b=function(t,i){var e=r._.error(f.errorOnNegotiate,t,i._.negotiateRequest);n(i).triggerHandler(u.onError,e);p.reject(e);i.stop()},n(c).triggerHandler(u.onStarting),d=r.transports._logic.prepareQueryString(c,d),c.log("Negotiating with '"+d+"'."),c._.negotiateRequest=function(){var t,h=0,w=100,i,e,o=[],s=[],a=function(n,t){var u=r.transports._logic.prepareQueryString(n,n.url+"/negotiate"),i;return n.log("Negotiating with '"+u+"'."),i={url:u,error:function(t,i){i!==l?b(t,n):p.reject(r._.error(f.stoppedWhileNegotiating,null,n._.negotiateRequest))},success:t},n.accessToken&&(i.headers={Authorization:"Bearer "+n.accessToken}),r.transports._logic.ajax(n,i)},v=function(l){try{t=c._parseResponse(l)}catch(d){b(r._.error(f.errorParsingNegotiateResponse,d),c);return}if(t.availableTransports){e=r._.error(f.aspnetCoreSignalrServer);n(c).triggerHandler(u.onError,[e]);p.reject(e);return}if(!t.ProtocolVersion||c.supportedProtocols.indexOf(t.ProtocolVersion)===-1){e=r._.error(r._.format(f.protocolIncompatible,c.clientProtocol,t.ProtocolVersion));n(c).triggerHandler(u.onError,[e]);p.reject(e);return}if(c.negotiateRedirectSupportedProtocols.indexOf(t.ProtocolVersion)!==-1){if(t.Error){e=r._.error(r._.format(f.errorFromServer,t.Error));n(c).triggerHandler(u.onError,[e]);p.reject(e);return}if(t.RedirectUrl){if(h===w){b(r._.error(f.errorRedirectionExceedsLimit),c);return}y.transport==="auto"&&(y.transport=["webSockets","serverSentEvents","longPolling"]);c.log("Received redirect to: "+t.RedirectUrl);c.accessToken=t.AccessToken;var k=t.RedirectUrl.split("?",2);if(nt(c,k[0]),c._.redirectQs=k.length===2?k[1]:null,c.ajaxDataType==="jsonp"&&c.accessToken){b(r._.error(f.jsonpNotSupportedWithAccessToken),c);return}h++;a(c,v);return}}i=c._.keepAliveData;c.appRelativeUrl=t.Url;c.id=t.ConnectionId;c.token=t.ConnectionToken;c.webSocketServerUrl=t.WebSocketServerUrl;c._.pollTimeout=t.ConnectionTimeout*1e3+1e4;c.disconnectTimeout=t.DisconnectTimeout*1e3;c._.totalTransportConnectTimeout=c.transportConnectTimeout+t.TransportConnectTimeout*1e3;t.KeepAliveTimeout?(i.activated=!0,i.timeout=t.KeepAliveTimeout*1e3,i.timeoutWarning=i.timeout*c.keepAliveWarnAt,c._.beatInterval=(i.timeout-i.timeoutWarning)/3):i.activated=!1;c.reconnectWindow=c.disconnectTimeout+(i.timeout||0);n.each(r.transports,function(n){if(n.indexOf("_")===0||n==="webSockets"&&!t.TryWebSockets)return!0;s.push(n)});n.isArray(y.transport)?n.each(y.transport,function(t,i){n.inArray(i,s)>=0&&o.push(i)}):y.transport==="auto"?o=s:n.inArray(y.transport,s)>=0&&o.push(y.transport);g(o)};return a(c,v)}(),p.promise())},starting:function(t){var i=this;return n(i).bind(u.onStarting,function(){t.call(i)}),i},send:function(n){var t=this;if(t.state===r.connectionState.disconnected)throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");if(t.state===r.connectionState.connecting)throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");return t.transport.send(t,n),t},received:function(t){var i=this;return n(i).bind(u.onReceived,function(n,r){t.call(i,r)}),i},stateChanged:function(t){var i=this;return n(i).bind(u.onStateChanged,function(n,r){t.call(i,r)}),i},error:function(t){var i=this;return n(i).bind(u.onError,function(n,r,u){i.lastError=r;t.call(i,r,u)}),i},disconnected:function(t){var i=this;return n(i).bind(u.onDisconnect,function(){t.call(i)}),i},connectionSlow:function(t){var i=this;return n(i).bind(u.onConnectionSlow,function(){t.call(i)}),i},reconnecting:function(t){var i=this;return n(i).bind(u.onReconnecting,function(){t.call(i)}),i},reconnected:function(t){var i=this;return n(i).bind(u.onReconnect,function(){t.call(i)}),i},stop:function(i,h){var c=this,v=c._deferral;if(c._.deferredStartHandler&&e.unbind("load",c._.deferredStartHandler),delete c._.config,delete c._.deferredStartHandler,!o&&(!c._.config||c._.config.waitForPageLoad===!0)){c.log("Stopping connection prior to negotiate.");v&&v.reject(r._.error(f.stoppedWhileLoading));return}if(c.state!==r.connectionState.disconnected)return c.log("Stopping connection."),t.clearTimeout(c._.beatHandle),t.clearInterval(c._.pingIntervalId),c.transport&&(c.transport.stop(c),h!==!1&&c.transport.abort(c,i),a(c)&&r.transports._logic.stopMonitoringKeepAlive(c),c.transport=null),c._.negotiateRequest&&(c._.negotiateRequest.abort(l),delete c._.negotiateRequest),c._.initHandler&&c._.initHandler.stop(),delete c._deferral,delete c.messageId,delete c.groupsToken,delete c.id,delete c._.pingIntervalId,delete c._.lastMessageAt,delete c._.lastActiveAt,c._.connectingMessageBuffer.clear(),n(c).unbind(u.onStart),delete c.accessToken,delete c.protocol,delete c.host,delete c.baseUrl,delete c.wsProtocol,delete c.contentType,c.url=c._originalUrl,c._.redirectQs=null,s(c,c.state,r.connectionState.disconnected),n(c).triggerHandler(u.onDisconnect),c},log:function(n){w(n,this.logging)}};r.fn.init.prototype=r.fn;r.noConflict=function(){return n.connection===r&&(n.connection=c),r};n.connection&&(c=n.connection);n.connection=n.signalR=r})(window.jQuery,window),function(n,t,i){function o(n){n._.keepAliveData.monitoring&&c(n);u.markActive(n)&&(n._.beatHandle=t.setTimeout(function(){o(n)},n._.beatInterval))}function c(t){var i=t._.keepAliveData,u;t.state===r.connectionState.connected&&(u=(new Date).getTime()-t._.lastMessageAt,u>=i.timeout?(t.log("Keep alive timed out.  Notifying transport that connection has been lost."),t.transport.lostConnection(t)):u>=i.timeoutWarning?i.userNotified||(t.log("Keep alive has been missed, connection may be dead/slow."),n(t).triggerHandler(f.onConnectionSlow),i.userNotified=!0):i.userNotified=!1)}function e(n,t){var i=n.url+t;return n.transport&&(i+="?transport="+n.transport.name),u.prepareQueryString(n,i)}function s(n){this.connection=n;this.startRequested=!1;this.startCompleted=!1;this.connectionStopped=!1}var r=n.signalR,f=n.signalR.events,l=n.signalR.changeState,h="__Start Aborted__",u;r.transports={};s.prototype={start:function(n,r,u){var f=this,e=f.connection,o=!1;if(f.startRequested||f.connectionStopped){e.log("WARNING! "+n.name+" transport cannot be started. Initialization ongoing or completed.");return}e.log(n.name+" transport starting.");n.start(e,function(){o||f.initReceived(n,r)},function(t){return o||(o=!0,f.transportFailed(n,t,u)),!f.startCompleted||f.connectionStopped});f.transportTimeoutHandle=t.setTimeout(function(){o||(o=!0,e.log(n.name+" transport timed out when trying to connect."),f.transportFailed(n,i,u))},e._.totalTransportConnectTimeout)},stop:function(){this.connectionStopped=!0;t.clearTimeout(this.transportTimeoutHandle);r.transports._logic.tryAbortStartRequest(this.connection)},initReceived:function(n,i){var u=this,f=u.connection;if(u.startRequested){f.log("WARNING! The client received multiple init messages.");return}u.connectionStopped||(u.startRequested=!0,t.clearTimeout(u.transportTimeoutHandle),f.log(n.name+" transport connected. Initiating start request."),r.transports._logic.ajaxStart(f,function(){u.startCompleted=!0;i()}))},transportFailed:function(i,u,e){var o=this.connection,h=o._deferral,s;this.connectionStopped||(t.clearTimeout(this.transportTimeoutHandle),this.startRequested?this.startCompleted||(s=r._.error(r.resources.errorDuringStartRequest,u),o.log(i.name+" transport failed during the start request. Stopping the connection."),n(o).triggerHandler(f.onError,[s]),h&&h.reject(s),o.stop()):(i.stop(o),o.log(i.name+" transport failed to connect. Attempting to fall back."),e()))}};u=r.transports._logic={ajax:function(t,i){return n.ajax(n.extend(!0,{},n.signalR.ajaxDefaults,{type:"GET",data:{},xhrFields:{withCredentials:t.withCredentials},contentType:t.contentType,dataType:t.ajaxDataType},i))},pingServer:function(t){var e,f,i=n.Deferred();return t.transport?(e=t.url+"/ping",e=u.addQs(e,t.qs),f=u.ajax(t,{url:e,headers:t.accessToken?{Authorization:"Bearer "+t.accessToken}:{},success:function(n){var u;try{u=t._parseResponse(n)}catch(e){i.reject(r._.transportError(r.resources.pingServerFailedParse,t.transport,e,f));t.stop();return}u.Response==="pong"?i.resolve():i.reject(r._.transportError(r._.format(r.resources.pingServerFailedInvalidResponse,n),t.transport,null,f))},error:function(n){n.status===401||n.status===403?(i.reject(r._.transportError(r._.format(r.resources.pingServerFailedStatusCode,n.status),t.transport,n,f)),t.stop()):i.reject(r._.transportError(r.resources.pingServerFailed,t.transport,n,f))}})):i.reject(r._.transportError(r.resources.noConnectionTransport,t.transport)),i.promise()},prepareQueryString:function(n,i){var r;return r=u.addQs(i,"clientProtocol="+n.clientProtocol),r=typeof n._.redirectQs=="string"?u.addQs(r,n._.redirectQs):u.addQs(r,n.qs),n.token&&(r+="&connectionToken="+t.encodeURIComponent(n.token)),n.data&&(r+="&connectionData="+t.encodeURIComponent(n.data)),r},addQs:function(t,i){var r=t.indexOf("?")!==-1?"&":"?",u;if(!i)return t;if(typeof i=="object")return t+r+n.param(i);if(typeof i=="string")return u=i.charAt(0),(u==="?"||u==="&")&&(r=""),t+r+i;throw new Error("Query string property must be either a string or object.");},getUrl:function(n,i,r,f,e){var h=i==="webSockets"?"":n.baseUrl,o=h+n.appRelativeUrl,s="transport="+i;return!e&&n.groupsToken&&(s+="&groupsToken="+t.encodeURIComponent(n.groupsToken)),r?(o+=f?"/poll":"/reconnect",!e&&n.messageId&&(s+="&messageId="+t.encodeURIComponent(n.messageId))):o+="/connect",o+="?"+s,o=u.prepareQueryString(n,o),n.transport&&n.accessToken&&(n.transport.name==="serverSentEvents"||n.transport.name==="webSockets")&&(o+="&access_token="+t.encodeURIComponent(n.accessToken)),e||(o+="&tid="+Math.floor(Math.random()*11)),o},maximizePersistentResponse:function(n){return{MessageId:n.C,Messages:n.M,Initialized:typeof n.S!="undefined"?!0:!1,ShouldReconnect:typeof n.T!="undefined"?!0:!1,LongPollDelay:n.L,GroupsToken:n.G,Error:n.E}},updateGroups:function(n,t){t&&(n.groupsToken=t)},stringifySend:function(n,t){return typeof t=="string"||typeof t=="undefined"||t===null?t:n.json.stringify(t)},ajaxSend:function(t,i){var h=u.stringifySend(t,i),c=e(t,"/send"),o,s=function(t,u){n(u).triggerHandler(f.onError,[r._.transportError(r.resources.sendFailed,u.transport,t,o),i])};return o=u.ajax(t,{url:c,type:t.ajaxDataType==="jsonp"?"GET":"POST",contentType:r._.defaultContentType,headers:t.accessToken?{Authorization:"Bearer "+t.accessToken}:{},data:{data:h},success:function(n){var i;if(n){try{i=t._parseResponse(n)}catch(r){s(r,t);t.stop();return}u.triggerReceived(t,i)}},error:function(n,i){i!=="abort"&&i!=="parsererror"&&s(n,t)}})},ajaxAbort:function(n,i){if(typeof n.transport!="undefined"){i=typeof i=="undefined"?!0:i;var r=e(n,"/abort"),f=n.accessToken?{Authorization:"Bearer "+n.accessToken}:{};t.fetch?t.fetch(r,{method:"POST",keepalive:!0,headers:f}):u.ajax(n,{url:r,async:i,timeout:1e3,type:"POST",headers:f,dataType:"text"});n.log("Fired ajax abort async = "+i+".")}},ajaxStart:function(t,i){var s=function(n){var i=t._deferral;i&&i.reject(n)},o=function(i){t.log("The start request failed. Stopping the connection.");n(t).triggerHandler(f.onError,[i]);s(i);t.stop()};t._.startRequest=u.ajax(t,{url:e(t,"/start"),headers:t.accessToken?{Authorization:"Bearer "+t.accessToken}:{},success:function(n,u,f){var e;try{e=t._parseResponse(n)}catch(s){o(r._.error(r._.format(r.resources.errorParsingStartResponse,n),s,f));return}e.Response==="started"?i():o(r._.error(r._.format(r.resources.invalidStartResponse,n),null,f))},error:function(n,i,u){i!==h?o(r._.error(r.resources.errorDuringStartRequest,u,n)):(t.log("The start request aborted because connection.stop() was called."),s(r._.error(r.resources.stoppedDuringStartRequest,null,n)))}})},tryAbortStartRequest:function(n){n._.startRequest&&(n._.startRequest.abort(h),delete n._.startRequest)},tryInitialize:function(n,t,i){t.Initialized&&i?i():t.Initialized&&n.log("WARNING! The client received an init message after reconnecting.")},triggerReceived:function(t,i){t._.connectingMessageBuffer.tryBuffer(i)||n(t).triggerHandler(f.onReceived,[i])},processMessages:function(t,i,f){var e;if(i&&typeof i.I!="undefined"){u.triggerReceived(t,i);return}if(u.markLastMessage(t),i){if(e=u.maximizePersistentResponse(i),e.Error){t.log("Received an error message from the server: "+i.E);n(t).triggerHandler(r.events.onError,[r._.error(i.E,"ServerError")]);t.stop(!1,!1);return}u.updateGroups(t,e.GroupsToken);e.MessageId&&(t.messageId=e.MessageId);e.Messages&&(n.each(e.Messages,function(n,i){u.triggerReceived(t,i)}),u.tryInitialize(t,e,f))}},monitorKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring?t.log("Tried to monitor keep alive but it's already being monitored."):(i.monitoring=!0,u.markLastMessage(t),t._.keepAliveData.reconnectKeepAliveUpdate=function(){u.markLastMessage(t)},n(t).bind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t.log("Now monitoring keep alive with a warning timeout of "+i.timeoutWarning+", keep alive timeout of "+i.timeout+" and disconnecting timeout of "+t.disconnectTimeout))},stopMonitoringKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring&&(i.monitoring=!1,n(t).unbind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t._.keepAliveData={},t.log("Stopping the monitoring of the keep alive."))},startHeartbeat:function(n){n._.lastActiveAt=(new Date).getTime();o(n)},markLastMessage:function(n){n._.lastMessageAt=(new Date).getTime();n._.lastActiveAt=n._.lastMessageAt},markActive:function(n){return u.verifyLastActive(n)?(n._.lastActiveAt=(new Date).getTime(),!0):!1},isConnectedOrReconnecting:function(n){return n.state===r.connectionState.connected||n.state===r.connectionState.reconnecting},ensureReconnectingState:function(t){return l(t,r.connectionState.connected,r.connectionState.reconnecting)===!0&&n(t).triggerHandler(f.onReconnecting),t.state===r.connectionState.reconnecting},clearReconnectTimeout:function(n){n&&n._.reconnectTimeout&&(t.clearTimeout(n._.reconnectTimeout),delete n._.reconnectTimeout)},verifyLastActive:function(t){if(!t._.keepAliveData.activated||(new Date).getTime()-t._.lastActiveAt<t.reconnectWindow)return!0;var i=r._.format(r.resources.reconnectWindowTimeout,new Date(t._.lastActiveAt),t.reconnectWindow);return t.log(i),n(t).triggerHandler(f.onError,[r._.error(i,"TimeoutException")]),t.stop(!1,!1),!1},reconnect:function(n,i){var f=r.transports[i];if(u.isConnectedOrReconnecting(n)&&!n._.reconnectTimeout){if(!u.verifyLastActive(n))return;n._.reconnectTimeout=t.setTimeout(function(){u.verifyLastActive(n)&&(f.stop(n),u.ensureReconnectingState(n)&&(n.log(i+" reconnecting."),f.start(n)))},n.reconnectDelay)}},handleParseFailure:function(t,i,u,e,o){var s=r._.transportError(r._.format(r.resources.parseFailed,i),t.transport,u,o);e&&e(s)?t.log("Failed to parse server response while attempting to connect."):(n(t).triggerHandler(f.onError,[s]),t.stop())},initHandler:function(n){return new s(n)},foreverFrame:{count:0,connections:{}}}}(window.jQuery,window),function(n,t){var i=n.signalR,u=n.signalR.events,f=n.signalR.changeState,r=i.transports._logic;i.transports.webSockets={name:"webSockets",supportsKeepAlive:function(){return!0},send:function(t,f){var e=r.stringifySend(t,f);try{t.socket.send(e)}catch(o){n(t).triggerHandler(u.onError,[i._.transportError(i.resources.webSocketsInvalidState,t.transport,o,t.socket),f])}},start:function(e,o,s){var h,c=!1,l=this,a=!o,v=n(e);if(!t.WebSocket){s();return}e.socket||(h=e.webSocketServerUrl?e.webSocketServerUrl:e.wsProtocol+e.host,h+=r.getUrl(e,this.name,a),e.log("Connecting to websocket endpoint '"+h+"'."),e.socket=new t.WebSocket(h),e.socket.onopen=function(){c=!0;e.log("Websocket opened.");r.clearReconnectTimeout(e);f(e,i.connectionState.reconnecting,i.connectionState.connected)===!0&&v.triggerHandler(u.onReconnect)},e.socket.onclose=function(t){var r;this===e.socket&&(c&&typeof t.wasClean!="undefined"&&t.wasClean===!1?(r=i._.transportError(i.resources.webSocketClosed,e.transport,t),e.log("Unclean disconnect from websocket: "+(t.reason||"[no reason given]."))):e.log("Websocket closed."),s&&s(r)||(r&&n(e).triggerHandler(u.onError,[r]),l.reconnect(e)))},e.socket.onmessage=function(n){var t;try{t=e._parseResponse(n.data)}catch(i){r.handleParseFailure(e,n.data,i,s,n);return}t&&r.processMessages(e,t,o)})},reconnect:function(n){r.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},stop:function(n){r.clearReconnectTimeout(n);n.socket&&(n.log("Closing the Websocket."),n.socket.close(),n.socket=null)},abort:function(n,t){r.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var i=n.signalR,u=n.signalR.events,e=n.signalR.changeState,r=i.transports._logic,f=function(n){t.clearTimeout(n._.reconnectAttemptTimeoutHandle);delete n._.reconnectAttemptTimeoutHandle};i.transports.serverSentEvents={name:"serverSentEvents",supportsKeepAlive:function(){return!0},timeOut:3e3,start:function(o,s,h){var c=this,l=!1,a=n(o),v=!s,y;if(o.eventSource&&(o.log("The connection already has an event source. Stopping it."),o.stop()),!t.EventSource){h&&(o.log("This browser doesn't support SSE."),h());return}y=r.getUrl(o,this.name,v);try{o.log("Attempting to connect to SSE endpoint '"+y+"'.");o.eventSource=new t.EventSource(y,{withCredentials:o.withCredentials})}catch(p){o.log("EventSource failed trying to connect with error "+p.Message+".");h?h():(a.triggerHandler(u.onError,[i._.transportError(i.resources.eventSourceFailedToConnect,o.transport,p)]),v&&c.reconnect(o));return}v&&(o._.reconnectAttemptTimeoutHandle=t.setTimeout(function(){l===!1&&o.eventSource.readyState!==t.EventSource.OPEN&&c.reconnect(o)},c.timeOut));o.eventSource.addEventListener("open",function(){o.log("EventSource connected.");f(o);r.clearReconnectTimeout(o);l===!1&&(l=!0,e(o,i.connectionState.reconnecting,i.connectionState.connected)===!0&&a.triggerHandler(u.onReconnect))},!1);o.eventSource.addEventListener("message",function(n){var t;if(n.data!=="initialized"){try{t=o._parseResponse(n.data)}catch(i){r.handleParseFailure(o,n.data,i,h,n);return}r.processMessages(o,t,s)}},!1);o.eventSource.addEventListener("error",function(n){var r=i._.transportError(i.resources.eventSourceError,o.transport,n);this===o.eventSource&&(h&&h(r)||(o.log("EventSource readyState: "+o.eventSource.readyState+"."),n.eventPhase===t.EventSource.CLOSED?(o.log("EventSource reconnecting due to the server connection ending."),c.reconnect(o)):(o.log("EventSource error."),a.triggerHandler(u.onError,[r]))))},!1)},reconnect:function(n){r.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){r.ajaxSend(n,t)},stop:function(n){f(n);r.clearReconnectTimeout(n);n&&n.eventSource&&(n.log("EventSource calling close()."),n.eventSource.close(),n.eventSource=null,delete n.eventSource)},abort:function(n,t){r.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var r=n.signalR,e=n.signalR.events,o=n.signalR.changeState,i=r.transports._logic,u=function(){var n=t.document.createElement("iframe");return n.setAttribute("style","position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;"),n},f=function(){var i=null,f=1e3,n=0;return{prevent:function(){r._.ieVersion<=8&&(n===0&&(i=t.setInterval(function(){var n=u();t.document.body.appendChild(n);t.document.body.removeChild(n);n=null},f)),n++)},cancel:function(){n===1&&t.clearInterval(i);n>0&&n--}}}();r.transports.foreverFrame={name:"foreverFrame",supportsKeepAlive:function(){return!0},iframeClearThreshold:50,start:function(n,r,e){if(n.accessToken){e&&(n.log("Forever Frame does not support connections that require a Bearer token to connect, such as the Azure SignalR Service."),e());return}var l=this,s=i.foreverFrame.count+=1,h,o=u(),c=function(){n.log("Forever frame iframe finished loading and is no longer receiving messages.");e&&e()||l.reconnect(n)};if(t.EventSource){e&&(n.log("Forever Frame is not supported by SignalR on browsers with SSE support."),e());return}o.setAttribute("data-signalr-connection-id",n.id);f.prevent();h=i.getUrl(n,this.name);h+="&frameId="+s;t.document.documentElement.appendChild(o);n.log("Binding to iframe's load event.");o.addEventListener?o.addEventListener("load",c,!1):o.attachEvent&&o.attachEvent("onload",c);o.src=h;i.foreverFrame.connections[s]=n;n.frame=o;n.frameId=s;r&&(n.onSuccess=function(){n.log("Iframe transport started.");r()})},reconnect:function(n){var r=this;i.isConnectedOrReconnecting(n)&&i.verifyLastActive(n)&&t.setTimeout(function(){if(i.verifyLastActive(n)&&n.frame&&i.ensureReconnectingState(n)){var u=n.frame,t=i.getUrl(n,r.name,!0)+"&frameId="+n.frameId;n.log("Updating iframe src to '"+t+"'.");u.src=t}},n.reconnectDelay)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){i.ajaxSend(n,t)},receive:function(t,u){var f,e,o;if(t.json!==t._originalJson&&(u=t._originalJson.stringify(u)),o=t._parseResponse(u),i.processMessages(t,o,t.onSuccess),t.state===n.signalR.connectionState.connected&&(t.frameMessageCount=(t.frameMessageCount||0)+1,t.frameMessageCount>r.transports.foreverFrame.iframeClearThreshold&&(t.frameMessageCount=0,f=t.frame.contentWindow||t.frame.contentDocument,f&&f.document&&f.document.body)))for(e=f.document.body;e.firstChild;)e.removeChild(e.firstChild)},stop:function(n){var r=null;if(f.cancel(),n.frame){if(n.frame.stop)n.frame.stop();else try{r=n.frame.contentWindow||n.frame.contentDocument;r.document&&r.document.execCommand&&r.document.execCommand("Stop")}catch(u){n.log("Error occurred when stopping foreverFrame transport. Message = "+u.message+".")}n.frame.parentNode===t.document.documentElement&&t.document.documentElement.removeChild(n.frame);delete i.foreverFrame.connections[n.frameId];n.frame=null;n.frameId=null;delete n.frame;delete n.frameId;delete n.onSuccess;delete n.frameMessageCount;n.log("Stopping forever frame.")}},abort:function(n,t){i.ajaxAbort(n,t)},getConnection:function(n){return i.foreverFrame.connections[n]},started:function(t){o(t,r.connectionState.reconnecting,r.connectionState.connected)===!0&&n(t).triggerHandler(e.onReconnect)}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,e=n.signalR.changeState,f=n.signalR.isDisconnecting,i=r.transports._logic;r.transports.longPolling={name:"longPolling",supportsKeepAlive:function(){return!1},reconnectDelay:3e3,start:function(o,s,h){var a=this,v=function(){v=n.noop;o.log("LongPolling connected.");s?s():o.log("WARNING! The client received an init message after reconnecting.")},y=function(n){return h(n)?(o.log("LongPolling failed to connect."),!0):!1},c=o._,l=0,p=function(i){t.clearTimeout(c.reconnectTimeoutId);c.reconnectTimeoutId=null;e(i,r.connectionState.reconnecting,r.connectionState.connected)===!0&&(i.log("Raising the reconnect event"),n(i).triggerHandler(u.onReconnect))},w=36e5;o.pollXhr&&(o.log("Polling xhr requests already exists, aborting."),o.stop());o.messageId=null;c.reconnectTimeoutId=null;c.pollTimeoutId=t.setTimeout(function(){(function e(s,h){var g=s.messageId,nt=g===null,k=!nt,tt=!h,d=i.getUrl(s,a.name,k,tt,!0),b={};(s.messageId&&(b.messageId=s.messageId),s.groupsToken&&(b.groupsToken=s.groupsToken),f(s)!==!0)&&(o.log("Opening long polling request to '"+d+"'."),s.pollXhr=i.ajax(o,{xhrFields:{onprogress:function(){i.markLastMessage(o)}},url:d,type:"POST",contentType:r._.defaultContentType,data:b,timeout:o._.pollTimeout,headers:o.accessToken?{Authorization:"Bearer "+o.accessToken}:{},success:function(r){var h,w=0,u,a;o.log("Long poll complete.");l=0;try{h=o._parseResponse(r)}catch(b){i.handleParseFailure(s,r,b,y,s.pollXhr);return}(c.reconnectTimeoutId!==null&&p(s),h&&(u=i.maximizePersistentResponse(h)),i.processMessages(s,h,v),u&&n.type(u.LongPollDelay)==="number"&&(w=u.LongPollDelay),f(s)!==!0)&&(a=u&&u.ShouldReconnect,!a||i.ensureReconnectingState(s))&&(w>0?c.pollTimeoutId=t.setTimeout(function(){e(s,a)},w):e(s,a))},error:function(f,h){var v=r._.transportError(r.resources.longPollFailed,o.transport,f,s.pollXhr);if(t.clearTimeout(c.reconnectTimeoutId),c.reconnectTimeoutId=null,h==="abort"){o.log("Aborted xhr request.");return}if(!y(v)){if(l++,o.state!==r.connectionState.reconnecting&&(o.log("An error occurred using longPolling. Status = "+h+".  Response = "+f.responseText+"."),n(s).triggerHandler(u.onError,[v])),(o.state===r.connectionState.connected||o.state===r.connectionState.reconnecting)&&!i.verifyLastActive(o))return;if(!i.ensureReconnectingState(s))return;c.pollTimeoutId=t.setTimeout(function(){e(s,!0)},a.reconnectDelay)}}}),k&&h===!0&&(c.reconnectTimeoutId=t.setTimeout(function(){p(s)},Math.min(1e3*(Math.pow(2,l)-1),w))))})(o)},250)},lostConnection:function(n){n.pollXhr&&n.pollXhr.abort("lostConnection")},send:function(n,t){i.ajaxSend(n,t)},stop:function(n){t.clearTimeout(n._.pollTimeoutId);t.clearTimeout(n._.reconnectTimeoutId);delete n._.pollTimeoutId;delete n._.reconnectTimeoutId;n.pollXhr&&(n.pollXhr.abort(),n.pollXhr=null,delete n.pollXhr)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n){function r(n){return n+c}function o(n,t,i){for(var f=n.length,u=[],r=0;r<f;r+=1)n.hasOwnProperty(r)&&(u[r]=t.call(i,n[r],r,n));return u}function s(t){return n.isFunction(t)?null:n.type(t)==="undefined"?null:t}function u(n){for(var t in n)if(n.hasOwnProperty(t))return!0;return!1}function f(n,t){var i=n._.invocationCallbacks,r,f;u(i)&&n.log("Clearing hub invocation callbacks with error: "+t+".");n._.invocationCallbackId=0;delete n._.invocationCallbacks;n._.invocationCallbacks={};for(f in i)r=i[f],r.method.call(r.scope,{E:t})}function e(t){return n.isFunction(t)&&t.toString().slice(0,256).indexOf("// Call the client hub method")>=0}function i(n,t){return new i.fn.init(n,t)}function t(i,r){var u={qs:null,logging:!1,useDefaultPath:!0};return n.extend(u,r),(!i||u.useDefaultPath)&&(i=(i||"")+"/signalr"),new t.fn.init(i,u)}var h=0,c=".hubProxy",l=n.signalR;i.fn=i.prototype={init:function(n,t){this.state={};this.connection=n;this.hubName=t;this._={callbackMap:{}}},constructor:i,hasSubscriptions:function(){return u(this._.callbackMap)},on:function(t,i,u){var c=this,l=c._.callbackMap,v=!u&&e(i),f,s,o,a;for(u=u||i,u._signalRGuid||(u._signalRGuid=h++),t=t.toLowerCase(),f=l[t],f||(f=[],l[t]=f),o=0;o<f.length;o++)(f[o].guid===u._signalRGuid||v&&f[o].isFromOldGeneratedHubProxy)&&(s=f[o]);return s||(s={guid:u._signalRGuid,eventHandlers:[],isFromOldGeneratedHubProxy:v},l[t].push(s)),a=function(n,t){i.apply(c,t)},s.eventHandlers.push(a),n(c).bind(r(t),a),c},off:function(t,i,u){var s=this,l=s._.callbackMap,f,a=!u&&e(i),h,v,o,c;if(u=u||i,t=t.toLowerCase(),f=l[t],f)if(i){for(o=0;o<f.length;o++)(f[o].guid===u._signalRGuid||a&&f[o].isFromOldGeneratedHubProxy)&&(v=o,h=f[o]);if(h){for(c=0;c<h.eventHandlers.length;c++)n(s).unbind(r(t),h.eventHandlers[c]);f.splice(o,1);f.length===0&&delete l[t]}}else i||(n(s).unbind(r(t)),delete l[t]);return s},invoke:function(t){var i=this,r=i.connection,e=n.makeArray(arguments).slice(1),h=o(e,s),f={H:i.hubName,M:t,A:h,I:r._.invocationCallbackId},u=n.Deferred(),c=function(f){var e=i._maximizeHubResponse(f),s,o;n.extend(i.state,e.State);e.Progress?u.notifyWith?u.notifyWith(i,[e.Progress.Data]):r._.progressjQueryVersionLogged||(r.log("A hub method invocation progress update was received but the version of jQuery in use ("+n.prototype.jquery+") does not support progress updates. Upgrade to jQuery 1.7+ to receive progress notifications."),r._.progressjQueryVersionLogged=!0):e.Error?(e.StackTrace&&r.log(e.Error+"\n"+e.StackTrace+"."),s=e.IsHubException?"HubException":"Exception",o=l._.error(e.Error,s),o.data=e.ErrorData,r.log(i.hubName+"."+t+" failed to execute. Error: "+o.message),u.rejectWith(i,[o])):(r.log("Invoked "+i.hubName+"."+t),u.resolveWith(i,[e.Result]))};return r._.invocationCallbacks[r._.invocationCallbackId.toString()]={scope:i,method:c},r._.invocationCallbackId+=1,n.isEmptyObject(i.state)||(f.S=i.state),r.log("Invoking "+i.hubName+"."+t),r.send(f),u.promise()},_maximizeHubResponse:function(n){return{State:n.S,Result:n.R,Progress:n.P?{Id:n.P.I,Data:n.P.D}:null,Id:n.I,IsHubException:n.H,Error:n.E,StackTrace:n.T,ErrorData:n.D}}};i.fn.init.prototype=i.fn;t.fn=t.prototype=n.connection();t.fn.init=function(t,i){var e={qs:null,logging:!1,useDefaultPath:!0},u=this;n.extend(e,i);n.signalR.fn.init.call(u,t,e.qs,e.logging);u.proxies={};u._.invocationCallbackId=0;u._.invocationCallbacks={};u.received(function(t){var f,o,e,i,s,h;t&&(typeof t.P!="undefined"?(e=t.P.I.toString(),i=u._.invocationCallbacks[e],i&&i.method.call(i.scope,t)):typeof t.I!="undefined"?(e=t.I.toString(),i=u._.invocationCallbacks[e],i&&(u._.invocationCallbacks[e]=null,delete u._.invocationCallbacks[e],i.method.call(i.scope,t))):(f=this._maximizeClientHubInvocation(t),u.log("Triggering client hub event '"+f.Method+"' on hub '"+f.Hub+"'."),s=f.Hub.toLowerCase(),h=f.Method.toLowerCase(),o=this.proxies[s],n.extend(o.state,f.State),n(o).triggerHandler(r(h),[f.Args])))});u.error(function(n,t){var i,r;t&&(i=t.I,r=u._.invocationCallbacks[i],r&&(u._.invocationCallbacks[i]=null,delete u._.invocationCallbacks[i],r.method.call(r.scope,{E:n})))});u.reconnecting(function(){u.transport&&u.transport.name==="webSockets"&&f(u,"Connection started reconnecting before invocation result was received.")});u.disconnected(function(){f(u,"Connection was disconnected before invocation result was received.")})};t.fn._maximizeClientHubInvocation=function(n){return{Hub:n.H,Method:n.M,Args:n.A,State:n.S}};t.fn._registerSubscribedHubs=function(){var t=this;t._subscribedToHubs||(t._subscribedToHubs=!0,t.starting(function(){var i=[];n.each(t.proxies,function(n){this.hasSubscriptions()&&(i.push({name:n}),t.log("Client subscribed to hub '"+n+"'."))});i.length===0&&t.log("No hubs have been subscribed to.  The client will not receive data from hubs.  To fix, declare at least one client side function prior to connection start for each hub you wish to subscribe to.");t.data=t.json.stringify(i)}))};t.fn.createHubProxy=function(n){n=n.toLowerCase();var t=this.proxies[n];return t||(t=i(this,n),this.proxies[n]=t),this._registerSubscribedHubs(),t};t.fn.init.prototype=t.fn;n.hubConnection=t}(window.jQuery,window),function(n){n.signalR.version="2.4.2"}(window.jQuery);var VideoStartFlag="Start video call",VideoStopFlag="Stop video call",VideoApproved="VideoApproved";$(document).ready(function(){SetupWake()});shortMonth=[];shortMonth[0]="Jan";shortMonth[1]="Feb";shortMonth[2]="Mar";shortMonth[3]="Apr";shortMonth[4]="May";shortMonth[5]="Jun";shortMonth[6]="Jul";shortMonth[7]="Aug";shortMonth[8]="Sep";shortMonth[9]="Oct";shortMonth[10]="Nov";shortMonth[11]="Dec";String.format=function(){for(var i,t=arguments[0],n=1;n<arguments.length;n++)i=new RegExp("\\{"+(n-1)+"\\}","gm"),t=t.replace(i,arguments[n]);return t};notificationCount=0;favicon=null;lastWakeTime=(new Date).getTime();!function(){var n=function(n){"use strict";function nt(n){if(n.paused||n.ended||w)return!1;try{i.clearRect(0,0,u,r);i.drawImage(n,0,0,u,r)}catch(t){}ft=setTimeout(function(){nt(n)},f.duration);p.setIcon(l)}function tt(n){var t;return n=n.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(n,t,i,r){return t+t+i+i+r+r}),t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n),t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:!1}function rt(n,t){var i,r={};for(i in n)r[i]=n[i];for(i in t)r[i]=t[i];return r}function ot(){return h.hidden||h.msHidden||h.webkitHidden||h.mozHidden}var t,c,r,u,l,i,e,y,k,d,v,w,o,ut,ft,h,g,a,et,s,b,it,f;n=n?n:{};g={bgColor:"#d00",textColor:"#fff",fontFamily:"sans-serif",fontStyle:"bold",type:"circle",position:"down",animation:"slide",elementId:!1,dataUrl:!1,win:window};o={};o.ff="undefined"!=typeof InstallTrigger;o.chrome=!!window.chrome;o.opera=!!window.opera||navigator.userAgent.indexOf("Opera")>=0;o.ie=/*@cc_on!@*/!1;o.safari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0;o.supported=o.chrome||o.ff||o.opera;a=[];v=function(){};y=w=!1;et=function(){var v,y,a,o;if(t=rt(g,n),t.bgColor=tt(t.bgColor),t.textColor=tt(t.textColor),t.position=t.position.toLowerCase(),t.animation=f.types[""+t.animation]?t.animation:g.animation,h=t.win.document,v=t.position.indexOf("up")>-1,y=t.position.indexOf("left")>-1,v||y)for(a=0;a<f.types[""+t.animation].length;a++)o=f.types[""+t.animation][a],v&&(o.y=o.y<.6?o.y-.4:o.y-2*o.y+(1-o.w)),y&&(o.x=o.x<.6?o.x-.4:o.x-2*o.x+(1-o.h)),f.types[""+t.animation][a]=o;t.type=b[""+t.type]?t.type:g.type;c=p.getIcon();l=document.createElement("canvas");e=document.createElement("img");c.hasAttribute("href")?(e.setAttribute("crossOrigin","anonymous"),e.onload=function(){r=e.height>0?e.height:32;u=e.width>0?e.width:32;l.height=r;l.width=u;i=l.getContext("2d");s.ready()},e.setAttribute("src",c.getAttribute("href"))):(e.onload=function(){r=32;u=32;e.height=r;e.width=u;l.height=r;l.width=u;i=l.getContext("2d");s.ready()},e.setAttribute("src",""))};s={};s.ready=function(){y=!0;s.reset();v()};s.reset=function(){y&&(a=[],k=!1,d=!1,i.clearRect(0,0,u,r),i.drawImage(e,0,0,u,r),p.setIcon(l),window.clearTimeout(ut),window.clearTimeout(ft))};s.start=function(){var i,n;y&&!d&&(i=function(){k=a[0];d=!1;a.length>0&&(a.shift(),s.start())},a.length>0&&(d=!0,n=function(){["type","animation","bgColor","textColor","fontFamily","fontStyle"].forEach(function(n){n in a[0].options&&(t[n]=a[0].options[n])});f.run(a[0].options,function(){i()},!1)},k?f.run(k.options,function(){n()},!0):n()))};b={};it=function(n){return n.n="number"==typeof n.n?Math.abs(0|n.n):n.n,n.x=u*n.x,n.y=r*n.y,n.w=u*n.w,n.h=r*n.h,n.len=(""+n.n).length,n};b.circle=function(n){n=it(n);var f=!1;2===n.len?(n.x=n.x-.4*n.w,n.w=1.4*n.w,f=!0):n.len>=3&&(n.x=n.x-.65*n.w,n.w=1.65*n.w,f=!0);i.clearRect(0,0,u,r);i.drawImage(e,0,0,u,r);i.beginPath();i.font=t.fontStyle+" "+Math.floor(n.h*(n.n>99?.85:1))+"px "+t.fontFamily;i.textAlign="center";f?(i.moveTo(n.x+n.w/2,n.y),i.lineTo(n.x+n.w-n.h/2,n.y),i.quadraticCurveTo(n.x+n.w,n.y,n.x+n.w,n.y+n.h/2),i.lineTo(n.x+n.w,n.y+n.h-n.h/2),i.quadraticCurveTo(n.x+n.w,n.y+n.h,n.x+n.w-n.h/2,n.y+n.h),i.lineTo(n.x+n.h/2,n.y+n.h),i.quadraticCurveTo(n.x,n.y+n.h,n.x,n.y+n.h-n.h/2),i.lineTo(n.x,n.y+n.h/2),i.quadraticCurveTo(n.x,n.y,n.x+n.h/2,n.y)):i.arc(n.x+n.w/2,n.y+n.h/2,n.h/2,0,2*Math.PI);i.fillStyle="rgba("+t.bgColor.r+","+t.bgColor.g+","+t.bgColor.b+","+n.o+")";i.fill();i.closePath();i.beginPath();i.stroke();i.fillStyle="rgba("+t.textColor.r+","+t.textColor.g+","+t.textColor.b+","+n.o+")";"number"==typeof n.n&&n.n>999?i.fillText((n.n>9999?9:Math.floor(n.n/1e3))+"k+",Math.floor(n.x+n.w/2),Math.floor(n.y+n.h-.2*n.h)):i.fillText(n.n,Math.floor(n.x+n.w/2),Math.floor(n.y+n.h-.15*n.h));i.closePath()};b.rectangle=function(n){n=it(n);var f=!1;2===n.len?(n.x=n.x-.4*n.w,n.w=1.4*n.w,f=!0):n.len>=3&&(n.x=n.x-.65*n.w,n.w=1.65*n.w,f=!0);i.clearRect(0,0,u,r);i.drawImage(e,0,0,u,r);i.beginPath();i.font=t.fontStyle+" "+Math.floor(n.h*(n.n>99?.9:1))+"px "+t.fontFamily;i.textAlign="center";i.fillStyle="rgba("+t.bgColor.r+","+t.bgColor.g+","+t.bgColor.b+","+n.o+")";i.fillRect(n.x,n.y,n.w,n.h);i.fillStyle="rgba("+t.textColor.r+","+t.textColor.g+","+t.textColor.b+","+n.o+")";"number"==typeof n.n&&n.n>999?i.fillText((n.n>9999?9:Math.floor(n.n/1e3))+"k+",Math.floor(n.x+n.w/2),Math.floor(n.y+n.h-.2*n.h)):i.fillText(n.n,Math.floor(n.x+n.w/2),Math.floor(n.y+n.h-.15*n.h));i.closePath()};var st=function(n,t){t=("string"==typeof t?{animation:t}:t)||{};v=function(){try{if("number"==typeof n?n>0:""!==n){var i={type:"badge",options:{n:n}};if("animation"in t&&f.types[""+t.animation]&&(i.options.animation=""+t.animation),"type"in t&&b[""+t.type]&&(i.options.type=""+t.type),["bgColor","textColor"].forEach(function(n){n in t&&(i.options[n]=tt(t[n]))}),["fontStyle","fontFamily"].forEach(function(n){n in t&&(i.options[n]=t[n])}),a.push(i),a.length>100)throw new Error("Too many badges requests in queue.");s.start()}else s.reset()}catch(r){throw new Error("Error setting badge. Message: "+r.message);}};y&&v()},ht=function(n){v=function(){try{var f=n.width,e=n.height,t=document.createElement("img"),o=e/r>f/u?f/u:e/r;t.setAttribute("crossOrigin","anonymous");t.onload=function(){i.clearRect(0,0,u,r);i.drawImage(t,0,0,u,r);p.setIcon(l)};t.setAttribute("src",n.getAttribute("src"));t.height=e/o;t.width=f/o}catch(s){throw new Error("Error setting image. Message: "+s.message);}};y&&v()},ct=function(n){v=function(){try{if("stop"===n)return w=!0,s.reset(),void(w=!1);n.addEventListener("play",function(){nt(this)},!1)}catch(t){throw new Error("Error setting video. Message: "+t.message);}};y&&v()},lt=function(n){if(window.URL&&window.URL.createObjectURL||(window.URL=window.URL||{},window.URL.createObjectURL=function(n){return n}),o.supported){var t=!1;navigator.getUserMedia=navigator.getUserMedia||navigator.oGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia;v=function(){try{if("stop"===n)return w=!0,s.reset(),void(w=!1);t=document.createElement("video");t.width=u;t.height=r;navigator.getUserMedia({video:!0,audio:!1},function(n){t.src=URL.createObjectURL(n);t.play();nt(t)},function(){})}catch(i){throw new Error("Error setting webcam. Message: "+i.message);}};y&&v()}},p={};return p.getIcon=function(){var n=!1,i=function(){for(var t=h.getElementsByTagName("head")[0].getElementsByTagName("link"),i=t.length,n=i-1;n>=0;n--)if(/(^|\s)icon(\s|$)/i.test(t[n].getAttribute("rel")))return t[n];return!1};return t.element?n=t.element:t.elementId?(n=h.getElementById(t.elementId),n.setAttribute("href",n.getAttribute("src"))):(n=i(),n===!1&&(n=h.createElement("link"),n.setAttribute("rel","icon"),h.getElementsByTagName("head")[0].appendChild(n))),n.setAttribute("type","image/png"),n},p.setIcon=function(n){var i=n.toDataURL("image/png"),u,r;(t.dataUrl&&t.dataUrl(i),t.element)?(t.element.setAttribute("href",i),t.element.setAttribute("src",i)):t.elementId?(u=h.getElementById(t.elementId),u.setAttribute("href",i),u.setAttribute("src",i)):o.ff||o.opera?(r=c,c=h.createElement("link"),o.opera&&c.setAttribute("rel","icon"),c.setAttribute("rel","icon"),c.setAttribute("type","image/png"),h.getElementsByTagName("head")[0].appendChild(c),c.setAttribute("href",i),r.parentNode&&r.parentNode.removeChild(r)):c.setAttribute("href",i)},f={},f.duration=40,f.types={},f.types.fade=[{x:.4,y:.4,w:.6,h:.6,o:0},{x:.4,y:.4,w:.6,h:.6,o:.1},{x:.4,y:.4,w:.6,h:.6,o:.2},{x:.4,y:.4,w:.6,h:.6,o:.3},{x:.4,y:.4,w:.6,h:.6,o:.4},{x:.4,y:.4,w:.6,h:.6,o:.5},{x:.4,y:.4,w:.6,h:.6,o:.6},{x:.4,y:.4,w:.6,h:.6,o:.7},{x:.4,y:.4,w:.6,h:.6,o:.8},{x:.4,y:.4,w:.6,h:.6,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],f.types.none=[{x:.4,y:.4,w:.6,h:.6,o:1}],f.types.pop=[{x:1,y:1,w:0,h:0,o:1},{x:.9,y:.9,w:.1,h:.1,o:1},{x:.8,y:.8,w:.2,h:.2,o:1},{x:.7,y:.7,w:.3,h:.3,o:1},{x:.6,y:.6,w:.4,h:.4,o:1},{x:.5,y:.5,w:.5,h:.5,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],f.types.popFade=[{x:.75,y:.75,w:0,h:0,o:0},{x:.65,y:.65,w:.1,h:.1,o:.2},{x:.6,y:.6,w:.2,h:.2,o:.4},{x:.55,y:.55,w:.3,h:.3,o:.6},{x:.5,y:.5,w:.4,h:.4,o:.8},{x:.45,y:.45,w:.5,h:.5,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],f.types.slide=[{x:.4,y:1,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.8,w:.6,h:.6,o:1},{x:.4,y:.7,w:.6,h:.6,o:1},{x:.4,y:.6,w:.6,h:.6,o:1},{x:.4,y:.5,w:.6,h:.6,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],f.run=function(n,i,r,u){var e=f.types[ot()?"none":t.animation];return u=r===!0?"undefined"!=typeof u?u:e.length-1:"undefined"!=typeof u?u:0,i=i?i:function(){},u<e.length&&u>=0?(b[t.type](rt(n,e[u])),ut=setTimeout(function(){r?u-=1:u+=1;f.run(n,i,r,u)},f.duration),p.setIcon(l),void 0):void i()},et(),{badge:st,video:ct,image:ht,webcam:lt,reset:s.reset,browser:{supported:o.supported}}};"undefined"!=typeof define&&define.amd?define([],function(){return n}):"undefined"!=typeof module&&module.exports?module.exports=n:this.Favico=n}();!function(){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n};!function(t){function y(n,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=Object.create(n.prototype);for(var u in r)i[u]=r[u];return i.constructor=t,t.prototype=i,t}function iu(n){n=n||{};this.defaultProtocol=n.hasOwnProperty("defaultProtocol")?n.defaultProtocol:c.defaultProtocol;this.events=n.hasOwnProperty("events")?n.events:c.events;this.format=n.hasOwnProperty("format")?n.format:c.format;this.formatHref=n.hasOwnProperty("formatHref")?n.formatHref:c.formatHref;this.nl2br=n.hasOwnProperty("nl2br")?n.nl2br:c.nl2br;this.tagName=n.hasOwnProperty("tagName")?n.tagName:c.tagName;this.target=n.hasOwnProperty("target")?n.target:c.target;this.validate=n.hasOwnProperty("validate")?n.validate:c.validate;this.ignoreTags=[];this.attributes=n.attributes||n.linkAttributes||c.attributes;this.className=n.hasOwnProperty("className")?n.className:n.linkClass||c.className;for(var i=n.hasOwnProperty("ignoreTags")?n.ignoreTags:c.ignoreTags,t=0;t<i.length;t++)this.ignoreTags.push(i[t].toUpperCase())}function ef(n,t){for(var i=0;i<n.length;i++)if(n[i]===t)return!0;return!1}function ru(n){return n}function of(n,t){return"url"===t?"_blank":null}function sr(){return function(n){this.j=[];this.T=n||null}}function et(n,t,i,r){for(var f=0,o=n.length,e=t,s=[],u=void 0;f<o&&(u=e.next(n[f]));)e=u,f++;if(f>=o)return[];for(;f<o-1;)u=new vi(r),s.push(u),e.on(n[f],u),e=u,f++;return u=new vi(i),s.push(u),e.on(n[o-1],u),s}function b(){return function(n){n&&(this.v=n)}}function u(n){var t=n?{v:n}:{};return y(hr,b(),t)}function sf(n){return n instanceof e||n instanceof v}var c={defaultProtocol:"http",events:null,format:ru,formatHref:ru,nl2br:!1,tagName:"a",target:of,validate:!0,ignoreTags:[],attributes:null,className:"linkified"},uu,ai,nr,hu,yu,rr,o,s,wt,nu,ff;iu.prototype={resolve:function(n){var t=n.toHref(this.defaultProtocol);return{formatted:this.get("format",n.toString(),n),formattedHref:this.get("formatHref",t,n),tagName:this.get("tagName",t,n),className:this.get("className",t,n),target:this.get("target",t,n),events:this.getObject("events",t,n),attributes:this.getObject("attributes",t,n)}},check:function(n){return this.get("validate",n.toString(),n)},get:function(t,i,r){var f=void 0,u=this[t];if(!u)return u;switch("undefined"==typeof u?"undefined":n(u)){case"function":return u(i,r.type);case"object":return f=u.hasOwnProperty(r.type)?u[r.type]:c[t],"function"==typeof f?f(i,r.type):f}return u},getObject:function(n,t,i){var r=this[n];return"function"==typeof r?r(t,i.type):r}};uu=Object.freeze({defaults:c,Options:iu,contains:ef});ai=sr();ai.prototype={defaultTransition:!1,on:function(n,t){if(n instanceof Array){for(var i=0;i<n.length;i++)this.j.push([n[i],t]);return this}return this.j.push([n,t]),this},next:function(n){for(var t=0;t<this.j.length;t++){var i=this.j[t],r=i[0],u=i[1];if(this.test(n,r))return u}return this.defaultTransition},accepts:function(){return!!this.T},test:function(n,t){return n===t},emit:function(){return this.T}};var vi=y(ai,sr(),{test:function(n,t){return n===t||t instanceof RegExp&&t.test(n)}}),fu=y(ai,sr(),{jump:function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=this.next(new n(""));return t===this.defaultTransition?(t=new this.constructor(i),this.on(n,t)):i&&(t.T=i),t},test:function(n,t){return n instanceof t}}),hr=b();hr.prototype={toString:function(){return this.v+""}};var e=u(),ot=u("@"),bt=u(":"),k=u("."),cr=u(),p=u(),lr=u("\n"),a=u(),yi=u("+"),pi=u("#"),st=u(),ar=u("mailto:"),wi=u("?"),w=u("/"),bi=u("_"),ki=u(),v=u(),eu=u(),kt=u("{"),dt=u("["),gt=u("<"),ni=u("("),ht=u("}"),ct=u("]"),lt=u(">"),at=u(")"),di=u("&"),hf=Object.freeze({Base:hr,DOMAIN:e,AT:ot,COLON:bt,DOT:k,PUNCTUATION:cr,LOCALHOST:p,NL:lr,NUM:a,PLUS:yi,POUND:pi,QUERY:wi,PROTOCOL:st,MAILTO:ar,SLASH:w,UNDERSCORE:bi,SYM:ki,TLD:v,WS:eu,OPENBRACE:kt,OPENBRACKET:dt,OPENANGLEBRACKET:gt,OPENPAREN:ni,CLOSEBRACE:ht,CLOSEBRACKET:ct,CLOSEANGLEBRACKET:lt,CLOSEPAREN:at,AMPERSAND:di}),ou="aaa|aarp|abarth|abb|abbott|abbvie|abc|able|abogado|abudhabi|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|aetna|af|afamilycompany|afl|africa|ag|agakhan|agency|ai|aig|aigo|airbus|airforce|airtel|akdn|al|alfaromeo|alibaba|alipay|allfinanz|allstate|ally|alsace|alstom|am|americanexpress|americanfamily|amex|amfam|amica|amsterdam|analytics|android|anquan|anz|ao|aol|apartments|app|apple|aq|aquarelle|ar|arab|aramco|archi|army|arpa|art|arte|as|asda|asia|associates|at|athleta|attorney|au|auction|audi|audible|audio|auspost|author|auto|autos|avianca|aw|aws|ax|axa|az|azure|ba|baby|baidu|banamex|bananarepublic|band|bank|bar|barcelona|barclaycard|barclays|barefoot|bargains|baseball|basketball|bauhaus|bayern|bb|bbc|bbt|bbva|bcg|bcn|bd|be|beats|beauty|beer|bentley|berlin|best|bestbuy|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|blanco|blockbuster|blog|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bofa|bom|bond|boo|book|booking|boots|bosch|bostik|boston|bot|boutique|box|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|calvinklein|cam|camera|camp|cancerresearch|canon|capetown|capital|capitalone|car|caravan|cards|care|career|careers|cars|cartier|casa|case|caseih|cash|casino|cat|catering|catholic|cba|cbn|cbre|cbs|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chintai|chloe|christmas|chrome|chrysler|church|ci|cipriani|circle|cisco|citadel|citi|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|comcast|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cookingchannel|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruise|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|data|date|dating|datsun|day|dclk|dds|de|deal|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|dhl|diamonds|diet|digital|direct|directory|discount|discover|dish|diy|dj|dk|dm|dnp|do|docs|doctor|dodge|dog|doha|domains|dot|download|drive|dtv|dubai|duck|dunlop|duns|dupont|durban|dvag|dvr|dz|earth|eat|ec|eco|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epost|epson|equipment|er|ericsson|erni|es|esq|estate|esurance|et|etisalat|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|extraspace|fage|fail|fairwinds|faith|family|fan|fans|farm|farmers|fashion|fast|fedex|feedback|ferrari|ferrero|fi|fiat|fidelity|fido|film|final|finance|financial|fire|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|flir|florist|flowers|fly|fm|fo|foo|food|foodnetwork|football|ford|forex|forsale|forum|foundation|fox|fr|free|fresenius|frl|frogans|frontdoor|frontier|ftr|fujitsu|fujixerox|fun|fund|furniture|futbol|fyi|ga|gal|gallery|gallo|gallup|game|games|gap|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|george|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glade|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|godaddy|gold|goldpoint|golf|goo|goodhands|goodyear|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guardian|gucci|guge|guide|guitars|guru|gw|gy|hair|hamburg|hangout|haus|hbo|hdfc|hdfcbank|health|healthcare|help|helsinki|here|hermes|hgtv|hiphop|hisamitsu|hitachi|hiv|hk|hkt|hm|hn|hockey|holdings|holiday|homedepot|homegoods|homes|homesense|honda|honeywell|horse|hospital|host|hosting|hot|hoteles|hotels|hotmail|house|how|hr|hsbc|ht|htc|hu|hughes|hyatt|hyundai|ibm|icbc|ice|icu|id|ie|ieee|ifm|ikano|il|im|imamat|imdb|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|intel|international|intuit|investments|io|ipiranga|iq|ir|irish|is|iselect|ismaili|ist|istanbul|it|itau|itv|iveco|iwc|jaguar|java|jcb|jcp|je|jeep|jetzt|jewelry|jio|jlc|jll|jm|jmp|jnj|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|juniper|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kindle|kitchen|kiwi|km|kn|koeln|komatsu|kosher|kp|kpmg|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|ladbrokes|lamborghini|lamer|lancaster|lancia|lancome|land|landrover|lanxess|lasalle|lat|latino|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|lefrak|legal|lego|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|lilly|limited|limo|lincoln|linde|link|lipsy|live|living|lixil|lk|loan|loans|locker|locus|loft|lol|london|lotte|lotto|love|lpl|lplfinancial|lr|ls|lt|ltd|ltda|lu|lundbeck|lupin|luxe|luxury|lv|ly|ma|macys|madrid|maif|maison|makeup|man|management|mango|map|market|marketing|markets|marriott|marshalls|maserati|mattel|mba|mc|mckinsey|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|merckmsd|metlife|mg|mh|miami|microsoft|mil|mini|mint|mit|mitsubishi|mk|ml|mlb|mls|mm|mma|mn|mo|mobi|mobile|mobily|moda|moe|moi|mom|monash|money|monster|mopar|mormon|mortgage|moscow|moto|motorcycles|mov|movie|movistar|mp|mq|mr|ms|msd|mt|mtn|mtr|mu|museum|mutual|mv|mw|mx|my|mz|na|nab|nadex|nagoya|name|nationwide|natura|navy|nba|nc|ne|nec|net|netbank|netflix|network|neustar|new|newholland|news|next|nextdirect|nexus|nf|nfl|ng|ngo|nhk|ni|nico|nike|nikon|ninja|nissan|nissay|nl|no|nokia|northwesternmutual|norton|now|nowruz|nowtv|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|observer|off|office|okinawa|olayan|olayangroup|oldnavy|ollo|om|omega|one|ong|onl|online|onyourside|ooo|open|oracle|orange|org|organic|origins|osaka|otsuka|ott|ovh|pa|page|panasonic|panerai|paris|pars|partners|parts|party|passagens|pay|pccw|pe|pet|pf|pfizer|pg|ph|pharmacy|phd|philips|phone|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pioneer|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pnc|pohl|poker|politie|porn|post|pr|pramerica|praxi|press|prime|pro|prod|productions|prof|progressive|promo|properties|property|protection|pru|prudential|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|qvc|racing|radio|raid|re|read|realestate|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|reliance|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|richardli|ricoh|rightathome|ril|rio|rip|rmit|ro|rocher|rocks|rodeo|rogers|room|rs|rsvp|ru|rugby|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsclub|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|save|saxo|sb|sbi|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scjohnson|scor|scot|sd|se|search|seat|secure|security|seek|select|sener|services|ses|seven|sew|sex|sexy|sfr|sg|sh|shangrila|sharp|shaw|shell|shia|shiksha|shoes|shop|shopping|shouji|show|showtime|shriram|si|silk|sina|singles|site|sj|sk|ski|skin|sky|skype|sl|sling|sm|smart|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|srt|st|stada|staples|star|starhub|statebank|statefarm|statoil|stc|stcgroup|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiftcover|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|talk|taobao|target|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|tdk|team|tech|technology|tel|telecity|telefonica|temasek|tennis|teva|tf|tg|th|thd|theater|theatre|tiaa|tickets|tienda|tiffany|tips|tires|tirol|tj|tjmaxx|tjx|tk|tkmaxx|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tr|trade|trading|training|travel|travelchannel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubank|ubs|uconnect|ug|uk|unicom|university|uno|uol|ups|us|uy|uz|va|vacations|vana|vanguard|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|vig|viking|villas|vin|vip|virgin|visa|vision|vista|vistaprint|viva|vivo|vlaanderen|vn|vodka|volkswagen|volvo|vote|voting|voto|voyage|vu|vuelos|wales|walmart|walter|wang|wanggou|warman|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weibo|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|winners|wme|wolterskluwer|woodside|work|works|world|wow|ws|wtc|wtf|xbox|xerox|xfinity|xihuan|xin|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3e0b707e|xn--3hcrj9c|xn--3oq18vl8pn36a|xn--3pxu8k|xn--42c2d9a|xn--45br5cyl|xn--45brj9c|xn--45q11c|xn--4gbrim|xn--54b7fta0cc|xn--55qw42g|xn--55qx5d|xn--5su34j936bgsg|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80adxhks|xn--80ao21a|xn--80aqecdr1a|xn--80asehdb|xn--80aswg|xn--8y0a063a|xn--90a3ac|xn--90ae|xn--90ais|xn--9dbq2a|xn--9et52u|xn--9krt00a|xn--b4w605ferd|xn--bck1b9a5dre4c|xn--c1avg|xn--c2br7g|xn--cck2b3b|xn--cg4bki|xn--clchc0ea0b2g2a9gcd|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--d1alf|xn--e1a4c|xn--eckvdtc9d|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fhbei|xn--fiq228c5hs|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--fjq720a|xn--flw351e|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--fzys8d69uvgm|xn--g2xx48c|xn--gckr3f0f|xn--gecrj9c|xn--gk3at1e|xn--h2breg3eve|xn--h2brj9c|xn--h2brj9c8c|xn--hxt814e|xn--i1b6b1a6a2e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--j1amh|xn--j6w193g|xn--jlq61u9w7b|xn--jvr189m|xn--kcrx77d1x4a|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--kput3i|xn--l1acc|xn--lgbbat1ad8j|xn--mgb9awbf|xn--mgba3a3ejt|xn--mgba3a4f16a|xn--mgba7c0bbn0a|xn--mgbaakc7dvf|xn--mgbaam7a8h|xn--mgbab2bd|xn--mgbai9azgqp6j|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a|xn--mgbbh1a71e|xn--mgbc0a9azcg|xn--mgbca7dzdo|xn--mgberp4a5d4ar|xn--mgbgu82a|xn--mgbi4ecexp|xn--mgbpl2fh|xn--mgbt3dhd|xn--mgbtx2b|xn--mgbx4cd0ab|xn--mix891f|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbe9e0a|xn--ngbrx|xn--node|xn--nqv7f|xn--nqv7fs00ema|xn--nyqy26a|xn--o3cw4h|xn--ogbpf8fl|xn--p1acf|xn--p1ai|xn--pbt977c|xn--pgbs0dh|xn--pssy2u|xn--q9jyb4c|xn--qcka1pmc|xn--qxam|xn--rhqv96g|xn--rovu88b|xn--rvc1e0am3e|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--w4rs40l|xn--wgbh1c|xn--wgbl6a|xn--xhq521b|xn--xkc2al3hye2a|xn--xkc2dl3a5ee0h|xn--y9a3aq|xn--yfro4i67o|xn--ygbi2ammx|xn--zfr164b|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|you|youtube|yt|yun|za|zappos|zara|zero|zip|zippo|zm|zone|zuerich|zw".split("|"),vr="0123456789".split(""),gi="0123456789abcdefghijklmnopqrstuvwxyz".split(""),su=[" ","\f","\r","\t","\x0b"," "," ","᠎"],h=[],r=function(n){return new vi(n)},l=r(),yr=r(a),vt=r(e),ti=r(),pr=r(eu);for(l.on("@",r(ot)).on(".",r(k)).on("+",r(yi)).on("#",r(pi)).on("?",r(wi)).on("/",r(w)).on("_",r(bi)).on(":",r(bt)).on("{",r(kt)).on("[",r(dt)).on("<",r(gt)).on("(",r(ni)).on("}",r(ht)).on("]",r(ct)).on(">",r(lt)).on(")",r(at)).on("&",r(di)).on([",",";","!",'"',"'"],r(cr)),l.on("\n",r(lr)).on(su,pr),pr.on(su,pr),nr=0;nr<ou.length;nr++)hu=et(ou[nr],l,v,e),h.push.apply(h,hu);var cu=et("file",l,e,e),lu=et("ftp",l,e,e),au=et("http",l,e,e),vu=et("mailto",l,e,e);h.push.apply(h,cu);h.push.apply(h,lu);h.push.apply(h,au);h.push.apply(h,vu);var cf=cu.pop(),lf=lu.pop(),af=au.pop(),vf=vu.pop(),tr=r(e),ir=r(st),yf=r(ar);for(lf.on("s",tr).on(":",ir),af.on("s",tr).on(":",ir),h.push(tr),cf.on(":",ir),tr.on(":",ir),vf.on(":",yf),yu=et("localhost",l,p,e),h.push.apply(h,yu),l.on(vr,yr),yr.on("-",ti).on(vr,yr).on(gi,vt),vt.on("-",ti).on(gi,vt),rr=0;rr<h.length;rr++)h[rr].on("-",ti).on(gi,vt);ti.on("-",ti).on(vr,vt).on(gi,vt);l.defaultTransition=r(ki);var pu=function(n){for(var h,c=n.replace(/[A-Z]/g,function(n){return n.toLowerCase()}),f=n.length,e=[],t=0;t<f;){for(var r=l,o=null,u=0,s=null,i=-1;t<f&&(o=r.next(c[t]));)r=o,r.accepts()?(i=0,s=r):i>=0&&i++,u++,t++;i<0||(t-=i,u-=i,h=s.emit(),e.push(new h(n.substr(t-u,u))))}return e},pf=l,wf=Object.freeze({State:vi,TOKENS:hf,run:pu,start:pf}),nt=b();nt.prototype={type:"token",isLink:!1,toString:function(){for(var t=[],n=0;n<this.v.length;n++)t.push(this.v[n].toString());return t.join("")},toHref:function(){return this.toString()},toObject:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"http";return{type:this.type,value:this.toString(),href:this.toHref(n)}}};var wu=y(nt,b(),{type:"email",isLink:!0}),wr=y(nt,b(),{type:"email",isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),br=y(nt,b(),{type:"text"}),bu=y(nt,b(),{type:"nl"}),d=y(nt,b(),{type:"url",isLink:!0,toHref:function(){for(var f=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"http",r=!1,u=!1,i=this.v,t=[],n=0;i[n]instanceof st;)r=!0,t.push(i[n].toString().toLowerCase()),n++;for(;i[n]instanceof w;)u=!0,t.push(i[n].toString()),n++;for(;sf(i[n]);)t.push(i[n].toString().toLowerCase()),n++;for(;n<i.length;n++)t.push(i[n].toString());return t=t.join(""),r||u||(t=f+"://"+t),t},hasProtocol:function(){return this.v[0]instanceof st}}),bf=Object.freeze({Base:nt,MAILTOEMAIL:wu,EMAIL:wr,NL:bu,TEXT:br,URL:d}),i=function(n){return new fu(n)},ur=i(),ku=i(),du=i(),kr=i(),gu=i(),g=i(),fr=i(),ii=i(d),nf=i(),tf=i(d),f=i(d),ri=i(),ui=i(),fi=i(),ei=i(),oi=i(),tt=i(d),it=i(d),rt=i(d),ut=i(d),si=i(),hi=i(),ci=i(),li=i(),yt=i(),dr=i(),er=i(wr),rf=i(),kf=i(wr),ft=i(wu),gr=i(),pt=i(),or=i(),uf=i(),df=i(bu);ur.on(lr,df).on(st,ku).on(ar,du).on(w,kr);ku.on(w,kr);kr.on(w,gu);ur.on(v,g).on(e,g).on(p,ii).on(a,g);gu.on(v,f).on(e,f).on(a,f).on(p,f);g.on(k,fr);yt.on(k,dr);fr.on(v,ii).on(e,g).on(a,g).on(p,g);dr.on(v,er).on(e,yt).on(a,yt).on(p,yt);ii.on(k,fr);er.on(k,dr);ii.on(bt,nf).on(w,f);nf.on(a,tf);tf.on(w,f);er.on(bt,rf);rf.on(a,kf);o=[e,ot,p,a,yi,pi,st,w,v,bi,ki,di];s=[bt,k,wi,cr,ht,ct,lt,at,kt,dt,gt,ni];f.on(kt,ui).on(dt,fi).on(gt,ei).on(ni,oi);ri.on(kt,ui).on(dt,fi).on(gt,ei).on(ni,oi);ui.on(ht,f);fi.on(ct,f);ei.on(lt,f);oi.on(at,f);tt.on(ht,f);it.on(ct,f);rt.on(lt,f);ut.on(at,f);si.on(ht,f);hi.on(ct,f);ci.on(lt,f);li.on(at,f);ui.on(o,tt);fi.on(o,it);ei.on(o,rt);oi.on(o,ut);ui.on(s,si);fi.on(s,hi);ei.on(s,ci);oi.on(s,li);tt.on(o,tt);it.on(o,it);rt.on(o,rt);ut.on(o,ut);tt.on(s,tt);it.on(s,it);rt.on(s,rt);ut.on(s,ut);si.on(o,tt);hi.on(o,it);ci.on(o,rt);li.on(o,ut);si.on(s,si);hi.on(s,hi);ci.on(s,ci);li.on(s,li);f.on(o,f);ri.on(o,f);f.on(s,ri);ri.on(s,ri);du.on(v,ft).on(e,ft).on(a,ft).on(p,ft);ft.on(o,ft).on(s,gr);gr.on(o,ft).on(s,gr);wt=[e,a,yi,pi,wi,bi,ki,di,v];g.on(wt,pt).on(ot,or);ii.on(wt,pt).on(ot,or);fr.on(wt,pt);pt.on(wt,pt).on(ot,or).on(k,uf);uf.on(wt,pt);or.on(v,yt).on(e,yt).on(p,er);nu=function(n){for(var o,a,s=n.length,t=0,f=[],i=[];t<s;){for(var u=ur,h=null,c=null,e=0,l=null,r=-1;t<s&&!(h=u.next(n[t]));)i.push(n[t++]);for(;t<s&&(c=h||u.next(n[t]));)h=null,u=c,u.accepts()?(r=0,l=u):r>=0&&r++,t++,e++;if(r<0)for(o=t-e;o<t;o++)i.push(n[o]);else i.length>0&&(f.push(new br(i)),i=[]),t-=r,e-=r,a=l.emit(),f.push(new a(n.slice(t-e,t)))}return i.length>0&&f.push(new br(i)),f};ff=Object.freeze({State:fu,TOKENS:bf,run:nu,start:ur});Array.isArray||(Array.isArray=function(n){return"[object Array]"===Object.prototype.toString.call(n)});var tu=function(n){return nu(pu(n))},gf=function(n){for(var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,u=tu(n),f=[],i=0;i<u.length;i++)t=u[i],!t.isLink||r&&t.type!==r||f.push(t.toObject());return f},ne=function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=tu(n);return 1===t.length&&t[0].isLink&&(!i||t[0].type===i)};t.find=gf;t.inherits=y;t.options=uu;t.parser=ff;t.scanner=wf;t.test=ne;t.tokenize=tu}(self.linkify=self.linkify||{})}(),function(n,t){var i=function(n){"use strict";function u(n){this.named=n}function t(n){return p.test(n)}function h(n){return w.test(n)}function k(n){return n.replace(b,"\n")}function f(n,t){this.delegate=n;this.entityParser=t;this.state=null;this.input=null;this.index=-1;this.line=-1;this.column=-1;this.tagLine=-1;this.tagColumn=-1;this.reset()}function e(n,t){this.token=null;this.startLine=1;this.startColumn=0;this.options=t||{};this.tokenizer=new f(this,n)}function d(n,t){var i=new e(new u(s),t);return i.tokenize(n)}function it(n){for(var h=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},y=g.tokenize(n),u=[],s=[],e,a,p,w,b,f,v,k,h=new nt(h),t=0;t<y.length;t++){if(e=y[t],e.type===i){if(u.push(e),a=e.tagName.toUpperCase(),p=a==="A"||c.contains(h.ignoreTags,a),!p)continue;w=u.length;ut(a,y,++t,u);t+=u.length-w-1;continue}else if(e.type!==r){u.push(e);continue}b=rt(e.chars,h);u.push.apply(u,b)}for(t=0;t<u.length;t++){f=u[t];switch(f.type){case i:v="<"+f.tagName;f.attributes.length>0&&(k=et(f.attributes),v+=" "+k.join(" "));v+=">";s.push(v);break;case o:s.push("<\/"+f.tagName+">");break;case r:s.push(l(f.chars));break;case tt:s.push("<!--"+l(f.chars)+"-->")}}return s.join("")}function rt(t,u){for(var e,l,a=n.tokenize(t),f=[],c=0;c<a.length;c++){if(e=a[c],e.type==="nl"&&u.nl2br){f.push({type:i,tagName:"br",attributes:[],selfClosing:!0});continue}else if(!e.isLink||!u.check(e)){f.push({type:r,chars:e.toString()});continue}var s=u.resolve(e),b=s.formatted,k=s.formattedHref,v=s.tagName,y=s.className,p=s.target,w=s.attributes,h=[["href",k]];y&&h.push(["class",y]);p&&h.push(["target",p]);for(l in w)h.push([l,w[l]]);f.push({type:i,tagName:v,attributes:h,selfClosing:!1});f.push({type:r,chars:b});f.push({type:o,tagName:v})}return f}function ut(n,t,r,u){for(var e=1,f;r<t.length&&e>0;)f=t[r],f.type===i&&f.tagName.toUpperCase()===n?e++:f.type===o&&f.tagName.toUpperCase()===n&&e--,u.push(f),r++;return u}function l(n){return n}function ft(n){return n.replace(/"/g,"&quot;")}function et(n){for(var i=[],t=0;t<n.length;t++){var r=n[t],u=r[0],f=r[1];i.push(u+'="'+ft(f)+'"')}return i}var s={nbsp:" "},a=/^#[xX]([A-Fa-f0-9]+)$/,v=/^#([0-9]+)$/,y=/^([A-Za-z0-9]+)$/;u.prototype.parse=function(n){if(n){var t=n.match(a);return t?"&#x"+t[1]+";":(t=n.match(v),t)?"&#"+t[1]+";":(t=n.match(y),t?this.named[t[1]]||"&"+t[1]+";":void 0)}};var p=/[\t\n\f ]/,w=/[A-Za-z]/,b=/\r\n?/g;f.prototype={reset:function(){this.state="beforeData";this.input="";this.index=0;this.line=1;this.column=0;this.tagLine=-1;this.tagColumn=-1;this.delegate.reset()},tokenize:function(n){this.reset();this.tokenizePart(n);this.tokenizeEOF()},tokenizePart:function(n){for(this.input+=k(n);this.index<this.input.length;)this.states[this.state].call(this)},tokenizeEOF:function(){this.flushData()},flushData:function(){this.state==="data"&&(this.delegate.finishData(),this.state="beforeData")},peek:function(){return this.input.charAt(this.index)},consume:function(){var n=this.peek();return this.index++,n==="\n"?(this.line++,this.column=0):this.column++,n},consumeCharRef:function(){var r=this.input.indexOf(";",this.index),n,t,i;if(r!==-1&&(n=this.input.slice(this.index,r),t=this.entityParser.parse(n),t)){for(i=n.length;i;)this.consume(),i--;return this.consume(),t}},markTagStart:function(){this.tagLine=this.line;this.tagColumn=this.column;this.delegate.tagOpen&&this.delegate.tagOpen()},states:{beforeData:function(){var n=this.peek();n==="<"?(this.state="tagOpen",this.markTagStart(),this.consume()):(this.state="data",this.delegate.beginData())},data:function(){var n=this.peek();n==="<"?(this.delegate.finishData(),this.state="tagOpen",this.markTagStart(),this.consume()):n==="&"?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||"&")):(this.consume(),this.delegate.appendToData(n))},tagOpen:function(){var n=this.consume();n==="!"?this.state="markupDeclaration":n==="/"?this.state="endTagOpen":h(n)&&(this.state="tagName",this.delegate.beginStartTag(),this.delegate.appendToTagName(n.toLowerCase()))},markupDeclaration:function(){var n=this.consume();n==="-"&&this.input.charAt(this.index)==="-"&&(this.consume(),this.state="commentStart",this.delegate.beginComment())},commentStart:function(){var n=this.consume();n==="-"?this.state="commentStartDash":n===">"?(this.delegate.finishComment(),this.state="beforeData"):(this.delegate.appendToCommentData(n),this.state="comment")},commentStartDash:function(){var n=this.consume();n==="-"?this.state="commentEnd":n===">"?(this.delegate.finishComment(),this.state="beforeData"):(this.delegate.appendToCommentData("-"),this.state="comment")},comment:function(){var n=this.consume();n==="-"?this.state="commentEndDash":this.delegate.appendToCommentData(n)},commentEndDash:function(){var n=this.consume();n==="-"?this.state="commentEnd":(this.delegate.appendToCommentData("-"+n),this.state="comment")},commentEnd:function(){var n=this.consume();n===">"?(this.delegate.finishComment(),this.state="beforeData"):(this.delegate.appendToCommentData("--"+n),this.state="comment")},tagName:function(){var n=this.consume();t(n)?this.state="beforeAttributeName":n==="/"?this.state="selfClosingStartTag":n===">"?(this.delegate.finishTag(),this.state="beforeData"):this.delegate.appendToTagName(n)},beforeAttributeName:function(){var n=this.peek();if(t(n)){this.consume();return}n==="/"?(this.state="selfClosingStartTag",this.consume()):n===">"?(this.consume(),this.delegate.finishTag(),this.state="beforeData"):(this.state="attributeName",this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(n))},attributeName:function(){var n=this.peek();t(n)?(this.state="afterAttributeName",this.consume()):n==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.state="selfClosingStartTag"):n==="="?(this.state="beforeAttributeValue",this.consume()):n===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.state="beforeData"):(this.consume(),this.delegate.appendToAttributeName(n))},afterAttributeName:function(){var n=this.peek();if(t(n)){this.consume();return}n==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.state="selfClosingStartTag"):n==="="?(this.consume(),this.state="beforeAttributeValue"):n===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.state="beforeData"):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.state="attributeName",this.delegate.beginAttribute(),this.delegate.appendToAttributeName(n))},beforeAttributeValue:function(){var n=this.peek();t(n)?this.consume():n==='"'?(this.state="attributeValueDoubleQuoted",this.delegate.beginAttributeValue(!0),this.consume()):n==="'"?(this.state="attributeValueSingleQuoted",this.delegate.beginAttributeValue(!0),this.consume()):n===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.state="beforeData"):(this.state="attributeValueUnquoted",this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(n))},attributeValueDoubleQuoted:function(){var n=this.consume();n==='"'?(this.delegate.finishAttributeValue(),this.state="afterAttributeValueQuoted"):n==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef('"')||"&"):this.delegate.appendToAttributeValue(n)},attributeValueSingleQuoted:function(){var n=this.consume();n==="'"?(this.delegate.finishAttributeValue(),this.state="afterAttributeValueQuoted"):n==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef("'")||"&"):this.delegate.appendToAttributeValue(n)},attributeValueUnquoted:function(){var n=this.peek();t(n)?(this.delegate.finishAttributeValue(),this.consume(),this.state="beforeAttributeName"):n==="&"?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef(">")||"&")):n===">"?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.state="beforeData"):(this.consume(),this.delegate.appendToAttributeValue(n))},afterAttributeValueQuoted:function(){var n=this.peek();t(n)?(this.consume(),this.state="beforeAttributeName"):n==="/"?(this.consume(),this.state="selfClosingStartTag"):n===">"?(this.consume(),this.delegate.finishTag(),this.state="beforeData"):this.state="beforeAttributeName"},selfClosingStartTag:function(){var n=this.peek();n===">"?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.state="beforeData"):this.state="beforeAttributeName"},endTagOpen:function(){var n=this.consume();h(n)&&(this.state="tagName",this.delegate.beginEndTag(),this.delegate.appendToTagName(n.toLowerCase()))}}};e.prototype={tokenize:function(n){return this.tokens=[],this.tokenizer.tokenize(n),this.tokens},tokenizePart:function(n){return this.tokens=[],this.tokenizer.tokenizePart(n),this.tokens},tokenizeEOF:function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},reset:function(){this.token=null;this.startLine=1;this.startColumn=0},addLocInfo:function(){this.options.loc&&(this.token.loc={start:{line:this.startLine,column:this.startColumn},end:{line:this.tokenizer.line,column:this.tokenizer.column}});this.startLine=this.tokenizer.line;this.startColumn=this.tokenizer.column},beginData:function(){this.token={type:"Chars",chars:""};this.tokens.push(this.token)},appendToData:function(n){this.token.chars+=n},finishData:function(){this.addLocInfo()},beginComment:function(){this.token={type:"Comment",chars:""};this.tokens.push(this.token)},appendToCommentData:function(n){this.token.chars+=n},finishComment:function(){this.addLocInfo()},beginStartTag:function(){this.token={type:"StartTag",tagName:"",attributes:[],selfClosing:!1};this.tokens.push(this.token)},beginEndTag:function(){this.token={type:"EndTag",tagName:""};this.tokens.push(this.token)},finishTag:function(){this.addLocInfo()},markTagAsSelfClosing:function(){this.token.selfClosing=!0},appendToTagName:function(n){this.token.tagName+=n},beginAttribute:function(){this._currentAttribute=["","",null];(typeof this.token.attributes=="undefined"||this.token.attributes.length===0)&&(this.token.attributes=[]);this.token.attributes.push(this._currentAttribute)},appendToAttributeName:function(n){this._currentAttribute[0]+=n},beginAttributeValue:function(n){this._currentAttribute[2]=n},appendToAttributeValue:function(n){this._currentAttribute[1]=this._currentAttribute[1]||"";this._currentAttribute[1]+=n},finishAttributeValue:function(){}};var g={HTML5NamedCharRefs:s,EntityParser:u,EventedTokenizer:f,Tokenizer:e,tokenize:d},c=n.options,nt=c.Options,i="StartTag",o="EndTag",r="Chars",tt="Comment";return it}(t);n.linkifyHtml=i}(window,linkify)