diff --git a/httpdocs/js/graph_utils.js b/httpdocs/js/graph_utils.js index 175e74f934..d0b7c38bf8 100644 --- a/httpdocs/js/graph_utils.js +++ b/httpdocs/js/graph_utils.js @@ -1186,16 +1186,16 @@ function updateGraphsTableView(view, graph_params, has_nindex, nindex_query, per nindex_buttons += '
'; } nindex_buttons += '
'; if(view.columns) { diff --git a/httpdocs/js/ntop.min.js b/httpdocs/js/ntop.min.js index e923bf6fff..5387c45ff1 100644 --- a/httpdocs/js/ntop.min.js +++ b/httpdocs/js/ntop.min.js @@ -1,2 +1,2 @@ -function datatableRemoveEmptyRow(table){$("tbody tr.emptyRow",$(table)).remove()}function datatableAddEmptyRow(table,empty_str){var columns=$("thead th",$(table)).filter(function(){return $(this).css("display")!="none"}).length;$("tbody",$(table)).html(''+empty_str+"")}function datatableGetNumDisplayedItems(table){return $("tr:not(.emptyRow)",$(table)).length-1}function datatableIsEmpty(table){return datatableGetNumDisplayedItems(table)==0}function datatableGetByForm(form){return $("table",$("#dt-top-details",$(form)).parent())}function datatableUndoAddRow(new_row,empty_str,bt_to_enable,callback_str){if(bt_to_enable)$(bt_to_enable).removeAttr("disabled");var form=$(new_row).closest("form");$(new_row).remove();aysUpdateForm(form);var dt=datatableGetByForm(form);if(datatableIsEmpty(dt))datatableAddEmptyRow(dt,empty_str);if(callback_str)window[callback_str](new_row)}function datatableForEachRow(table,callbacks){$("tr:not(:first)",table).each(function(row_i){if(typeof callbacks==="function"){callbacks.bind(this)(row_i)}else{var i;for(i=0;i'+label+"")}function datatableAddDeleteButtonCallback(td_idx,callback_str,label){datatableAddButtonCallback.bind(this)(td_idx,label,"badge-danger",callback_str,"javascript:void(0)")}function datatableAddActionButtonCallback(td_idx,callback_str,label){datatableAddButtonCallback.bind(this)(td_idx,label,"badge-info",callback_str,"javascript:void(0)")}function datatableAddLinkButtonCallback(td_idx,link,label){datatableAddButtonCallback.bind(this)(td_idx,label,"badge-info","",link)}function datatableMakeSelectUnique(tr_obj,added_rows_prefix,options){options=paramsExtend({on_change:$.noop,selector_fn:function(obj){return obj.find("select").first()}},options);function datatableForeachSelectOtherThan(this_select,added_rows_prefix,selector_fn,callback){$("[id^="+added_rows_prefix+"]").each(function(){var other=selector_fn($(this));if(other[0]!=this_select[0])callback(other)})}function datatableOptionChangeStatus(option_obj,enable){if(enable){option_obj.removeAttr("disabled")}else{var select_obj=option_obj.closest("select");var should_reset=select_obj.val()==option_obj.val();option_obj.attr("disabled","disabled");if(should_reset){var new_val=select_obj.find("option:not([disabled])").first().val();select_obj.val(new_val);select_obj.attr("data-old-val",new_val)}}}function datatableOnSelectEntryChange(added_rows_prefix,selector_fn,change_callback){var old_value=$(this).attr("data-old-val")||"";var new_value=$(this).val()||"";var others=[];if(old_value==new_value)old_value="";datatableForeachSelectOtherThan($(this),added_rows_prefix,selector_fn,function(other){datatableOptionChangeStatus(other.find("option[value='"+old_value+"']"),true);datatableOptionChangeStatus(other.find("option[value='"+new_value+"']"),false);others.push(other)});change_callback($(this),old_value,new_value,others,datatableOptionChangeStatus);$(this).attr("data-old-val",new_value)}function datatableOnAddSelectEntry(select_obj,added_rows_prefix,selector_fn){select_obj.val("");datatableForeachSelectOtherThan(select_obj,added_rows_prefix,selector_fn,function(other){other.trigger("change")});var new_sel=select_obj.find("option:not([disabled])").first();var new_val=new_sel.val();select_obj.val(new_val);select_obj.trigger("change")}var select=options.selector_fn(tr_obj);select.on("change",function(){datatableOnSelectEntryChange.bind(this)(added_rows_prefix,options.selector_fn,options.on_change)});select.on("remove",function(){$(this).val("").trigger("change")});datatableOnAddSelectEntry(select,added_rows_prefix,options.selector_fn)}function datatableOrderedInsert(table,td_idx,to_insert,to_insert_val,cmp_fn){var cmp_fn=cmp_fn||function(a,b){return b-a};var inserted=false;datatableForEachRow(table,function(){if(inserted)return;var tr=$(this);var cmp_val=parseInt($("td:nth-child("+td_idx+")",tr).html());if(!isNaN(cmp_val)&&cmp_fn(cmp_val,to_insert_val)<0){tr.before(to_insert);inserted=true}});if(!inserted)$(table).append(to_insert)}function datatableIsLastPage(table){var lastpage=$("#dt-bottom-details .pagination li:nth-last-child(3)",$(table));return!(lastpage.length==1&&lastpage.hasClass("active")==false)}function datatableGetColumn(table,id_key,id_value){var res=table.data("datatable").resultset.data.filter(function(item){return item[id_key]===id_value});if(res)return res[0]}function datatableGetColumnIndex(table,column_key){var index=table.data("datatable").options.columns.findIndex(function(item){return item.field===column_key});return index}function datatableInitRefreshRows(table,column_id,refresh_interval,trend_columns){var $dt=table.data("datatable");var rows=$dt.resultset.data;var old_timer=table.data("dt-rr-timer");var old_req=table.data("dt-rr-ajax");trend_columns=trend_columns||{};if(old_timer){clearInterval(old_timer);table.removeData("dt-rr-timer")}if(old_req){old_req.abort();table.removeData("dt-rr-ajax")}var ids=[];var id_to_row={};for(var row in rows){var data=rows[row];if(data[column_id]){var data_id=data[column_id];id_to_row[data_id]=row;ids.push(data_id)}}if(!ids)return false;var params={custom_hosts:ids.join(",")};var url=$dt.options.url;var first_load=true;var _process_result=function(result){for(var row in result.data){var data=result.data[row];var data_id=data[column_id];if(data_id&&id_to_row[data_id]){var row_idx=id_to_row[data_id];var row_html=$dt.rows[row_idx];var row_tds=$("td",row_html);for(var key in data){var col_idx=datatableGetColumnIndex(table,key);var cell=row_tds[col_idx];var $cell=$(cell);var old_val=$cell.data("dt-rr-cur-val")||$(cell).html();var trend_value_formatter=trend_columns[key];var new_val=data[key];var arrows="";if(trend_value_formatter){if(parseFloat(new_val)!=new_val)console.warn("Invalid number: "+new_val);if(!first_load)arrows=" "+drawTrend(parseFloat(new_val),parseFloat(old_val));$cell.data("dt-rr-cur-val",new_val);new_val=trend_value_formatter(new_val)}$(cell).html(new_val!=0?new_val+arrows:"")}}}first_load=false;table.removeData("dt-rr-ajax")};table.data("dt-rr-timer",setInterval(function(){var old_req=table.data("dt-rr-ajax");if(old_req)return;table.data("dt-rr-ajax",$.ajax({type:"GET",url:url,data:params,cache:false,success:_process_result}))},refresh_interval));_process_result($dt.resultset)}function aysHandleForm(form_selector,options){if(!form_selector)form_selector="form";if(form_selector==="form"){form_selector='form:not([data-ays-ignore="true"])'}var default_options={submit_selector:'button[type="submit"]:not([data-ays-ignore="true"])',on_dirty_callback:$.noop,on_clean_callback:$.noop,handle_submit_buttons:true,handle_datatable:false,handle_tabs:false,disable_on_dirty:"",ays_options:{}};var o=$.extend(true,{},default_options,options);o.form_selector=form_selector;$(function(){$(o.form_selector).areYouSure(o.ays_options);if(o.handle_submit_buttons)$(o.form_selector).find(o.submit_selector).attr("disabled","disabled");$(o.form_selector).on("dirty.areYouSure",function(){if(o.handle_submit_buttons)$(this).find(o.submit_selector).removeAttr("disabled");if(o.handle_datatable){$(this).find("a.dropdown-toggle").attr("disabled","disabled");$(this).find("ul.pagination a").css("pointer-events","none").css("cursor","default")}if(o.handle_tabs){$(".nav-tabs").find("a").each(function(){if(!$(this).closest("li").hasClass("active"))$(this).removeAttr("data-toggle").closest("li").addClass("disabled")})}$(o.disable_on_dirty).addClass("disabled");o.on_dirty_callback.bind(this)()});$(o.form_selector).on("clean.areYouSure",function(){if(o.handle_submit_buttons)$(this).find(o.submit_selector).attr("disabled","disabled");if(o.handle_datatable){$(this).find("a.dropdown-toggle").removeAttr("disabled");$(this).find("ul.pagination a").css("pointer-events","").css("cursor","")}if(o.handle_tabs){$(".nav-tabs").find("a").each(function(){$(this).attr("data-toggle","tab").closest("li").removeClass("disabled")})}$(o.disable_on_dirty).removeClass("disabled");o.on_clean_callback.bind(this)()})})}function aysResetForm(form_selector){$(form_selector).trigger("reinitialize.areYouSure")}function aysUpdateForm(form_selector){$(form_selector).trigger("rescan.areYouSure")}function aysRecheckForm(form_selector){$(form_selector).trigger("checkform.areYouSure")}function aysGetDirty(form_selector,fields_selector){fields_selector=fields_selector||":input:not(input[type=submit]):not(input[type=button])";var getValue=function($field){if($field.hasClass("ays-ignore")||$field.hasClass("aysIgnore")||$field.attr("data-ays-ignore")||$field.attr("name")===undefined){return null}if($field.is(":disabled")){return"ays-disabled"}var val;var type=$field.attr("type");if($field.is("select")){type="select"}switch(type){case"checkbox":case"radio":val=$field.is(":checked");break;case"select":val="";$field.find("option").each(function(o){var $option=$(this);if($option.is(":selected")){val+=$option.val()}});break;default:val=$field.val()}return val};var isFieldDirty=function($field){var origValue=$field.data("ays-orig");var curValue=getValue($field);var dirty=undefined!==origValue&&origValue!=curValue;return{dirty:dirty,origValue:origValue,curValue:curValue}};var l=[];$(form_selector).find(fields_selector).each(function(){var dirty_status=isFieldDirty($(this));if(dirty_status.dirty){dirty_status.input=$(this);l.push(dirty_status)}});return l}var NTOPNG_MIN_VISUAL_VALUE=.005;function is_good_ipv4(ipv4){if(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$/.test(ipv4)){return true}else{return false}}function is_good_ipv6(ipv6){if(/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\:){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/.test(ipv6)){return true}else{return false}}function isNumeric(value){return/^\d+$/.test(value)}function is_mac_address(what){return/^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$/.test(what)}function is_network_mask(what,optional_mask){var elems=what.split("/");var mask=null;var ip_addr;if(elems.length!=2){if(!optional_mask)return null;else ip_addr=what}else{ip_addr=elems[0];if(!isNumeric(elems[1]))return null;mask=parseInt(elems[1]);if(mask<0)return null}if(is_good_ipv4(ip_addr)){if(mask===null)mask=32;else if(mask>32)return null;return{type:"ipv4",address:ip_addr,mask:mask}}else if(is_good_ipv6(elems[0])){if(mask===null)mask=128;else if(mask>128)return false;return{type:"ipv6",address:ip_addr,mask:mask}}return null}function fbits(bits){if(typeof bits==="undefined")return"-";var sizes=["bps","Kbit/s","Mbit/s","Gbit/s","Tbit/s"];if(bits==0)return"0";if(bits>0&&bits=sizes.length){return"> "+sizes[sizes.length-1]}if(i<=1){return Math.round(bits/Math.pow(1e3,i)*100)/100+" "+sizes[i]}else{var ret=parseFloat(bits/Math.pow(1e3,i)).toFixed(2);if(ret%1==0)ret=Math.round(ret);return ret+" "+sizes[i]}}function export_rate(eps){if(typeof eps==="undefined")return"-";var sizes=["exp/s","Kexp/s"];if(eps==0)return"0";if(eps>0&&eps0&&exports0&&pps0&&pps0&&fps0&&mps'}else{return''}}function getOSIcon(name){var icon="";if(name.search("Linux")!=-1||name.search("Ubuntu")!=-1)icon=" ";else if(name.search("Android")!=-1)icon=" ";else if(name.search("Windows")!=-1||name.search("Win32")!=-1||name.search("MSIE")!=-1)icon=" ";else if(name.search("iPhone")!=-1||name.search("iPad")!=-1||name.search("OS X")!=-1)icon=" ";return icon}function abbreviateString(str,len){if(!str)return"";if(str.length=0&&bytes=kilobyte&&bytes=megabyte&&bytes=gigabyte&&bytes=terabyte)return(bytes/terabyte).toFixed(precision)+" TB";else return bytes.toFixed(precision)+" Bytes"}String.prototype.capitalizeSingleWord=function(){var uc=this.toUpperCase();if(uc=="ASN"||uc=="OS")return uc;else return this.charAt(0).toUpperCase()+this.slice(1)};String.prototype.capitalize=function(){var res=this.split(" ");for(var i in res){res[i]=res[i].capitalizeSingleWord()}return res.join(" ")};function drawTrend(current,last,withColor){if(current==last){return''}else if(current>last){return'"}else{return''}}function toggleAllTabs(enabled){if(enabled===true)$("#historical-tabs-container").find("li").removeClass("disabled").find("a").attr("data-toggle","tab");else $("#historical-tabs-container").find("li").addClass("disabled").find("a").removeAttr("data-toggle")}function disableAllDropdownsAndTabs(){$("select").each(function(){$(this).prop("disabled",true)});toggleAllTabs(false)}function enableAllDropdownsAndTabs(){$("select").each(function(){$(this).prop("disabled",false)});toggleAllTabs(true)}function capitalize(s){return s&&s[0].toUpperCase()+s.slice(1)}function addCommas(nStr){nStr+="";var x=nStr.split(".");var x1=x[0];var x2=x.length>1?"."+x[1]:"";var rgx=/(\d+)(\d{3})/;while(rgx.test(x1)){x1=x1.replace(rgx,"$1"+","+"$2")}return x1+x2}function scaleValue(val,sizes,scale){if(val==0)return[0,sizes[0]];var i=parseInt(Math.floor(Math.log(val)/Math.log(scale)));if(i<0||isNaN(i)){i=0}else if(i>=sizes.length)i=sizes.length-1;return[Math.round(val/Math.pow(scale,i)*10)/10,sizes[i]]}function formatValue(val){var sizes=["","K","M","G","T"];if(val==0)return"0";if(val>0&&val0&&value0&&bytes0&&bits0){years=Math.floor(days/365);if(years>0){days=days%365;msg=years+" year";if(years>1){msg+="s"}msg_array.push(msg);msg=""}msg=days+" day";if(days>1){msg+="s"}msg_array.push(msg);msg=""}if(hours>0){if(hours<10){msg="0"}msg+=hours+":"}if(minutes<10){msg+="0"}msg+=minutes+":";if(sec<10){msg+="0"}msg+=sec;msg_array.push(msg);return msg_array.join(", ")}Date.prototype.format=function(format){var o={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};if(/(y+)/.test(format))format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));for(var k in o)if(new RegExp("("+k+")").test(format))format=format.replace(RegExp.$1,RegExp.$1.length==1?o[k]:("00"+o[k]).substr((""+o[k]).length));return format};function epoch2Seen(epoch){var d=new Date(epoch*1e3);var tdiff=Math.floor((new Date).getTime()/1e3-epoch);return d.format("dd/MM/yyyy hh:mm:ss")+" ["+secondsToTime(tdiff)+" ago]"}function graphGetXAxisTicksFormat(diff_epoch){var tickFormat;if(diff_epoch<=86400){tickFormat="%H:%M:%S"}else if(diff_epoch<=2*86400){tickFormat="%b %e, %H:%M:%S"}else{tickFormat="%b %e"}return tickFormat}function paramsExtend(defaults,override){return $.extend({},defaults,override)}function paramsToForm(form,params){form=$(form);for(var k in params){if(params.hasOwnProperty(k)){var input=$('');input.appendTo(form)}}return form}function paramsPairsEncode(params){var i=0;var res={};for(var k in params){res["key_"+i]=k;res["val_"+i]=params[k];i=i+1}return res}jQuery.fn.extend({disable:function(state){return this.each(function(){var $this=$(this);if($this.is("input, button, textarea, select"))this.disabled=state;else $this.toggleClass("disabled",state)})}});function hostkey2hostInfo(host_key){var info;var hostinfo=[];host_key=host_key.replace(/____/g,":");host_key=host_key.replace(/___/g,"/");host_key=host_key.replace(/__/g,".");info=host_key.split("@");return info}function handle_tab_state(nav_object,default_tab){$("a",nav_object).click(function(e){e.preventDefault()});$(" > li > a",nav_object).on("shown.bs.tab",function(e){var id=$(e.target).attr("href").substr(1);if(history.replaceState){history.replaceState(null,null,"#"+id)}else{window.location.hash=id}});var hash=window.location.hash;if(!hash)hash="#"+default_tab;$('a[href="'+hash+'"]',nav_object).tab("show")}String.prototype.sformat=function(){var args=arguments;return this.replace(/{(\d+)}/g,function(match,number){return typeof args[number]!="undefined"?args[number]:match})};if(typeof String.prototype.contains==="undefined"){String.prototype.contains=function(s){return this.indexOf(s)!==-1}}function _add_find_host_link(form,name,data){$("").attr({type:"hidden",id:name,name:name,value:data}).appendTo(form)}function makeFindHostBeforeSubmitCallback(http_prefix){return function(form,data){if(data.type=="mac"){form.attr("action",http_prefix+"/lua/mac_details.lua")}else if(data.type=="network"){form.attr("action",http_prefix+"/lua/hosts_stats.lua");_add_find_host_link(form,"network",data.network)}else if(data.type=="snmp"){form.attr("action",http_prefix+"/lua/pro/enterprise/snmp_interface_details.lua");_add_find_host_link(form,"snmp_port_idx",data.snmp_port_idx);_add_find_host_link(form,"page","layer_2")}else if(data.type=="snmp_device"){form.attr("action",http_prefix+"/lua/pro/enterprise/snmp_device_details.lua")}else if(data.type=="asn"){form.attr("action",http_prefix+"/lua/hosts_stats.lua");_add_find_host_link(form,"asn",data.asn)}else{form.attr("action",http_prefix+"/lua/host_details.lua")}return true}}function tstampToDateString(html_tag,format,tdiff){tdiff=tdiff||0;var timestamp=parseInt(html_tag.html())+tdiff;var localized=d3.time.format(format)(new Date(timestamp*1e3));html_tag.html(localized).removeClass("hidden");return localized}function noHtml(s){return s.replace(/<[^>]+>/g,"")}function cleanCustomHostUrl(host){return host.replace(/^http:\/\//gi,"").replace(/^https:\/\//gi,"").replace(/^www\./gi,"").replace(/[^0-9a-zA-Z\.:\/_-]/gi,"")}function parseQuery(queryString){var query={};var pairs=(queryString[0]==="?"?queryString.substr(1):queryString).split("&");for(var i=0;icount){console.error("points mismatch: serie '"+getSerieLabel(schema_name,series[i])+"' has "+data.length+" points, expected "+count);rv=false}else if(data.length.1)return res}function buildTimeArray(start_time,end_time,step){var arr=[];for(var t=start_time;t$.now())$("#btn-jump-time-ahead").addClass("disabled");else $("#btn-jump-time-ahead").removeClass("disabled")}function showQuerySlow(){$("#query-slow-alert").show()}function hideQuerySlow(){$("#query-slow-alert").hide()}function chart_data_sum(series){return series.reduce(function(acc,x){return acc+x.values.reduce(function(acc,pt){return acc+pt[1]||0},0)},0)}function attachStackedChartCallback(chart,schema_name,chart_id,zoom_reset_id,params,step,metric_type,align_step,show_all_smooth,initial_range,ts_table_shown){var pending_chart_request=null;var pending_table_request=null;var d3_sel=d3.select(chart_id);var $chart=$(chart_id);var $zoom_reset=$(zoom_reset_id);var $graph_zoom=$("#graph_zoom");var max_interval=findActualStep(step,params.epoch_begin)*8;var initial_interval=params.epoch_end-params.epoch_begin;var is_max_zoom=initial_interval<=max_interval;var url=http_prefix+"/lua/rest/get/timeseries/ts.lua";var first_load=true;var first_time_loaded=true;var manual_trigger_cmp_serie=false;var datetime_format="dd/MM/yyyy hh:mm:ss";var max_over_total_ratio=3;var query_timer=null;var seconds_before_query_slow=6;var query_completed=0;var query_was_aborted=false;chart.is_zoomed=current_zoom_level>0||has_initial_zoom();var spinner=$('');$chart.parent().css("position","relative");var chart_colors_full=["#69B87F","#94CFA4","#B3DEB6","#E5F1A6","#FFFCC6","#FEDEA5","#FFB97B","#FF8D6D","#E27B85"];var chart_colors_min=["#7CC28F","#FCD384","#FD977B"];var num_ticks_y1=null;var num_ticks_y2=null;var domain_y1=null;var domain_y2=null;var first_run=true;var update_chart_data=function(new_data){d3_sel.datum([]).call(chart);d3_sel.datum(new_data);d3_sel.transition().duration(500).call(chart);if(first_run){num_ticks_y1=chart.yAxis1.ticks();num_ticks_y2=chart.yAxis2.ticks();domain_y1=chart.yDomain1();domain_y2=chart.yDomain2();first_run=false}if(metric_type==="gauge"){var cur_domain_y1=chart.yAxis1.scale().domain();var cur_domain_y2=chart.yAxis2.scale().domain();cur_domain_y1=cur_domain_y1[1]-cur_domain_y1[0];cur_domain_y2=cur_domain_y2[1]-cur_domain_y2[0];if(chart.yAxis1.tickFormat()!=ffloat)chart.yAxis1.ticks(Math.min(cur_domain_y1,num_ticks_y1));if(chart.yAxis2.tickFormat()!=ffloat)chart.yAxis2.ticks(Math.min(cur_domain_y2,num_ticks_y2))}var y1_sum=chart_data_sum(new_data.filter(function(x){return x.yAxis==1}));var y2_sum=chart_data_sum(new_data.filter(function(x){return x.yAxis==2}));if(y1_sum==0)chart.yDomain1([0,1]);else chart.yDomain1(domain_y1);if(y2_sum==0)chart.yDomain2([0,1]);else chart.yDomain2(domain_y2);d3_sel.call(chart);nv.utils.windowResize(chart.update);spinner.remove()};function isLegendDisabled(key,default_val){if(typeof localStorage!=="undefined"){var val=localStorage.getItem("chart_series.disabled."+key);if(val!=null)return val==="true"}return default_val}chart.legend.dispatch.on("legendClick",function(d,i){if(d.legend_key.indexOf("ago")!=-1)manual_trigger_cmp_serie=true;if(typeof localStorage!=="undefined")localStorage.setItem("chart_series.disabled."+d.legend_key,!d.disabled?true:false)});chart.dispatch.on("zoom",function(e){var cur_zoom=[params.epoch_begin,params.epoch_end];var t_start=Math.floor(e.xDomain[0]);var t_end=Math.ceil(e.xDomain[1]);var old_zoomed=chart.is_zoomed;var is_user_zoom=typeof e.is_user_zoom!=="undefined"?e.is_user_zoom:true;chart.is_zoomed=true;if(chart.updateStackedChart(t_start,t_end,false,is_user_zoom)){if(is_user_zoom||e.push_state){current_zoom_level+=1;var url=getHistoryParameters({epoch_begin:t_start,epoch_end:t_end});history.pushState({zoom_level:current_zoom_level,range:[t_start,t_end]},"",url)}chart.fixChartButtons()}else chart.is_zoomed=old_zoomed});function updateZoom(zoom,is_user_zoom,force){var t_start=zoom[0];var t_end=zoom[1];chart.updateStackedChart(t_start,t_end,false,is_user_zoom,null,force);chart.fixChartButtons()}chart.zoom_in=function(){var cur_interval=params.epoch_end-params.epoch_begin;if(cur_interval>60){var delta=cur_interval/4;$("#period_begin").data("datetimepicker").date(new Date((params.epoch_begin+delta)*1e3));$("#period_end").data("datetimepicker").date(new Date((params.epoch_end-delta)*1e3));updateChartFromPickers()}};chart.zoom_out=function(){var cur_interval=params.epoch_end-params.epoch_begin;var delta=cur_interval/2;$("#period_begin").data("datetimepicker").date(new Date((params.epoch_begin-delta)*1e3));$("#period_end").data("datetimepicker").date(new Date((params.epoch_end+delta)*1e3));updateChartFromPickers()};$chart.on("dblclick",function(event){if($(event.target).hasClass("nv-legend-text"))return;chart.zoom_out()});$zoom_reset.on("click",function(){if(current_zoom_level){history.go(-current_zoom_level)}});window.addEventListener("popstate",function(e){var zoom=initial_range;if(e.state){zoom=e.state.range;current_zoom_level=e.state.zoom_level}else current_zoom_level=0;updateZoom(zoom,true,true)});chart.fixChartButtons=function(){if(current_zoom_level>0||has_initial_zoom()){$graph_zoom.find(".btn-warning:not(.custom-zoom-btn)").addClass("initial-zoom-sel").removeClass("btn-warning");$graph_zoom.find(".custom-zoom-btn").css("visibility","visible");var zoom_link=$graph_zoom.find(".custom-zoom-btn input");var link=zoom_link.val().replace(/&epoch_begin=.*/,"");link+="&epoch_begin="+params.epoch_begin+"&epoch_end="+params.epoch_end;zoom_link.val(link)}else{$graph_zoom.find(".initial-zoom-sel").addClass("btn-warning");$graph_zoom.find(".custom-zoom-btn").css("visibility","hidden");chart.is_zoomed=false}fixJumpButtons(params.epoch_begin,params.epoch_end);if(current_zoom_level>0)$zoom_reset.show();else $zoom_reset.hide()};function checkQueryCompleted(){var flows_dt=$("#chart1-flows");var wait_num_queries=ts_table_shown&&$("#chart1-flows").css("display")!=="none"?2:1;query_completed+=1;if(query_completed>=wait_num_queries){if(query_timer){clearInterval(query_timer);query_timer=null}hideQuerySlow()}}chart.queryWasAborted=function(){return query_was_aborted};chart.abortQuery=function(){query_was_aborted=true;if(pending_chart_request){pending_chart_request.abort();chart.noData(i18n.query_was_aborted);update_chart_data([])}if(pending_table_request)pending_table_request.abort();if(query_timer){clearInterval(query_timer);query_timer=null}hideQuerySlow()};chart.tableRequestCompleted=function(){checkQueryCompleted();pending_table_request=null};chart.getDataUrl=function(){var data_params=jQuery.extend({},params);delete data_params.zoom;delete data_params.ts_compare;data_params.extended=1;return url+"?"+$.param(data_params,true)};var old_start,old_end,old_interval;chart.updateStackedChart=function(tstart,tend,no_spinner,is_user_zoom,on_load_callback,force_update){if(tstart)params.epoch_begin=tstart;if(tend)params.epoch_end=tend;var cur_interval=params.epoch_end-params.epoch_begin;var actual_step=findActualStep(step,params.epoch_begin);max_interval=actual_step*6;if(cur_interval=Date.now()){params.epoch_begin=params.epoch_end-max_interval}else{params.epoch_begin=Math.floor(epoch-max_interval/2);params.epoch_end=Math.floor(epoch+max_interval/2)}is_max_zoom=true;chart.zoomType(null)}}else if(cur_interval>max_interval){is_max_zoom=false;chart.zoomType("x")}old_interval=cur_interval;if(!first_load||has_initial_zoom()||force_update)align_step=null;fixTimeRange(chart,params,align_step,actual_step);if(first_load)initial_range=[params.epoch_begin,params.epoch_end];if(old_start==params.epoch_begin&&old_end==params.epoch_end&&!force_update)return false;old_start=params.epoch_begin;old_end=params.epoch_end;if(pending_table_request)pending_table_request.abort();if(pending_chart_request)pending_chart_request.abort();else if(!no_spinner)spinner.appendTo($chart.parent());$("#period_begin").data("datetimepicker").date(new Date(params.epoch_begin*1e3));$("#period_end").data("datetimepicker").date(new Date(Math.min(params.epoch_end*1e3,$.now())));if(query_timer)clearInterval(query_timer);query_timer=setInterval(showQuerySlow,seconds_before_query_slow*1e3);query_completed=0;query_was_aborted=false;chart.noData(i18n.no_data_available);hideQuerySlow();var req_params=$.extend({},params);if(!canCompareBackwards(req_params.epoch_begin,req_params.epoch_end))delete req_params.ts_compare;pending_chart_request=$.get(url,req_params,function(data){if(data&&data.error)chart.noData(data.error);if(!data||!data.series||!data.series.length||!checkSeriesConsinstency(schema_name,data.count,data.series)){update_chart_data([]);return}var tick_step=Math.ceil(chart.tick_step/data.step)*data.step;chart.xAxis.tickValues(buildTimeArray(data.start,data.start+data.count*data.step,tick_step));chart.xAxis.tickFormat(function(d){return d3.time.format(chart.x_fmt)(new Date(d*1e3))});var res=[];var series=data.series;var total_serie;var color_i=0;var chart_colors=series.length<=chart_colors_min.length?chart_colors_min:chart_colors_full;for(var j=0;jmax_over_total_ratio)is_disabled=true;res.push({key:capitaliseFirstLetter(key),yAxis:1,values:values,type:"line",classed:"line-dashed line-animated",color:"#7E91A0",legend_key:key,disabled:is_disabled})}}if(visualization&&visualization.extra_series){for(var i=0;i=3){var num_smoothed_points=Math.min(Math.max(Math.floor(total_serie.length/5),3),12);var smooth_functions={trend:[graph_i18n.trend,"#62ADF6",smooth,num_smoothed_points],ema:["EMA","#F96BFF",exponentialMovingAverageArray,{periods:num_smoothed_points}],sma:["SMA","#A900FF",simpleMovingAverageArray,{periods:num_smoothed_points}],rsi:["RSI cur vs past","#00FF5D",relativeStrengthIndexArray,{periods:num_smoothed_points}]};function add_smoothed_serie(fn_to_use){var options=smooth_functions[fn_to_use];var smoothed;if(fn_to_use=="rsi"){if(!past_serie)return;var delta_serie=[];for(var i=0;i0){var aligned;if(fn_to_use!="ema"&&fn_to_use!="sma"&&fn_to_use!="rsi"){var scale=d3.max(total_serie)/max_val;var scaled=$.map(smoothed,function(x){return x*scale});aligned=upsampleSerie(scaled,data.count)}else{var remaining=data.count-smoothed.length;var to_fill=remaining0||enabled_series.length==0){for(var i=0;i0){chart.legend.updateState(false)}update_chart_data(res);first_time_loaded=false;if(data.source_aggregation)$("#data-aggr-dropdown > button > span:first").html(data.source_aggregation)}).fail(function(xhr,status,error){if(xhr.statusText=="abort"){return}console.error("Error while retrieving the timeseries data ["+status+"]: "+error);chart.noData(error);update_chart_data([])}).always(function(data,status,xhr){checkQueryCompleted();pending_chart_request=null});if(first_load){first_load=false;$(function(){var flows_dt=$("#chart1-flows").data("datatable");if(flows_dt)pending_table_request=flows_dt.pendingRequest})}else{var flows_dt=$("#chart1-flows");if(ts_table_shown){updateGraphsTableView(null,params);if($("#chart1-flows").css("display")!=="none")pending_table_request=flows_dt.data("datatable").pendingRequest}}if(typeof on_load_callback==="function")on_load_callback(chart);return true}}var graph_old_view=null;var graph_old_has_nindex=null;var graph_old_nindex_query=null;function tsQueryToTags(ts_query){return ts_query.split(",").reduce(function(params,value){var pos=value.indexOf(":");if(pos!=-1){var k=value.slice(0,pos);var v=value.slice(pos+1);params[k]=v}return params},{})}function recheckGraphTableEntries(){var table_view=graph_table_views;var tdiff=graph_params.epoch_end-graph_params.epoch_begin;var reset_selection=false;$("#chart1-flows").show();$("#graphs-table-selector").show();for(view_id in table_view){var view=table_view[view_id];var elem=$("#"+view.html_id);if(tdiff<=view.min_step){if(graph_old_view.id===view_id)reset_selection=true;elem.hide()}else elem.show()}var items_ul=$("#graphs-table-active-view").closest(".btn-group").find("ul:first");items_ul.find("li.dropdown-header").each(function(idx,e){var next_item=$(e).nextAll("li").filter(function(idx,e){return $(e).css("display")!=="none"||!$(e).attr("data-view-id")}).first();var divider=$(e).nextAll(".divider").first();if(!next_item.attr("data-view-id")){$(e).hide();divider.hide()}else{$(e).show();divider.show()}});if(reset_selection){var first_view=items_ul.find("li[data-view-id]").filter(function(idx,e){return $(e).css("display")!=="none"}).first();if(first_view.length)setActiveGraphsTableView(first_view.attr("data-view-id"));else{$("#chart1-flows").hide();$("#graphs-table-selector").hide()}return false}return true}function updateGraphsTableView(view,graph_params,has_nindex,nindex_query,per_page){if(view)graph_old_view=view;if(!recheckGraphTableEntries(graph_params)){return}if(view){graph_old_has_nindex=has_nindex;graph_old_nindex_query=nindex_query}else{view=graph_old_view;has_nindex=graph_old_has_nindex;nindex_query=graph_old_nindex_query}var graph_table=$("#chart1-flows");nindex_query=nindex_query+"&begin_time_clause="+graph_params.epoch_begin+"&end_time_clause="+graph_params.epoch_end;var nindex_buttons="";var params_obj=tsQueryToTags(graph_params.ts_query);if(!params_obj.host){nindex_buttons+='
"}nindex_buttons+='
";if(view.columns){var url=http_prefix+(view.nindex_view?"/lua/pro/get_nindex_flows.lua":"/lua/pro/get_ts_table.lua");var columns=view.columns.map(function(col){return{title:col[1],field:col[0],css:{textAlign:col[2],width:col[3]},hidden:col[4]?true:false}});columns.push({title:i18n.actions,field:"drilldown",css:{width:"1%","white-space":"nowrap","text-align":"center"}});var old_dt=graph_table.data("datatable");if(old_dt&&old_dt.pendingRequest)old_dt.pendingRequest.abort();graph_table.removeData("datatable");graph_table.html("");graph_table.datatable({title:"",url:url,perPage:per_page,noResultsMessage:function(){if(ts_chart.queryWasAborted())return i18n.query_was_aborted;else return i18n.no_results_found},post:function(){var params=$.extend({},graph_params);delete params.ts_compare;delete params.initial_point;params.limit=1;params.detail_view=view.id;return params},loadingYOffset:40,columns:columns,buttons:view.nindex_view?[nindex_buttons]:[],tableCallback:function(){var data=this.resultset;ts_chart.tableRequestCompleted();if(!data){return}if(data.currentPage>1)graph_table.data("has_interaction",true);var stats_div=$("#chart1-flows-stats");var has_drilldown=data&&data.data.some(function(row){return row.drilldown});if(!has_drilldown)$("table td:last-child, th:last-child",graph_table).remove();if(data&&data.stats&&data.stats.loading_time){$("#flows-load-time").html(data.stats.loading_time);$("#flows-processed-records").html(data.stats.num_records_processed);stats_div.show()}else stats_div.hide()},rowCallback:function(row,row_data){if(typeof row_data.tags==="object"&&(params_obj.category&&row_data.tags.category===params_obj.category||params_obj.protocol&&row_data.tags.protocol===params_obj.protocol)){row.addClass("info")}return row}})}}function draw_processes_graph(http_prefix,graph_div_id,host){var links;var nodes={};var url=http_prefix+"/lua/get_processes_graph_data.lua?host="+host;d3.json(url,function(error,json){if(error)return console.warn(error);links=json;var _link;links.forEach(function(link){if(link.source_pid==-1){_link=http_prefix+"/lua/host_details.lua?host="+link.source}else{_link=http_prefix+"/lua/process_details.lua?pid="+link.source_pid+"&pid_name="+link.source_name+"&host="+host+"&page=flows"}link.source=nodes[link.source]||(nodes[link.source]={name:link.source_name,num:link.source,link:_link,type:link.source_type,pid:link.source_pid});if(link.target_pid==-1){_link=http_prefix+"/lua/host_details.lua?host="+link.target}else{_link=http_prefix+"/lua/process_details.lua?pid="+link.target_pid+"&pid_name="+link.target_name+"&host="+host+"&page=flows"}link.target=nodes[link.target]||(nodes[link.target]={name:link.target_name,num:link.target,link:_link,type:link.target_type,pid:link.target_pid})});var width=960,height=500,arrow_size=6;var color=d3.scale.category10();color["proc"]="red";color["host"]="lightsteelblue";var force=d3.layout.force().nodes(d3.values(nodes)).links(links).size([width,height]).linkDistance(120).charge(-400).on("tick",tick).start();var svg=d3.select("#"+graph_div_id).append("svg").attr("id","ebpf_graph").attr("width",width).attr("height",height);svg.append("defs").selectAll("marker").data(["proc2proc","proc2host","host2proc","host2host"]).enter().append("marker").attr("id",function(d){return d}).attr("viewBox","0 -5 10 10").attr("refX",15).attr("refY",-1.5).attr("markerWidth",arrow_size).attr("markerHeight",arrow_size).attr("orient","auto").append("path").attr("d","M0,-5L10,0L0,5");var path=svg.append("g").selectAll("path").data(force.links()).enter().append("path").attr("class",function(d){return"link "+d.type}).attr("marker-end",function(d){return"url(#"+d.type+")"});var circle=svg.append("g").selectAll("circle").data(force.nodes()).enter().append("circle").attr("class","ebpf_circle").attr("r",8).style("fill",function(d){return color[d.type]}).call(force.drag).on("dblclick",function(d){window.location.href=d.link});var text=svg.append("g").selectAll("text").data(force.nodes()).enter().append("text").attr("class","ebpf_text").attr("x",12).attr("y",".31em").text(function(d){if(d.pid>=0)return d.name+" [pid: "+d.pid+"]";else{return d.name}});function tick(){path.attr("d",linkArc);circle.attr("transform",transform);text.attr("transform",transform)}function linkArc(d){var dx=d.target.x-d.source.x,dy=d.target.y-d.source.y,dr=Math.sqrt(dx*dx+dy*dy);return"M"+d.source.x+","+d.source.y+"A"+dr+","+dr+" 0 0,1 "+d.target.x+","+d.target.y}function transform(d){return"translate("+d.x+","+d.y+")"}})}function makeUniqueValidator(items_function){return function(field){var cmp_name=field.val();var count=0;if(!cmp_name)return true;items_function(field).each(function(){var name=$(this).val();if(name==cmp_name)count=count+1});return count==1}}function memberValueValidator(input){var member=input.val();if(member==="")return true;return is_mac_address(member)||is_network_mask(member,true)}function makePasswordPatternValidator(pattern){return function passwordPatternValidator(input){if(!input.val())return true;return $(input).val().match(pattern)}}function passwordMatchValidator(input){var other_input=$(input).closest("form").find("[data-passwordmatch]").not(input);if(!input.val()||!other_input.val())return true;return other_input.val()===input.val()}function poolnameValidator(input){if(!input.val())return true;return $(input).val().match(/^[a-z0-9_]*$/)}function passwordMatchRecheck(form){var items=$(form).find("[data-passwordmatch]");var not_empty=0;items.each(function(){if($(this).val()!="")not_empty++});if(not_empty==items.length)items.trigger("input")}function hostOrMacValidator(input){var host=input.val();if(host==="")return true;return is_mac_address(host)||is_good_ipv4(host)||is_good_ipv6(host)}function ipAddressValidator(input){var host=input.val();if(host==="")return true;return is_good_ipv4(host)||is_good_ipv6(host)}$.fn.dataTable.ext.buttons.filterScripts={className:"filter-scripts-button",init:function(dt,node,config){const button_id=config.attr.id;$(node).removeClass("btn").removeClass("btn-secondary");const button_text=$(node).html();let count=0;if(button_id=="all-scripts"){count=dt.data().length}else if(button_id=="enabled-scripts"){dt.data().each(d=>{const parsed=d.is_enabled;if(parsed)count+=1})}else if(button_id=="disabled-scripts"){dt.data().each(d=>{const parsed=d.is_enabled;if(!parsed)count+=1})}$(node).html(`${button_text} (${count})`)},action:function(e,dt,node,config){const button_id=config.attr.id;$("#all-scripts").removeClass("active");$("#enabled-scripts").removeClass("active");$("#disabled-scripts").removeClass("active");if(button_id=="all-scripts"){dt.columns().search("").draw();window.history.replaceState(undefined,undefined,"#all")}else if(button_id=="enabled-scripts"){dt.columns(2).search("true").draw();window.history.replaceState(undefined,undefined,"#enabled")}else if(button_id=="disabled-scripts"){dt.columns(2).search("false").draw();window.history.replaceState(undefined,undefined,"#disabled")}$(`#${button_id}`).addClass("active")}}; +function datatableRemoveEmptyRow(table){$("tbody tr.emptyRow",$(table)).remove()}function datatableAddEmptyRow(table,empty_str){var columns=$("thead th",$(table)).filter(function(){return $(this).css("display")!="none"}).length;$("tbody",$(table)).html(''+empty_str+"")}function datatableGetNumDisplayedItems(table){return $("tr:not(.emptyRow)",$(table)).length-1}function datatableIsEmpty(table){return datatableGetNumDisplayedItems(table)==0}function datatableGetByForm(form){return $("table",$("#dt-top-details",$(form)).parent())}function datatableUndoAddRow(new_row,empty_str,bt_to_enable,callback_str){if(bt_to_enable)$(bt_to_enable).removeAttr("disabled");var form=$(new_row).closest("form");$(new_row).remove();aysUpdateForm(form);var dt=datatableGetByForm(form);if(datatableIsEmpty(dt))datatableAddEmptyRow(dt,empty_str);if(callback_str)window[callback_str](new_row)}function datatableForEachRow(table,callbacks){$("tr:not(:first)",table).each(function(row_i){if(typeof callbacks==="function"){callbacks.bind(this)(row_i)}else{var i;for(i=0;i'+label+"")}function datatableAddDeleteButtonCallback(td_idx,callback_str,label){datatableAddButtonCallback.bind(this)(td_idx,label,"badge-danger",callback_str,"javascript:void(0)")}function datatableAddActionButtonCallback(td_idx,callback_str,label){datatableAddButtonCallback.bind(this)(td_idx,label,"badge-info",callback_str,"javascript:void(0)")}function datatableAddLinkButtonCallback(td_idx,link,label){datatableAddButtonCallback.bind(this)(td_idx,label,"badge-info","",link)}function datatableMakeSelectUnique(tr_obj,added_rows_prefix,options){options=paramsExtend({on_change:$.noop,selector_fn:function(obj){return obj.find("select").first()}},options);function datatableForeachSelectOtherThan(this_select,added_rows_prefix,selector_fn,callback){$("[id^="+added_rows_prefix+"]").each(function(){var other=selector_fn($(this));if(other[0]!=this_select[0])callback(other)})}function datatableOptionChangeStatus(option_obj,enable){if(enable){option_obj.removeAttr("disabled")}else{var select_obj=option_obj.closest("select");var should_reset=select_obj.val()==option_obj.val();option_obj.attr("disabled","disabled");if(should_reset){var new_val=select_obj.find("option:not([disabled])").first().val();select_obj.val(new_val);select_obj.attr("data-old-val",new_val)}}}function datatableOnSelectEntryChange(added_rows_prefix,selector_fn,change_callback){var old_value=$(this).attr("data-old-val")||"";var new_value=$(this).val()||"";var others=[];if(old_value==new_value)old_value="";datatableForeachSelectOtherThan($(this),added_rows_prefix,selector_fn,function(other){datatableOptionChangeStatus(other.find("option[value='"+old_value+"']"),true);datatableOptionChangeStatus(other.find("option[value='"+new_value+"']"),false);others.push(other)});change_callback($(this),old_value,new_value,others,datatableOptionChangeStatus);$(this).attr("data-old-val",new_value)}function datatableOnAddSelectEntry(select_obj,added_rows_prefix,selector_fn){select_obj.val("");datatableForeachSelectOtherThan(select_obj,added_rows_prefix,selector_fn,function(other){other.trigger("change")});var new_sel=select_obj.find("option:not([disabled])").first();var new_val=new_sel.val();select_obj.val(new_val);select_obj.trigger("change")}var select=options.selector_fn(tr_obj);select.on("change",function(){datatableOnSelectEntryChange.bind(this)(added_rows_prefix,options.selector_fn,options.on_change)});select.on("remove",function(){$(this).val("").trigger("change")});datatableOnAddSelectEntry(select,added_rows_prefix,options.selector_fn)}function datatableOrderedInsert(table,td_idx,to_insert,to_insert_val,cmp_fn){var cmp_fn=cmp_fn||function(a,b){return b-a};var inserted=false;datatableForEachRow(table,function(){if(inserted)return;var tr=$(this);var cmp_val=parseInt($("td:nth-child("+td_idx+")",tr).html());if(!isNaN(cmp_val)&&cmp_fn(cmp_val,to_insert_val)<0){tr.before(to_insert);inserted=true}});if(!inserted)$(table).append(to_insert)}function datatableIsLastPage(table){var lastpage=$("#dt-bottom-details .pagination li:nth-last-child(3)",$(table));return!(lastpage.length==1&&lastpage.hasClass("active")==false)}function datatableGetColumn(table,id_key,id_value){var res=table.data("datatable").resultset.data.filter(function(item){return item[id_key]===id_value});if(res)return res[0]}function datatableGetColumnIndex(table,column_key){var index=table.data("datatable").options.columns.findIndex(function(item){return item.field===column_key});return index}function datatableInitRefreshRows(table,column_id,refresh_interval,trend_columns){var $dt=table.data("datatable");var rows=$dt.resultset.data;var old_timer=table.data("dt-rr-timer");var old_req=table.data("dt-rr-ajax");trend_columns=trend_columns||{};if(old_timer){clearInterval(old_timer);table.removeData("dt-rr-timer")}if(old_req){old_req.abort();table.removeData("dt-rr-ajax")}var ids=[];var id_to_row={};for(var row in rows){var data=rows[row];if(data[column_id]){var data_id=data[column_id];id_to_row[data_id]=row;ids.push(data_id)}}if(!ids)return false;var params={custom_hosts:ids.join(",")};var url=$dt.options.url;var first_load=true;var _process_result=function(result){for(var row in result.data){var data=result.data[row];var data_id=data[column_id];if(data_id&&id_to_row[data_id]){var row_idx=id_to_row[data_id];var row_html=$dt.rows[row_idx];var row_tds=$("td",row_html);for(var key in data){var col_idx=datatableGetColumnIndex(table,key);var cell=row_tds[col_idx];var $cell=$(cell);var old_val=$cell.data("dt-rr-cur-val")||$(cell).html();var trend_value_formatter=trend_columns[key];var new_val=data[key];var arrows="";if(trend_value_formatter){if(parseFloat(new_val)!=new_val)console.warn("Invalid number: "+new_val);if(!first_load)arrows=" "+drawTrend(parseFloat(new_val),parseFloat(old_val));$cell.data("dt-rr-cur-val",new_val);new_val=trend_value_formatter(new_val)}$(cell).html(new_val!=0?new_val+arrows:"")}}}first_load=false;table.removeData("dt-rr-ajax")};table.data("dt-rr-timer",setInterval(function(){var old_req=table.data("dt-rr-ajax");if(old_req)return;table.data("dt-rr-ajax",$.ajax({type:"GET",url:url,data:params,cache:false,success:_process_result}))},refresh_interval));_process_result($dt.resultset)}function aysHandleForm(form_selector,options){if(!form_selector)form_selector="form";if(form_selector==="form"){form_selector='form:not([data-ays-ignore="true"])'}var default_options={submit_selector:'button[type="submit"]:not([data-ays-ignore="true"])',on_dirty_callback:$.noop,on_clean_callback:$.noop,handle_submit_buttons:true,handle_datatable:false,handle_tabs:false,disable_on_dirty:"",ays_options:{}};var o=$.extend(true,{},default_options,options);o.form_selector=form_selector;$(function(){$(o.form_selector).areYouSure(o.ays_options);if(o.handle_submit_buttons)$(o.form_selector).find(o.submit_selector).attr("disabled","disabled");$(o.form_selector).on("dirty.areYouSure",function(){if(o.handle_submit_buttons)$(this).find(o.submit_selector).removeAttr("disabled");if(o.handle_datatable){$(this).find("a.dropdown-toggle").attr("disabled","disabled");$(this).find("ul.pagination a").css("pointer-events","none").css("cursor","default")}if(o.handle_tabs){$(".nav-tabs").find("a").each(function(){if(!$(this).closest("li").hasClass("active"))$(this).removeAttr("data-toggle").closest("li").addClass("disabled")})}$(o.disable_on_dirty).addClass("disabled");o.on_dirty_callback.bind(this)()});$(o.form_selector).on("clean.areYouSure",function(){if(o.handle_submit_buttons)$(this).find(o.submit_selector).attr("disabled","disabled");if(o.handle_datatable){$(this).find("a.dropdown-toggle").removeAttr("disabled");$(this).find("ul.pagination a").css("pointer-events","").css("cursor","")}if(o.handle_tabs){$(".nav-tabs").find("a").each(function(){$(this).attr("data-toggle","tab").closest("li").removeClass("disabled")})}$(o.disable_on_dirty).removeClass("disabled");o.on_clean_callback.bind(this)()})})}function aysResetForm(form_selector){$(form_selector).trigger("reinitialize.areYouSure")}function aysUpdateForm(form_selector){$(form_selector).trigger("rescan.areYouSure")}function aysRecheckForm(form_selector){$(form_selector).trigger("checkform.areYouSure")}function aysGetDirty(form_selector,fields_selector){fields_selector=fields_selector||":input:not(input[type=submit]):not(input[type=button])";var getValue=function($field){if($field.hasClass("ays-ignore")||$field.hasClass("aysIgnore")||$field.attr("data-ays-ignore")||$field.attr("name")===undefined){return null}if($field.is(":disabled")){return"ays-disabled"}var val;var type=$field.attr("type");if($field.is("select")){type="select"}switch(type){case"checkbox":case"radio":val=$field.is(":checked");break;case"select":val="";$field.find("option").each(function(o){var $option=$(this);if($option.is(":selected")){val+=$option.val()}});break;default:val=$field.val()}return val};var isFieldDirty=function($field){var origValue=$field.data("ays-orig");var curValue=getValue($field);var dirty=undefined!==origValue&&origValue!=curValue;return{dirty:dirty,origValue:origValue,curValue:curValue}};var l=[];$(form_selector).find(fields_selector).each(function(){var dirty_status=isFieldDirty($(this));if(dirty_status.dirty){dirty_status.input=$(this);l.push(dirty_status)}});return l}var NTOPNG_MIN_VISUAL_VALUE=.005;function is_good_ipv4(ipv4){if(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$/.test(ipv4)){return true}else{return false}}function is_good_ipv6(ipv6){if(/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\:){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/.test(ipv6)){return true}else{return false}}function isNumeric(value){return/^\d+$/.test(value)}function is_mac_address(what){return/^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$/.test(what)}function is_network_mask(what,optional_mask){var elems=what.split("/");var mask=null;var ip_addr;if(elems.length!=2){if(!optional_mask)return null;else ip_addr=what}else{ip_addr=elems[0];if(!isNumeric(elems[1]))return null;mask=parseInt(elems[1]);if(mask<0)return null}if(is_good_ipv4(ip_addr)){if(mask===null)mask=32;else if(mask>32)return null;return{type:"ipv4",address:ip_addr,mask:mask}}else if(is_good_ipv6(elems[0])){if(mask===null)mask=128;else if(mask>128)return false;return{type:"ipv6",address:ip_addr,mask:mask}}return null}function fbits(bits){if(typeof bits==="undefined")return"-";var sizes=["bps","Kbit/s","Mbit/s","Gbit/s","Tbit/s"];if(bits==0)return"0";if(bits>0&&bits=sizes.length){return"> "+sizes[sizes.length-1]}if(i<=1){return Math.round(bits/Math.pow(1e3,i)*100)/100+" "+sizes[i]}else{var ret=parseFloat(bits/Math.pow(1e3,i)).toFixed(2);if(ret%1==0)ret=Math.round(ret);return ret+" "+sizes[i]}}function export_rate(eps){if(typeof eps==="undefined")return"-";var sizes=["exp/s","Kexp/s"];if(eps==0)return"0";if(eps>0&&eps0&&exports0&&pps0&&pps0&&fps0&&mps'}else{return''}}function getOSIcon(name){var icon="";if(name.search("Linux")!=-1||name.search("Ubuntu")!=-1)icon=" ";else if(name.search("Android")!=-1)icon=" ";else if(name.search("Windows")!=-1||name.search("Win32")!=-1||name.search("MSIE")!=-1)icon=" ";else if(name.search("iPhone")!=-1||name.search("iPad")!=-1||name.search("OS X")!=-1)icon=" ";return icon}function abbreviateString(str,len){if(!str)return"";if(str.length=0&&bytes=kilobyte&&bytes=megabyte&&bytes=gigabyte&&bytes=terabyte)return(bytes/terabyte).toFixed(precision)+" TB";else return bytes.toFixed(precision)+" Bytes"}String.prototype.capitalizeSingleWord=function(){var uc=this.toUpperCase();if(uc=="ASN"||uc=="OS")return uc;else return this.charAt(0).toUpperCase()+this.slice(1)};String.prototype.capitalize=function(){var res=this.split(" ");for(var i in res){res[i]=res[i].capitalizeSingleWord()}return res.join(" ")};function drawTrend(current,last,withColor){if(current==last){return''}else if(current>last){return'"}else{return''}}function toggleAllTabs(enabled){if(enabled===true)$("#historical-tabs-container").find("li").removeClass("disabled").find("a").attr("data-toggle","tab");else $("#historical-tabs-container").find("li").addClass("disabled").find("a").removeAttr("data-toggle")}function disableAllDropdownsAndTabs(){$("select").each(function(){$(this).prop("disabled",true)});toggleAllTabs(false)}function enableAllDropdownsAndTabs(){$("select").each(function(){$(this).prop("disabled",false)});toggleAllTabs(true)}function capitalize(s){return s&&s[0].toUpperCase()+s.slice(1)}function addCommas(nStr){nStr+="";var x=nStr.split(".");var x1=x[0];var x2=x.length>1?"."+x[1]:"";var rgx=/(\d+)(\d{3})/;while(rgx.test(x1)){x1=x1.replace(rgx,"$1"+","+"$2")}return x1+x2}function scaleValue(val,sizes,scale){if(val==0)return[0,sizes[0]];var i=parseInt(Math.floor(Math.log(val)/Math.log(scale)));if(i<0||isNaN(i)){i=0}else if(i>=sizes.length)i=sizes.length-1;return[Math.round(val/Math.pow(scale,i)*10)/10,sizes[i]]}function formatValue(val){var sizes=["","K","M","G","T"];if(val==0)return"0";if(val>0&&val0&&value0&&bytes0&&bits0){years=Math.floor(days/365);if(years>0){days=days%365;msg=years+" year";if(years>1){msg+="s"}msg_array.push(msg);msg=""}msg=days+" day";if(days>1){msg+="s"}msg_array.push(msg);msg=""}if(hours>0){if(hours<10){msg="0"}msg+=hours+":"}if(minutes<10){msg+="0"}msg+=minutes+":";if(sec<10){msg+="0"}msg+=sec;msg_array.push(msg);return msg_array.join(", ")}Date.prototype.format=function(format){var o={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};if(/(y+)/.test(format))format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));for(var k in o)if(new RegExp("("+k+")").test(format))format=format.replace(RegExp.$1,RegExp.$1.length==1?o[k]:("00"+o[k]).substr((""+o[k]).length));return format};function epoch2Seen(epoch){var d=new Date(epoch*1e3);var tdiff=Math.floor((new Date).getTime()/1e3-epoch);return d.format("dd/MM/yyyy hh:mm:ss")+" ["+secondsToTime(tdiff)+" ago]"}function graphGetXAxisTicksFormat(diff_epoch){var tickFormat;if(diff_epoch<=86400){tickFormat="%H:%M:%S"}else if(diff_epoch<=2*86400){tickFormat="%b %e, %H:%M:%S"}else{tickFormat="%b %e"}return tickFormat}function paramsExtend(defaults,override){return $.extend({},defaults,override)}function paramsToForm(form,params){form=$(form);for(var k in params){if(params.hasOwnProperty(k)){var input=$('');input.appendTo(form)}}return form}function paramsPairsEncode(params){var i=0;var res={};for(var k in params){res["key_"+i]=k;res["val_"+i]=params[k];i=i+1}return res}jQuery.fn.extend({disable:function(state){return this.each(function(){var $this=$(this);if($this.is("input, button, textarea, select"))this.disabled=state;else $this.toggleClass("disabled",state)})}});function hostkey2hostInfo(host_key){var info;var hostinfo=[];host_key=host_key.replace(/____/g,":");host_key=host_key.replace(/___/g,"/");host_key=host_key.replace(/__/g,".");info=host_key.split("@");return info}function handle_tab_state(nav_object,default_tab){$("a",nav_object).click(function(e){e.preventDefault()});$(" > li > a",nav_object).on("shown.bs.tab",function(e){var id=$(e.target).attr("href").substr(1);if(history.replaceState){history.replaceState(null,null,"#"+id)}else{window.location.hash=id}});var hash=window.location.hash;if(!hash)hash="#"+default_tab;$('a[href="'+hash+'"]',nav_object).tab("show")}String.prototype.sformat=function(){var args=arguments;return this.replace(/{(\d+)}/g,function(match,number){return typeof args[number]!="undefined"?args[number]:match})};if(typeof String.prototype.contains==="undefined"){String.prototype.contains=function(s){return this.indexOf(s)!==-1}}function _add_find_host_link(form,name,data){$("").attr({type:"hidden",id:name,name:name,value:data}).appendTo(form)}function makeFindHostBeforeSubmitCallback(http_prefix){return function(form,data){if(data.type=="mac"){form.attr("action",http_prefix+"/lua/mac_details.lua")}else if(data.type=="network"){form.attr("action",http_prefix+"/lua/hosts_stats.lua");_add_find_host_link(form,"network",data.network)}else if(data.type=="snmp"){form.attr("action",http_prefix+"/lua/pro/enterprise/snmp_interface_details.lua");_add_find_host_link(form,"snmp_port_idx",data.snmp_port_idx);_add_find_host_link(form,"page","layer_2")}else if(data.type=="snmp_device"){form.attr("action",http_prefix+"/lua/pro/enterprise/snmp_device_details.lua")}else if(data.type=="asn"){form.attr("action",http_prefix+"/lua/hosts_stats.lua");_add_find_host_link(form,"asn",data.asn)}else{form.attr("action",http_prefix+"/lua/host_details.lua")}return true}}function tstampToDateString(html_tag,format,tdiff){tdiff=tdiff||0;var timestamp=parseInt(html_tag.html())+tdiff;var localized=d3.time.format(format)(new Date(timestamp*1e3));html_tag.html(localized).removeClass("hidden");return localized}function noHtml(s){return s.replace(/<[^>]+>/g,"")}function cleanCustomHostUrl(host){return host.replace(/^http:\/\//gi,"").replace(/^https:\/\//gi,"").replace(/^www\./gi,"").replace(/[^0-9a-zA-Z\.:\/_-]/gi,"")}function parseQuery(queryString){var query={};var pairs=(queryString[0]==="?"?queryString.substr(1):queryString).split("&");for(var i=0;icount){console.error("points mismatch: serie '"+getSerieLabel(schema_name,series[i])+"' has "+data.length+" points, expected "+count);rv=false}else if(data.length.1)return res}function buildTimeArray(start_time,end_time,step){var arr=[];for(var t=start_time;t$.now())$("#btn-jump-time-ahead").addClass("disabled");else $("#btn-jump-time-ahead").removeClass("disabled")}function showQuerySlow(){$("#query-slow-alert").show()}function hideQuerySlow(){$("#query-slow-alert").hide()}function chart_data_sum(series){return series.reduce(function(acc,x){return acc+x.values.reduce(function(acc,pt){return acc+pt[1]||0},0)},0)}function attachStackedChartCallback(chart,schema_name,chart_id,zoom_reset_id,params,step,metric_type,align_step,show_all_smooth,initial_range,ts_table_shown){var pending_chart_request=null;var pending_table_request=null;var d3_sel=d3.select(chart_id);var $chart=$(chart_id);var $zoom_reset=$(zoom_reset_id);var $graph_zoom=$("#graph_zoom");var max_interval=findActualStep(step,params.epoch_begin)*8;var initial_interval=params.epoch_end-params.epoch_begin;var is_max_zoom=initial_interval<=max_interval;var url=http_prefix+"/lua/rest/get/timeseries/ts.lua";var first_load=true;var first_time_loaded=true;var manual_trigger_cmp_serie=false;var datetime_format="dd/MM/yyyy hh:mm:ss";var max_over_total_ratio=3;var query_timer=null;var seconds_before_query_slow=6;var query_completed=0;var query_was_aborted=false;chart.is_zoomed=current_zoom_level>0||has_initial_zoom();var spinner=$('');$chart.parent().css("position","relative");var chart_colors_full=["#69B87F","#94CFA4","#B3DEB6","#E5F1A6","#FFFCC6","#FEDEA5","#FFB97B","#FF8D6D","#E27B85"];var chart_colors_min=["#7CC28F","#FCD384","#FD977B"];var num_ticks_y1=null;var num_ticks_y2=null;var domain_y1=null;var domain_y2=null;var first_run=true;var update_chart_data=function(new_data){d3_sel.datum([]).call(chart);d3_sel.datum(new_data);d3_sel.transition().duration(500).call(chart);if(first_run){num_ticks_y1=chart.yAxis1.ticks();num_ticks_y2=chart.yAxis2.ticks();domain_y1=chart.yDomain1();domain_y2=chart.yDomain2();first_run=false}if(metric_type==="gauge"){var cur_domain_y1=chart.yAxis1.scale().domain();var cur_domain_y2=chart.yAxis2.scale().domain();cur_domain_y1=cur_domain_y1[1]-cur_domain_y1[0];cur_domain_y2=cur_domain_y2[1]-cur_domain_y2[0];if(chart.yAxis1.tickFormat()!=ffloat)chart.yAxis1.ticks(Math.min(cur_domain_y1,num_ticks_y1));if(chart.yAxis2.tickFormat()!=ffloat)chart.yAxis2.ticks(Math.min(cur_domain_y2,num_ticks_y2))}var y1_sum=chart_data_sum(new_data.filter(function(x){return x.yAxis==1}));var y2_sum=chart_data_sum(new_data.filter(function(x){return x.yAxis==2}));if(y1_sum==0)chart.yDomain1([0,1]);else chart.yDomain1(domain_y1);if(y2_sum==0)chart.yDomain2([0,1]);else chart.yDomain2(domain_y2);d3_sel.call(chart);nv.utils.windowResize(chart.update);spinner.remove()};function isLegendDisabled(key,default_val){if(typeof localStorage!=="undefined"){var val=localStorage.getItem("chart_series.disabled."+key);if(val!=null)return val==="true"}return default_val}chart.legend.dispatch.on("legendClick",function(d,i){if(d.legend_key.indexOf("ago")!=-1)manual_trigger_cmp_serie=true;if(typeof localStorage!=="undefined")localStorage.setItem("chart_series.disabled."+d.legend_key,!d.disabled?true:false)});chart.dispatch.on("zoom",function(e){var cur_zoom=[params.epoch_begin,params.epoch_end];var t_start=Math.floor(e.xDomain[0]);var t_end=Math.ceil(e.xDomain[1]);var old_zoomed=chart.is_zoomed;var is_user_zoom=typeof e.is_user_zoom!=="undefined"?e.is_user_zoom:true;chart.is_zoomed=true;if(chart.updateStackedChart(t_start,t_end,false,is_user_zoom)){if(is_user_zoom||e.push_state){current_zoom_level+=1;var url=getHistoryParameters({epoch_begin:t_start,epoch_end:t_end});history.pushState({zoom_level:current_zoom_level,range:[t_start,t_end]},"",url)}chart.fixChartButtons()}else chart.is_zoomed=old_zoomed});function updateZoom(zoom,is_user_zoom,force){var t_start=zoom[0];var t_end=zoom[1];chart.updateStackedChart(t_start,t_end,false,is_user_zoom,null,force);chart.fixChartButtons()}chart.zoom_in=function(){var cur_interval=params.epoch_end-params.epoch_begin;if(cur_interval>60){var delta=cur_interval/4;$("#period_begin").data("datetimepicker").date(new Date((params.epoch_begin+delta)*1e3));$("#period_end").data("datetimepicker").date(new Date((params.epoch_end-delta)*1e3));updateChartFromPickers()}};chart.zoom_out=function(){var cur_interval=params.epoch_end-params.epoch_begin;var delta=cur_interval/2;$("#period_begin").data("datetimepicker").date(new Date((params.epoch_begin-delta)*1e3));$("#period_end").data("datetimepicker").date(new Date((params.epoch_end+delta)*1e3));updateChartFromPickers()};$chart.on("dblclick",function(event){if($(event.target).hasClass("nv-legend-text"))return;chart.zoom_out()});$zoom_reset.on("click",function(){if(current_zoom_level){history.go(-current_zoom_level)}});window.addEventListener("popstate",function(e){var zoom=initial_range;if(e.state){zoom=e.state.range;current_zoom_level=e.state.zoom_level}else current_zoom_level=0;updateZoom(zoom,true,true)});chart.fixChartButtons=function(){if(current_zoom_level>0||has_initial_zoom()){$graph_zoom.find(".btn-warning:not(.custom-zoom-btn)").addClass("initial-zoom-sel").removeClass("btn-warning");$graph_zoom.find(".custom-zoom-btn").css("visibility","visible");var zoom_link=$graph_zoom.find(".custom-zoom-btn input");var link=zoom_link.val().replace(/&epoch_begin=.*/,"");link+="&epoch_begin="+params.epoch_begin+"&epoch_end="+params.epoch_end;zoom_link.val(link)}else{$graph_zoom.find(".initial-zoom-sel").addClass("btn-warning");$graph_zoom.find(".custom-zoom-btn").css("visibility","hidden");chart.is_zoomed=false}fixJumpButtons(params.epoch_begin,params.epoch_end);if(current_zoom_level>0)$zoom_reset.show();else $zoom_reset.hide()};function checkQueryCompleted(){var flows_dt=$("#chart1-flows");var wait_num_queries=ts_table_shown&&$("#chart1-flows").css("display")!=="none"?2:1;query_completed+=1;if(query_completed>=wait_num_queries){if(query_timer){clearInterval(query_timer);query_timer=null}hideQuerySlow()}}chart.queryWasAborted=function(){return query_was_aborted};chart.abortQuery=function(){query_was_aborted=true;if(pending_chart_request){pending_chart_request.abort();chart.noData(i18n.query_was_aborted);update_chart_data([])}if(pending_table_request)pending_table_request.abort();if(query_timer){clearInterval(query_timer);query_timer=null}hideQuerySlow()};chart.tableRequestCompleted=function(){checkQueryCompleted();pending_table_request=null};chart.getDataUrl=function(){var data_params=jQuery.extend({},params);delete data_params.zoom;delete data_params.ts_compare;data_params.extended=1;return url+"?"+$.param(data_params,true)};var old_start,old_end,old_interval;chart.updateStackedChart=function(tstart,tend,no_spinner,is_user_zoom,on_load_callback,force_update){if(tstart)params.epoch_begin=tstart;if(tend)params.epoch_end=tend;var cur_interval=params.epoch_end-params.epoch_begin;var actual_step=findActualStep(step,params.epoch_begin);max_interval=actual_step*6;if(cur_interval=Date.now()){params.epoch_begin=params.epoch_end-max_interval}else{params.epoch_begin=Math.floor(epoch-max_interval/2);params.epoch_end=Math.floor(epoch+max_interval/2)}is_max_zoom=true;chart.zoomType(null)}}else if(cur_interval>max_interval){is_max_zoom=false;chart.zoomType("x")}old_interval=cur_interval;if(!first_load||has_initial_zoom()||force_update)align_step=null;fixTimeRange(chart,params,align_step,actual_step);if(first_load)initial_range=[params.epoch_begin,params.epoch_end];if(old_start==params.epoch_begin&&old_end==params.epoch_end&&!force_update)return false;old_start=params.epoch_begin;old_end=params.epoch_end;if(pending_table_request)pending_table_request.abort();if(pending_chart_request)pending_chart_request.abort();else if(!no_spinner)spinner.appendTo($chart.parent());$("#period_begin").data("datetimepicker").date(new Date(params.epoch_begin*1e3));$("#period_end").data("datetimepicker").date(new Date(Math.min(params.epoch_end*1e3,$.now())));if(query_timer)clearInterval(query_timer);query_timer=setInterval(showQuerySlow,seconds_before_query_slow*1e3);query_completed=0;query_was_aborted=false;chart.noData(i18n.no_data_available);hideQuerySlow();var req_params=$.extend({},params);if(!canCompareBackwards(req_params.epoch_begin,req_params.epoch_end))delete req_params.ts_compare;pending_chart_request=$.get(url,req_params,function(data){if(data&&data.error)chart.noData(data.error);if(!data||!data.series||!data.series.length||!checkSeriesConsinstency(schema_name,data.count,data.series)){update_chart_data([]);return}var tick_step=Math.ceil(chart.tick_step/data.step)*data.step;chart.xAxis.tickValues(buildTimeArray(data.start,data.start+data.count*data.step,tick_step));chart.xAxis.tickFormat(function(d){return d3.time.format(chart.x_fmt)(new Date(d*1e3))});var res=[];var series=data.series;var total_serie;var color_i=0;var chart_colors=series.length<=chart_colors_min.length?chart_colors_min:chart_colors_full;for(var j=0;jmax_over_total_ratio)is_disabled=true;res.push({key:capitaliseFirstLetter(key),yAxis:1,values:values,type:"line",classed:"line-dashed line-animated",color:"#7E91A0",legend_key:key,disabled:is_disabled})}}if(visualization&&visualization.extra_series){for(var i=0;i=3){var num_smoothed_points=Math.min(Math.max(Math.floor(total_serie.length/5),3),12);var smooth_functions={trend:[graph_i18n.trend,"#62ADF6",smooth,num_smoothed_points],ema:["EMA","#F96BFF",exponentialMovingAverageArray,{periods:num_smoothed_points}],sma:["SMA","#A900FF",simpleMovingAverageArray,{periods:num_smoothed_points}],rsi:["RSI cur vs past","#00FF5D",relativeStrengthIndexArray,{periods:num_smoothed_points}]};function add_smoothed_serie(fn_to_use){var options=smooth_functions[fn_to_use];var smoothed;if(fn_to_use=="rsi"){if(!past_serie)return;var delta_serie=[];for(var i=0;i0){var aligned;if(fn_to_use!="ema"&&fn_to_use!="sma"&&fn_to_use!="rsi"){var scale=d3.max(total_serie)/max_val;var scaled=$.map(smoothed,function(x){return x*scale});aligned=upsampleSerie(scaled,data.count)}else{var remaining=data.count-smoothed.length;var to_fill=remaining0||enabled_series.length==0){for(var i=0;i0){chart.legend.updateState(false)}update_chart_data(res);first_time_loaded=false;if(data.source_aggregation)$("#data-aggr-dropdown > button > span:first").html(data.source_aggregation)}).fail(function(xhr,status,error){if(xhr.statusText=="abort"){return}console.error("Error while retrieving the timeseries data ["+status+"]: "+error);chart.noData(error);update_chart_data([])}).always(function(data,status,xhr){checkQueryCompleted();pending_chart_request=null});if(first_load){first_load=false;$(function(){var flows_dt=$("#chart1-flows").data("datatable");if(flows_dt)pending_table_request=flows_dt.pendingRequest})}else{var flows_dt=$("#chart1-flows");if(ts_table_shown){updateGraphsTableView(null,params);if($("#chart1-flows").css("display")!=="none")pending_table_request=flows_dt.data("datatable").pendingRequest}}if(typeof on_load_callback==="function")on_load_callback(chart);return true}}var graph_old_view=null;var graph_old_has_nindex=null;var graph_old_nindex_query=null;function tsQueryToTags(ts_query){return ts_query.split(",").reduce(function(params,value){var pos=value.indexOf(":");if(pos!=-1){var k=value.slice(0,pos);var v=value.slice(pos+1);params[k]=v}return params},{})}function recheckGraphTableEntries(){var table_view=graph_table_views;var tdiff=graph_params.epoch_end-graph_params.epoch_begin;var reset_selection=false;$("#chart1-flows").show();$("#graphs-table-selector").show();for(view_id in table_view){var view=table_view[view_id];var elem=$("#"+view.html_id);if(tdiff<=view.min_step){if(graph_old_view.id===view_id)reset_selection=true;elem.hide()}else elem.show()}var items_ul=$("#graphs-table-active-view").closest(".btn-group").find("ul:first");items_ul.find("li.dropdown-header").each(function(idx,e){var next_item=$(e).nextAll("li").filter(function(idx,e){return $(e).css("display")!=="none"||!$(e).attr("data-view-id")}).first();var divider=$(e).nextAll(".divider").first();if(!next_item.attr("data-view-id")){$(e).hide();divider.hide()}else{$(e).show();divider.show()}});if(reset_selection){var first_view=items_ul.find("li[data-view-id]").filter(function(idx,e){return $(e).css("display")!=="none"}).first();if(first_view.length)setActiveGraphsTableView(first_view.attr("data-view-id"));else{$("#chart1-flows").hide();$("#graphs-table-selector").hide()}return false}return true}function updateGraphsTableView(view,graph_params,has_nindex,nindex_query,per_page){if(view)graph_old_view=view;if(!recheckGraphTableEntries(graph_params)){return}if(view){graph_old_has_nindex=has_nindex;graph_old_nindex_query=nindex_query}else{view=graph_old_view;has_nindex=graph_old_has_nindex;nindex_query=graph_old_nindex_query}var graph_table=$("#chart1-flows");nindex_query=nindex_query+"&begin_time_clause="+graph_params.epoch_begin+"&end_time_clause="+graph_params.epoch_end;var nindex_buttons="";var params_obj=tsQueryToTags(graph_params.ts_query);if(!params_obj.host){nindex_buttons+='
"}nindex_buttons+='
";if(view.columns){var url=http_prefix+(view.nindex_view?"/lua/pro/get_nindex_flows.lua":"/lua/pro/get_ts_table.lua");var columns=view.columns.map(function(col){return{title:col[1],field:col[0],css:{textAlign:col[2],width:col[3]},hidden:col[4]?true:false}});columns.push({title:i18n.actions,field:"drilldown",css:{width:"1%","white-space":"nowrap","text-align":"center"}});var old_dt=graph_table.data("datatable");if(old_dt&&old_dt.pendingRequest)old_dt.pendingRequest.abort();graph_table.removeData("datatable");graph_table.html("");graph_table.datatable({title:"",url:url,perPage:per_page,noResultsMessage:function(){if(ts_chart.queryWasAborted())return i18n.query_was_aborted;else return i18n.no_results_found},post:function(){var params=$.extend({},graph_params);delete params.ts_compare;delete params.initial_point;params.limit=1;params.detail_view=view.id;return params},loadingYOffset:40,columns:columns,buttons:view.nindex_view?[nindex_buttons]:[],tableCallback:function(){var data=this.resultset;ts_chart.tableRequestCompleted();if(!data){return}if(data.currentPage>1)graph_table.data("has_interaction",true);var stats_div=$("#chart1-flows-stats");var has_drilldown=data&&data.data.some(function(row){return row.drilldown});if(!has_drilldown)$("table td:last-child, th:last-child",graph_table).remove();if(data&&data.stats&&data.stats.loading_time){$("#flows-load-time").html(data.stats.loading_time);$("#flows-processed-records").html(data.stats.num_records_processed);stats_div.show()}else stats_div.hide()},rowCallback:function(row,row_data){if(typeof row_data.tags==="object"&&(params_obj.category&&row_data.tags.category===params_obj.category||params_obj.protocol&&row_data.tags.protocol===params_obj.protocol)){row.addClass("info")}return row}})}}function draw_processes_graph(http_prefix,graph_div_id,host){var links;var nodes={};var url=http_prefix+"/lua/get_processes_graph_data.lua?host="+host;d3.json(url,function(error,json){if(error)return console.warn(error);links=json;var _link;links.forEach(function(link){if(link.source_pid==-1){_link=http_prefix+"/lua/host_details.lua?host="+link.source}else{_link=http_prefix+"/lua/process_details.lua?pid="+link.source_pid+"&pid_name="+link.source_name+"&host="+host+"&page=flows"}link.source=nodes[link.source]||(nodes[link.source]={name:link.source_name,num:link.source,link:_link,type:link.source_type,pid:link.source_pid});if(link.target_pid==-1){_link=http_prefix+"/lua/host_details.lua?host="+link.target}else{_link=http_prefix+"/lua/process_details.lua?pid="+link.target_pid+"&pid_name="+link.target_name+"&host="+host+"&page=flows"}link.target=nodes[link.target]||(nodes[link.target]={name:link.target_name,num:link.target,link:_link,type:link.target_type,pid:link.target_pid})});var width=960,height=500,arrow_size=6;var color=d3.scale.category10();color["proc"]="red";color["host"]="lightsteelblue";var force=d3.layout.force().nodes(d3.values(nodes)).links(links).size([width,height]).linkDistance(120).charge(-400).on("tick",tick).start();var svg=d3.select("#"+graph_div_id).append("svg").attr("id","ebpf_graph").attr("width",width).attr("height",height);svg.append("defs").selectAll("marker").data(["proc2proc","proc2host","host2proc","host2host"]).enter().append("marker").attr("id",function(d){return d}).attr("viewBox","0 -5 10 10").attr("refX",15).attr("refY",-1.5).attr("markerWidth",arrow_size).attr("markerHeight",arrow_size).attr("orient","auto").append("path").attr("d","M0,-5L10,0L0,5");var path=svg.append("g").selectAll("path").data(force.links()).enter().append("path").attr("class",function(d){return"link "+d.type}).attr("marker-end",function(d){return"url(#"+d.type+")"});var circle=svg.append("g").selectAll("circle").data(force.nodes()).enter().append("circle").attr("class","ebpf_circle").attr("r",8).style("fill",function(d){return color[d.type]}).call(force.drag).on("dblclick",function(d){window.location.href=d.link});var text=svg.append("g").selectAll("text").data(force.nodes()).enter().append("text").attr("class","ebpf_text").attr("x",12).attr("y",".31em").text(function(d){if(d.pid>=0)return d.name+" [pid: "+d.pid+"]";else{return d.name}});function tick(){path.attr("d",linkArc);circle.attr("transform",transform);text.attr("transform",transform)}function linkArc(d){var dx=d.target.x-d.source.x,dy=d.target.y-d.source.y,dr=Math.sqrt(dx*dx+dy*dy);return"M"+d.source.x+","+d.source.y+"A"+dr+","+dr+" 0 0,1 "+d.target.x+","+d.target.y}function transform(d){return"translate("+d.x+","+d.y+")"}})}function makeUniqueValidator(items_function){return function(field){var cmp_name=field.val();var count=0;if(!cmp_name)return true;items_function(field).each(function(){var name=$(this).val();if(name==cmp_name)count=count+1});return count==1}}function memberValueValidator(input){var member=input.val();if(member==="")return true;return is_mac_address(member)||is_network_mask(member,true)}function makePasswordPatternValidator(pattern){return function passwordPatternValidator(input){if(!input.val())return true;return $(input).val().match(pattern)}}function passwordMatchValidator(input){var other_input=$(input).closest("form").find("[data-passwordmatch]").not(input);if(!input.val()||!other_input.val())return true;return other_input.val()===input.val()}function poolnameValidator(input){if(!input.val())return true;return $(input).val().match(/^[a-z0-9_]*$/)}function passwordMatchRecheck(form){var items=$(form).find("[data-passwordmatch]");var not_empty=0;items.each(function(){if($(this).val()!="")not_empty++});if(not_empty==items.length)items.trigger("input")}function hostOrMacValidator(input){var host=input.val();if(host==="")return true;return is_mac_address(host)||is_good_ipv4(host)||is_good_ipv6(host)}function ipAddressValidator(input){var host=input.val();if(host==="")return true;return is_good_ipv4(host)||is_good_ipv6(host)}$.fn.dataTable.ext.buttons.filterScripts={className:"filter-scripts-button",init:function(dt,node,config){const button_id=config.attr.id;$(node).removeClass("btn").removeClass("btn-secondary");const button_text=$(node).html();let count=0;if(button_id=="all-scripts"){count=dt.data().length}else if(button_id=="enabled-scripts"){dt.data().each(d=>{const parsed=d.is_enabled;if(parsed)count+=1})}else if(button_id=="disabled-scripts"){dt.data().each(d=>{const parsed=d.is_enabled;if(!parsed)count+=1})}$(node).html(`${button_text} (${count})`)},action:function(e,dt,node,config){const button_id=config.attr.id;$("#all-scripts").removeClass("active");$("#enabled-scripts").removeClass("active");$("#disabled-scripts").removeClass("active");if(button_id=="all-scripts"){dt.columns().search("").draw();window.history.replaceState(undefined,undefined,"#all")}else if(button_id=="enabled-scripts"){dt.columns(2).search("true").draw();window.history.replaceState(undefined,undefined,"#enabled")}else if(button_id=="disabled-scripts"){dt.columns(2).search("false").draw();window.history.replaceState(undefined,undefined,"#disabled")}$(`#${button_id}`).addClass("active")}}; //# sourceMappingURL=ntop.min.js.map \ No newline at end of file diff --git a/httpdocs/js/ntop.min.js.map b/httpdocs/js/ntop.min.js.map index 7a8cef54e5..77e45407b9 100644 --- a/httpdocs/js/ntop.min.js.map +++ b/httpdocs/js/ntop.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["datatable_utils.js","ays_utils.js","ntopng_utils.js","graph_utils.js","ebpf_utils.js","ntopng_validators.js","plugin-script-datatable.js"],"names":["datatableRemoveEmptyRow","table","$","remove","datatableAddEmptyRow","empty_str","columns","filter","this","css","length","html","datatableGetNumDisplayedItems","datatableIsEmpty","datatableGetByForm","form","parent","datatableUndoAddRow","new_row","bt_to_enable","callback_str","removeAttr","closest","aysUpdateForm","dt","window","datatableForEachRow","callbacks","each","row_i","bind","i","datatableAddButtonCallback","td_idx","label","bs_class","link","append","datatableAddDeleteButtonCallback","datatableAddActionButtonCallback","datatableAddLinkButtonCallback","datatableMakeSelectUnique","tr_obj","added_rows_prefix","options","paramsExtend","on_change","noop","selector_fn","obj","find","first","datatableForeachSelectOtherThan","this_select","callback","other","datatableOptionChangeStatus","option_obj","enable","select_obj","should_reset","val","attr","new_val","datatableOnSelectEntryChange","change_callback","old_value","new_value","others","push","datatableOnAddSelectEntry","trigger","new_sel","select","on","datatableOrderedInsert","to_insert","to_insert_val","cmp_fn","a","b","inserted","tr","cmp_val","parseInt","isNaN","before","datatableIsLastPage","lastpage","hasClass","datatableGetColumn","id_key","id_value","res","data","resultset","item","datatableGetColumnIndex","column_key","index","findIndex","field","datatableInitRefreshRows","column_id","refresh_interval","trend_columns","$dt","rows","old_timer","old_req","clearInterval","removeData","abort","ids","id_to_row","row","data_id","params","custom_hosts","join","url","first_load","_process_result","result","row_idx","row_html","row_tds","key","col_idx","cell","$cell","old_val","trend_value_formatter","arrows","parseFloat","console","warn","drawTrend","setInterval","ajax","type","cache","success","aysHandleForm","form_selector","default_options","submit_selector","on_dirty_callback","on_clean_callback","handle_submit_buttons","handle_datatable","handle_tabs","disable_on_dirty","ays_options","o","extend","areYouSure","addClass","removeClass","aysResetForm","aysRecheckForm","aysGetDirty","fields_selector","getValue","$field","undefined","is","$option","isFieldDirty","origValue","curValue","dirty","l","dirty_status","input","NTOPNG_MIN_VISUAL_VALUE","is_good_ipv4","ipv4","test","is_good_ipv6","ipv6","isNumeric","value","is_mac_address","what","is_network_mask","optional_mask","elems","split","mask","ip_addr","address","fbits","bits","sizes","bits_log1000","Math","log","floor","round","pow","ret","toFixed","export_rate","eps","scaleValue","exports_format","exports","exports_label","i18n","toLowerCase","fbits_from_bytes","bytes","fpackets","pps","fpoints","fflows","fps","fmsgs","mps","falerts","aps","fint","x","toString","replace","ffloat","fpercent","fdate","when","epoch","d","Date","capitaliseFirstLetter","string","charAt","toUpperCase","slice","String","prototype","startsWith","indexOf","get_trend","actual","getOSIcon","name","icon","search","abbreviateString","str","len","substring","bytesToSize","precision","kilobyte","megabyte","gigabyte","terabyte","capitalizeSingleWord","uc","capitalize","current","last","withColor","toggleAllTabs","enabled","disableAllDropdownsAndTabs","prop","enableAllDropdownsAndTabs","s","addCommas","nStr","x1","x2","rgx","scale","formatValue","formatPackets","n","formatPoints","formatFlows","formatMessages","fmillis","bytesToVolume","bytesToVolumeAndLabel","bitsToSize","factor","secondsToTime","seconds","days","hours","minutes","sec","msg","msg_array","years","format","M+","getMonth","d+","getDate","h+","getHours","m+","getMinutes","s+","getSeconds","q+","S","getMilliseconds","RegExp","$1","getFullYear","substr","k","epoch2Seen","tdiff","getTime","graphGetXAxisTicksFormat","diff_epoch","tickFormat","defaults","override","paramsToForm","hasOwnProperty","appendTo","paramsPairsEncode","jQuery","fn","disable","state","$this","disabled","toggleClass","hostkey2hostInfo","host_key","info","hostinfo","handle_tab_state","nav_object","default_tab","click","e","preventDefault","id","target","history","replaceState","location","hash","tab","sformat","args","arguments","match","number","contains","_add_find_host_link","makeFindHostBeforeSubmitCallback","http_prefix","network","snmp_port_idx","asn","tstampToDateString","html_tag","timestamp","localized","d3","time","noHtml","cleanCustomHostUrl","host","parseQuery","queryString","query","pairs","pair","decodeURIComponent","getHistoryParameters","cur_params","new_params","new_query","param","baseUrl","protocol","pathname","schema_2_label","data_2_label","graph_i18n","initLabelMaps","_schema_2_label","_data_2_label","_graph_i18n","getSerieLabel","schema","serie","visualization","serie_index","data_label","new_label","metrics_labels","ext_label","tags","category","l4proto","device","if_index","port","exporter","ifname","profile","user_script","command","traffic_volume","traffic","getValueFormatter","metric_type","series","custom_formatter","stats","formatters","error","as_counter","max_val","makeFlatLineValues","tstart","tstep","num","t","values","checkSeriesConsinstency","schema_name","count","rv","upsampleSerie","num_points","intervals","lerp","v0","v1","prev_i","next_i","min","ceil","v","buildTotalSerie","data_series","transpose","map","g","sum","arrayToNvSerie","serie_data","start","step","buildOtherSerie","total_serie","visual_total","max","buildTimeArray","start_time","end_time","arr","fixTimeRange","chart","align_step","actual_step","epoch_end","epoch_begin","frame","align","tick_step","resolution","fmt","range_params","range","limit","x_fmt","findActualStep","raw_step","supported_steps","retention","now_ts","now","delta","partial","aggregation_dp","tframe","retention_dp","has_initial_zoom","current_zoom_level","canCompareBackwards","jump_duration","current_duration","fixJumpButtons","duration","showQuerySlow","show","hideQuerySlow","hide","chart_data_sum","reduce","acc","pt","attachStackedChartCallback","chart_id","zoom_reset_id","show_all_smooth","initial_range","ts_table_shown","pending_chart_request","pending_table_request","d3_sel","$chart","$zoom_reset","$graph_zoom","max_interval","initial_interval","is_max_zoom","first_time_loaded","manual_trigger_cmp_serie","datetime_format","max_over_total_ratio","query_timer","seconds_before_query_slow","query_completed","query_was_aborted","is_zoomed","spinner","chart_colors_full","chart_colors_min","num_ticks_y1","num_ticks_y2","domain_y1","domain_y2","first_run","update_chart_data","new_data","datum","call","transition","yAxis1","ticks","yAxis2","yDomain1","yDomain2","cur_domain_y1","domain","cur_domain_y2","y1_sum","yAxis","y2_sum","nv","utils","windowResize","update","isLegendDisabled","default_val","localStorage","getItem","legend","dispatch","legend_key","setItem","cur_zoom","t_start","xDomain","t_end","old_zoomed","is_user_zoom","updateStackedChart","push_state","pushState","zoom_level","fixChartButtons","updateZoom","zoom","force","zoom_in","cur_interval","date","updateChartFromPickers","zoom_out","event","go","addEventListener","zoom_link","checkQueryCompleted","flows_dt","wait_num_queries","queryWasAborted","abortQuery","noData","tableRequestCompleted","getDataUrl","data_params","ts_compare","extended","old_start","old_end","old_interval","tend","no_spinner","on_load_callback","force_update","new_end","zoomType","no_data_available","req_params","get","xAxis","tickValues","color_i","chart_colors","j","visualization_options","current_step","axis","color","has_full_data","additional_series","total","other_serie","past_serie","ratio_over_total","is_disabled","classed","extra_series","class","no_trend","num_smoothed_points","smooth_functions","trend","smooth","ema","exponentialMovingAverageArray","periods","sma","simpleMovingAverageArray","rsi","relativeStrengthIndexArray","add_smoothed_serie","fn_to_use","smoothed","delta_serie","aligned","scaled","remaining","to_fill","splice","yDomainRatioY2","formatter1","value_formatter","statistics","tot_formatter","stats_formatter","yAxis1_formatter","second_axis_series","formatter2","value_formatter2","yAxis2_formatter","stats_table","average","avg","total_cell","average_cell","min_cell","max_cell","perc_cell","min_val","min_val_idx","max_val_idx","enabled_series","updateState","source_aggregation","fail","xhr","status","statusText","always","pendingRequest","updateGraphsTableView","graph_old_view","graph_old_has_nindex","graph_old_nindex_query","tsQueryToTags","ts_query","pos","recheckGraphTableEntries","table_view","graph_table_views","graph_params","reset_selection","view_id","view","elem","html_id","min_step","items_ul","idx","next_item","nextAll","divider","first_view","setActiveGraphsTableView","has_nindex","nindex_query","per_page","graph_table","nindex_buttons","params_obj","nindex_view","col","title","textAlign","width","hidden","actions","white-space","text-align","old_dt","datatable","perPage","noResultsMessage","ts_chart","no_results_found","post","initial_point","detail_view","loadingYOffset","buttons","tableCallback","currentPage","stats_div","has_drilldown","some","drilldown","loading_time","num_records_processed","rowCallback","row_data","draw_processes_graph","graph_div_id","links","nodes","json","_link","forEach","source_pid","source","source_name","source_type","pid","target_pid","target_name","target_type","height","arrow_size","category10","layout","size","linkDistance","charge","tick","svg","selectAll","enter","path","circle","style","drag","href","text","linkArc","transform","dx","dy","y","dr","sqrt","makeUniqueValidator","items_function","cmp_name","memberValueValidator","member","makePasswordPatternValidator","pattern","passwordPatternValidator","passwordMatchValidator","other_input","not","poolnameValidator","passwordMatchRecheck","items","not_empty","hostOrMacValidator","ipAddressValidator","dataTable","ext","filterScripts","className","init","node","config","button_id","button_text","parsed","is_enabled","action","draw"],"mappings":"AAEA,SAASA,wBAAwBC,OAC/BC,EAAE,oBAAqBA,EAAED,QAAQE,SAGnC,SAASC,qBAAqBH,MAAOI,WACnC,IAAIC,QAAUJ,EAAE,WAAYA,EAAED,QAAQM,OAAO,WAC5C,OAAOL,EAAEM,MAAMC,IAAI,YAAc,SAC/BC,OACHR,EAAE,QAASA,EAAED,QAAQU,KAAK,qCAAuCL,QAAU,QAAUD,UAAY,kBAGnG,SAASO,8BAA8BX,OACpC,OAAOC,EAAE,oBAAqBA,EAAED,QAAQS,OAAS,EAGpD,SAASG,iBAAiBZ,OACxB,OAAOW,8BAA8BX,QAAU,EAGjD,SAASa,mBAAmBC,MAC1B,OAAOb,EAAE,QAASA,EAAE,kBAAmBA,EAAEa,OAAOC,UAGlD,SAASC,oBAAoBC,QAASb,UAAWc,aAAcC,cAC7D,GAAID,aACDjB,EAAEiB,cAAcE,WAAW,YAE9B,IAAIN,KAAOb,EAAEgB,SAASI,QAAQ,QAC9BpB,EAAEgB,SAASf,SACXoB,cAAcR,MACd,IAAIS,GAAKV,mBAAmBC,MAE5B,GAAIF,iBAAiBW,IAClBpB,qBAAqBoB,GAAInB,WAE3B,GAAIe,aAEDK,OAAOL,cAAcF,SAG3B,SAASQ,oBAAoBzB,MAAO0B,WACjCzB,EAAE,iBAAkBD,OAAO2B,KAAK,SAASC,OACtC,UAAUF,YAAc,WAAY,CACjCA,UAAUG,KAAKtB,KAAfmB,CAAqBE,WACjB,CACJ,IAAIE,EACJ,IAAKA,EAAE,EAAGA,EAAEJ,UAAUjB,OAAQqB,IAC3BJ,UAAUI,GAAGD,KAAKtB,KAAlBmB,CAAwBE,UAKpC,SAASG,2BAA2BC,OAAQC,MAAOC,SAAUf,aAAcgB,MACxElC,EAAE,gBAAgB+B,OAAO,IAAK/B,EAAEM,OAAO6B,OAAO,YAAcD,KAAO,wDAA0DhB,aAAe,sCAAwCe,SAAW,KAAOD,MAAQ,eAGjN,SAASI,iCAAiCL,OAAQb,aAAcc,OAC7DF,2BAA2BF,KAAKtB,KAAhCwB,CAAsCC,OAAQC,MAAO,eAAgBd,aAAc,sBAGtF,SAASmB,iCAAiCN,OAAQb,aAAcc,OAC7DF,2BAA2BF,KAAKtB,KAAhCwB,CAAsCC,OAAQC,MAAO,aAAcd,aAAc,sBAGpF,SAASoB,+BAA+BP,OAAQG,KAAMF,OACnDF,2BAA2BF,KAAKtB,KAAhCwB,CAAsCC,OAAQC,MAAO,aAAc,GAAIE,MAG1E,SAASK,0BAA0BC,OAAQC,kBAAmBC,SAC3DA,QAAUC,cACPC,UAAW5C,EAAE6C,KACbC,YAAa,SAASC,KACnB,OAAOA,IAAIC,KAAK,UAAUC,UAE7BP,SAEH,SAASQ,gCAAgCC,YAAaV,kBAAmBK,YAAaM,UACnFpD,EAAE,QAAUyC,kBAAoB,KAAKf,KAAK,WACvC,IAAI2B,MAAQP,YAAY9C,EAAEM,OAC1B,GAAI+C,MAAM,IAAMF,YAAY,GACzBC,SAASC,SAIlB,SAASC,4BAA4BC,WAAYC,QAC9C,GAAIA,OAAQ,CACTD,WAAWpC,WAAW,gBAClB,CACJ,IAAIsC,WAAaF,WAAWnC,QAAQ,UACpC,IAAIsC,aAAgBD,WAAWE,OAASJ,WAAWI,MACnDJ,WAAWK,KAAK,WAAY,YAE5B,GAAGF,aAAc,CACd,IAAIG,QAAUJ,WAAWT,KAAK,0BAA0BC,QAAQU,MAChEF,WAAWE,IAAIE,SACfJ,WAAWG,KAAK,eAAgBC,WAKzC,SAASC,6BAA6BrB,kBAAmBK,YAAaiB,iBACnE,IAAIC,UAAYhE,EAAEM,MAAMsD,KAAK,iBAAmB,GAChD,IAAIK,UAAYjE,EAAEM,MAAMqD,OAAS,GACjC,IAAIO,UAEJ,GAAIF,WAAaC,UACdD,UAAY,GAEfd,gCAAgClD,EAAEM,MAAOmC,kBAAmBK,YAAa,SAASO,OAC/EC,4BAA4BD,MAAML,KAAK,iBAAmBgB,UAAY,MAAO,MAC7EV,4BAA4BD,MAAML,KAAK,iBAAmBiB,UAAY,MAAO,OAC7EC,OAAOC,KAAKd,SAGfU,gBAAgB/D,EAAEM,MAAO0D,UAAWC,UAAWC,OAAQZ,6BAEvDtD,EAAEM,MAAMsD,KAAK,eAAgBK,WAGhC,SAASG,0BAA0BX,WAAYhB,kBAAmBK,aAC/DW,WAAWE,IAAI,IAGfT,gCAAgCO,WAAYhB,kBAAmBK,YAAa,SAASO,OAElFA,MAAMgB,QAAQ,YAIjB,IAAIC,QAAUb,WAAWT,KAAK,0BAA0BC,QACxD,IAAIY,QAAUS,QAAQX,MAGtBF,WAAWE,IAAIE,SACfJ,WAAWY,QAAQ,UAGtB,IAAIE,OAAS7B,QAAQI,YAAYN,QACjC+B,OAAOC,GAAG,SAAU,WAAaV,6BAA6BlC,KAAKtB,KAAlCwD,CAAwCrB,kBAAmBC,QAAQI,YAAaJ,QAAQE,aACzH2B,OAAOC,GAAG,SAAU,WAAYxE,EAAEM,MAAMqD,IAAI,IAAIU,QAAQ,YACxDD,0BAA0BG,OAAQ9B,kBAAmBC,QAAQI,aAGhE,SAAS2B,uBAAuB1E,MAAOgC,OAAQ2C,UAAWC,cAAeC,QACtE,IAAIA,OAASA,QAAU,SAASC,EAAGC,GAAK,OAAOA,EAAID,GACnD,IAAIE,SAAW,MAEfvD,oBAAoBzB,MAAO,WACxB,GAAGgF,SAAU,OAEb,IAAIC,GAAKhF,EAAEM,MACX,IAAI2E,QAAUC,SAASlF,EAAE,gBAAkB+B,OAAS,IAAKiD,IAAIvE,QAE7D,IAAO0E,MAAMF,UAAcL,OAAOK,QAASN,eAAiB,EAAI,CAC7DK,GAAGI,OAAOV,WACVK,SAAW,QAIjB,IAAMA,SAEH/E,EAAED,OAAOoC,OAAOuC,WAGtB,SAASW,oBAAoBtF,OAC1B,IAAIuF,SAAWtF,EAAE,sDAAuDA,EAAED,QAC1E,QAAUuF,SAAS9E,QAAU,GAAO8E,SAASC,SAAS,WAAa,OAGtE,SAASC,mBAAmBzF,MAAO0F,OAAQC,UACxC,IAAIC,IAAM5F,MAAM6F,KAAK,aAAaC,UAAUD,KAAKvF,OAAO,SAASyF,MAC9D,OAAOA,KAAKL,UAAYC,WAG3B,GAAGC,IAAK,OAAOA,IAAI,GAGtB,SAASI,wBAAwBhG,MAAOiG,YACrC,IAAIC,MAAQlG,MAAM6F,KAAK,aAAalD,QAAQtC,QAAQ8F,UAAU,SAASJ,MACpE,OAAOA,KAAKK,QAAUH,aAGzB,OAAM,MAwBT,SAASI,yBAAyBrG,MAAOsG,UAAWC,iBAAkBC,eACpE,IAAIC,IAAMzG,MAAM6F,KAAK,aACrB,IAAIa,KAAOD,IAAIX,UAAUD,KACzB,IAAIc,UAAY3G,MAAM6F,KAAK,eAC3B,IAAIe,QAAU5G,MAAM6F,KAAK,cACzBW,cAAgBA,kBAEhB,GAAGG,UAAW,CAEZE,cAAcF,WACd3G,MAAM8G,WAAW,eAGnB,GAAGF,QAAS,CAEVA,QAAQG,QACR/G,MAAM8G,WAAW,cAGnB,IAAIE,OACJ,IAAIC,aAEJ,IAAI,IAAIC,OAAOR,KAAM,CACnB,IAAIb,KAAOa,KAAKQ,KAEhB,GAAGrB,KAAKS,WAAY,CAClB,IAAIa,QAAUtB,KAAKS,WACnBW,UAAUE,SAAWD,IACrBF,IAAI5C,KAAK+C,UAIb,IAAIH,IACF,OAAM,MAMR,IAAII,QACFC,aAAgBL,IAAIM,KAAK,MAE3B,IAAIC,IAAMd,IAAI9D,QAAQ4E,IACtB,IAAIC,WAAa,KAEjB,IAAIC,gBAAkB,SAASC,QAC7B,IAAI,IAAIR,OAAOQ,OAAO7B,KAAM,CACzB,IAAIA,KAAO6B,OAAO7B,KAAKqB,KACvB,IAAIC,QAAUtB,KAAKS,WAEnB,GAAGa,SAAWF,UAAUE,SAAU,CAC/B,IAAIQ,QAAUV,UAAUE,SACxB,IAAIS,SAAWnB,IAAIC,KAAKiB,SACxB,IAAIE,QAAU5H,EAAE,KAAM2H,UAEtB,IAAI,IAAIE,OAAOjC,KAAM,CAClB,IAAIkC,QAAU/B,wBAAwBhG,MAAO8H,KAC7C,IAAIE,KAAOH,QAAQE,SACnB,IAAIE,MAAQhI,EAAE+H,MACd,IAAIE,QAAUD,MAAMpC,KAAK,kBAAoB5F,EAAE+H,MAAMtH,OACrD,IAAIyH,sBAAwB3B,cAAcsB,KAC1C,IAAIhE,QAAU+B,KAAKiC,KACnB,IAAIM,OAAS,GAEb,GAAGD,sBAAuB,CACzB,GAAGE,WAAWvE,UAAYA,QACxBwE,QAAQC,KAAK,mBAAqBzE,SAEpC,IAAI0D,WACFY,OAAS,IAAMI,UAAUH,WAAWvE,SAAUuE,WAAWH,UAG3DD,MAAMpC,KAAK,gBAAiB/B,SAE5BA,QAAUqE,sBAAsBrE,SAGjC7D,EAAE+H,MAAMtH,KAAMoD,SAAW,EAAMA,QAAUsE,OAAU,MAK5DZ,WAAa,MACbxH,MAAM8G,WAAW,eAKnB9G,MAAM6F,KAAK,cAAe4C,YAAY,WAEpC,IAAI7B,QAAU5G,MAAM6F,KAAK,cAEzB,GAAGe,QACD,OAIF5G,MAAM6F,KAAK,aAAc5F,EAAEyI,MACxBC,KAAM,MACNpB,IAAKA,IACL1B,KAAMuB,OACNwB,MAAO,MACPC,QAASpB,oBAEXlB,mBAGHkB,gBAAgBhB,IAAIX,WCtTtB,SAASgD,cAAcC,cAAepG,SACpC,IAAMoG,cAAeA,cAAgB,OAErC,GAAIA,gBAAkB,OAAQ,CAE5BA,cAAgB,qCAGlB,IAAIC,iBACFC,gBAAmB,sDACnBC,kBAAmBjJ,EAAE6C,KACrBqG,kBAAmBlJ,EAAE6C,KACrBsG,sBAAuB,KACvBC,iBAAkB,MAClBC,YAAa,MACbC,iBAAkB,GAClBC,gBAIF,IAAIC,EAAIxJ,EAAEyJ,OAAO,QAAUV,gBAAiBrG,SAC5C8G,EAAEV,cAAgBA,cAElB9I,EAAE,WACAA,EAAEwJ,EAAEV,eAAeY,WAAWF,EAAED,aAEhC,GAAIC,EAAEL,sBAEJnJ,EAAEwJ,EAAEV,eAAe9F,KAAKwG,EAAER,iBAAiBpF,KAAK,WAAY,YAE9D5D,EAAEwJ,EAAEV,eAAetE,GAAG,mBAAoB,WACxC,GAAIgF,EAAEL,sBACJnJ,EAAEM,MAAM0C,KAAKwG,EAAER,iBAAiB7H,WAAW,YAE7C,GAAIqI,EAAEJ,iBAAkB,CAEtBpJ,EAAEM,MAAM0C,KAAK,qBAAqBY,KAAK,WAAY,YACnD5D,EAAEM,MAAM0C,KAAK,mBAAmBzC,IAAI,iBAAkB,QAAQA,IAAI,SAAU,WAG9E,GAAIiJ,EAAEH,YAAa,CAEjBrJ,EAAE,aAAagD,KAAK,KAAKtB,KAAK,WAC5B,IAAM1B,EAAEM,MAAMc,QAAQ,MAAMmE,SAAS,UACnCvF,EAAEM,MAAMa,WAAW,eAAeC,QAAQ,MAAMuI,SAAS,cAI/D3J,EAAEwJ,EAAEF,kBAAkBK,SAAS,YAE/BH,EAAEP,kBAAkBrH,KAAKtB,KAAzBkJ,KAGHxJ,EAAEwJ,EAAEV,eAAetE,GAAG,mBAAoB,WACzC,GAAIgF,EAAEL,sBACJnJ,EAAEM,MAAM0C,KAAKwG,EAAER,iBAAiBpF,KAAK,WAAY,YAEnD,GAAI4F,EAAEJ,iBAAkB,CAEpBpJ,EAAEM,MAAM0C,KAAK,qBAAqB7B,WAAW,YAC7CnB,EAAEM,MAAM0C,KAAK,mBAAmBzC,IAAI,iBAAkB,IAAIA,IAAI,SAAU,IAG1E,GAAIiJ,EAAEH,YAAa,CAEjBrJ,EAAE,aAAagD,KAAK,KAAKtB,KAAK,WAC5B1B,EAAEM,MAAMsD,KAAK,cAAe,OAAOxC,QAAQ,MAAMwI,YAAY,cAIjE5J,EAAEwJ,EAAEF,kBAAkBM,YAAY,YAElCJ,EAAEN,kBAAkBtH,KAAKtB,KAAzBkJ,OASN,SAASK,aAAaf,eACpB9I,EAAE8I,eAAezE,QAAQ,2BAO3B,SAAShD,cAAcyH,eACrB9I,EAAE8I,eAAezE,QAAQ,qBAO3B,SAASyF,eAAehB,eACtB9I,EAAE8I,eAAezE,QAAQ,wBAM3B,SAAS0F,YAAYjB,cAAekB,iBAClCA,gBAAkBA,iBAAmB,yDAGrC,IAAIC,SAAW,SAASC,QACtB,GAAIA,OAAO3E,SAAS,eACb2E,OAAO3E,SAAS,cAChB2E,OAAOtG,KAAK,oBACZsG,OAAOtG,KAAK,UAAYuG,UAAW,CACxC,OAAO,KAGT,GAAID,OAAOE,GAAG,aAAc,CAC1B,MAAO,eAGT,IAAIzG,IACJ,IAAI+E,KAAOwB,OAAOtG,KAAK,QACvB,GAAIsG,OAAOE,GAAG,UAAW,CACvB1B,KAAO,SAGT,OAAQA,MACN,IAAK,WACL,IAAK,QACH/E,IAAMuG,OAAOE,GAAG,YAChB,MACF,IAAK,SACHzG,IAAM,GACNuG,OAAOlH,KAAK,UAAUtB,KAAK,SAAS8H,GAClC,IAAIa,QAAUrK,EAAEM,MAChB,GAAI+J,QAAQD,GAAG,aAAc,CAC3BzG,KAAO0G,QAAQ1G,SAGnB,MACF,QACEA,IAAMuG,OAAOvG,MAGjB,OAAOA,KAGT,IAAI2G,aAAe,SAASJ,QAC1B,IAAIK,UAAYL,OAAOtE,KAAK,YAC5B,IAAI4E,SAAWP,SAASC,QACxB,IAAIO,MAASN,YAAcI,WAAeA,WAAaC,SAEvD,OAAQC,MAAMA,MAAOF,UAAUA,UAAWC,SAASA,WAGrD,IAAIE,KAEJ1K,EAAE8I,eAAe9F,KAAKgH,iBAAiBtI,KAAK,WAC1C,IAAIiJ,aAAeL,aAAatK,EAAEM,OAElC,GAAIqK,aAAaF,MAAO,CACtBE,aAAaC,MAAQ5K,EAAEM,MACvBoK,EAAEvG,KAAKwG,iBAIX,OAAOD,ECzKT,IAAIG,wBAA0B,KAE9B,SAASC,aAAaC,MAClB,GAAI,4GAA4GC,KAAKD,MAAO,CAC/H,OAAM,SACI,CACV,OAAM,OAIP,SAASE,aAAaC,MAClB,GAAI,oqCAAoqCF,KAAKE,MAAO,CACvrC,OAAM,SACI,CACV,OAAM,OAIP,SAASC,UAAUC,OACf,MAAO,QAAQJ,KAAKI,OAGxB,SAASC,eAAeC,MACpB,MAAO,yCAAyCN,KAAKM,MAGzD,SAASC,gBAAgBD,KAAME,eAC3B,IAAIC,MAAQH,KAAKI,MAAM,KACvB,IAAIC,KAAO,KACX,IAAIC,QAEJ,GAAGH,MAAMjL,QAAU,EAAG,CACpB,IAAMgL,cACH,OAAO,UAEPI,QAAUN,SACT,CACJM,QAAUH,MAAM,GAEhB,IAAIN,UAAUM,MAAM,IACjB,OAAO,KAEVE,KAAOzG,SAASuG,MAAM,IAEtB,GAAGE,KAAO,EACP,OAAO,KAGb,GAAGb,aAAac,SAAU,CACvB,GAAID,OAAS,KACVA,KAAO,QACL,GAAIA,KAAO,GACb,OAAO,KAEV,OACGjD,KAAM,OACNmD,QAASD,QACTD,KAAMA,WAEL,GAAGV,aAAaQ,MAAM,IAAK,CAC/B,GAAIE,OAAS,KACVA,KAAO,SACL,GAAIA,KAAO,IACb,OAAM,MAET,OACGjD,KAAM,OACNmD,QAASD,QACTD,KAAMA,MAIZ,OAAO,KAGV,SAASG,MAAMC,MACX,UAAS,OAAW,YAClB,MAAO,IAET,IAAIC,OAAS,MAAO,SAAU,SAAU,SAAU,UAClD,GAAGD,MAAQ,EAAG,MAAO,IACrB,GAAIA,KAAO,GAAOA,KAAOlB,wBAA0B,MAAQ,KAAOA,wBAA0B,OAC5F,IAAIoB,aAAeC,KAAKC,IAAIJ,MAAQG,KAAKC,IAAI,KAC7C,IAAItK,EAAIqD,SAASgH,KAAKE,MAAMH,eAC5B,GAAIpK,EAAI,GAAKsD,MAAMtD,GAAI,CAC1BA,EAAI,OACM,GAAIA,GAAKmK,MAAMxL,OAAQ,CACjC,MAAO,KAASwL,MAAMA,MAAMxL,OAAS,GAGlC,GAAIqB,GAAK,EAAG,CACf,OAAOqK,KAAKG,MAAMN,KAAOG,KAAKI,IAAI,IAAMzK,GAAK,KAAO,IAAM,IAAMmK,MAAMnK,OAC5D,CACV,IAAI0K,IAAMnE,WAAW2D,KAAOG,KAAKI,IAAI,IAAMzK,IAAI2K,QAAQ,GACvD,GAAID,IAAM,GAAK,EACXA,IAAML,KAAKG,MAAME,KACrB,OAAOA,IAAM,IAAMP,MAAMnK,IAM1B,SAAS4K,YAAYC,KACnB,UAAS,MAAU,YACf,MAAO,IAEX,IAAIV,OAAS,QAAS,UACtB,GAAGU,KAAO,EAAG,MAAO,IACpB,GAAIA,IAAM,GAAOA,IAAM7B,wBAA0B,MAAQ,KAAOA,wBAA0B,UAC1F,IAAIlF,IAAMgH,WAAWD,IAAKV,MAAO,KAGjC,OAAOE,KAAKG,MAAM1G,IAAI,GAAK,KAAO,IAAM,IAAMA,IAAI,GAGpD,SAASiH,eAAeC,SACtB,UAAS,UAAc,YACnB,MAAO,IAEX,IAAIC,cAAgBC,KAAKF,QAAQG,cAEjC,IAAIhB,OAASc,cAAe,KAAOA,eACnC,GAAGD,SAAW,EAAG,MAAO,IACxB,GAAIA,QAAU,GAAOA,QAAUhC,wBAA0B,MAAQ,KAAOA,wBAA0B,UAClG,IAAIlF,IAAMgH,WAAWE,QAASb,MAAO,KAGrC,OAAOE,KAAKG,MAAM1G,IAAI,GAAK,KAAO,IAAM,IAAMA,IAAI,GAGpD,SAASsH,iBAAiBC,OACxB,UAAS,QAAY,YACnB,MAAO,IACT,OAAOpB,MAAMoB,MAAQ,GAGvB,SAASC,SAASC,KACd,UAAS,MAAU,YACjB,MAAO,IAET,IAAIpB,OAAS,MAAO,OAAQ,OAAQ,OAAQ,QAC5C,GAAGoB,KAAO,EAAG,MAAO,IACpB,GAAIA,IAAM,GAAOA,IAAMvC,wBAA0B,MAAQ,KAAOA,wBAA0B,OAC1F,IAAIlF,IAAMgH,WAAWS,IAAKpB,MAAO,KAGjC,OAAOE,KAAKG,MAAM1G,IAAI,GAAK,KAAO,IAAM,IAAMA,IAAI,GAGtD,SAAS0H,QAAQD,KACb,UAAS,MAAU,YACjB,MAAO,IAET,IAAIpB,OAAS,OAAQ,QAAS,QAAS,QAAS,SAChD,GAAGoB,KAAO,EAAG,MAAO,IACpB,GAAIA,IAAM,GAAOA,IAAMvC,wBAA0B,MAAQ,KAAOA,wBAA0B,QAC1F,IAAIlF,IAAMgH,WAAWS,IAAKpB,MAAO,KAGjC,OAAOE,KAAKG,MAAM1G,IAAI,GAAK,KAAO,IAAM,IAAMA,IAAI,GAGtD,SAAS2H,OAAOC,KACZ,UAAS,MAAU,YACjB,MAAO,IAET,IAAIvB,OAAS,MAAO,OAAQ,OAAQ,OAAQ,QAC5C,GAAGuB,KAAO,EAAG,MAAO,IACpB,GAAIA,IAAM,GAAOA,IAAM1C,wBAA0B,MAAQ,KAAOA,wBAA0B,OAC1F,IAAIlF,IAAMgH,WAAWY,IAAKvB,MAAO,KAGjC,OAAOE,KAAKG,MAAM1G,IAAI,GAAK,KAAO,IAAM,IAAMA,IAAI,GAGtD,SAAS6H,MAAMC,KACX,UAAS,MAAU,YACjB,MAAO,IAET,IAAIzB,OAAS,QAAS,SAAU,QAAS,SAAU,UACnD,GAAGyB,KAAO,EAAG,MAAO,IACpB,GAAIA,IAAM,GAAOA,IAAM5C,wBAA0B,MAAQ,KAAOA,wBAA0B,OAC1F,IAAIlF,IAAMgH,WAAWc,IAAKzB,MAAO,KAGjC,OAAOE,KAAKG,MAAM1G,IAAI,GAAK,KAAO,IAAM,IAAMA,IAAI,GAGtD,SAAS+H,QAAQC,KACf,UAAS,MAAU,YACjB,MAAO,IAGT,OAAOzB,KAAKG,MAAMsB,IAAM,KAAO,IAAM,YAGvC,SAASC,KAAKxC,OACV,UAAS,QAAY,YACnB,MAAO,IAET,IAAIyC,EAAI3B,KAAKG,MAAMjB,OACnB,OAAOyC,EAAEC,WAAWC,QAAQ,wBAAyB,KAGzD,SAASC,OAAO5C,OACZ,UAAS,QAAY,YACnB,MAAO,IAET,IAAIyC,EAAI3B,KAAKG,MAAMjB,MAAQ,KAAO,IAClC,OAAOyC,EAAEC,WAAWC,QAAQ,wBAAyB,KAGzD,SAASE,SAAS7C,OACd,UAAS,QAAY,YACnB,MAAO,IAET,OAAOc,KAAKG,MAAMjB,MAAQ,KAAO,IAAM,IAG3C,SAAS8C,MAAMC,MACX,IAAIC,MAAQD,KAAK,IACjB,IAAIE,EAAI,IAAIC,KAAKF,OAEjB,OAAM,EAGV,SAASG,sBAAsBC,QAC3B,OAAOA,OAAOC,OAAO,GAAGC,cAAgBF,OAAOG,MAAM,GAGzDC,OAAOC,UAAUC,WAAa,SAAUN,QACpC,OAAOlO,KAAKyO,QAAQP,UAAY,GAGpC,SAASQ,UAAUC,OAAQ7J,QACvB,GAAIA,SAAW+E,WAAe8E,QAAU7J,OAAS,CACpD,MAAM,mCACI,CACV,MAAM,mCAIP,SAAS8J,UAAUC,MACf,IAAIC,KAAO,GAEX,GAAID,KAAKE,OAAO,WAAa,GAAKF,KAAKE,OAAO,YAAc,EAAGD,KAAO,2CACjE,GAAID,KAAKE,OAAO,aAAe,EAAGD,KAAO,6CACzC,GAAID,KAAKE,OAAO,aAAe,GAAKF,KAAKE,OAAO,WAAa,GAAKF,KAAKE,OAAO,UAAY,EAAGD,KAAO,6CACpG,GAAID,KAAKE,OAAO,YAAc,GAAKF,KAAKE,OAAO,UAAY,GAAKF,KAAKE,OAAO,UAAY,EAAID,KAAO,sCAExG,OAAOA,KAGX,SAASE,iBAAiBC,IAAKC,KAC3B,IAAKD,IACR,MAAO,GACJ,GAAIA,IAAI/O,OAASgP,IACpB,OAAOD,IACJ,OAAOA,IAAIE,UAAU,EAAGD,KAAK,MAIjC,SAASE,YAAYxC,OACjB,UAAS,QAAY,YACnB,MAAO,IAET,IAAIyC,UAAY,EAChB,IAAIC,SAAW,KACf,IAAIC,SAAWD,SAAW,KAC1B,IAAIE,SAAWD,SAAW,KAC1B,IAAIE,SAAWD,SAAW,KAE1B,GAAK5C,OAAS,GAAOA,MAAQ0C,SAChC,OAAO1C,MAAMV,QAAQmD,WAAa,cAC1B,GAAKzC,OAAS0C,UAAc1C,MAAQ2C,SAC5C,OAAQ3C,MAAQ0C,UAAUpD,QAAQmD,WAAa,WACvC,GAAIzC,OAAS2C,UAAc3C,MAAQ4C,SAC3C,OAAQ5C,MAAQ2C,UAAUrD,QAAQmD,WAAa,WACvC,GAAIzC,OAAS4C,UAAc5C,MAAQ6C,SAC3C,OAAQ7C,MAAQ4C,UAAUtD,QAAQmD,WAAa,WACvC,GAAGzC,OAAS6C,SACpB,OAAQ7C,MAAQ6C,UAAUvD,QAAQmD,WAAa,WAE/C,OAAOzC,MAAMV,QAAQmD,WAAa,SAGnCf,OAAOC,UAAUmB,qBAAuB,WACpC,IAAIC,GAAK3P,KAAKoO,cAEd,GAAIuB,IAAM,OAAWA,IAAM,KAC9B,OAAM,QAEN,OAAO3P,KAAKmO,OAAO,GAAGC,cAAgBpO,KAAKqO,MAAM,IAGlDC,OAAOC,UAAUqB,WAAa,WAC1B,IAAIvK,IAAMrF,KAAKoL,MAAM,KAErB,IAAK,IAAI7J,KAAK8D,IAAK,CACtBA,IAAI9D,GAAK8D,IAAI9D,GAAGmO,uBAGb,OAAOrK,IAAI0B,KAAK,MAGpB,SAASkB,UAAU4H,QAASC,KAAMC,WAChC,GAAGF,SAAWC,KAAM,CAClB,MAAM,oCACD,GAAGD,QAAUC,KAAM,CACxB,MAAO,6BAA+BC,UAAU,YAC3C,CACL,MAAM,qCAIV,SAASC,cAAcC,SACnB,GAAGA,UAAY,KAClBvQ,EAAE,8BAA8BgD,KAAK,MAAM4G,YAAY,YAAY5G,KAAK,KAAKY,KAAK,cAAe,YAEjG5D,EAAE,8BAA8BgD,KAAK,MAAM2G,SAAS,YAAY3G,KAAK,KAAK7B,WAAW,eAGtF,SAASqP,6BACLxQ,EAAE,UAAU0B,KAAK,WACf1B,EAAEM,MAAMmQ,KAAK,WAAY,QAE3BH,cAAc,OAGlB,SAASI,4BACL1Q,EAAE,UAAU0B,KAAK,WACpB1B,EAAEM,MAAMmQ,KAAK,WAAY,SAEtBH,cAAc,MAGlB,SAASJ,WAAWS,GAChB,OAAOA,GAAKA,EAAE,GAAGjC,cAAgBiC,EAAEhC,MAAM,GAG7C,SAASiC,UAAUC,MACjBA,MAAQ,GACR,IAAIhD,EAAIgD,KAAKnF,MAAM,KACnB,IAAIoF,GAAKjD,EAAE,GACX,IAAIkD,GAAKlD,EAAErN,OAAS,EAAI,IAAMqN,EAAE,GAAK,GACrC,IAAImD,IAAM,eACV,MAAOA,IAAIhG,KAAK8F,IAAK,CACnBA,GAAKA,GAAG/C,QAAQiD,IAAK,KAAO,IAAM,MAEpC,OAAOF,GAAKC,GAGd,SAASpE,WAAWhJ,IAAKqI,MAAOiF,OAC9B,GAAGtN,KAAO,EAAG,OAAQ,EAAGqI,MAAM,IAE9B,IAAInK,EAAIqD,SAASgH,KAAKE,MAAMF,KAAKC,IAAIxI,KAAOuI,KAAKC,IAAI8E,SACrD,GAAIpP,EAAI,GAAKsD,MAAMtD,GAAI,CACrBA,EAAI,OACC,GAAIA,GAAKmK,MAAMxL,OACpBqB,EAAImK,MAAMxL,OAAS,EAErB,OAAQ0L,KAAKG,MAAO1I,IAAMuI,KAAKI,IAAI2E,MAAOpP,GAAM,IAAM,GAAImK,MAAMnK,IAGlE,SAASqP,YAAYvN,KACnB,IAAIqI,OAAS,GAAI,IAAK,IAAK,IAAK,KAChC,GAAGrI,KAAO,EAAG,MAAO,IACpB,GAAIA,IAAM,GAAOA,IAAMkH,wBAA0B,MAAQ,KAAOA,wBAChE,IAAIlF,IAAMgH,WAAWhJ,IAAKqI,MAAO,KAEjC,OAAOE,KAAKG,MAAM1G,IAAI,IAAMA,IAAI,GAGlC,SAASwL,cAAcC,GACrB,OAAOR,UAAUQ,EAAE5E,QAAQ,IAAI,QAGjC,SAAS6E,aAAaD,GACpB,OAAOR,UAAUQ,EAAE5E,QAAQ,IAAI,UAGjC,SAAS8E,YAAYF,GACnB,OAAOR,UAAUQ,EAAE5E,QAAQ,IAAI,SAGjC,SAAS+E,eAAeH,GACtB,OAAOR,UAAUQ,EAAE5E,QAAQ,IAAI,YAGjC,SAASgF,QAAQpG,OACf,UAAS,QAAY,YACnB,MAAO,IAET,GAAGA,OAAS,EAAG,MAAO,OACtB,GAAIA,MAAQ,GAAOA,MAAQP,wBAA0B,MAAQ,KAAOA,wBAA0B,MAC9F,IAAIlF,IAAMgH,WAAWvB,OAAQ,KAAM,KAAM,KAEzC,OAAOzF,IAAI,GAAK,IAAMA,IAAI,GAG5B,SAAS8L,cAAcvE,OACrB,IAAIlB,OAAS,QAAS,KAAM,KAAM,KAAM,MACxC,GAAGkB,OAAS,EAAG,MAAO,UACtB,GAAIA,MAAQ,GAAOA,MAAQrC,wBAA0B,MAAO,KAAOA,wBAA0B,SAC7F,IAAIlF,IAAMgH,WAAWO,MAAOlB,MAAO,MAEnC,OAAO5D,WAAWzC,IAAI,IAAM,IAAMA,IAAI,GAGxC,SAAS+L,sBAAsBxE,OAC7B,IAAIlB,OAAS,QAAS,KAAM,KAAM,KAAM,MACxC,GAAIkB,OAAS,EAAG,MAAO,UACvB,IAAIrL,EAAIqD,SAASgH,KAAKE,MAAMF,KAAKC,IAAIe,OAAShB,KAAKC,IAAI,QACvD,QAAUe,MAAQhB,KAAKI,IAAI,KAAMzK,IAAI2K,QAAQ,GAAIR,MAAMnK,IAGzD,SAAS8P,WAAW5F,KAAM6F,QACxBA,OAASA,QAAU,IACnB,IAAI5F,OAAS,QAAS,SAAU,SAAU,SAAU,UACpD,GAAID,MAAQ,EAAG,MAAO,QACtB,GAAKA,KAAO,GAAOA,KAAOlB,wBAA0B,MAAO,KAAOA,wBAA0B,OAC5F,IAAIlF,IAAMgH,WAAWZ,KAAMC,MAAO4F,QAElC,OAAOjM,IAAI,GAAG6G,QAAQ,GAAK,IAAM7G,IAAI,GAGvC,SAASkM,cAAcC,SACpB,GAAGA,QAAU,EAAG,CACb,MAAM,UAGT,IAAIC,KAAO7F,KAAKE,MAAM0F,QAAU,OAChC,IAAIE,MAAS9F,KAAKE,MAAO0F,QAAU,KAASC,KAAO,IACnD,IAAIE,QAAU/F,KAAKE,MAAO0F,QAAU,GAAOC,KAAO,KAASC,MAAQ,IACnE,IAAIE,IAAMJ,QAAU,GACpB,IAAIK,IAAM,GAAIC,aAEd,GAAGL,KAAO,EAAG,CACVM,MAAQnG,KAAKE,MAAM2F,KAAK,KAExB,GAAGM,MAAQ,EAAG,CAClBN,KAAOA,KAAO,IAEdI,IAAME,MAAQ,QACd,GAAGA,MAAQ,EAAG,CACXF,KAAO,IAGHC,UAAUjO,KAAKgO,KACfA,IAAM,GAETA,IAAMJ,KAAO,OACb,GAAGA,KAAO,EAAG,CAAEI,KAAO,IACtBC,UAAUjO,KAAKgO,KACfA,IAAM,GAGR,GAAGH,MAAQ,EAAG,CACjB,GAAGA,MAAQ,GAAI,CAAEG,IAAM,IACvBA,KAAOH,MAAQ,IAGZ,GAAGC,QAAU,GAAI,CAAEE,KAAO,IAC1BA,KAAOF,QAAU,IACjB,GAAGC,IAAM,GAAI,CAAEC,KAAO,IACtBA,KAAOD,IACPE,UAAUjO,KAAKgO,KAEhB,OAAOC,UAAU/K,KAAK,MAGzBiH,KAAKO,UAAUyD,OAAS,SAASA,QAC/B,IAAI9I,GACD+I,KAAOjS,KAAKkS,WAAW,EACvBC,KAAOnS,KAAKoS,UACZC,KAAOrS,KAAKsS,WACZC,KAAOvS,KAAKwS,aACZC,KAAOzS,KAAK0S,aACZC,KAAO/G,KAAKE,OAAO9L,KAAKkS,WAAW,GAAG,GACtCU,EAAM5S,KAAK6S,mBAGd,GAAG,OAAOnI,KAAKsH,QAASA,OAAOA,OAAOvE,QAAQqF,OAAOC,IAChD/S,KAAKgT,cAAc,IAAIC,OAAO,EAAIH,OAAOC,GAAG7S,SACjD,IAAI,IAAIgT,KAAKhK,EAAE,GAAG,IAAI4J,OAAO,IAAKI,EAAG,KAAKxI,KAAKsH,QAC7CA,OAASA,OAAOvE,QAAQqF,OAAOC,GAC5BD,OAAOC,GAAG7S,QAAQ,EAAIgJ,EAAEgK,IACvB,KAAMhK,EAAEgK,IAAID,QAAQ,GAAI/J,EAAEgK,IAAIhT,SACpC,OAAO8R,QAIT,SAASmB,WAAWrF,OAElB,IAAIC,EAAI,IAAIC,KAAKF,MAAM,KACvB,IAAIsF,MAAQxH,KAAKE,OAAO,IAAKkC,MAAQqF,UAAU,IAAMvF,OAErD,OAAOC,EAAEiE,OAAO,uBAAuB,KAAKT,cAAc6B,OAAO,QAInE,SAASE,yBAAyBC,YAChC,IAAIC,WAEH,GAAGD,YAAc,MAAO,CACrBC,WAAa,gBACT,GAAGD,YAAc,EAAE,MAAO,CAC9BC,WAAa,sBACT,CACJA,WAAa,QAGhB,OAAM,WAGT,SAASnR,aAAaoR,SAAUC,UAC5B,OAAOhU,EAAEyJ,UAAWsK,SAAUC,UAGlC,SAASC,aAAapT,KAAMsG,QACxBtG,KAAOb,EAAEa,MAET,IAAK,IAAI2S,KAAKrM,OAAQ,CAClB,GAAIA,OAAO+M,eAAeV,GAAI,CAC1B,IAAI5I,MAAQ5K,EAAE,8BAAgCwT,EAAI,YAAcrM,OAAOqM,GAAK,MAC5E5I,MAAMuJ,SAAStT,OAIvB,OAAOA,KAeX,SAASuT,kBAAkBjN,QACxB,IAAItF,EAAE,EACN,IAAI8D,OAEJ,IAAK,IAAI6N,KAAKrM,OAAQ,CACnBxB,IAAI,OAAS9D,GAAK2R,EAClB7N,IAAI,OAAS9D,GAAKsF,OAAOqM,GACzB3R,EAAIA,EAAE,EAGT,OAAO8D,IAIV0O,OAAOC,GAAG7K,QACN8K,QAAS,SAASC,OACd,OAAOlU,KAAKoB,KAAK,WACb,IAAI+S,MAAQzU,EAAEM,MACd,GAAGmU,MAAMrK,GAAG,mCACV9J,KAAKoU,SAAWF,WAEhBC,MAAME,YAAY,WAAYH,YAK5C,SAASI,iBAAiBC,UACtB,IAAIC,KACJ,IAAIC,YAEJF,SAAWA,SAAS9G,QAAQ,QAAS,KACrC8G,SAAWA,SAAS9G,QAAQ,OAAQ,KACpC8G,SAAWA,SAAS9G,QAAQ,MAAO,KAEnC+G,KAAOD,SAASnJ,MAAM,KACtB,OAAM,KAGV,SAASsJ,iBAAiBC,WAAYC,aACnClV,EAAE,IAAKiV,YAAYE,MAAM,SAASC,GAChCA,EAAEC,mBAIJrV,EAAE,YAAaiV,YAAYzQ,GAAG,eAAgB,SAAS4Q,GACpD,IAAIE,GAAKtV,EAAEoV,EAAEG,QAAQ3R,KAAK,QAAQ2P,OAAO,GACzC,GAAGiC,QAAQC,aAAc,CAEtBD,QAAQC,aAAa,KAAM,KAAM,IAAIH,QACjC,CAEJ/T,OAAOmU,SAASC,KAAOL,MAK7B,IAAIK,KAAOpU,OAAOmU,SAASC,KAC3B,IAAMA,KAAMA,KAAO,IAAMT,YACzBlV,EAAE,WAAa2V,KAAO,KAAMV,YAAYW,IAAI,QAI/ChH,OAAOC,UAAUgH,QAAU,WACzB,IAAIC,KAAOC,UACX,OAAOzV,KAAKyN,QAAQ,WAAY,SAASiI,MAAOC,QAC9C,cAAcH,KAAKG,SAAW,YAC1BH,KAAKG,QACLD,SAKR,UAAWpH,OAAOC,UAAkB,WAAM,YAAa,CACrDD,OAAOC,UAAUqH,SAAW,SAASvF,GACnC,OAAOrQ,KAAKyO,QAAQ4B,MAAQ,GAIhC,SAASwF,oBAAoBtV,KAAMsO,KAAMvJ,MACvC5F,EAAE,WAAW4D,MACX8E,KAAM,SACN4M,GAAInG,KACJA,KAAMA,KACN/D,MAAOxF,OACNuO,SAAStT,MAId,SAASuV,iCAAiCC,aACxC,OAAO,SAASxV,KAAM+E,MACpB,GAAIA,KAAK8C,MAAQ,MAAO,CACtB7H,KAAK+C,KAAK,SAAUyS,YAAc,6BAC7B,GAAIzQ,KAAK8C,MAAQ,UAAW,CACjC7H,KAAK+C,KAAK,SAAUyS,YAAc,wBAClCF,oBAAoBtV,KAAM,UAAW+E,KAAK0Q,cACrC,GAAI1Q,KAAK8C,MAAQ,OAAQ,CAC9B7H,KAAK+C,KAAK,SAAUyS,YAAc,kDAClCF,oBAAoBtV,KAAM,gBAAiB+E,KAAK2Q,eAChDJ,oBAAoBtV,KAAM,OAAQ,gBAC7B,GAAI+E,KAAK8C,MAAQ,cAAe,CACrC7H,KAAK+C,KAAK,SAAUyS,YAAc,oDAC7B,GAAIzQ,KAAK8C,MAAQ,MAAO,CAC7B7H,KAAK+C,KAAK,SAAUyS,YAAc,wBAClCF,oBAAoBtV,KAAM,MAAO+E,KAAK4Q,SACjC,CACL3V,KAAK+C,KAAK,SAAUyS,YAAc,yBAGpC,OAAO,MAIX,SAASI,mBAAmBC,SAAUpE,OAAQoB,OAC5CA,MAAQA,OAAS,EACjB,IAAIiD,UAAYzR,SAASwR,SAASjW,QAAUiT,MAC5C,IAAIkD,UAAYC,GAAGC,KAAKxE,OAAOA,OAAfuE,CAAuB,IAAIvI,KAAKqI,UAAU,MAC1DD,SAASjW,KAAKmW,WAAWhN,YAAY,UACrC,OAAOgN,UAGT,SAASG,OAAOpG,GACd,OAAOA,EAAE5C,QAAQ,WAAY,IAG/B,SAASiJ,mBAAmBC,MAE1B,OAAOA,KACJlJ,QAAQ,eAAgB,IACxBA,QAAQ,gBAAiB,IAEzBA,QAAQ,WAAY,IAEpBA,QAAQ,wBAAyB,IAItC,SAASmJ,WAAWC,aAClB,IAAIC,SACJ,IAAIC,OAASF,YAAY,KAAO,IAAMA,YAAY5D,OAAO,GAAK4D,aAAazL,MAAM,KACjF,IAAK,IAAI7J,EAAI,EAAGA,EAAIwV,MAAM7W,OAAQqB,IAAK,CACrC,IAAIyV,KAAOD,MAAMxV,GAAG6J,MAAM,KAC1B0L,MAAMG,mBAAmBD,KAAK,KAAOC,mBAAmBD,KAAK,IAAM,IAErE,OAAOF,MAGT,SAASI,qBAAqBrQ,QAC5B,IAAIsQ,WAAaP,WAAW3V,OAAOmU,SAASrG,QAC5C,IAAIqI,WAAa1X,EAAEyJ,OAAOgO,WAAYtQ,QACtC,IAAIwQ,UAAY,IAAM3X,EAAE4X,MAAMF,WAAY,MAC1C,IAAIG,SAAWnC,SAASoC,SAAU,KAAMpC,SAASuB,KAAMvB,SAASqC,UAAU1Q,KAAK,IAE/E,OAAOwQ,QAAUF,UCxrBnB,IAAIK,kBACJ,IAAIC,gBACJ,IAAIC,cAEJ,SAASC,cAAcC,gBAAiBC,cAAeC,aACrDN,eAAiBI,gBACjBH,aAAeI,cACfH,WAAaI,YAGf,SAASC,cAAcC,OAAQC,MAAOC,cAAeC,aACnD,IAAIC,WAAaH,MAAMzW,MACvB,IAAI6W,UAAYZ,aAAaW,YAE7B,GAAGF,eAAiBA,cAAcI,gBAAkBJ,cAAcI,eAAeH,aAC/E,OAAOD,cAAcI,eAAeH,aAEtC,GAAIH,QAAU,qBAAyBA,QAAU,sBAAwB,CACvE,GAAGC,MAAMM,UACP,OAAON,MAAMM,eAEb,OAAON,MAAMO,KAAK/B,UACf,GAAGuB,OAAO1J,WAAW,QAAS,CACnC,GAAG2J,MAAMO,KAAKlB,SACZ,OAAOW,MAAMO,KAAKlB,cACf,GAAGW,MAAMO,KAAKC,SACjB,OAAOR,MAAMO,KAAKC,cACf,GAAGR,MAAMO,KAAKE,QACjB,OAAOT,MAAMO,KAAKE,aACf,GAAGT,MAAMO,KAAKG,QAAUV,MAAMO,KAAKI,SAAU,CAChD,GAAGX,MAAMM,WAAa,GAClB,OAAON,MAAMM,eAEb,MAAO,IAAMN,MAAMO,KAAKI,SAAW,SAClC,GAAGX,MAAMO,KAAKG,QAAUV,MAAMO,KAAKK,KACxC,OAAOZ,MAAMO,KAAKK,UACf,GAAGZ,MAAMO,KAAKM,UAAYb,MAAMO,KAAKO,OACxC,OAAOd,MAAMO,KAAKO,YACf,GAAGd,MAAMO,KAAKQ,QACf,OAAOf,MAAMO,KAAKQ,aACjB,GAAGf,MAAMO,KAAKS,YACjB,OAAOhB,MAAMO,KAAKS,iBACf,GAAGhB,MAAMO,KAAKU,QACjB,OAAOjB,MAAMO,KAAKU,QAAQjK,UAAU,GAAGf,mBACpC,GAAGkK,YAAc,QAAS,CAC/B,GAAGH,MAAMO,KAAKlB,SACZ,OAAOW,MAAMO,KAAKlB,SAAW,KAAOe,UAAY,SAC7C,GAAGJ,MAAMO,KAAKC,SACjB,OAAOR,MAAMO,KAAKC,SAAW,KAAOJ,UAAY,SAC7C,GAAGJ,MAAMO,KAAKG,QAAUV,MAAMO,KAAKI,SACtC,OAAOX,MAAMM,UAAY,KAAOF,UAAY,SACzC,GAAGJ,MAAMO,KAAKG,QAAUV,MAAMO,KAAKK,KACtC,OAAOZ,MAAMO,KAAKK,KAAO,KAAOR,UAAY,QACzC,CACH,GAAGJ,MAAMO,KAAKlB,SACZ,OAAOW,MAAMO,KAAKlB,cACf,GAAGW,MAAMO,KAAKC,SACjB,OAAOR,MAAMO,KAAKC,cACf,GAAGR,MAAMO,KAAKQ,QACjB,OAAOf,MAAMO,KAAKQ,aACf,GAAGZ,YAAc,QAAS,CAC7B,GAAGJ,OAAOtC,SAAS,UACjB,OAAOgC,WAAWyB,oBAElB,OAAOzB,WAAW0B,SAI1B,GAAG5B,eAAeQ,QAChB,OAAOjK,sBAAsByJ,eAAeQ,SAE9C,GAAGK,UACD,OAAOtK,sBAAsBsK,WAG/B,OAAOtK,sBAAsBqK,YAI/B,SAASiB,kBAAkBrB,OAAQsB,YAAaC,OAAQC,iBAAkBC,OACxE,GAAGF,QAAUA,OAAOvZ,QAAUuZ,OAAO,GAAG/X,MAAO,CAC7C,GAAGgY,iBAAkB,CACnB,IAAIE,cAEJ,UAAS,kBAAsB,SAC7BF,kBAAoBA,kBAEtB,IAAI,IAAInY,EAAE,EAAGA,EAAEmY,iBAAiBxZ,OAAQqB,IAAK,CAE3C,IAAIyS,GAAK/S,OAAOyY,iBAAiBnY,IAEjC,UAAUyS,KAAO,WACfjM,QAAQ8R,MAAM,uCAA0CH,iBAAmB,KAC7EE,WAAWrY,GAAKyS,GAGlB,OAAM,WAGR,IAAItS,MAAQ+X,OAAO,GAAG/X,MAEtB,GAAGA,MAAMkU,SAAS,SAAU,CAC1B,GAAGsC,OAAOtC,SAAS,WAAasC,OAAOtC,SAAS,WAAasC,OAAOtC,SAAS,QAC3E,OAAQxG,YAAaA,kBAErB,OAAQzC,iBAAkByC,kBACvB,GAAG1N,MAAMkU,SAAS,WACvB,OAAQ/I,SAAUgE,oBACb,GAAGnP,MAAMkU,SAAS,UACvB,OAAQ7I,QAASgE,mBACd,GAAGrP,MAAMkU,SAAS,SAAU,CAC/B,IAAIkE,WAAeN,cAAgB,WAAetB,SAAW,+BAC7D,OAAQ4B,WAAa9M,OAAS4D,YAAaI,YAAa8I,WAAa9M,OAASgE,kBACzE,GAAGtP,MAAMkU,SAAS,WAAalU,MAAMkU,SAAS,OAAQ,CAC3D,OAAQ1E,QAASA,cACZ,GAAGxP,MAAMkU,SAAS,WAAc4D,cAAgB,UAAY,CACjE,OAAQpM,QAASA,cACZ,GAAG1L,MAAMkU,SAAS,WAAY,CACnC,OAAQjI,SAAUA,WAKtB,GAAGgM,OAAUA,MAAMI,QAAU,EAAI,CAE/B,OAAQrM,OAAQA,QAGlB,OAAQJ,KAAKA,MAGf,SAAS0M,mBAAmBC,OAAQC,MAAOC,IAAK7U,MAC9C,IAAI8U,EAAIH,OACR,IAAII,UAEJ,IAAI,IAAI9Y,EAAE,EAAGA,EAAE4Y,IAAK5Y,IAAK,CACvB8Y,OAAO9Y,IAAM6Y,EAAG9U,MAChB8U,GAAKF,MAGP,OAAOG,OAGT,SAASC,wBAAwBC,YAAaC,MAAOf,QACnD,IAAIgB,GAAK,KAET,IAAI,IAAIlZ,EAAE,EAAGA,EAAEkY,OAAOvZ,OAAQqB,IAAK,CACjC,IAAI+D,KAAOmU,OAAOlY,GAAG+D,KAErB,GAAGA,KAAKpF,OAASsa,MAAO,CACpBzS,QAAQ8R,MAAM,2BAA6B5B,cAAcsC,YAAad,OAAOlY,IAC3E,SAAW+D,KAAKpF,OAAS,qBAAuBsa,OAEpDC,GAAK,WACA,GAAGnV,KAAKpF,OAASsa,MAAO,CAE7Bf,OAAOlY,GAAG+D,KAAOoV,cAAcpV,KAAMkV,QAIzC,OAAOC,GAGT,SAASC,cAAcvC,MAAOwC,YAC5B,GAAGA,YAAcxC,MAAMjY,OACrB,OAAOiY,MAET,IAAI9S,OACJ,IAAIuV,UAAYD,WAAaxC,MAAMjY,OAEnC,SAAS2a,KAAKC,GAAIC,GAAIX,GACpB,OAAQ,EAAIA,GAAKU,GAAKV,EAAIW,GAG5B,IAAI,IAAIxZ,EAAE,EAAGA,EAAEoZ,WAAYpZ,IAAK,CAC9B,IAAIoE,MAAQpE,EAAIqZ,UAChB,IAAII,OAASpP,KAAKE,MAAMnG,OACxB,IAAIsV,OAASrP,KAAKsP,IAAItP,KAAKuP,KAAKxV,OAAQwS,MAAMjY,OAAO,GACrD,IAAIka,EAAIzU,MAAQ,EAChB,IAAIyV,EAAIP,KAAK1C,MAAM6C,QAAS7C,MAAM8C,QAASb,GAG3C/U,IAAIxB,KAAKuX,GAGX,OAAO/V,IAAIgJ,MAAM,EAAGsM,YAItB,SAASU,gBAAgBC,aACvB,IAAI7B,UAEJ,IAAI,IAAIlY,EAAE,EAAGA,EAAE+Z,YAAYpb,OAAQqB,IACjCkY,OAAO5V,KAAKyX,YAAY/Z,GAAG+D,MAE7B,OAAOiR,GAAGgF,UAAU9B,QAAQ+B,IAAI,SAASjO,GACvC,OAAOA,EAAEiO,IAAI,SAASC,GACpB,OAAOA,MAERD,IAAI,SAASjO,GAAI,OAAOgJ,GAAGmF,IAAInO,KAGpC,SAASoO,eAAeC,WAAYC,MAAOC,MACzC,IAAIzB,UACJ,IAAID,EAAIyB,MAER,IAAI,IAAIta,EAAE,EAAGA,EAAEqa,WAAW1b,OAAQqB,IAAK,CACrC8Y,OAAO9Y,IAAM6Y,EAAGwB,WAAWra,IAC3B6Y,GAAK0B,KAGP,OAAOzB,OAIT,SAAS0B,gBAAgBC,YAAaC,cACpC,GAAGD,YAAY9b,SAAW+b,aAAa/b,OAAQ,CAC7C6H,QAAQC,KAAK,iCAAmCgU,YAAY9b,OAAS,OAAS+b,aAAa/b,QAC3F,OAGF,IAAImF,OACJ,IAAI0U,QAAU,EAEd,IAAI,IAAIxY,EAAE,EAAGA,EAAEya,YAAY9b,OAAQqB,IAAK,CACtC,IAAIuJ,MAAQc,KAAKsQ,IAAI,EAAGF,YAAYza,GAAK0a,aAAa1a,IACtDwY,QAAUnO,KAAKsQ,IAAInC,QAASjP,OAE5BzF,IAAIxB,KAAKiH,OAGX,GAAGiP,QAAU,GACX,OAAO1U,IAGX,SAAS8W,eAAeC,WAAYC,SAAUP,MAC5C,IAAIQ,OAEJ,IAAI,IAAIlC,EAAEgC,WAAYhC,EAAEiC,SAAUjC,GAAG0B,KACnCQ,IAAIzY,KAAKuW,GAEX,OAAOkC,IAGT,SAASC,aAAaC,MAAO3V,OAAQ4V,WAAYC,aAC/C,IAAInJ,WAAc1M,OAAO8V,UAAY9V,OAAO+V,YAC5C,IAAIC,MAAOC,MAAOC,UAAWC,WAAYC,IAAM,WAK/C,IAAIC,eAED,GAAI,EAAG,WAAY,EAAG,IACtB,GAAI,EAAG,WAAY,EAAG,IACtB,IAAK,EAAG,WAAY,GAAI,KACxB,IAAK,EAAG,WAAY,GAAI,KACxB,IAAK,EAAG,WAAY,GAAI,KACxB,KAAM,EAAG,WAAY,GAAI,MACzB,KAAM,GAAI,WAAY,GAAI,MAC1B,KAAM,GAAI,QAAS,IAAK,MACxB,MAAO,GAAI,QAAS,IAAK,MACzB,MAAO,GAAI,QAAS,KAAM,OAC1B,MAAO,IAAK,QAAS,KAAM,OAC3B,MAAO,IAAK,QAAS,KAAM,OAC3B,OAAQ,IAAK,YAAa,KAAM,QAChC,OAAQ,KAAM,WAAY,MAAO,QACjC,QAAS,KAAM,WAAY,MAAO,SAClC,QAAS,KAAM,WAAY,MAAO,SAClC,QAAU,MAAO,WAAY,QAAS,SACtC,SAAU,MAAO,WAAY,QAAS,UAGzC,IAAI,IAAI3b,EAAE,EAAGA,EAAE2b,aAAahd,OAAQqB,IAAK,CACvC,IAAI4b,MAAQD,aAAa3b,GAEzB,GAAGgS,YAAc4J,MAAM,GAAI,CACzBN,MAAQM,MAAM,GACdH,WAAaG,MAAM,GACnBF,IAAME,MAAM,GACZL,MAAQK,MAAM,GACdJ,UAAYI,MAAM,GAClB,OAIJH,WAAapR,KAAKsQ,IAAIQ,YAAaM,YAEnC,GAAGF,MAAO,CACRA,MAASL,YAAeI,OAAS,MAAyEjR,KAAKsQ,IAAIY,MAAOL,YAAc,EACxI5V,OAAO+V,aAAe/V,OAAO+V,YAAcE,MAC3CjW,OAAO8V,WAAa9V,OAAO8V,UAAYG,MACvCvJ,WAAc1M,OAAO8V,UAAY9V,OAAO+V,YACxC/V,OAAOuW,MAAQxR,KAAKuP,KAAK5H,WAAayJ,YAGtCnW,OAAO8V,WAAa/Q,KAAKuP,KAAK5H,WAAa1M,OAAOuW,OAASvW,OAAOuW,MAAQ7J,WAC1EiJ,MAAMM,MAAQA,MACdN,MAAMO,UAAYA,eAElBP,MAAMO,UAAY,KAEpBP,MAAMa,MAAQJ,IAGhB,SAASK,eAAeC,SAAUtD,QAChC,UAAUuD,kBAAoB,SAAU,CACtC,GAAGA,gBAAgBD,UAAW,CAC5B,IAAIE,UAAYD,gBAAgBD,UAAUE,UAE1C,GAAGA,UAAW,CACZ,IAAIC,OAAS1P,KAAK2P,MAAQ,IAC1B,IAAIC,MAAQF,OAASzD,OAErB,IAAI,IAAI1Y,EAAE,EAAGA,EAAEkc,UAAUvd,OAAQqB,IAAK,CACpC,IAAIsc,QAAUN,SAAWE,UAAUlc,GAAGuc,eACtC,IAAIC,OAASF,QAAUJ,UAAUlc,GAAGyc,aACpCJ,OAASG,OAET,GAAGH,OAAS,EACV,OAAOC,WAKjB,OAAON,SAGT,SAASU,mBACP,cAAcrH,WAAW3V,OAAOmU,SAASrG,QAAQ6N,cAAgB,YAGnE,IAAIsB,mBAAsBhJ,QAAa,MAAKA,QAAQhB,MAAgB,WAAI,EAExE,SAASiK,oBAAoBvB,YAAaD,WACxC,IAAIyB,cAAgB1e,EAAE,wBAAwB4F,KAAK,YACnD,IAAI+Y,iBAAmB1B,UAAYC,YACnC,OAAOwB,eAAiBC,iBAG1B,SAASC,eAAe1B,YAAaD,WACnC,IAAI4B,SAAW7e,EAAE,wBAAwB4F,KAAK,YAC9C,IAAIqX,UAAY4B,UAAU,IAAO7e,EAAEie,MACjCje,EAAE,wBAAwB2J,SAAS,iBAEnC3J,EAAE,wBAAwB4J,YAAY,YAG1C,SAASkV,gBACP9e,EAAE,qBAAqB+e,OAGzB,SAASC,gBACPhf,EAAE,qBAAqBif,OAGzB,SAASC,eAAenF,QACtB,OAAOA,OAAOoF,OAAO,SAASC,IAAKvR,GACjC,OAAOuR,IAAMvR,EAAE8M,OAAOwE,OACpB,SAASC,IAAKC,IACZ,OAAOD,IAAMC,GAAG,IAAM,GACrB,IAEJ,GAIL,SAASC,2BAA2BxC,MAAOjC,YAAa0E,SAAUC,cAAerY,OAAQiV,KAC/EtC,YAAaiD,WAAY0C,gBAAiBC,cAAeC,gBACjE,IAAIC,sBAAwB,KAC5B,IAAIC,sBAAwB,KAC5B,IAAIC,OAASjJ,GAAGtS,OAAOgb,UACvB,IAAIQ,OAAS/f,EAAEuf,UACf,IAAIS,YAAchgB,EAAEwf,eACpB,IAAIS,YAAcjgB,EAAE,eACpB,IAAIkgB,aAAetC,eAAexB,KAAMjV,OAAO+V,aAAe,EAC9D,IAAIiD,iBAAoBhZ,OAAO8V,UAAY9V,OAAO+V,YAClD,IAAIkD,YAAeD,kBAAoBD,aACvC,IAAI5Y,IAAM+O,YAAc,kCACxB,IAAI9O,WAAa,KACjB,IAAI8Y,kBAAoB,KACxB,IAAIC,yBAA2B,MAC/B,IAAIC,gBAAkB,sBACtB,IAAIC,qBAAuB,EAC3B,IAAIC,YAAc,KAClB,IAAIC,0BAA4B,EAChC,IAAIC,gBAAkB,EACtB,IAAIC,kBAAoB,MACxB9D,MAAM+D,UAAcrC,mBAAqB,GAAMD,mBAG/C,IAAIuC,QAAU9gB,EAAE,sEAChB+f,OAAOjf,SAASP,IAAI,WAAY,YAEhC,IAAIwgB,mBACF,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGF,IAAIC,kBAAoB,UAAW,UAAW,WAG9C,IAAIC,aAAe,KACnB,IAAIC,aAAe,KACnB,IAAIC,UAAY,KAChB,IAAIC,UAAY,KAChB,IAAIC,UAAY,KAEhB,IAAIC,kBAAoB,SAASC,UAE/BzB,OAAO0B,UAAUC,KAAK3E,OACtBgD,OAAO0B,MAAMD,UAMbzB,OAAO4B,aAAa7C,SAAS,KAAK4C,KAAK3E,OAEvC,GAAGuE,UAAW,CACZJ,aAAenE,MAAM6E,OAAOC,QAC5BV,aAAepE,MAAM+E,OAAOD,QAC5BT,UAAYrE,MAAMgF,WAClBV,UAAYtE,MAAMiF,WAClBV,UAAY,MAGd,GAAGvH,cAAgB,QAAS,CAC1B,IAAIkI,cAAgBlF,MAAM6E,OAAO1Q,QAAQgR,SACzC,IAAIC,cAAgBpF,MAAM+E,OAAO5Q,QAAQgR,SAEzCD,cAAgBA,cAAc,GAAKA,cAAc,GACjDE,cAAgBA,cAAc,GAAKA,cAAc,GASjD,GAAGpF,MAAM6E,OAAO7N,cAAgB9F,OAC9B8O,MAAM6E,OAAOC,MAAM1V,KAAKsP,IAAIwG,cAAef,eAC7C,GAAGnE,MAAM+E,OAAO/N,cAAgB9F,OAC9B8O,MAAM+E,OAAOD,MAAM1V,KAAKsP,IAAI0G,cAAehB,eAG/C,IAAIiB,OAASjD,eAAeqC,SAASlhB,OAAO,SAASwN,GAAK,OAAOA,EAAEuU,OAAS,KAC5E,IAAIC,OAASnD,eAAeqC,SAASlhB,OAAO,SAASwN,GAAK,OAAOA,EAAEuU,OAAS,KAG5E,GAAGD,QAAU,EACXrF,MAAMgF,UAAU,EAAG,SAEnBhF,MAAMgF,SAASX,WAEjB,GAAGkB,QAAU,EACXvF,MAAMiF,UAAU,EAAG,SAEnBjF,MAAMiF,SAASX,WAGjBtB,OAAO2B,KAAK3E,OACZwF,GAAGC,MAAMC,aAAa1F,MAAM2F,QAC5B3B,QAAQ7gB,UAGV,SAASyiB,iBAAiB7a,IAAK8a,aAC7B,UAAUC,eAAiB,YAAa,CACtC,IAAIjf,IAAMif,aAAaC,QAAQ,yBAA2Bhb,KAE1D,GAAGlE,KAAO,KACR,OAAOA,MAAQ,OAGnB,OAAOgf,YAGT7F,MAAMgG,OAAOC,SAASve,GAAG,cAAe,SAAS6J,EAAExM,GACjD,GAAGwM,EAAE2U,WAAWjU,QAAQ,SAAW,EACjCuR,yBAA2B,KAE7B,UAAUsC,eAAiB,YACzBA,aAAaK,QAAQ,yBAA2B5U,EAAE2U,YAAc3U,EAAEqG,SAAY,KAAO,SAGzFoI,MAAMiG,SAASve,GAAG,OAAQ,SAAS4Q,GACjC,IAAI8N,UAAY/b,OAAO+V,YAAa/V,OAAO8V,WAC3C,IAAIkG,QAAUjX,KAAKE,MAAMgJ,EAAEgO,QAAQ,IACnC,IAAIC,MAAQnX,KAAKuP,KAAKrG,EAAEgO,QAAQ,IAChC,IAAIE,WAAaxG,MAAM+D,UACvB,IAAI0C,oBAAuBnO,EAAEmO,eAAiB,YAAenO,EAAEmO,aAAe,KAC9EzG,MAAM+D,UAAY,KAElB,GAAG/D,MAAM0G,mBAAmBL,QAASE,MAAO,MAAOE,cAAe,CAChE,GAAGA,cAAgBnO,EAAEqO,WAAY,CAE/BjF,oBAAsB,EACtB,IAAIlX,IAAMkQ,sBAAsB0F,YAAaiG,QAASlG,UAAWoG,QACjE7N,QAAQkO,WAAWC,WAAYnF,mBAAoBf,OAAQ0F,QAASE,QAAS,GAAI/b,KAGnFwV,MAAM8G,uBAEN9G,MAAM+D,UAAYyC,aAGtB,SAASO,WAAWC,KAAMP,aAAcQ,OACtC,IAAIZ,QAAUW,KAAK,GACnB,IAAIT,MAAQS,KAAK,GAEjBhH,MAAM0G,mBAAmBL,QAASE,MAAO,MAAOE,aAAc,KAAMQ,OACpEjH,MAAM8G,kBAGR9G,MAAMkH,QAAU,WACd,IAAIC,aAAe9c,OAAO8V,UAAY9V,OAAO+V,YAE7C,GAAG+G,aAAe,GAAI,CACpB,IAAI/F,MAAQ+F,aAAa,EACzBjkB,EAAE,iBAAiB4F,KAAK,kBAAkBse,KAAK,IAAI5V,MAAMnH,OAAO+V,YAAcgB,OAAS,MACvFle,EAAE,eAAe4F,KAAK,kBAAkBse,KAAK,IAAI5V,MAAMnH,OAAO8V,UAAYiB,OAAS,MACnFiG,2BAIJrH,MAAMsH,SAAW,WACf,IAAIH,aAAe9c,OAAO8V,UAAY9V,OAAO+V,YAS7C,IAAIgB,MAAQ+F,aAAa,EAIzBjkB,EAAE,iBAAiB4F,KAAK,kBAAkBse,KAAK,IAAI5V,MAAMnH,OAAO+V,YAAcgB,OAAS,MACvFle,EAAE,eAAe4F,KAAK,kBAAkBse,KAAK,IAAI5V,MAAMnH,OAAO8V,UAAYiB,OAAS,MACnFiG,0BAIFpE,OAAOvb,GAAG,WAAY,SAAS6f,OAC7B,GAAGrkB,EAAEqkB,MAAM9O,QAAQhQ,SAAS,kBAE1B,OAEFuX,MAAMsH,aAGRpE,YAAYxb,GAAG,QAAS,WACtB,GAAGga,mBAAoB,CAErBhJ,QAAQ8O,IAAI9F,uBAIhBjd,OAAOgjB,iBAAiB,WAAY,SAASnP,GAC3C,IAAI0O,KAAOpE,cAGX,GAAGtK,EAAEZ,MAAO,CACVsP,KAAO1O,EAAEZ,MAAMiJ,MACfe,mBAAqBpJ,EAAEZ,MAAMmP,gBAE7BnF,mBAAqB,EAEvBqF,WAAWC,KAAM,KAAM,QAGzBhH,MAAM8G,gBAAkB,WACtB,GAAIpF,mBAAqB,GAAMD,mBAAoB,CACjD0B,YAAYjd,KAAK,sCACd2G,SAAS,oBACTC,YAAY,eACfqW,YAAYjd,KAAK,oBAAoBzC,IAAI,aAAc,WAEvD,IAAIikB,UAAYvE,YAAYjd,KAAK,0BACjC,IAAId,KAAOsiB,UAAU7gB,MAAMoK,QAAQ,kBAAmB,IACtD7L,MAAQ,gBAAkBiF,OAAO+V,YAAc,cAAgB/V,OAAO8V,UACtEuH,UAAU7gB,IAAIzB,UACT,CACL+d,YAAYjd,KAAK,qBACd2G,SAAS,eACZsW,YAAYjd,KAAK,oBAAoBzC,IAAI,aAAc,UACvDuc,MAAM+D,UAAY,MAGpBjC,eAAezX,OAAO+V,YAAa/V,OAAO8V,WAE1C,GAAGuB,mBAAqB,EACtBwB,YAAYjB,YAEZiB,YAAYf,QAGhB,SAASwF,sBACP,IAAIC,SAAW1kB,EAAE,iBACjB,IAAI2kB,iBAAoBhF,gBAAmB3f,EAAE,iBAAiBO,IAAI,aAAe,OAAW,EAAI,EAEhGogB,iBAAmB,EAEnB,GAAGA,iBAAmBgE,iBAAkB,CACtC,GAAGlE,YAAa,CACd7Z,cAAc6Z,aACdA,YAAc,KAGhBzB,iBAIJlC,MAAM8H,gBAAkB,WACtB,OAAOhE,mBAGT9D,MAAM+H,WAAa,WACjBjE,kBAAoB,KAEpB,GAAGhB,sBAAuB,CACxBA,sBAAsB9Y,QACtBgW,MAAMgI,OAAO/X,KAAK6T,mBAClBU,sBAGF,GAAGzB,sBACDA,sBAAsB/Y,QAExB,GAAG2Z,YAAa,CACd7Z,cAAc6Z,aACdA,YAAc,KAGhBzB,iBAGFlC,MAAMiI,sBAAwB,WAC5BN,sBACA5E,sBAAwB,MAG1B/C,MAAMkI,WAAa,WACjB,IAAIC,YAAc5Q,OAAO5K,UAAWtC,eAC7B8d,YAAYnB,YACZmB,YAAYC,WACnBD,YAAYE,SAAW,EACvB,OAAO7d,IAAM,IAAMtH,EAAE4X,MAAMqN,YAAa,OAG1C,IAAIG,UAAWC,QAASC,aAGxBxI,MAAM0G,mBAAqB,SAAUjJ,OAAQgL,KAAMC,WAAYjC,aAAckC,iBAAkBC,cAC7F,GAAGnL,OAAQpT,OAAO+V,YAAc3C,OAChC,GAAGgL,KAAMpe,OAAO8V,UAAYsI,KAE5B,IAAItB,aAAgB9c,OAAO8V,UAAY9V,OAAO+V,YAC9C,IAAIF,YAAcY,eAAexB,KAAMjV,OAAO+V,aAC9CgD,aAAelD,YAAc,EAE7B,GAAGiH,aAAe/D,aAAc,CAC9B,GAAIE,aAAgB6D,aAAeqB,eAAmBI,aAAc,CAClEJ,aAAerB,aACf,OAAO,MAGT,IAAIyB,aAAc,CAEhB,IAAItX,MAAQjH,OAAO+V,aAAe/V,OAAO8V,UAAY9V,OAAO+V,aAAe,EAC3E,IAAIyI,QAAUzZ,KAAKE,MAAMgC,MAAQ8R,aAAe,GAEhD,GAAGyF,QAAU,KAAQrX,KAAK2P,MAAO,CAE/B9W,OAAO+V,YAAc/V,OAAO8V,UAAYiD,iBACnC,CACL/Y,OAAO+V,YAAchR,KAAKE,MAAMgC,MAAQ8R,aAAe,GACvD/Y,OAAO8V,UAAY/Q,KAAKE,MAAMgC,MAAQ8R,aAAe,GAGvDE,YAAc,KACdtD,MAAM8I,SAAS,YAEZ,GAAI3B,aAAe/D,aAAc,CACtCE,YAAc,MACdtD,MAAM8I,SAAS,KAGjBN,aAAerB,aAEf,IAAI1c,YAAcgX,oBAAsBmH,aACtC3I,WAAa,KACfF,aAAaC,MAAO3V,OAAQ4V,WAAYC,aAExC,GAAGzV,WACDmY,eAAiBvY,OAAO+V,YAAa/V,OAAO8V,WAE9C,GAAImI,WAAaje,OAAO+V,aAAiBmI,SAAWle,OAAO8V,YAAgByI,aACzE,OAAO,MAETN,UAAYje,OAAO+V,YACnBmI,QAAUle,OAAO8V,UAEjB,GAAG4C,sBACDA,sBAAsB/Y,QAExB,GAAG8Y,sBACDA,sBAAsB9Y,aACnB,IAAI0e,WACP1E,QAAQ3M,SAAS4L,OAAOjf,UAG1Bd,EAAE,iBAAiB4F,KAAK,kBAAkBse,KAAK,IAAI5V,KAAKnH,OAAO+V,YAAc,MAC5Eld,EAAE,eAAe4F,KAAK,kBAAkBse,KAAK,IAAI5V,KAAKpC,KAAKsP,IAAIrU,OAAO8V,UAAY,IAAMjd,EAAEie,SAE3F,GAAGwC,YACD7Z,cAAc6Z,aAEhBA,YAAcjY,YAAYsW,cAAe4B,0BAA4B,KACrEC,gBAAkB,EAClBC,kBAAoB,MACpB9D,MAAMgI,OAAO/X,KAAK8Y,mBAClB7G,gBAEA,IAAI8G,WAAa9lB,EAAEyJ,UAAWtC,QAE9B,IAAIsX,oBAAoBqH,WAAW5I,YAAa4I,WAAW7I,kBAClD6I,WAAWZ,WAGpBtF,sBAAwB5f,EAAE+lB,IAAIze,IAAKwe,WAAY,SAASlgB,MACtD,GAAGA,MAAQA,KAAKuU,MACd2C,MAAMgI,OAAOlf,KAAKuU,OAEpB,IAAIvU,OAASA,KAAKmU,SAAWnU,KAAKmU,OAAOvZ,SAAWoa,wBAAwBC,YAAajV,KAAKkV,MAAOlV,KAAKmU,QAAS,CACjHuH,sBACA,OAIF,IAAIjE,UAAYnR,KAAKuP,KAAKqB,MAAMO,UAAYzX,KAAKwW,MAAQxW,KAAKwW,KAC9DU,MAAMkJ,MAAMC,WAAWxJ,eAAe7W,KAAKuW,MAAOvW,KAAKuW,MAAQvW,KAAKkV,MAAQlV,KAAKwW,KAAMiB,YACvFP,MAAMkJ,MAAMlS,WAAW,SAASzF,GAAK,OAAOwI,GAAGC,KAAKxE,OAAOwK,MAAMa,MAArB9G,CAA4B,IAAIvI,KAAKD,EAAE,QAGnF,IAAI1I,OACJ,IAAIoU,OAASnU,KAAKmU,OAClB,IAAIuC,YACJ,IAAI4J,QAAU,EAEd,IAAIC,aAAgBpM,OAAOvZ,QAAUwgB,iBAAiBxgB,OAAUwgB,iBAAmBD,kBAEnF,IAAI,IAAIqF,EAAE,EAAGA,EAAErM,OAAOvZ,OAAQ4lB,IAAK,CACjC,IAAIzL,UACJ,IAAIuB,WAAanC,OAAOqM,GAAGxgB,KAE3B,IAAI8U,EAAI9U,KAAKuW,MACb,IAAI,IAAIta,EAAE,EAAGA,EAAEqa,WAAW1b,OAAQqB,IAAK,CACrC8Y,OAAO9Y,IAAM6Y,EAAGwB,WAAWra,IAC3B6Y,GAAK9U,KAAKwW,KAGZ,IAAI1D,cAAgBoE,MAAMuJ,0BAC1B,IAAIrkB,MAAQuW,cAAcsC,YAAad,OAAOqM,GAAI1N,cAAe0N,GACjE,IAAIpD,WAAanI,YAAc,IAAM7Y,MACrC8a,MAAMwJ,aAAe1gB,KAAKwW,KAE1BzW,IAAIxB,MACF0D,IAAK7F,MACLogB,MAAOrI,OAAOqM,GAAGG,MAAQ,EACzB5L,OAAQA,OACRjS,KAAMqR,OAAOqM,GAAG1d,MAAQ,OACxB8d,MAAOL,aAAaD,WACpBlD,WAAYA,WACZtO,SAAUgO,iBAAiBM,WAAY,SAI3C,IAAIzG,aAAeZ,gBAAgB5B,QACnC,IAAI0M,cAAgB,MAEpB,GAAG7gB,KAAK8gB,mBAAqB9gB,KAAK8gB,kBAAkBC,MAAO,CACzDrK,YAAc1W,KAAK8gB,kBAAkBC,MAGrC,IAAIC,YAAcvK,gBAAgBC,YAAaC,cAE/C,GAAGqK,YAAa,CACdjhB,IAAIxB,MACF0D,IAAKqQ,WAAW7U,MAChB+e,MAAO,EACPzH,OAAQsB,eAAe2K,YAAahhB,KAAKuW,MAAOvW,KAAKwW,MACrD1T,KAAM,OACN8d,MAAOL,aAAaD,WACpBlD,WAAY,QACZtO,SAAUgO,iBAAiB,QAAS,SAGtC+D,cAAgB,UAEb,CACLnK,YAAcC,aACdkK,eAAiB5L,YAAY/L,WAAW,QAG1C,IAAI+X,WAAa,KAEjB,GAAGjhB,KAAK8gB,kBAAmB,CACzB,IAAI,IAAI7e,OAAOjC,KAAK8gB,kBAAmB,CACrC,GAAG7e,KAAO,QAAS,CAEjB,SAGF,IAAIqU,WAAalB,cAAcpV,KAAK8gB,kBAAkB7e,KAAMjC,KAAKkV,OACjE,IAAIgM,iBAAmBjQ,GAAG2F,IAAIN,YAAcrF,GAAG2F,IAAID,cACnD,IAAI5B,OAASsB,eAAeC,WAAYtW,KAAKuW,MAAOvW,KAAKwW,MACzD,IAAI2K,YAAcrE,iBAAiB7a,IAAK,OACxCgf,WAAa3K,WAGb,IAAImE,oBAAsBC,2BAA8BwG,iBAAmBtG,qBACzEuG,YAAc,KAEhBphB,IAAIxB,MACF0D,IAAK0G,sBAAsB1G,KAC3Bua,MAAO,EACPzH,OAAQA,OACRjS,KAAM,OACNse,QAAS,4BACTR,MAAO,UACPxD,WAAYnb,IACZ6M,SAAUqS,eAMhB,GAAGrO,eAAiBA,cAAcuO,aAAc,CAC9C,IAAI,IAAIplB,EAAE,EAAGA,EAAE6W,cAAcuO,aAAazmB,OAAQqB,IAAK,CACrD,IAAI4W,MAAQC,cAAcuO,aAAaplB,GAEvC,IAAI4W,MAAMzW,MAAO,CACfqG,QAAQC,KAAK,8BACb,SAGF,IAAImQ,MAAMrN,MAAO,CACf/C,QAAQC,KAAK,8BACb,SAGF3C,IAAIxB,MACF0D,IAAK4Q,MAAMzW,MACXogB,MAAO3J,MAAM8N,MAAQ,EACrB5L,OAAQsB,eAAejB,eAAevC,MAAMrN,OAAQxF,KAAKkV,OAAQlV,KAAKuW,MAAOvW,KAAKwW,MAClF1T,KAAM+P,MAAM/P,MAAQ,OACpB8d,MAAO/N,MAAM+N,OAAS,MACtBQ,QAASvO,MAAMyO,MACflE,WAAYvK,MAAMzW,MAClB0S,SAAUgO,iBAAiBjK,MAAMzW,MAAO,UAK9C,IAAI4D,KAAKuhB,UAAYV,eAAkBnK,YAAY9b,QAAU,EAAI,CAG/D,IAAI4mB,oBAAsBlb,KAAKsP,IAAItP,KAAKsQ,IAAItQ,KAAKE,MAAMkQ,YAAY9b,OAAS,GAAI,GAAI,IAEpF,IAAI6mB,kBACFC,OAAQpP,WAAWoP,MAAO,UAAWC,OAAQH,qBAC7CI,KAAM,MAAO,UAAWC,+BAAgCC,QAASN,sBACjEO,KAAM,MAAO,UAAWC,0BAA2BF,QAASN,sBAC5DS,KAAM,kBAAmB,UAAWC,4BAA6BJ,QAASN,uBAG5E,SAASW,mBAAmBC,WAC1B,IAAItlB,QAAU2kB,iBAAiBW,WAC/B,IAAIC,SAEJ,GAAGD,WAAa,MAAO,CACrB,IAAInB,WACF,OAEF,IAAIqB,eACJ,IAAI,IAAIrmB,EAAE,EAAGA,EAAEya,YAAY9b,OAAQqB,IAAK,CACtCqmB,YAAYrmB,GAAKya,YAAYza,GAAKglB,WAAWhlB,GAE/ComB,SAAWvlB,QAAQ,GAAGwlB,YAAaxlB,QAAQ,SAE3CulB,SAAWvlB,QAAQ,GAAG4Z,YAAa5Z,QAAQ,IAG7C,GAAGulB,SAAS,UACHA,SAAS,GAElB,IAAI5N,QAAUxD,GAAG2F,IAAIyL,UACrB,GAAG5N,QAAU,EAAG,CACd,IAAI8N,QAEJ,GAAIH,WAAa,OAAWA,WAAa,OAAWA,WAAa,MAAQ,CACvE,IAAI/W,MAAQ4F,GAAG2F,IAAIF,aAAejC,QAClC,IAAI+N,OAASpoB,EAAE8b,IAAImM,SAAU,SAASpa,GAAK,OAAOA,EAAIoD,QACtDkX,QAAUnN,cAAcoN,OAAQxiB,KAAKkV,WAChC,CACL,IAAIuN,UAAaziB,KAAKkV,MAAQmN,SAASznB,OACvC,IAAI8nB,QAAUD,UAAYjB,oBAAsBiB,UAAYjB,oBAG5D,IAAI,IAAIvlB,EAAE,EAAGA,EAAEymB,QAASzmB,IACtBomB,SAASM,OAAO,EAAG,EAAGN,SAAS,IAEjCE,QAAUnN,cAAciN,SAAUriB,KAAKkV,OAGzC,GAAGkN,WAAa,MACdlL,MAAM0L,eAAe,GAEvB7iB,IAAIxB,MACF0D,IAAKnF,QAAQ,GACb0f,MAAQ4F,WAAa,MAAS,EAAI,EAClCrN,OAAQsB,eAAekM,QAASviB,KAAKuW,MAAOvW,KAAKwW,MACjD1T,KAAM,OACNse,QAAS,gBACTR,MAAO9jB,QAAQ,GACfsgB,WAAYgF,UACZtT,SAAUgO,iBAAiBsF,UAAW,UAK5C,GAAGvI,gBAAiB,CAClB,IAAIuI,aAAaX,iBACfU,mBAAmBC,gBAErBD,mBAAmB,SAIvB,IAAIU,WAAa5O,kBAAkBgB,YAAaf,YAAaC,OAAO1Z,OAAO,SAASgO,GAAK,OAAOA,EAAEkY,MAAQ,IAAQ7N,cAAcgQ,gBAAiB9iB,KAAK+iB,YACtJ,IAAID,gBAAkBD,WAAW,GACjC,IAAIG,cAAgBH,WAAW,IAAMC,gBACrC,IAAIG,gBAAkBJ,WAAW,IAAMC,gBACvC5L,MAAM6E,OAAO7N,WAAW4U,iBACxB5L,MAAMgM,iBAAmBJ,gBAEzB,IAAIK,mBAAqBhP,OAAO1Z,OAAO,SAASgO,GAAK,OAAOA,EAAEkY,MAAQ,IACtE,IAAIyC,WAAanP,kBAAkBgB,YAAaf,YAAaiP,mBAAoBrQ,cAAcuQ,kBAAoBvQ,cAAcgQ,gBAAiB9iB,KAAK+iB,YACvJ,IAAIM,iBAAmBD,WAAW,GAClClM,MAAM+E,OAAO/N,WAAWmV,kBACxBnM,MAAMoM,iBAAmBD,iBAEzB,IAAIE,YAAcnpB,EAAE,mBACpB,IAAIia,MAAQrU,KAAK+iB,WAEjB,GAAG1O,MAAO,CACR,GAAGA,MAAMmP,QAAS,CAChB,IAAIzO,OAASL,mBAAmB1U,KAAKuW,MAAOvW,KAAKwW,KAAMxW,KAAKkV,MAAOb,MAAMmP,SAEzEzjB,IAAIxB,MACF0D,IAAKqQ,WAAWmR,IAChBjH,MAAO,EACPzH,OAAQA,OACRjS,KAAM,OACNse,QAAS,4BACTR,MAAO,UACPxD,WAAY,MACZtO,SAAUgO,iBAAiB,MAAO,QAItC,IAAI4G,WAAaH,YAAYnmB,KAAK,oBAClC,IAAIumB,aAAeJ,YAAYnmB,KAAK,sBACpC,IAAIwmB,SAAWL,YAAYnmB,KAAK,kBAChC,IAAIymB,SAAWN,YAAYnmB,KAAK,kBAChC,IAAI0mB,UAAYP,YAAYnmB,KAAK,2BAGjC,GAAGiX,MAAM0M,OAAS2C,WAAWlf,GAAG,YAC9Bkf,WAAWvK,OAAO/b,KAAK,QAAQvC,KAAKmoB,cAAc3O,MAAM0M,QAC1D,GAAG1M,MAAMmP,SAAWG,aAAanf,GAAG,YAClCmf,aAAaxK,OAAO/b,KAAK,QAAQvC,KAAKooB,gBAAgB5O,MAAMmP,UAC9D,IAAInP,MAAM0P,SAAWH,SAASpf,GAAG,cAAgBzE,IAAI,GAAGgV,OAAOV,MAAM2P,aACnEJ,SAASzK,OAAO/b,KAAK,QAAQvC,KAAKooB,gBAAgB5O,MAAM0P,SAAW,MAAQ,IAAKrb,KAAK3I,IAAI,GAAGgV,OAAOV,MAAM2P,aAAa,GAAK,KAAOtX,OAAOiO,kBAC3I,IAAItG,MAAMI,SAAWoP,SAASrf,GAAG,cAAgBzE,IAAI,GAAGgV,OAAOV,MAAM4P,aACnEJ,SAAS1K,OAAO/b,KAAK,QAAQvC,KAAKooB,gBAAgB5O,MAAMI,SAAW,MAAQ,IAAK/L,KAAK3I,IAAI,GAAGgV,OAAOV,MAAM4P,aAAa,GAAK,KAAOvX,OAAOiO,kBAC3I,GAAGtG,MAAM,oBAAsByP,UAAUtf,GAAG,YAAa,CACvDsf,UAAU3K,OAAO/b,KAAK,QAAQvC,KAAKooB,gBAAgB5O,MAAM,qBAEzD,IAAIU,OAASL,mBAAmB1U,KAAKuW,MAAOvW,KAAKwW,KAAMxW,KAAKkV,MAAOb,MAAM,oBAEzEtU,IAAIxB,MACF0D,IAAKqQ,WAAW,WAChBkK,MAAO,EACPzH,OAAQA,OACRjS,KAAM,OACNse,QAAS,4BACTR,MAAO,UACPxD,WAAY,SACZtO,SAAUgO,iBAAiB,SAAU,SAO3CyG,YAAYpK,OAEZ,IAAI+K,eAAiBnkB,IAAItF,OAAO,SAASgO,GAAK,OAAOA,EAAEqG,WAAa,OAEpE,GAAGqU,mBAAmBvoB,OAAS,GAAKspB,eAAetpB,QAAU,EAAG,CAE9D,IAAI,IAAIqB,EAAE,EAAGA,EAAE8D,IAAInF,OAAQqB,IACzB8D,IAAI9D,GAAG6S,SAAW,MAGtB,GAAGqU,mBAAmBvoB,OAAS,EAAG,CAEhCsc,MAAMgG,OAAOiH,YAAY,OAG3BzI,kBAAkB3b,KAClB0a,kBAAoB,MAEpB,GAAGza,KAAKokB,mBACNhqB,EAAE,6CAA6CS,KAAKmF,KAAKokB,sBAC1DC,KAAK,SAASC,IAAKC,OAAQhQ,OAC5B,GAAI+P,IAAIE,YAAa,QAAS,CAC5B,OAGF/hB,QAAQ8R,MAAM,+CAAiDgQ,OAAS,MAAQhQ,OAChF2C,MAAMgI,OAAO3K,OACbmH,wBACC+I,OAAO,SAASzkB,KAAMukB,OAAQD,KAC/BzF,sBACA7E,sBAAwB,OAG1B,GAAGrY,WAAY,CACbA,WAAa,MAGbvH,EAAE,WACA,IAAI0kB,SAAW1kB,EAAE,iBAAiB4F,KAAK,aACvC,GAAG8e,SACD7E,sBAAwB6E,SAAS4F,qBAEhC,CACL,IAAI5F,SAAW1kB,EAAE,iBAGjB,GAAG2f,eAAgB,CAEjB4K,sBAAsB,KAAMpjB,QAE5B,GAAGnH,EAAE,iBAAiBO,IAAI,aAAe,OACvCsf,sBAAwB6E,SAAS9e,KAAK,aAAa0kB,gBAIzD,UAAU7E,mBAAqB,WAC7BA,iBAAiB3I,OAEnB,OAAO,MAIX,IAAI0N,eAAiB,KACrB,IAAIC,qBAAuB,KAC3B,IAAIC,uBAAyB,KAE7B,SAASC,cAAcC,UACrB,OAAOA,SAASlf,MAAM,KACpByT,OAAO,SAAShY,OAAQiE,OACtB,IAAIyf,IAAMzf,MAAM2D,QAAQ,KAExB,GAAG8b,MAAQ,EAAG,CACZ,IAAIrX,EAAIpI,MAAMuD,MAAM,EAAGkc,KACvB,IAAInP,EAAItQ,MAAMuD,MAAMkc,IAAI,GACxB1jB,OAAOqM,GAAKkI,EAGd,OAAOvU,YAKb,SAAS2jB,2BACP,IAAIC,WAAaC,kBACjB,IAAItX,MAASuX,aAAahO,UAAYgO,aAAa/N,YACnD,IAAIgO,gBAAkB,MACtBlrB,EAAE,iBAAiB+e,OACnB/e,EAAE,0BAA0B+e,OAE5B,IAAIoM,WAAWJ,WAAY,CACzB,IAAIK,KAAOL,WAAWI,SACtB,IAAIE,KAAOrrB,EAAE,IAAMorB,KAAKE,SAExB,GAAG5X,OAAS0X,KAAKG,SAAU,CACzB,GAAGf,eAAelV,KAAO6V,QACvBD,gBAAkB,KAEpBG,KAAKpM,YAELoM,KAAKtM,OAIT,IAAIyM,SAAWxrB,EAAE,6BAA6BoB,QAAQ,cAAc4B,KAAK,YAEzEwoB,SAASxoB,KAAK,sBAAsBtB,KAAK,SAAS+pB,IAAIrW,GACpD,IAAIsW,UAAY1rB,EAAEoV,GAAGuW,QAAQ,MAAMtrB,OAAO,SAASorB,IAAIrW,GACrD,OAAQpV,EAAEoV,GAAG7U,IAAI,aAAe,SAAaP,EAAEoV,GAAGxR,KAAK,kBACtDX,QACH,IAAI2oB,QAAU5rB,EAAEoV,GAAGuW,QAAQ,YAAY1oB,QAEvC,IAAIyoB,UAAU9nB,KAAK,gBAAiB,CAClC5D,EAAEoV,GAAG6J,OACL2M,QAAQ3M,WACH,CACLjf,EAAEoV,GAAG2J,OACL6M,QAAQ7M,UAIZ,GAAGmM,gBAAiB,CAElB,IAAIW,WAAaL,SAASxoB,KAAK,oBAAoB3C,OAAO,SAASorB,IAAIrW,GACnE,OAAOpV,EAAEoV,GAAG7U,IAAI,aAAe,SAC9B0C,QAEL,GAAG4oB,WAAWrrB,OACZsrB,yBAAyBD,WAAWjoB,KAAK,qBACtC,CACH5D,EAAE,iBAAiBif,OACnBjf,EAAE,0BAA0Bif,OAG9B,OAAO,MAGT,OAAO,KAGT,SAASsL,sBAAsBa,KAAMH,aAAcc,WAAYC,aAAcC,UAC3E,GAAGb,KACDZ,eAAiBY,KAEnB,IAAIN,yBAAyBG,cAAe,CAE1C,OAGF,GAAGG,KAAM,CACPX,qBAAuBsB,WACvBrB,uBAAyBsB,iBACpB,CACLZ,KAAOZ,eACPuB,WAAatB,qBACbuB,aAAetB,uBAGjB,IAAIwB,YAAclsB,EAAE,iBACpBgsB,aAAeA,aAAe,sBAAwBf,aAAa/N,YAAc,oBAAsB+N,aAAahO,UACpH,IAAIkP,eAAiB,GACrB,IAAIC,WAAazB,cAAcM,aAAaL,UAK5C,IAAIwB,WAAWnV,KAAM,CACnBkV,gBAAkB,8FAClBA,gBAAkB,aAClBA,gBAAkB,6EAClBA,gBAAkB,wEAClBA,gBAAkB,wEAClBA,gBAAkB,gBAGpBA,gBAAkB,yGAClBA,gBAAkB,WAClBA,gBAAkB,6EAClBA,gBAAkB,gBAAiB9V,YAAa,2BAA4B2V,aAAc,mBAC1FG,gBAAkB,gBAAiB9V,YAAa,sBAAuB2V,aAAc,mBACrFG,gBAAkB,gBAElB,GAAGf,KAAKhrB,QAAS,CACf,IAAIkH,IAAM+O,aAAe+U,KAAKiB,YAAc,gCAAkC,6BAE9E,IAAIjsB,QAAUgrB,KAAKhrB,QAAQ0b,IAAI,SAASwQ,KACtC,OACEC,MAAOD,IAAI,GACXnmB,MAAOmmB,IAAI,GACT/rB,KACHisB,UAAWF,IAAI,GAAIG,MAAOH,IAAI,IAE7BI,OAAQJ,IAAI,GAAK,KAAO,SAI5BlsB,QAAQ+D,MACNooB,MAAOxf,KAAK4f,QACZxmB,MAAO,YACP5F,KAAMksB,MAAO,KAAMG,cAAe,SAAUC,aAAc,YAG5D,IAAIC,OAASZ,YAAYtmB,KAAK,aAC9B,GAAGknB,QAAUA,OAAOxC,eAClBwC,OAAOxC,eAAexjB,QAGxBolB,YAAYrlB,WAAW,aACvBqlB,YAAYzrB,KAAK,IAEjByrB,YAAYa,WACVR,MAAO,GACPjlB,IAAKA,IACL0lB,QAASf,SACTgB,iBAAkB,WAChB,GAAGC,SAAStI,kBACV,OAAO7X,KAAK6T,uBAEZ,OAAO7T,KAAKogB,kBAEhBC,KAAM,WACJ,IAAIjmB,OAASnH,EAAEyJ,UAAWwhB,qBACnB9jB,OAAO+d,kBACP/d,OAAOkmB,cACdlmB,OAAOuW,MAAQ,EAGfvW,OAAOmmB,YAAclC,KAAK9V,GAE1B,OAAOnO,QAETomB,eAAgB,GAChBntB,QAASA,QACTotB,QAASpC,KAAKiB,aAAeF,mBAC7BsB,cAAe,WACb,IAAI7nB,KAAOtF,KAAKuF,UAChBqnB,SAASnI,wBAET,IAAInf,KAAM,CAER,OAIF,GAAGA,KAAK8nB,YAAc,EACpBxB,YAAYtmB,KAAK,kBAAmB,MAEtC,IAAI+nB,UAAY3tB,EAAE,uBAClB,IAAI4tB,cAAiBhoB,MAAQA,KAAKA,KAAKioB,KAAK,SAAS5mB,KAAO,OAAOA,IAAI6mB,YAGvE,IAAIF,cACF5tB,EAAE,qCAAsCksB,aAAajsB,SAEvD,GAAG2F,MAAQA,KAAKqU,OAASrU,KAAKqU,MAAM8T,aAAc,CAC/C/tB,EAAE,oBAAoBS,KAAKmF,KAAKqU,MAAM8T,cACtC/tB,EAAE,4BAA4BS,KAAKmF,KAAKqU,MAAM+T,uBAC9CL,UAAU5O,YAEX4O,UAAU1O,QACXgP,YAAa,SAAShnB,IAAKinB,UAC5B,UAAWA,SAASlV,OAAS,WAC1BoT,WAAWnT,UAAaiV,SAASlV,KAAKC,WAAamT,WAAWnT,UAC9DmT,WAAWtU,UAAaoW,SAASlV,KAAKlB,WAAasU,WAAWtU,UAC9D,CAED7Q,IAAI0C,SAAS,QAGf,OAAO1C,QCvwCf,SAASknB,qBAAqB9X,YAAa+X,aAAcnX,MACrD,IAAIoX,MACJ,IAAIC,SAEJ,IAAIhnB,IAAM+O,YAAc,0CAA4CY,KAEpEJ,GAAG0X,KAAKjnB,IAAK,SAAS6S,MAAOoU,MAChC,GAAGpU,MACC,OAAO9R,QAAQC,KAAK6R,OAExBkU,MAAQE,KACR,IAAIC,MAGJH,MAAMI,QAAQ,SAASvsB,MACnB,GAAGA,KAAKwsB,aAAe,EAAG,CAE7BF,MAAQnY,YAAc,8BAAgCnU,KAAKysB,WACjD,CAEVH,MAAQnY,YAAc,gCAAkCnU,KAAKwsB,WAAa,aAAexsB,KAAK0sB,YAAc,SAAW3X,KAAO,cAG3H/U,KAAKysB,OAASL,MAAMpsB,KAAKysB,UACxBL,MAAMpsB,KAAKysB,SACXxf,KAAMjN,KAAK0sB,YAAanU,IAAIvY,KAAKysB,OACjCzsB,KAAMssB,MAAO9lB,KAAMxG,KAAK2sB,YAAaC,IAAK5sB,KAAKwsB,aAGhD,GAAGxsB,KAAK6sB,aAAe,EAAG,CAE7BP,MAAQnY,YAAc,8BAAgCnU,KAAKqT,WACjD,CAEViZ,MAAQnY,YAAc,gCAAkCnU,KAAK6sB,WAAa,aAAe7sB,KAAK8sB,YAAc,SAAW/X,KAAO,cAG3H/U,KAAKqT,OAAS+Y,MAAMpsB,KAAKqT,UACxB+Y,MAAMpsB,KAAKqT,SACXpG,KAAMjN,KAAK8sB,YAAavU,IAAKvY,KAAKqT,OAClCrT,KAAMssB,MAAO9lB,KAAMxG,KAAK+sB,YAAaH,IAAK5sB,KAAK6sB,eAIpD,IAAItC,MAAQ,IAAKyC,OAAS,IAAKC,WAAa,EAC5C,IAAI3I,MAAQ3P,GAAG5F,MAAMme,aAGrB5I,MAAM,QAAU,MAChBA,MAAM,QAAU,iBAEhB,IAAIzC,MAAQlN,GAAGwY,OAAOtL,QACjBuK,MAAMzX,GAAG8D,OAAO2T,QAChBD,MAAMA,OACNiB,MAAM7C,MAAOyC,SACbK,aAAa,KACbC,QAAQ,KACRhrB,GAAG,OAAQirB,MACXtT,QAEL,IAAIuT,IAAM7Y,GAAGtS,OAAO,IAAM6pB,cAAcjsB,OAAO,OAC1CyB,KAAK,KAAM,cACXA,KAAK,QAAS6oB,OACd7oB,KAAK,SAAUsrB,QAGpBQ,IAAIvtB,OAAO,QAAQwtB,UAAU,UACxB/pB,MAAM,YAAa,YAAa,YAAa,cAC7CgqB,QAAQztB,OAAO,UACfyB,KAAK,KAAM,SAASyK,GAAK,OAAOA,IAChCzK,KAAK,UAAW,cAChBA,KAAK,OAAQ,IACbA,KAAK,QAAS,KACdA,KAAK,cAAeurB,YAAYvrB,KAAK,eAAgBurB,YACrDvrB,KAAK,SAAU,QACfzB,OAAO,QACPyB,KAAK,IAAK,kBAEf,IAAIisB,KAAOH,IAAIvtB,OAAO,KAAKwtB,UAAU,QAChC/pB,KAAKme,MAAMsK,SACXuB,QAAQztB,OAAO,QACfyB,KAAK,QAAS,SAASyK,GAAK,MAAO,QAAUA,EAAE3F,OAC/C9E,KAAK,aAAc,SAASyK,GAAK,MAAO,QAAUA,EAAE3F,KAAO,MAGhE,IAAIonB,OAASJ,IAAIvtB,OAAO,KAAKwtB,UAAU,UAClC/pB,KAAKme,MAAMuK,SACXsB,QAAQztB,OAAO,UACfyB,KAAK,QAAS,eACdA,KAAK,IAAK,GACVmsB,MAAM,OAAQ,SAAS1hB,GAAK,OAAOmY,MAAMnY,EAAE3F,QAC3C+Y,KAAKsC,MAAMiM,MACXxrB,GAAG,WAAY,SAAS6J,GAC5B9M,OAAOmU,SAASua,KAAO5hB,EAAEnM,OAI1B,IAAIguB,KAAOR,IAAIvtB,OAAO,KAAKwtB,UAAU,QAChC/pB,KAAKme,MAAMuK,SACXsB,QAAQztB,OAAO,QACfyB,KAAK,QAAS,aACdA,KAAK,IAAK,IACVA,KAAK,IAAK,SACVssB,KAAK,SAAS7hB,GAClB,GAAGA,EAAEygB,KAAO,EACR,OAAOzgB,EAAEc,KAAO,UAAUd,EAAEygB,IAAI,QAC/B,CACD,OAAOzgB,EAAM,QAKlB,SAASohB,OACLI,KAAKjsB,KAAK,IAAKusB,SACfL,OAAOlsB,KAAK,YAAawsB,WACzBF,KAAKtsB,KAAK,YAAawsB,WAG3B,SAASD,QAAQ9hB,GACb,IAAIgiB,GAAKhiB,EAAEkH,OAAO1H,EAAIQ,EAAEsgB,OAAO9gB,EAClCyiB,GAAKjiB,EAAEkH,OAAOgb,EAAIliB,EAAEsgB,OAAO4B,EAC3BC,GAAKtkB,KAAKukB,KAAKJ,GAAKA,GAAKC,GAAKA,IAC3B,MAAO,IAAMjiB,EAAEsgB,OAAO9gB,EAAI,IAAMQ,EAAEsgB,OAAO4B,EAAI,IAAMC,GAAK,IAAMA,GAAK,UAAYniB,EAAEkH,OAAO1H,EAAI,IAAMQ,EAAEkH,OAAOgb,EAG/G,SAASH,UAAU/hB,GACf,MAAO,aAAeA,EAAER,EAAI,IAAMQ,EAAEkiB,EAAI,OC9H7C,SAASG,oBAAoBC,gBAC3B,OAAO,SAASxqB,OACd,IAAIyqB,SAAWzqB,MAAMxC,MACrB,IAAImX,MAAQ,EAGZ,IAAK8V,SACH,OAAO,KAETD,eAAexqB,OAAOzE,KAAK,WACzB,IAAIyN,KAAOnP,EAAEM,MAAMqD,MACnB,GAAIwL,MAAQyhB,SACZ9V,MAAQA,MAAQ,IAGlB,OAAOA,OAAS,GAIpB,SAAS+V,qBAAqBjmB,OAC5B,IAAIkmB,OAASlmB,MAAMjH,MACnB,GAAImtB,SAAW,GAAI,OAAO,KAE1B,OAAOzlB,eAAeylB,SAAWvlB,gBAAgBulB,OAAQ,MAG3D,SAASC,6BAA6BC,SACpC,OAAO,SAASC,yBAAyBrmB,OAEvC,IAAIA,MAAMjH,MAAO,OAAO,KACxB,OAAO3D,EAAE4K,OAAOjH,MAAMqS,MAAMgb,UAIhC,SAASE,uBAAuBtmB,OAC9B,IAAIumB,YAAcnxB,EAAE4K,OAAOxJ,QAAQ,QAAQ4B,KAAK,wBAAwBouB,IAAIxmB,OAC5E,IAAIA,MAAMjH,QAAUwtB,YAAYxtB,MAAO,OAAO,KAC9C,OAAOwtB,YAAYxtB,QAAUiH,MAAMjH,MAGrC,SAAS0tB,kBAAkBzmB,OAEzB,IAAIA,MAAMjH,MAAO,OAAO,KACxB,OAAO3D,EAAE4K,OAAOjH,MAAMqS,MAAM,gBAG9B,SAASsb,qBAAqBzwB,MAC5B,IAAI0wB,MAAQvxB,EAAEa,MAAMmC,KAAK,wBACzB,IAAIwuB,UAAY,EAEhBD,MAAM7vB,KAAK,WACT,GAAG1B,EAAEM,MAAMqD,OAAS,GAAI6tB,cAG1B,GAAGA,WAAaD,MAAM/wB,OAAQ+wB,MAAMltB,QAAQ,SAG9C,SAASotB,mBAAmB7mB,OAC1B,IAAIqM,KAAOrM,MAAMjH,MAGjB,GAAIsT,OAAS,GAAI,OAAO,KAExB,OAAO5L,eAAe4L,OAASnM,aAAamM,OAAShM,aAAagM,MAGpE,SAASya,mBAAmB9mB,OAC1B,IAAIqM,KAAOrM,MAAMjH,MAGjB,GAAIsT,OAAS,GAAI,OAAO,KAExB,OAAOnM,aAAamM,OAAShM,aAAagM,MCxExCjX,EAAEsU,GAAGqd,UAAUC,IAAIpE,QAAQqE,eACvBC,UAAW,wBACXC,KAAM,SAAUzwB,GAAI0wB,KAAMC,QAEtB,MAAMC,UAAYD,OAAOruB,KAAK0R,GAE9BtV,EAAEgyB,MAAMpoB,YAAY,OAAOA,YAAY,iBAEvC,MAAMuoB,YAAcnyB,EAAEgyB,MAAMvxB,OAE5B,IAAIqa,MAAQ,EAGZ,GAAIoX,WAAa,cAAe,CAE5BpX,MAAQxZ,GAAGsE,OAAOpF,YAEjB,GAAI0xB,WAAa,kBAAmB,CACrC5wB,GAAGsE,OAAOlE,KAAK2M,IAGX,MAAM+jB,OAAS/jB,EAAEgkB,WACjB,GAAID,OAAQtX,OAAS,SAIxB,GAAIoX,WAAa,mBAAoB,CACtC5wB,GAAGsE,OAAOlE,KAAK2M,IAGX,MAAM+jB,OAAS/jB,EAAEgkB,WACjB,IAAKD,OAAQtX,OAAS,IAK9B9a,EAAEgyB,MAAMvxB,QAAQ0xB,gBAAgBrX,WAEpCwX,OAAQ,SAAUld,EAAG9T,GAAI0wB,KAAMC,QAE3B,MAAMC,UAAYD,OAAOruB,KAAK0R,GAE9BtV,EAAE,gBAAgB4J,YAAY,UAC9B5J,EAAE,oBAAoB4J,YAAY,UAClC5J,EAAE,qBAAqB4J,YAAY,UAEnC,GAAIsoB,WAAa,cAAe,CAC5B5wB,GAAGlB,UAAUiP,OAAO,IAAIkjB,OACxBhxB,OAAOiU,QAAQC,aAAatL,UAAWA,UAAW,aAEjD,GAAI+nB,WAAa,kBAAmB,CAErC5wB,GAAGlB,QAAQ,GAAGiP,OAAO,QAAQkjB,OAC7BhxB,OAAOiU,QAAQC,aAAatL,UAAWA,UAAW,iBAEjD,GAAI+nB,WAAa,mBAAoB,CAEtC5wB,GAAGlB,QAAQ,GAAGiP,OAAO,SAASkjB,OAC9BhxB,OAAOiU,QAAQC,aAAatL,UAAWA,UAAW,aAItDnK,MAAMkyB,aAAavoB,SAAS"} \ No newline at end of file +{"version":3,"sources":["datatable_utils.js","ays_utils.js","ntopng_utils.js","graph_utils.js","ebpf_utils.js","ntopng_validators.js","plugin-script-datatable.js"],"names":["datatableRemoveEmptyRow","table","$","remove","datatableAddEmptyRow","empty_str","columns","filter","this","css","length","html","datatableGetNumDisplayedItems","datatableIsEmpty","datatableGetByForm","form","parent","datatableUndoAddRow","new_row","bt_to_enable","callback_str","removeAttr","closest","aysUpdateForm","dt","window","datatableForEachRow","callbacks","each","row_i","bind","i","datatableAddButtonCallback","td_idx","label","bs_class","link","append","datatableAddDeleteButtonCallback","datatableAddActionButtonCallback","datatableAddLinkButtonCallback","datatableMakeSelectUnique","tr_obj","added_rows_prefix","options","paramsExtend","on_change","noop","selector_fn","obj","find","first","datatableForeachSelectOtherThan","this_select","callback","other","datatableOptionChangeStatus","option_obj","enable","select_obj","should_reset","val","attr","new_val","datatableOnSelectEntryChange","change_callback","old_value","new_value","others","push","datatableOnAddSelectEntry","trigger","new_sel","select","on","datatableOrderedInsert","to_insert","to_insert_val","cmp_fn","a","b","inserted","tr","cmp_val","parseInt","isNaN","before","datatableIsLastPage","lastpage","hasClass","datatableGetColumn","id_key","id_value","res","data","resultset","item","datatableGetColumnIndex","column_key","index","findIndex","field","datatableInitRefreshRows","column_id","refresh_interval","trend_columns","$dt","rows","old_timer","old_req","clearInterval","removeData","abort","ids","id_to_row","row","data_id","params","custom_hosts","join","url","first_load","_process_result","result","row_idx","row_html","row_tds","key","col_idx","cell","$cell","old_val","trend_value_formatter","arrows","parseFloat","console","warn","drawTrend","setInterval","ajax","type","cache","success","aysHandleForm","form_selector","default_options","submit_selector","on_dirty_callback","on_clean_callback","handle_submit_buttons","handle_datatable","handle_tabs","disable_on_dirty","ays_options","o","extend","areYouSure","addClass","removeClass","aysResetForm","aysRecheckForm","aysGetDirty","fields_selector","getValue","$field","undefined","is","$option","isFieldDirty","origValue","curValue","dirty","l","dirty_status","input","NTOPNG_MIN_VISUAL_VALUE","is_good_ipv4","ipv4","test","is_good_ipv6","ipv6","isNumeric","value","is_mac_address","what","is_network_mask","optional_mask","elems","split","mask","ip_addr","address","fbits","bits","sizes","bits_log1000","Math","log","floor","round","pow","ret","toFixed","export_rate","eps","scaleValue","exports_format","exports","exports_label","i18n","toLowerCase","fbits_from_bytes","bytes","fpackets","pps","fpoints","fflows","fps","fmsgs","mps","falerts","aps","fint","x","toString","replace","ffloat","fpercent","fdate","when","epoch","d","Date","capitaliseFirstLetter","string","charAt","toUpperCase","slice","String","prototype","startsWith","indexOf","get_trend","actual","getOSIcon","name","icon","search","abbreviateString","str","len","substring","bytesToSize","precision","kilobyte","megabyte","gigabyte","terabyte","capitalizeSingleWord","uc","capitalize","current","last","withColor","toggleAllTabs","enabled","disableAllDropdownsAndTabs","prop","enableAllDropdownsAndTabs","s","addCommas","nStr","x1","x2","rgx","scale","formatValue","formatPackets","n","formatPoints","formatFlows","formatMessages","fmillis","bytesToVolume","bytesToVolumeAndLabel","bitsToSize","factor","secondsToTime","seconds","days","hours","minutes","sec","msg","msg_array","years","format","M+","getMonth","d+","getDate","h+","getHours","m+","getMinutes","s+","getSeconds","q+","S","getMilliseconds","RegExp","$1","getFullYear","substr","k","epoch2Seen","tdiff","getTime","graphGetXAxisTicksFormat","diff_epoch","tickFormat","defaults","override","paramsToForm","hasOwnProperty","appendTo","paramsPairsEncode","jQuery","fn","disable","state","$this","disabled","toggleClass","hostkey2hostInfo","host_key","info","hostinfo","handle_tab_state","nav_object","default_tab","click","e","preventDefault","id","target","history","replaceState","location","hash","tab","sformat","args","arguments","match","number","contains","_add_find_host_link","makeFindHostBeforeSubmitCallback","http_prefix","network","snmp_port_idx","asn","tstampToDateString","html_tag","timestamp","localized","d3","time","noHtml","cleanCustomHostUrl","host","parseQuery","queryString","query","pairs","pair","decodeURIComponent","getHistoryParameters","cur_params","new_params","new_query","param","baseUrl","protocol","pathname","schema_2_label","data_2_label","graph_i18n","initLabelMaps","_schema_2_label","_data_2_label","_graph_i18n","getSerieLabel","schema","serie","visualization","serie_index","data_label","new_label","metrics_labels","ext_label","tags","category","l4proto","device","if_index","port","exporter","ifname","profile","user_script","command","traffic_volume","traffic","getValueFormatter","metric_type","series","custom_formatter","stats","formatters","error","as_counter","max_val","makeFlatLineValues","tstart","tstep","num","t","values","checkSeriesConsinstency","schema_name","count","rv","upsampleSerie","num_points","intervals","lerp","v0","v1","prev_i","next_i","min","ceil","v","buildTotalSerie","data_series","transpose","map","g","sum","arrayToNvSerie","serie_data","start","step","buildOtherSerie","total_serie","visual_total","max","buildTimeArray","start_time","end_time","arr","fixTimeRange","chart","align_step","actual_step","epoch_end","epoch_begin","frame","align","tick_step","resolution","fmt","range_params","range","limit","x_fmt","findActualStep","raw_step","supported_steps","retention","now_ts","now","delta","partial","aggregation_dp","tframe","retention_dp","has_initial_zoom","current_zoom_level","canCompareBackwards","jump_duration","current_duration","fixJumpButtons","duration","showQuerySlow","show","hideQuerySlow","hide","chart_data_sum","reduce","acc","pt","attachStackedChartCallback","chart_id","zoom_reset_id","show_all_smooth","initial_range","ts_table_shown","pending_chart_request","pending_table_request","d3_sel","$chart","$zoom_reset","$graph_zoom","max_interval","initial_interval","is_max_zoom","first_time_loaded","manual_trigger_cmp_serie","datetime_format","max_over_total_ratio","query_timer","seconds_before_query_slow","query_completed","query_was_aborted","is_zoomed","spinner","chart_colors_full","chart_colors_min","num_ticks_y1","num_ticks_y2","domain_y1","domain_y2","first_run","update_chart_data","new_data","datum","call","transition","yAxis1","ticks","yAxis2","yDomain1","yDomain2","cur_domain_y1","domain","cur_domain_y2","y1_sum","yAxis","y2_sum","nv","utils","windowResize","update","isLegendDisabled","default_val","localStorage","getItem","legend","dispatch","legend_key","setItem","cur_zoom","t_start","xDomain","t_end","old_zoomed","is_user_zoom","updateStackedChart","push_state","pushState","zoom_level","fixChartButtons","updateZoom","zoom","force","zoom_in","cur_interval","date","updateChartFromPickers","zoom_out","event","go","addEventListener","zoom_link","checkQueryCompleted","flows_dt","wait_num_queries","queryWasAborted","abortQuery","noData","tableRequestCompleted","getDataUrl","data_params","ts_compare","extended","old_start","old_end","old_interval","tend","no_spinner","on_load_callback","force_update","new_end","zoomType","no_data_available","req_params","get","xAxis","tickValues","color_i","chart_colors","j","visualization_options","current_step","axis","color","has_full_data","additional_series","total","other_serie","past_serie","ratio_over_total","is_disabled","classed","extra_series","class","no_trend","num_smoothed_points","smooth_functions","trend","smooth","ema","exponentialMovingAverageArray","periods","sma","simpleMovingAverageArray","rsi","relativeStrengthIndexArray","add_smoothed_serie","fn_to_use","smoothed","delta_serie","aligned","scaled","remaining","to_fill","splice","yDomainRatioY2","formatter1","value_formatter","statistics","tot_formatter","stats_formatter","yAxis1_formatter","second_axis_series","formatter2","value_formatter2","yAxis2_formatter","stats_table","average","avg","total_cell","average_cell","min_cell","max_cell","perc_cell","min_val","min_val_idx","max_val_idx","enabled_series","updateState","source_aggregation","fail","xhr","status","statusText","always","pendingRequest","updateGraphsTableView","graph_old_view","graph_old_has_nindex","graph_old_nindex_query","tsQueryToTags","ts_query","pos","recheckGraphTableEntries","table_view","graph_table_views","graph_params","reset_selection","view_id","view","elem","html_id","min_step","items_ul","idx","next_item","nextAll","divider","first_view","setActiveGraphsTableView","has_nindex","nindex_query","per_page","graph_table","nindex_buttons","params_obj","nindex_view","col","title","textAlign","width","hidden","actions","white-space","text-align","old_dt","datatable","perPage","noResultsMessage","ts_chart","no_results_found","post","initial_point","detail_view","loadingYOffset","buttons","tableCallback","currentPage","stats_div","has_drilldown","some","drilldown","loading_time","num_records_processed","rowCallback","row_data","draw_processes_graph","graph_div_id","links","nodes","json","_link","forEach","source_pid","source","source_name","source_type","pid","target_pid","target_name","target_type","height","arrow_size","category10","layout","size","linkDistance","charge","tick","svg","selectAll","enter","path","circle","style","drag","href","text","linkArc","transform","dx","dy","y","dr","sqrt","makeUniqueValidator","items_function","cmp_name","memberValueValidator","member","makePasswordPatternValidator","pattern","passwordPatternValidator","passwordMatchValidator","other_input","not","poolnameValidator","passwordMatchRecheck","items","not_empty","hostOrMacValidator","ipAddressValidator","dataTable","ext","filterScripts","className","init","node","config","button_id","button_text","parsed","is_enabled","action","draw"],"mappings":"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"} \ No newline at end of file