diff --git a/buildFirmware.sh b/buildFirmware.sh index e288dfd4..325763f7 100755 --- a/buildFirmware.sh +++ b/buildFirmware.sh @@ -49,5 +49,5 @@ then else echo "Generating build artifact zip file" zip -r build_output.zip build - zip build/${artifact_file_name} partitions*.csv build/*.bin build/bootloader/bootloader.bin build/partition_table/partition-table.bin build/flash_project_args build/size_*.txt + zip build/${artifact_file_name} partitions*.csv components/ build/*.bin build/bootloader/bootloader.bin build/partition_table/partition-table.bin build/flash_project_args build/size_*.txt fi diff --git a/components/wifi-manager/webapp/dist/index.html b/components/wifi-manager/webapp/dist/index.html index b85f7767..080c3b68 100644 --- a/components/wifi-manager/webapp/dist/index.html +++ b/components/wifi-manager/webapp/dist/index.html @@ -1 +1 @@ -
Software Updates
VersionDate/TimePlatformBranchBit Depth
Local Firmware Upload
KeyValue
Usage Templates
Output
WiFi Status
Logs
TimestampMessage
Tasks
#Task NameCPUStateMin StackBase PriorityCur Priority
Credits

squeezelite-esp32
© 2020, philippe44, sle118, daduke
This software is released under the MIT License.

This app would not be possible without the following libraries:

  • squeezelite, © 2012-2019, Adrian Smith and Ralph Irving. Licensed under the GPL License.
  • esp32-wifi-manager, © 2017-2019, Tony Pottier. Licensed under the MIT License.
  • SpinKit, © 2015, Tobias Ahlin. Licensed under the MIT License.
  • jQuery, The jQuery Foundation. Licensed under the MIT License.
  • cJSON, © 2009-2017, Dave Gamble and cJSON contributors. Licensed under the MIT License.
  • esp32-rotary-encoder, © 2011-2019, David Antliff and Ben Buxton. Licensed under the GPL License.
  • tarablessd1306, © 2017-2018, Tara Keeling. Licensed under the MIT license.
  • CSpot, © 2020 feelfreelinux & alufers. Licensed under the GPL License
Extras/Overrides
\ No newline at end of file +
Software Updates
VersionDate/TimePlatformBranchBit Depth
Local Firmware Upload
KeyValue
Usage Templates
Output
WiFi Status
Logs
TimestampMessage
Tasks
#Task NameCPUStateMin StackBase PriorityCur Priority
Credits

squeezelite-esp32
© 2020, philippe44, sle118, daduke
This software is released under the MIT License.

This app would not be possible without the following libraries:

  • squeezelite, © 2012-2019, Adrian Smith and Ralph Irving. Licensed under the GPL License.
  • esp32-wifi-manager, © 2017-2019, Tony Pottier. Licensed under the MIT License.
  • SpinKit, © 2015, Tobias Ahlin. Licensed under the MIT License.
  • jQuery, The jQuery Foundation. Licensed under the MIT License.
  • cJSON, © 2009-2017, Dave Gamble and cJSON contributors. Licensed under the MIT License.
  • esp32-rotary-encoder, © 2011-2019, David Antliff and Ben Buxton. Licensed under the GPL License.
  • tarablessd1306, © 2017-2018, Tara Keeling. Licensed under the MIT license.
  • CSpot, © 2020 feelfreelinux & alufers. Licensed under the GPL License
Extras/Overrides
\ No newline at end of file diff --git a/components/wifi-manager/webapp/dist/index.html.gz b/components/wifi-manager/webapp/dist/index.html.gz index f43f7a6d..79238ab1 100644 Binary files a/components/wifi-manager/webapp/dist/index.html.gz and b/components/wifi-manager/webapp/dist/index.html.gz differ diff --git a/components/wifi-manager/webapp/dist/js/index.7581c6.bundle.js b/components/wifi-manager/webapp/dist/js/index.7581c6.bundle.js deleted file mode 100644 index 95132da4..00000000 --- a/components/wifi-manager/webapp/dist/js/index.7581c6.bundle.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var t,e={196:(t,e,n)=>{n(910),n(861);var s=n(750),a=n(839),o=n(652),i=n(254),r=n(541),c=n(955),l=n(991);function u(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return d(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var s=0,a=function(){};return{s:a,n:function(){return s>=t.length?{done:!0}:{done:!1,value:t[s++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,r=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return i=t.done,t},e:function(t){r=!0,o=t},f:function(){try{i||null==n.return||n.return()}finally{if(r)throw o}}}}function d(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,s=new Array(e);n")}}),Object.assign(Date.prototype,{toLocalShort:function(){return this.toLocaleString(void 0,{dateStyle:"short",timeStyle:"short"})}});var p=1,m=17,g=2,v=18,b=4,S=20,y=8,_=24,w={bt_playing:"media_bluetooth_on",bt_disconnected:"media_bluetooth_off",bt_neutral:"bluetooth",bt_connecting:"bluetooth_searching",bt_connected:"bluetooth_connected",bt_disabled:"bluetooth_disabled",play_arrow:"play_circle_filled",pause:"pause_circle",stop:"stop_circle","":""},E=[{icon:"battery_0_bar",ranges:[{f:5.8,t:6.8},{f:8.8,t:10.2}]},{icon:"battery_2_bar",ranges:[{f:6.8,t:7.4},{f:10.2,t:11.1}]},{icon:"battery_3_bar",ranges:[{f:7.4,t:7.5},{f:11.1,t:11.25}]},{icon:"battery_4_bar",ranges:[{f:7.5,t:7.8},{f:11.25,t:11.7}]}],T=[{desc:"Idle",sub:["bt_neutral"]},{desc:"Discovering",sub:["bt_connecting"]},{desc:"Discovered",sub:["bt_connecting"]},{desc:"Unconnected",sub:["bt_disconnected"]},{desc:"Connecting",sub:["bt_connecting"]},{desc:"Connected",sub:["bt_connected","play_arrow","bt_playing","pause","stop"]},{desc:"Disconnecting",sub:["bt_disconnected"]}],A={MESSAGING_INFO:"badge-success",MESSAGING_WARNING:"badge-warning",MESSAGING_ERROR:"badge-danger"},O=0,N=1,k=3,x=4,R=5,C={0:"eRunning",1:"eReady",2:"eBlocked",3:"eSuspended",4:"eDeleted"},I={NONE:0,REBOOT_TO_RECOVERY:2,SET_FWURL:5,FLASHING:6,DONE:7,UPLOADING:8,ERROR:9,UPLOADCOMPLETE:10,_state:-1,olderRecovery:!1,statusText:"",flashURL:"",flashFileName:"",statusPercent:0,Completed:!1,recovery:!1,prevRecovery:!1,updateModal:new bootstrap.Modal(document.getElementById("otadiv"),{}),reset:function(){return this.olderRecovery=!1,this.statusText="",this.statusPercent=-1,this.flashURL="",this.flashFileName=void 0,this.UpdateProgress(),l("#rTable tr.release").removeClass("table-success table-warning"),l(".flact").prop("disabled",!1),l("#flashfilename").value=null,l("#fw-url-input").value=null,this.isStateError()||(l("span#flash-status").html(""),l("#fwProgressLabel").parent().removeClass("bg-danger")),this._state=this.NONE,this},isStateUploadComplete:function(){return this._state==this.UPLOADCOMPLETE},isStateError:function(){return this._state==this.ERROR},isStateNone:function(){return this._state==this.NONE},isStateRebootRecovery:function(){return this._state==this.REBOOT_TO_RECOVERY},isStateSetUrl:function(){return this._state==this.SET_FWURL},isStateFlashing:function(){return this._state==this.FLASHING},isStateDone:function(){return this._state==this.DONE},isStateUploading:function(){return this._state==this.UPLOADING},init:function(){return this._state=this.NONE,this},SetStateError:function(){return this._state=this.ERROR,l("#fwProgressLabel").parent().addClass("bg-danger"),this},SetStateNone:function(){return this._state=this.NONE,this},SetStateRebootRecovery:function(){return this._state=this.REBOOT_TO_RECOVERY,this.SetStatusText("Starting recovery mode."),l.ajax({url:"/recovery.json",context:this,dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()}),error:function(t,e,n){var s;this.setOTAError("Unexpected error while trying to restart to recovery. (status=".concat(null!==(s=t.status)&&void 0!==s?s:"",", error=").concat(null!=n?n:""," ) "))},complete:function(t){this.SetStatusText("Waiting for system to boot.")}}),this},SetStateSetUrl:function(){return this._state=this.SET_FWURL,this.statusText="Sending firmware download location.",P({fwurl:{value:this.flashURL,type:33}}),this},SetStateFlashing:function(){return this._state=this.FLASHING,this},SetStateDone:function(){return this._state=this.DONE,this.reset(),this},SetStateUploading:function(){return this._state=this.UPLOADING,this.SetStatusText("Sending file to device.")},SetStateUploadComplete:function(){return this._state=this.UPLOADCOMPLETE,this},isFlashExecuting:function(){return!0==(this._state!=this.UPLOADING&&(""!==this.statusText||this.statusPercent>=0))},toString:function(){var t=this;return Object.keys(this).find((function(e){return t[e]===t._state}))},setOTATargets:function(){this.flashURL="",this.flashFileName="",this.flashURL=l("#fw-url-input").val();var t=l("#flashfilename")[0].files;return t.length>0&&(this.flashFileName=t[0]),0==this.flashFileName.length&&0==this.flashURL.length&&this.setOTAError("Invalid url or file. Cannot start OTA"),this},setOTAError:function(t){return this.SetStateError().SetStatusPercent(0).SetStatusText(t).reset(),this},ShowDialog:function(){return this.isStateNone()||(this.updateModal.show(),l(".flact").prop("disabled",!0)),this},SetStatusPercent:function(t){var e=this.statusPercent!=t;return this.statusPercent=t,e&&(this.isStateUploading()||this.isStateFlashing()||this.SetStateFlashing(),100==t&&(this.isStateFlashing()?this.SetStateDone():this.isStateUploading()&&(this.statusPercent=0,this.SetStateFlashing())),this.UpdateProgress().ShowDialog()),this},SetStatusText:function(t){var e=this.statusText!=t;return this.statusText=t,e&&(l("span#flash-status").html(this.statusText),this.ShowDialog()),this},UpdateProgress:function(){return l(".progress-bar").css("width",this.statusPercent+"%").attr("aria-valuenow",this.statusPercent).text(this.statusPercent+"%"),l(".progress-bar").html((this.isStateDone()?100:this.statusPercent)+"%"),this},StartOTA:function(){return this.logEvent(this.StartOTA.name),l("#fwProgressLabel").parent().removeClass("bg-danger"),this.setOTATargets(),this.isStateError()||(W?this.SetStateFlashing().TargetReadyStartOTA():this.SetStateRebootRecovery()),this},UploadLocalFile:function(){this.SetStateUploading();var t=new XMLHttpRequest;t.context=this;var e=this.HandleUploadProgressEvent.bind(this),n=this.setOTAError.bind(this);t.upload.addEventListener("progress",e,!1),t.onreadystatechange=function(){4===t.readyState&&(0!==t.status&&404!==t.status||n("Upload Failed. Recovery version might not support uploading. Please use web update instead."))},t.open("POST","/flash.json",!0),t.send(this.flashFileName)},TargetReadyStartOTA:function(){return W&&this.prevRecovery&&!this.isStateRebootRecovery()&&!this.isStateFlashing()?this:(this.logEvent(this.TargetReadyStartOTA.name),W?(this.prevRecovery=!0,void(""!==this.flashFileName?this.UploadLocalFile():""!=this.flashURL?this.SetStateSetUrl():this.setOTAError("Invalid URL or file name while trying to start the OTa process"))):(console.error("Event TargetReadyStartOTA fired in the wrong mode "),this))},HandleUploadProgressEvent:function(t){this.logEvent(this.HandleUploadProgressEvent.name),this.SetStateUploading().SetStatusPercent(Math.round(t.loaded/t.total*100)).SetStatusText("Uploading file to device")},EventTargetStatus:function(t){var e,n;this.isStateNone()||this.logEvent(this.EventTargetStatus.name),null!==(e=t.ota_pct)&&void 0!==e&&e&&(this.olderRecovery=!0,this.SetStatusPercent(t.ota_pct)),""!=(null!==(n=t.ota_dsc)&&void 0!==n?n:"")&&(this.olderRecovery=!0,this.SetStatusText(t.ota_dsc)),null!=t.recovery&&(this.recovery=1===t.recovery),this.isStateRebootRecovery()&&this.recovery&&this.TargetReadyStartOTA()},EventOTAMessageClass:function(t){this.logEvent(this.EventOTAMessageClass.name);var e=JSON.parse(t);this.SetStatusPercent(e.ota_pct).SetStatusText(e.ota_dsc)},logEvent:function(t){console.log("".concat(t,", flash state ").concat(this.toString(),", recovery: ").concat(this.recovery,", ota pct: ").concat(this.statusPercent,", ota desc: ").concat(this.statusText))}};window.hideSurrounding=function(t){l(t).parent().parent().hide()};var G=!1,M=2500;function P(t){var e={timestamp:Date.now(),config:t};l.ajax({url:"/config.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(e),error:j})}function U(t){l("#o_type").children("span").css({display:"none"}),l("#"+(Z="bt"===t?"bt":"spdif"===t?"spdif":"i2s")).prop("checked",!0),l("#o_"+Z).css({display:"inline"})}function j(t,e,n){console.log(t.status),console.log(n),""!==n&&At(n,"MESSAGING_ERROR")}function L(t){l("#toast_"+t).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass("table-success").removeClass("show"),l("#msg_"+t).html("")}function D(t,e,n){var s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a="table-success";"MESSAGING_WARNING"===e?a="table-warning":"MESSAGING_ERROR"===e&&(a="table-danger"),l("#toast_"+t).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass(a).addClass("show");var o=n.substring(0,n.length-1).encodeHTML().replace(/\n/g,"
");o=(l("#msg_"+t).html().length>0&&s?l("#msg_"+t).html()+"
":"")+o,l("#msg_"+t).html(o)}window.hFlash=function(){l("#flashfilename").value=null,I.StartOTA()},window.handleReboot=function(t){"reboot_ota"==t?(l("#reboot_ota_nav").removeClass("active").prop("disabled",!0),ut(500,"","reboot_ota")):(l("#reboot_nav").removeClass("active"),ut(500,"",t))};var F,J="https://api.github.com/repos/sle118/squeezelite-esp32/releases",W=!1,B=!1,H=0,q="MESSAGING_INFO",Y={},z=null,Z="",V="",Q="Squeezelite-ESP32",X="",K=Q,$="",tt=Q,et="",nt="#cfg-audio-bt_source-sink_name",st={},at={},ot="",it=0,rt=1,ct=2;function lt(t){var e={};l("input.nvs").each((function(n,s){if(t)e[s.id]=s.value;else{var a=parseInt(s.attributes.nvs_type.value,10);""!==s.id&&(e[s.id]={},e[s.id].value=a===p||a===m||a===g||a===v||a===b||a===S||a===y||a===_?parseInt(s.value):s.value,e[s.id].type=a)}}));var n=l("#nvs-new-key").val(),s=l("#nvs-new-value").val();return""!==n&&(t?e[n]=s:(e[n]={},e[n].value=s,e[n].type=33)),e}function ut(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"reboot",s="/"+n+".json";l("tbody#tasks").empty(),l("#tasks_sect").css("visibility","collapse"),r.J.resolve({cmdname:e,url:s}).delay(t).then((function(t){t.cmdname.length>0?D(t.cmdname,"MESSAGING_WARNING","System is rebooting.\n",!0):At("System is rebooting.\n","MESSAGING_WARNING"),console.log("now triggering reboot"),l("button[onclick*='handleReboot']").addClass("rebooting"),l.ajax({url:t.url,dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()}),error:j,complete:function(){console.log("reboot call completed"),r.J.resolve(t).delay(6e3).then((function(t){t.cmdname.length>0&&L(t.cmdname),Et(),Tt()}))}})}))}function dt(t){return l(".upf").filter((function(){return l(this).text().toUpperCase()===t.toUpperCase()})).length>0&&(l("#splf").val(t).trigger("input"),!0)}function ht(t){return t>=-55?"signal_wifi_statusbar_4_bar":t>=-60?"network_wifi_3_bar":t>=-65?"network_wifi_2_bar":t>=-70?"network_wifi_1_bar":"signal_wifi_statusbar_null"}function ft(){st.urc!==R&&l.getJSON("/scan.json",(0,s.Z)(o.default.mark((function t(){return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Nt(2e3);case 2:l.getJSON("/ap.json",(function(t){t.length>0&&(t.sort((function(t,e){var n=t.rssi,s=e.rssi;return ns?-1:0})),mt(t))}));case 3:case"end":return t.stop()}}),t)}))))}function pt(t,e,n){return''.concat(t,'\n ').concat(ht(e),'\n \t\n ').concat(0==n?"no_encryption":"lock","\n ")}function mt(t){var e="";if(l("#wifiTable tr td:first-of-type").text(""),l("#wifiTable tr").removeClass("table-success table-warning"),t&&(t.forEach((function(t){e+=pt(t.ssid,t.rssi,t.auth)})),l("#wifiTable").html(e)),0==l(".manual_add").length&&(l("#wifiTable").append(pt("Manual add",0,0)),l("#wifiTable tr:last").addClass("table-light text-dark").addClass("manual_add")),!st.ssid||st.urc!==O&&st.urc!==x)st.urc!==R&&l("span#foot-if").html("");else{var n,s='#wifiTable td:contains("'.concat(st.ssid,'")');if(0==l(s).filter((function(){return l(this).text()===st.ssid})).length)l("#wifiTable").prepend("".concat(pt(st.ssid,null!==(n=st.rssi)&&void 0!==n?n:0,0)));l(s).filter((function(){return l(this).text()===st.ssid})).siblings().first().html("✓").parent().addClass(st.urc===O?"table-success":"table-warning"),l("span#foot-if").html("SSID: ".concat(st.ssid,", IP: ").concat(st.ip,"")),l("#wifiStsIcon").html(ht(st.rssi))}}function gt(t){console.debug(this.toLocaleString()+"\t"+t.nme+"\t"+t.cpu+"\t"+C[t.st]+"\t"+t.minstk+"\t"+t.bprio+"\t"+t.cprio+"\t"+t.num),l("tbody#tasks").append(''+t.num+""+t.nme+""+t.cpu+""+C[t.st]+""+t.minstk+""+t.bprio+""+t.cprio+"")}function vt(t){return l("".concat(nt," option:contains('").concat(t,"')"))}function bt(){l.getJSON("/messages.json",function(){var t=(0,s.Z)(o.default.mark((function t(e){var n,s,a,i,r,c,d,h,f,p;return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=u(e);try{for(a=function(){var t=s.value,e=t.current_time-t.sent_time;switch((i=new Date).setTime(i.getTime()-e),t.class){case"MESSAGING_CLASS_OTA":I.EventOTAMessageClass(t.message);break;case"MESSAGING_CLASS_STATS":r=JSON.parse(t.message),console.debug(i.toLocalShort()+" - Number of running tasks: "+r.ntasks),console.debug(i.toLocalShort()+"\tname\tcpu\tstate\tminstk\tbprio\tcprio\tnum"),r.tasks?("collapse"===l("#tasks_sect").css("visibility")&&l("#tasks_sect").css("visibility","visible"),l("tbody#tasks").html(""),r.tasks.sort((function(t,e){return e.cpu-t.cpu})).forEach(gt,i)):"visible"===l("#tasks_sect").css("visibility")&&(l("tbody#tasks").empty(),l("#tasks_sect").css("visibility","collapse"));break;case"MESSAGING_CLASS_SYSTEM":Ot(t,i);break;case"MESSAGING_CLASS_CFGCMD":D((c=t.message.split(/((?:(?!\n)[\s\S])*)\n([\s\S]*)/g))[1],t.type,c[2],!0);break;case"MESSAGING_CLASS_BT":if(l("#cfg-audio-bt_source-sink_name").is("input")){for(d=l("#cfg-audio-bt_source-sink_name")[0].attributes,h="",f=0;f "))}JSON.parse(t.message).forEach((function(e){vt(e.name).length>0||(l("#cfg-audio-bt_source-sink_name").append("")),Ot({type:t.type,message:"BT Audio device found: ".concat(e.name," RSSI: ").concat(e.rssi," ")},i)),vt(e.name).attr("data-bs-description","".concat(e.name," (").concat(e.rssi,"dB)")).attr("rssi",e.rssi).attr("value",e.name).text("".concat(e.name," [").concat(e.rssi,"dB]")).trigger("change")})),l(nt).append(l("".concat(nt," option")).remove().sort((function(t,e){return console.log("".concat(parseInt(l(t).attr("rssi"))," < ").concat(parseInt(l(e).attr("rssi"))," ? ")),parseInt(l(t).attr("rssi"))".concat(st.ip,""))):(l(".if_wifi").show(),mt())),St(t)}function _t(){l.getJSON("/status.json",(function(t){var e;if(function(t){var e;1===(null!==(e=t.recovery)&&void 0!==e?e:0)?(W=!0,l(".recovery_element").show(),l(".ota_element").hide(),l("#boot-button").html("Reboot"),l("#boot-form").attr("action","/reboot_ota.json")):(!W&&B&&(B=!1,setTimeout(bt,M)),W=!1,l(".recovery_element").hide(),l(".ota_element").show(),l("#boot-button").html("Recovery"),l("#boot-form").attr("action","/recovery.json"))}(t),h(),yt(t),function(t){var e="",n="";if(void 0!==t.bt_status&&void 0!==t.bt_sub_status){var s=T[t.bt_status].sub[t.bt_sub_status];s?(e=w[s],n=T[t.bt_status].desc):(e=w.bt_connected,n="Output status")}l("#o_type").attr("title",n),l("#o_bt").html(e)}(t),I.EventTargetStatus(t),t.project_name&&""!==t.project_name&&(K=t.project_name),t.platform_name&&""!==t.platform_name&&(tt=t.platform_name),""===$&&($=K),""===$&&($="Squeezelite-ESP32"),t.version&&""!==t.version?(Q=t.version,l("#navtitle").html("".concat($).concat(W?"
[recovery]":"")),l("span#foot-fw").html("fw: ".concat(Q,", mode: ").concat(W?"Recovery":K,""))):l("span#flash-status").html(""),t.Voltage?(l("#battery").html("".concat(function(t){var e,n,s=u(E);try{for(s.s();!(e=s.n()).done;){var a,o=e.value,i=u(o.ranges);try{for(i.s();!(a=i.n()).done;){var r=a.value;if(((n=t)-r.f)*(n-r.t)<=0)return o.icon}}catch(t){i.e(t)}finally{i.f()}}}catch(t){s.e(t)}finally{s.f()}return"battery_full"}(t.Voltage))),l("#battery").show()):l("#battery").hide(),""!=(null!==(e=t.message)&&void 0!==e?e:"")&&X!=t.message&&(X=t.message,At(t.message,"MESSAGING_INFO")),t.is_i2c_locked?l("flds-cfg-hw-preset").hide():l("flds-cfg-hw-preset").show(),l("button[onclick*='handleReboot']").removeClass("rebooting"),void 0===F||t.lms_ip!=ot&&t.lms_ip&&t.lms_port){var n="http://"+t.lms_ip+":"+t.lms_port;ot=t.lms_ip,l.ajax({url:n+"/plugins/SqueezeESP32/firmware/-check.bin",type:"HEAD",dataType:"text",cache:!1,error:function(){F=""},success:function(){F=n}})}l("#o_jack").css({display:Number(t.Jack)?"inline":"none"}),setTimeout(_t,2e3)})).fail((function(t,e,n){j(t,0,n),0==t.status&&0==t.readyState?setTimeout(_t,5e3):setTimeout(_t,M)}))}function wt(t,e,n){return void 0!==t.values[e]?t.values[e][n]:""}function Et(){l.getJSON("/commands.json",(function(t){console.log(t),l(".orec").show(),t.commands.forEach((function(e){if(0===l("#flds-"+e.name).length){var n=e.name.split("-"),s="cfg"===n[0],a="#tab-"+n[0]+"-"+n[1],o="";o+='
'.concat(e.help.encodeHTML().replace(/\n/g,"
"),'
'),e.argtable&&e.argtable.forEach((function(n){var s=n.datatype||"",a=e.name+"-"+n.longopts,i=wt(t,e.name,n.longopts),r="hasvalue="+n.hasvalue+" ";r+='longopts="'+n.longopts+'" ',r+='shortopts="'+n.shortopts+'" ',r+="checkbox="+n.checkbox+" ",r+='cmdname="'+e.name+'" ',r+='id="'+a+'" name="'+a+'" hasvalue="'+n.hasvalue+'" ';var c=n.mincount>0?"bg-success":"";"hidden"===n.glossary&&(r+=' style="visibility: hidden;"'),n.checkbox?o+='
"):(o+='
"),s.includes("|")?(c=s.startsWith("+")?" multiple ":"",s=s.replace("<","").replace("=","").replace(">",""),o+=""):o+='")),o+="".concat(n.checkbox?"
":"",'Previous value: ').concat(n.checkbox?i?"Checked":"Unchecked":i||"","").concat(n.checkbox?"":"
")})),o+='
\n '),o+=s?'\n'):''),o+="
",s?l(a).append(o):l("#commands-list").append(o)}})),l(".sclk").off("click").on("click",(function(){runCommand(this,!1)})),l(".cclk").off("click").on("click",(function(){runCommand(this,!0)})),t.commands.forEach((function(e){l("[cmdname="+e.name+"]:input").val(""),l("[cmdname="+e.name+"]:checkbox").prop("checked",!1),e.argtable&&e.argtable.forEach((function(n){var s="#"+e.name+"-"+n.longopts,a=wt(t,e.name,n.longopts);n.checkbox?l(s)[0].checked=a:(void 0!==a&&l(s).val(a).trigger("change"),0===l(s)[0].value.length&&(n.datatype||"").includes("|")&&(l(s)[0].value="--"))}))})),0!=l("#cfg-hw-preset-model_config").length&&(G||(G=!0,l("#cfg-hw-preset-model_config").html(""),l.getJSON("https://gist.githubusercontent.com/sle118/dae585e157b733a639c12dc70f0910c5/raw/",{_:(new Date).getTime()},(function(t){l.each(t,(function(t,e){l("#cfg-hw-preset-model_config").append("")),""!==et&&et==e.name&&l("#cfg-hw-preset-model_config").val(et)})),""!==et&&"#prev_preset".show().val(et)})).fail((function(t,e,n){var s=e+", "+n;console.log("Request Failed: "+s)}))))})).fail((function(t,e,n){404==t.status?l(".orec").hide():j(t,0,n),l("#commands-list").empty()}))}function Tt(){l.getJSON("/config.json",(function(t){l("#nvsTable tr").remove();var e=t.config?t.config:t;Y=e,Object.keys(e).sort().forEach((function(t){var n=e[t].value;if("autoexec"===t)"0"===e.autoexec.value?l("#disable-squeezelite")[0].checked=!0:l("#disable-squeezelite")[0].checked=!1;else if("autoexec1"===t){var s=/-o\s?(["][^"]*["]|[^-]+)/g.exec(n);s[1].toUpperCase().startsWith("I2S")?U("i2s"):s[1].toUpperCase().startsWith("SPDIF")?U("spdif"):s[1].toUpperCase().startsWith('"BT')&&U("bt")}else"host_name"===t?(n=n.replaceAll('"',""),l("input#dhcp-name1").val(n),l("input#dhcp-name2").val(n),l("#player").val(n),document.title=n,V=n):"rel_api"===t?J=n:"enable_airplay"===t?l("#s_airplay").css({display:f(n)?"inline":"none"}):"enable_cspot"===t?l("#s_cspot").css({display:f(n)?"inline":"none"}):"preset_name"==t?et=n:"board_model"==t&&($=n);l("tbody#nvsTable").append(""+t+""),l("input#"+t).val(e[t].value)})),l("tbody#nvsTable").append(""),t.gpio?(l("#pins").show(),l("tbody#gpiotable tr").remove(),t.gpio.forEach((function(t){l("tbody#gpiotable").append("'+t.group+""+t.name+""+t.gpio+""+(t.fixed?"Fixed":"Configuration")+"")}))):l("#pins").hide()})).fail((function(t,e,n){j(t,0,n)}))}function At(t,e){Ot({message:t,type:e},new Date)}function Ot(t,e){var n="table-success";"MESSAGING_WARNING"===t.type?(n="table-warning","MESSAGING_INFO"===q&&(q="MESSAGING_WARNING")):"MESSAGING_ERROR"===t.type&&("MESSAGING_INFO"!==q&&"MESSAGING_WARNING"!==q||(q="MESSAGING_ERROR"),n="table-danger"),++H>0&&(l("#msgcnt").removeClass("badge-success"),l("#msgcnt").removeClass("badge-warning"),l("#msgcnt").removeClass("badge-danger"),l("#msgcnt").addClass(A[q]),l("#msgcnt").text(H)),l("#syslogTable").append(""+e.toLocalShort()+""+t.message.encodeHTML()+"")}function Nt(t){return new r.J((function(e){return setTimeout(e,t)}))}r.J.prototype.delay=function(t){return this.then((function(e){return new r.J((function(n){setTimeout((function(){n(e)}),t)}))}),(function(e){return new r.J((function(n,s){setTimeout((function(){s(e)}),t)}))}))},window.saveAutoexec1=function(t){D("cfg-audio-tmpl","MESSAGING_INFO","Saving.\n",!1);var e='squeezelite -b 500:2000 -d all=info -C 30 -W -n "'+l("#player").val()+'"';"bt"===Z?(e+=' -o "BT" -R -Z 192000',D("cfg-audio-tmpl","MESSAGING_INFO","Remember to configure the Bluetooth audio device name.\n",!0)):e+="spdif"===Z?" -o SPDIF -Z 192000":" -o I2S",""!==l("#optional").val()&&(e+=" "+l("#optional").val());var n={timestamp:Date.now()};n.config={autoexec1:{value:e,type:33},autoexec:{value:l("#disable-squeezelite").prop("checked")?"0":"1",type:33}},l.ajax({url:"/config.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(n),error:j,complete:function(e){e.responseText&&"OK"===JSON.parse(e.responseText).result?(D("cfg-audio-tmpl","MESSAGING_INFO","Done.\n",!0),t&&ut(1500,"cfg-audio-tmpl")):JSON.parse(e.responseText).result?D("cfg-audio-tmpl","MESSAGING_WARNING",JSON.parse(e.responseText).Result+"\n",!0):D("cfg-audio-tmpl","MESSAGING_ERROR",e.statusText+"\n"),console.log(e.responseText)}}),console.log("sent data:",JSON.stringify(n))},window.handleDisconnect=function(){l.ajax({url:"/connect.json",dataType:"text",method:"DELETE",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()})})},window.handleConnect=function(){at.ssid=l("#manual_ssid").val(),at.pwd=l("#manual_pwd").val(),at.dhcpname=l("#dhcp-name2").val(),l("*[class*='connecting']").hide(),l("#ssid-wait").text(at.ssid),l(".connecting").show(),l.ajax({url:"/connect.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now(),ssid:at.ssid,pwd:at.pwd}),error:j})},l(document).ready((function(){h(),I.init(),l("#fw-url-input").on("input",(function(){l(this).val().length>8&&(l(this).val().startsWith("http://")||l(this).val().startsWith("https://"))?l("#start-flash").show():l("#start-flash").hide()})),l(".upSrch").on("input",(function(){var t=this.value;l("#rTable tr").removeClass(this.id+"_hide"),t.length>0&&l("#rTable td:nth-child(".concat(l(this).parent().index()+1,")")).filter((function(){return!l(this).text().toUpperCase().includes(t.toUpperCase())})).parent().addClass(this.id+"_hide"),l('[class*="_hide"]').hide(),l("#rTable tr").not('[class*="_hide"]').show()})),setTimeout(ft,1500),l("#WifiConnectDialog")[0].addEventListener("shown.bs.modal",(function(t){l("*[class*='connecting']").hide(),null!=t&&t.relatedTarget&&(at.Action=it,l(t.relatedTarget).children("td:eq(1)").text()==st.ssid?at.Action=ct:l(t.relatedTarget).is(":last-child")?(at.Action=rt,at.ssid="",l("#manual_ssid").val(at.ssid)):(at.ssid=l(t.relatedTarget).children("td:eq(1)").text(),l("#manual_ssid").val(at.ssid))),at.Action!==ct?(l(".connecting-init").show(),l("#manual_ssid").trigger("focus")):St()})),l("#WifiConnectDialog")[0].addEventListener("hidden.bs.modal",(function(){l("#WifiConnectDialog input").val("")})),l("#uCnfrm")[0].addEventListener("shown.bs.modal",(function(){l("#selectedFWURL").text(l("#fw-url-input").val())})),l("input#show-commands")[0].checked=1===z,l('a[href^="#tab-commands"]').hide(),l("#load-nvs").on("click",(function(){l("#nvsfilename").trigger("click")})),l("#nvsfilename").on("change",(function(){if("function"!=typeof window.FileReader)throw"The file API isn't supported on this browser.";if(!this.files)throw"This browser does not support the `files` property of the file input.";if(this.files[0]){var t=this.files[0],e=new FileReader;e.onload=function(t){var e={};try{e=JSON.parse(t.target.result)}catch(t){alert("Parsing failed!\r\n "+t)}l("input.nvs").each((function(t,n){l(this).parent().removeClass("bg-warning").removeClass("bg-success"),e[n.id]&&(e[n.id]!==n.value?(console.log("Changed "+n.id+" "+n.value+"==>"+e[n.id]),l(this).parent().addClass("bg-warning"),l(this).val(e[n.id])):l(this).parent().addClass("bg-success"))})),l("input.nvs").children(".bg-warning")&&alert("Highlighted values were changed. Press Commit to change on the device")},e.readAsText(t),this.value=null}})),l("#clear-syslog").on("click",(function(){H=0,q="MESSAGING_INFO",l("#msgcnt").text(""),l("#syslogTable").html("")})),l("#ok-credits").on("click",(function(){l("#credits").slideUp("fast",(function(){})),l("#app").slideDown("fast",(function(){}))})),l("#acredits").on("click",(function(t){t.preventDefault(),l("#app").slideUp("fast",(function(){})),l("#credits").slideDown("fast",(function(){}))})),l("input#show-commands").on("click",(function(){this.checked=this.checked?1:0,this.checked?(l('a[href^="#tab-commands"]').show(),z=1):(z=0,l('a[href^="#tab-commands"]').hide())})),l("input#show-nvs").on("click",(function(){this.checked=this.checked?1:0,c.Z.set("show-nvs",this.checked?"Y":"N"),h()})),l("#btn_reboot_recovery").on("click",(function(){handleReboot("recovery")})),l("#btn_reboot").on("click",(function(){handleReboot("reboot")})),l("#btn_flash").on("click",(function(){hFlash()})),l("#save-autoexec1").on("click",(function(){saveAutoexec1(!1)})),l("#commit-autoexec1").on("click",(function(){saveAutoexec1(!0)})),l("#btn_disconnect").on("click",(function(){handleDisconnect()})),l("#btnJoin").on("click",(function(){handleConnect()})),l("#reboot_nav").on("click",(function(){handleReboot("reboot")})),l("#reboot_ota_nav").on("click",(function(){handleReboot("reboot_ota")})),l("#save-as-nvs").on("click",(function(){var t=lt(!0),e=document.createElement("a");e.href=URL.createObjectURL(new Blob([JSON.stringify(t,null,2)],{type:"text/plain"})),e.setAttribute("download","nvs_config_"+V+"_"+Date.now()+"json"),document.body.appendChild(e),e.click(),document.body.removeChild(e)})),l("#save-nvs").on("click",(function(){P(lt(!1))})),l("#fwUpload").on("click",(function(){0===document.getElementById("flashfilename").files.length?alert("No file selected!"):(l("#fw-url-input").value=null,I.StartOTA())})),l("[name=output-tmpl]").on("click",(function(){U(this.id)})),l("#chkUpdates").on("click",(function(){l("#rTable").html(""),l.getJSON(J,(function(t){var e=[];t.forEach((function(t){var n=t.name.split("#")[3];e.includes(n)||e.push(n)}));var n="";e.forEach((function(t){n+='"})),l("#fwbranch").append(n),t.forEach((function(t){var e="";t.assets.forEach((function(t){t.name.match(/\.bin$/)&&(e=t.browser_download_url)}));var n=t.name.split("#"),s=n[0],a=n[2],o=n[3],i=s.substr(s.lastIndexOf("-")+1);i="32"==i||"16"==i?i:"";var r=t.body;r=(r=(r=r.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- ").encodeHTML(),l("#rTable").append("\n ").concat(s,"").concat(new Date(t.created_at).toLocalShort(),"\n ").concat(a,"").concat(o,"").concat(i,""))})),l("#searchfw").css("display","inline"),dt(tt)||dt(K),l("#rTable tr.release").on("click",(function(){var t=this.attributes.fwurl.value;F&&(t=t.replace(/.*\/download\//,F+"/plugins/SqueezeESP32/firmware/")),l("#fw-url-input").val(t),l("#start-flash").show(),l("#rTable tr.release").removeClass("table-success table-warning"),l(this).addClass("table-success table-warning")}))})).fail((function(){alert("failed to fetch release history!")}))})),l("#fwcheck").on("click",(function(){l("#releaseTable").html(""),l("#fwbranch").empty(),l.getJSON(J,(function(t){var e,n=0,s=[];t.forEach((function(t){var e=t.name.split("#")[3];s.includes(e)||s.push(e)})),s.forEach((function(t){e+='"})),l("#fwbranch").append(e),t.forEach((function(t){var e="";t.assets.forEach((function(t){t.name.match(/\.bin$/)&&(e=t.browser_download_url)}));var s=t.name.split("#"),a=s[0],o=s[1],i=s[2],r=s[3],c=t.body;c=(c=(c=c.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- ");var u=n++>6?" hide":"";l("#releaseTable").append(""+a+""+new Date(t.created_at).toLocalShort()+""+i+""+o+""+r+"")})),n>7&&(l("#releaseTable").append(""),l("#showallbutton").on("click",(function(){l("tr.hide").removeClass("hide"),l("tr#showall").addClass("hide")}))),l("#searchfw").css("display","inline")})).fail((function(){alert("failed to fetch release history!")}))})),l("#updateAP").on("click",(function(){ft(),console.log("refresh AP")})),Tt(),Et(),bt(),_t()})),window.setURL=function(t){var e=t.dataset.url;l('[data-bs-url^="http"]').addClass("btn-success").removeClass("btn-danger"),l('[data-bs-url="'+e+'"]').addClass("btn-danger").removeClass("btn-success"),F&&(e=e.replace(/.*\/download\//,F+"/plugins/SqueezeESP32/firmware/")),l("#fwurl").val(e)},window.runCommand=function(t,e){var n=t.attributes.cmdname.value;D(t.attributes.cmdname.value,"MESSAGING_INFO","Executing.",!1);var s=document.getElementById("flds-"+n),o=null==s?void 0:s.querySelectorAll("select,input");if("cfg-hw-preset"===n)return function(t,e){var n=JSON.parse(t[0].value),s=t[0].attributes.cmdname.value;console.log("selected model: ".concat(n.name));for(var o={timestamp:Date.now(),config:{model_config:{value:n.name,type:33}}},i=0,r=Object.entries(n.config);i{t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAb1BMVEXIycuswsKMjI4rqqZyc3RQlpQ6jIEmJifW2dq5ursppJ8Om4zC0NAFdGYmmpb///8Hg3O4x8cHkoEggX0jko5Ks6/P0dM5r6ocoZb3+PgiiYVevrp/y8bg4uOS09FtxMDs7+7M6um529qoysik2tiNn72gAAAAF3RSTlP94Fr/Wf39BP26/////////////////kibhL0AAAGjSURBVDjLbZMJkoMgEEWtmETEJWpkiSC45P5nnF4wk7HmW2jLfzYIdFYUxbXUYp5nIbTOUFoLAR2ivIKZFQXYuu6TahSHmdAlAqWub0/QNI1jSxrHacKeWw9EdtH1xHbbyiRgCJn67JqVAr9nO2fJnBDMoUuYEvsfmxnJBM66Zj8/iYmaAPKlOvRNJAC/fz8OefINEAngAbYPEMiHTJCCAZrACciVMpCCgDEBKwsAowymMO3IAP3Btqa5vYJx0ZlcOSUZaE/AWznvnTHOyfZ/wMUQvAIg/wb27QNEH94BgGj+APsZiF8AXAhQQEMwkIYYLW7xvsENoyUoF0I0ysf0F2O743kDQNXzXM8+j8Eb6byzDEz7gtpsO1PgrXG5Nd6btNTP+YXarKTny1uQ9JiAN6vbqT9au+BzMQjAWtlq6BiYttdjiVVVqfXxWFWFkk6Cz0DTdYOFPmpHAAK/YQCJoTppQJ8A3TAxVAAhR439Bg5tKe7NgSDEje3mDsf+ovuGCUbYZb/BwoHS6ykHMYfo/U6lx8Xb/+qo3U/x/lf+VP9c/j9c3zy20WEMxgAAAABJRU5ErkJggg=="}},n={};function s(t){var a=n[t];if(void 0!==a)return a.exports;var o=n[t]={id:t,loaded:!1,exports:{}};return e[t](o,o.exports,s),o.loaded=!0,o.exports}s.m=e,s.amdO={},t=[],s.O=(e,n,a,o)=>{if(!n){var i=1/0;for(u=0;u=o)&&Object.keys(s.O).every((t=>s.O[t](n[c])))?n.splice(c--,1):(r=!1,o0&&t[u-1][2]>o;u--)t[u]=t[u-1];t[u]=[n,a,o]},s.d=(t,e)=>{for(var n in e)s.o(e,n)&&!s.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),s.hmd=t=>((t=Object.create(t)).children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t),s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(()=>{var t={826:0};s.O.j=e=>0===t[e];var e=(e,n)=>{var a,o,[i,r,c]=n,l=0;if(i.some((e=>0!==t[e]))){for(a in r)s.o(r,a)&&(s.m[a]=r[a]);if(c)var u=c(s)}for(e&&e(n);ls(196)));a=s.O(a)})(); \ No newline at end of file diff --git a/components/wifi-manager/webapp/dist/js/index.7581c6.bundle.js.gz b/components/wifi-manager/webapp/dist/js/index.7581c6.bundle.js.gz deleted file mode 100644 index 9cbfa179..00000000 Binary files a/components/wifi-manager/webapp/dist/js/index.7581c6.bundle.js.gz and /dev/null differ diff --git a/components/wifi-manager/webapp/dist/js/index.ad2bb1.bundle.js b/components/wifi-manager/webapp/dist/js/index.ad2bb1.bundle.js new file mode 100644 index 00000000..bcf45a9f --- /dev/null +++ b/components/wifi-manager/webapp/dist/js/index.ad2bb1.bundle.js @@ -0,0 +1,2 @@ +(()=>{"use strict";var t,e={322:(t,e,n)=>{n.r(e);var s=n(531),a=n(152),o=n(757),i=n.n(o),r=n(955),c=n(755);function l(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return u(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var s=0,a=function(){};return{s:a,n:function(){return s>=t.length?{done:!0}:{done:!1,value:t[s++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,r=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return i=t.done,t},e:function(t){r=!0,o=t},f:function(){try{i||null==n.return||n.return()}finally{if(r)throw o}}}}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,s=new Array(e);n")}}),Object.assign(Date.prototype,{toLocalShort:function(){return this.toLocaleString(void 0,{dateStyle:"short",timeStyle:"short"})}});var m=1,g=17,v=2,b=18,S=4,y=20,_=8,w=24,T={bt_playing:"media_bluetooth_on",bt_disconnected:"media_bluetooth_off",bt_neutral:"bluetooth",bt_connecting:"bluetooth_searching",bt_connected:"bluetooth_connected",bt_disabled:"bluetooth_disabled",play_arrow:"play_circle_filled",pause:"pause_circle",stop:"stop_circle","":""},A=[{icon:"battery_0_bar",ranges:[{f:5.8,t:6.8},{f:8.8,t:10.2}]},{icon:"battery_2_bar",ranges:[{f:6.8,t:7.4},{f:10.2,t:11.1}]},{icon:"battery_3_bar",ranges:[{f:7.4,t:7.5},{f:11.1,t:11.25}]},{icon:"battery_4_bar",ranges:[{f:7.5,t:7.8},{f:11.25,t:11.7}]}],E=[{desc:"Idle",sub:["bt_neutral"]},{desc:"Discovering",sub:["bt_connecting"]},{desc:"Discovered",sub:["bt_connecting"]},{desc:"Unconnected",sub:["bt_disconnected"]},{desc:"Connecting",sub:["bt_connecting"]},{desc:"Connected",sub:["bt_connected","play_arrow","bt_playing","pause","stop"]},{desc:"Disconnecting",sub:["bt_disconnected"]}],O={MESSAGING_INFO:"badge-success",MESSAGING_WARNING:"badge-warning",MESSAGING_ERROR:"badge-danger"},N=0,k=1,x=3,R=4,C=5,I={0:"eRunning",1:"eReady",2:"eBlocked",3:"eSuspended",4:"eDeleted"},G={NONE:0,REBOOT_TO_RECOVERY:2,SET_FWURL:5,FLASHING:6,DONE:7,UPLOADING:8,ERROR:9,UPLOADCOMPLETE:10,_state:-1,olderRecovery:!1,statusText:"",flashURL:"",flashFileName:"",statusPercent:0,Completed:!1,recovery:!1,prevRecovery:!1,updateModal:new bootstrap.Modal(document.getElementById("otadiv"),{}),reset:function(){return this.olderRecovery=!1,this.statusText="",this.statusPercent=-1,this.flashURL="",this.flashFileName=void 0,this.UpdateProgress(),c("#rTable tr.release").removeClass("table-success table-warning"),c(".flact").prop("disabled",!1),c("#flashfilename").value=null,c("#fw-url-input").value=null,this.isStateError()||(c("span#flash-status").html(""),c("#fwProgressLabel").parent().removeClass("bg-danger")),this._state=this.NONE,this},isStateUploadComplete:function(){return this._state==this.UPLOADCOMPLETE},isStateError:function(){return this._state==this.ERROR},isStateNone:function(){return this._state==this.NONE},isStateRebootRecovery:function(){return this._state==this.REBOOT_TO_RECOVERY},isStateSetUrl:function(){return this._state==this.SET_FWURL},isStateFlashing:function(){return this._state==this.FLASHING},isStateDone:function(){return this._state==this.DONE},isStateUploading:function(){return this._state==this.UPLOADING},init:function(){return this._state=this.NONE,this},SetStateError:function(){return this._state=this.ERROR,c("#fwProgressLabel").parent().addClass("bg-danger"),this},SetStateNone:function(){return this._state=this.NONE,this},SetStateRebootRecovery:function(){return this._state=this.REBOOT_TO_RECOVERY,this.SetStatusText("Starting recovery mode."),c.ajax({url:"/recovery.json",context:this,dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()}),error:function(t,e,n){var s;this.setOTAError("Unexpected error while trying to restart to recovery. (status=".concat(null!==(s=t.status)&&void 0!==s?s:"",", error=").concat(null!=n?n:""," ) "))},complete:function(t){this.SetStatusText("Waiting for system to boot.")}}),this},SetStateSetUrl:function(){return this._state=this.SET_FWURL,this.statusText="Sending firmware download location.",U({fwurl:{value:this.flashURL,type:33}}),this},SetStateFlashing:function(){return this._state=this.FLASHING,this},SetStateDone:function(){return this._state=this.DONE,this.reset(),this},SetStateUploading:function(){return this._state=this.UPLOADING,this.SetStatusText("Sending file to device.")},SetStateUploadComplete:function(){return this._state=this.UPLOADCOMPLETE,this},isFlashExecuting:function(){return!0==(this._state!=this.UPLOADING&&(""!==this.statusText||this.statusPercent>=0))},toString:function(){var t=this;return Object.keys(this).find((function(e){return t[e]===t._state}))},setOTATargets:function(){this.flashURL="",this.flashFileName="",this.flashURL=c("#fw-url-input").val();var t=c("#flashfilename")[0].files;return t.length>0&&(this.flashFileName=t[0]),0==this.flashFileName.length&&0==this.flashURL.length&&this.setOTAError("Invalid url or file. Cannot start OTA"),this},setOTAError:function(t){return this.SetStateError().SetStatusPercent(0).SetStatusText(t).reset(),this},ShowDialog:function(){return this.isStateNone()||(this.updateModal.show(),c(".flact").prop("disabled",!0)),this},SetStatusPercent:function(t){var e=this.statusPercent!=t;return this.statusPercent=t,e&&(this.isStateUploading()||this.isStateFlashing()||this.SetStateFlashing(),100==t&&(this.isStateFlashing()?this.SetStateDone():this.isStateUploading()&&(this.statusPercent=0,this.SetStateFlashing())),this.UpdateProgress().ShowDialog()),this},SetStatusText:function(t){var e=this.statusText!=t;return this.statusText=t,e&&(c("span#flash-status").html(this.statusText),this.ShowDialog()),this},UpdateProgress:function(){return c(".progress-bar").css("width",this.statusPercent+"%").attr("aria-valuenow",this.statusPercent).text(this.statusPercent+"%"),c(".progress-bar").html((this.isStateDone()?100:this.statusPercent)+"%"),this},StartOTA:function(){return this.logEvent(this.StartOTA.name),c("#fwProgressLabel").parent().removeClass("bg-danger"),this.setOTATargets(),this.isStateError()||(B?this.SetStateFlashing().TargetReadyStartOTA():this.SetStateRebootRecovery()),this},UploadLocalFile:function(){this.SetStateUploading();var t=new XMLHttpRequest;t.context=this;var e=this.HandleUploadProgressEvent.bind(this),n=this.setOTAError.bind(this);t.upload.addEventListener("progress",e,!1),t.onreadystatechange=function(){4===t.readyState&&(0!==t.status&&404!==t.status||n("Upload Failed. Recovery version might not support uploading. Please use web update instead."))},t.open("POST","/flash.json",!0),t.send(this.flashFileName)},TargetReadyStartOTA:function(){return B&&this.prevRecovery&&!this.isStateRebootRecovery()&&!this.isStateFlashing()?this:(this.logEvent(this.TargetReadyStartOTA.name),B?(this.prevRecovery=!0,void(""!==this.flashFileName?this.UploadLocalFile():""!=this.flashURL?this.SetStateSetUrl():this.setOTAError("Invalid URL or file name while trying to start the OTa process"))):(console.error("Event TargetReadyStartOTA fired in the wrong mode "),this))},HandleUploadProgressEvent:function(t){this.logEvent(this.HandleUploadProgressEvent.name),this.SetStateUploading().SetStatusPercent(Math.round(t.loaded/t.total*100)).SetStatusText("Uploading file to device")},EventTargetStatus:function(t){var e,n;this.isStateNone()||this.logEvent(this.EventTargetStatus.name),null!==(e=t.ota_pct)&&void 0!==e&&e&&(this.olderRecovery=!0,this.SetStatusPercent(t.ota_pct)),""!=(null!==(n=t.ota_dsc)&&void 0!==n?n:"")&&(this.olderRecovery=!0,this.SetStatusText(t.ota_dsc)),null!=t.recovery&&(this.recovery=1===t.recovery),this.isStateRebootRecovery()&&this.recovery&&this.TargetReadyStartOTA()},EventOTAMessageClass:function(t){this.logEvent(this.EventOTAMessageClass.name);var e=JSON.parse(t);this.SetStatusPercent(e.ota_pct).SetStatusText(e.ota_dsc)},logEvent:function(t){console.log("".concat(t,", flash state ").concat(this.toString(),", recovery: ").concat(this.recovery,", ota pct: ").concat(this.statusPercent,", ota desc: ").concat(this.statusText))}};window.hideSurrounding=function(t){c(t).parent().parent().hide()};var M=!1,P=2500;function U(t){var e={timestamp:Date.now(),config:t};c.ajax({url:"/config.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(e),error:L})}function j(t){c("#o_type").children("span").css({display:"none"}),c("#"+(Z="bt"===t?"bt":"spdif"===t?"spdif":"i2s")).prop("checked",!0),c("#o_"+Z).css({display:"inline"})}function L(t,e,n){console.log(t.status),console.log(n),""!==n&&Ot(n,"MESSAGING_ERROR")}function D(t){c("#toast_"+t).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass("table-success").removeClass("show"),c("#msg_"+t).html("")}function F(t,e,n){var s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a="table-success";"MESSAGING_WARNING"===e?a="table-warning":"MESSAGING_ERROR"===e&&(a="table-danger"),c("#toast_"+t).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass(a).addClass("show");var o=n.substring(0,n.length-1).encodeHTML().replace(/\n/g,"
");o=(c("#msg_"+t).html().length>0&&s?c("#msg_"+t).html()+"
":"")+o,c("#msg_"+t).html(o)}window.hFlash=function(){c("#flashfilename").value=null,G.StartOTA()},window.handleReboot=function(t){"reboot_ota"==t?(c("#reboot_ota_nav").removeClass("active").prop("disabled",!0),dt(500,"","reboot_ota")):(c("#reboot_nav").removeClass("active"),dt(500,"",t))};var J,W="https://api.github.com/repos/sle118/squeezelite-esp32/releases",B=!1,H=!1,q=0,Y="MESSAGING_INFO",z={},V=null,Z="",Q="",X="Squeezelite-ESP32",K="",$=X,tt="",et=X,nt="",st="#cfg-audio-bt_source-sink_name",at={},ot={},it="",rt=0,ct=1,lt=2;function ut(t){var e={};c("input.nvs").each((function(n,s){if(t)e[s.id]=s.value;else{var a=parseInt(s.attributes.nvs_type.value,10);""!==s.id&&(e[s.id]={},e[s.id].value=a===m||a===g||a===v||a===b||a===S||a===y||a===_||a===w?parseInt(s.value):s.value,e[s.id].type=a)}}));var n=c("#nvs-new-key").val(),s=c("#nvs-new-value").val();return""!==n&&(t?e[n]=s:(e[n]={},e[n].value=s,e[n].type=33)),e}function dt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"reboot",s="/"+n+".json";c("tbody#tasks").empty(),c("#tasks_sect").css("visibility","collapse"),h.resolve({cmdname:e,url:s}).delay(t).then((function(t){t.cmdname.length>0?F(t.cmdname,"MESSAGING_WARNING","System is rebooting.\n",!0):Ot("System is rebooting.\n","MESSAGING_WARNING"),console.log("now triggering reboot"),c("button[onclick*='handleReboot']").addClass("rebooting"),c.ajax({url:t.url,dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()}),error:L,complete:function(){console.log("reboot call completed"),h.resolve(t).delay(6e3).then((function(t){t.cmdname.length>0&&D(t.cmdname),At(),Et()}))}})}))}function ht(t){return c(".upf").filter((function(){return c(this).text().toUpperCase()===t.toUpperCase()})).length>0&&(c("#splf").val(t).trigger("input"),!0)}function ft(t){return t>=-55?"signal_wifi_statusbar_4_bar":t>=-60?"network_wifi_3_bar":t>=-65?"network_wifi_2_bar":t>=-70?"network_wifi_1_bar":"signal_wifi_statusbar_null"}function pt(){at.urc!==C&&c.getJSON("/scan.json",(0,s.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,kt(2e3);case 2:c.getJSON("/ap.json",(function(t){t.length>0&&(t.sort((function(t,e){var n=t.rssi,s=e.rssi;return ns?-1:0})),gt(t))}));case 3:case"end":return t.stop()}}),t)}))))}function mt(t,e,n){return''.concat(t,'\n ').concat(ft(e),'\n \t\n ').concat(0==n?"no_encryption":"lock","\n ")}function gt(t){var e="";if(c("#wifiTable tr td:first-of-type").text(""),c("#wifiTable tr").removeClass("table-success table-warning"),t&&(t.forEach((function(t){e+=mt(t.ssid,t.rssi,t.auth)})),c("#wifiTable").html(e)),0==c(".manual_add").length&&(c("#wifiTable").append(mt("Manual add",0,0)),c("#wifiTable tr:last").addClass("table-light text-dark").addClass("manual_add")),!at.ssid||at.urc!==N&&at.urc!==R)at.urc!==C&&c("span#foot-if").html("");else{var n,s='#wifiTable td:contains("'.concat(at.ssid,'")');if(0==c(s).filter((function(){return c(this).text()===at.ssid})).length)c("#wifiTable").prepend("".concat(mt(at.ssid,null!==(n=at.rssi)&&void 0!==n?n:0,0)));c(s).filter((function(){return c(this).text()===at.ssid})).siblings().first().html("✓").parent().addClass(at.urc===N?"table-success":"table-warning"),c("span#foot-if").html("SSID: ".concat(at.ssid,", IP: ").concat(at.ip,"")),c("#wifiStsIcon").html(ft(at.rssi))}}function vt(t){console.debug(this.toLocaleString()+"\t"+t.nme+"\t"+t.cpu+"\t"+I[t.st]+"\t"+t.minstk+"\t"+t.bprio+"\t"+t.cprio+"\t"+t.num),c("tbody#tasks").append(''+t.num+""+t.nme+""+t.cpu+""+I[t.st]+""+t.minstk+""+t.bprio+""+t.cprio+"")}function bt(t){return c("".concat(st," option:contains('").concat(t,"')"))}function St(){c.getJSON("/messages.json",function(){var t=(0,s.Z)(i().mark((function t(e){var n,s,a,o,r,u,d,h,f,p;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=l(e);try{for(a=function(){var t=s.value,e=t.current_time-t.sent_time;switch((o=new Date).setTime(o.getTime()-e),t.class){case"MESSAGING_CLASS_OTA":G.EventOTAMessageClass(t.message);break;case"MESSAGING_CLASS_STATS":r=JSON.parse(t.message),console.debug(o.toLocalShort()+" - Number of running tasks: "+r.ntasks),console.debug(o.toLocalShort()+"\tname\tcpu\tstate\tminstk\tbprio\tcprio\tnum"),r.tasks?("collapse"===c("#tasks_sect").css("visibility")&&c("#tasks_sect").css("visibility","visible"),c("tbody#tasks").html(""),r.tasks.sort((function(t,e){return e.cpu-t.cpu})).forEach(vt,o)):"visible"===c("#tasks_sect").css("visibility")&&(c("tbody#tasks").empty(),c("#tasks_sect").css("visibility","collapse"));break;case"MESSAGING_CLASS_SYSTEM":Nt(t,o);break;case"MESSAGING_CLASS_CFGCMD":F((u=t.message.split(/((?:(?!\n)[\s\S])*)\n([\s\S]*)/g))[1],t.type,u[2],!0);break;case"MESSAGING_CLASS_BT":if(c("#cfg-audio-bt_source-sink_name").is("input")){for(d=c("#cfg-audio-bt_source-sink_name")[0].attributes,h="",f=0;f "))}JSON.parse(t.message).forEach((function(e){bt(e.name).length>0||(c("#cfg-audio-bt_source-sink_name").append("")),Nt({type:t.type,message:"BT Audio device found: ".concat(e.name," RSSI: ").concat(e.rssi," ")},o)),bt(e.name).attr("data-bs-description","".concat(e.name," (").concat(e.rssi,"dB)")).attr("rssi",e.rssi).attr("value",e.name).text("".concat(e.name," [").concat(e.rssi,"dB]")).trigger("change")})),c(st).append(c("".concat(st," option")).remove().sort((function(t,e){return console.log("".concat(parseInt(c(t).attr("rssi"))," < ").concat(parseInt(c(e).attr("rssi"))," ? ")),parseInt(c(t).attr("rssi"))".concat(at.ip,"
"))):(c(".if_wifi").show(),gt())),yt(t)}function wt(){c.getJSON("/status.json",(function(t){var e;if(function(t){var e;1===(null!==(e=t.recovery)&&void 0!==e?e:0)?(B=!0,c(".recovery_element").show(),c(".ota_element").hide(),c("#boot-button").html("Reboot"),c("#boot-form").attr("action","/reboot_ota.json")):(!B&&H&&(H=!1,setTimeout(St,P)),B=!1,c(".recovery_element").hide(),c(".ota_element").show(),c("#boot-button").html("Recovery"),c("#boot-form").attr("action","/recovery.json"))}(t),f(),_t(t),function(t){var e="",n="";if(void 0!==t.bt_status&&void 0!==t.bt_sub_status){var s=E[t.bt_status].sub[t.bt_sub_status];s?(e=T[s],n=E[t.bt_status].desc):(e=T.bt_connected,n="Output status")}c("#o_type").attr("title",n),c("#o_bt").html(e)}(t),G.EventTargetStatus(t),t.project_name&&""!==t.project_name&&($=t.project_name),t.platform_name&&""!==t.platform_name&&(et=t.platform_name),""===tt&&(tt=$),""===tt&&(tt="Squeezelite-ESP32"),t.version&&""!==t.version?(X=t.version,c("#navtitle").html("".concat(tt).concat(B?"
[recovery]":"")),c("span#foot-fw").html("fw: ".concat(X,", mode: ").concat(B?"Recovery":$,""))):c("span#flash-status").html(""),t.Voltage?(c("#battery").html("".concat(function(t){var e,n,s=l(A);try{for(s.s();!(e=s.n()).done;){var a,o=e.value,i=l(o.ranges);try{for(i.s();!(a=i.n()).done;){var r=a.value;if(((n=t)-r.f)*(n-r.t)<=0)return o.icon}}catch(t){i.e(t)}finally{i.f()}}}catch(t){s.e(t)}finally{s.f()}return"battery_full"}(t.Voltage))),c("#battery").show()):c("#battery").hide(),""!=(null!==(e=t.message)&&void 0!==e?e:"")&&K!=t.message&&(K=t.message,Ot(t.message,"MESSAGING_INFO")),t.is_i2c_locked?c("flds-cfg-hw-preset").hide():c("flds-cfg-hw-preset").show(),c("button[onclick*='handleReboot']").removeClass("rebooting"),void 0===J||t.lms_ip!=it&&t.lms_ip&&t.lms_port){var n="http://"+t.lms_ip+":"+t.lms_port;it=t.lms_ip,c.ajax({url:n+"/plugins/SqueezeESP32/firmware/-check.bin",type:"HEAD",dataType:"text",cache:!1,error:function(){J=""},success:function(){J=n}})}c("#o_jack").css({display:Number(t.Jack)?"inline":"none"}),setTimeout(wt,2e3)})).fail((function(t,e,n){L(t,0,n),0==t.status&&0==t.readyState?setTimeout(wt,5e3):setTimeout(wt,P)}))}function Tt(t,e,n){return void 0!==t.values[e]?t.values[e][n]:""}function At(){c.getJSON("/commands.json",(function(t){console.log(t),c(".orec").show(),t.commands.forEach((function(e){if(0===c("#flds-"+e.name).length){var n=e.name.split("-"),s="cfg"===n[0],a="#tab-"+n[0]+"-"+n[1],o="";o+='
'.concat(e.help.encodeHTML().replace(/\n/g,"
"),'
'),e.argtable&&e.argtable.forEach((function(n){var s=n.datatype||"",a=e.name+"-"+n.longopts,i=Tt(t,e.name,n.longopts),r="hasvalue="+n.hasvalue+" ";r+='longopts="'+n.longopts+'" ',r+='shortopts="'+n.shortopts+'" ',r+="checkbox="+n.checkbox+" ",r+='cmdname="'+e.name+'" ',r+='id="'+a+'" name="'+a+'" hasvalue="'+n.hasvalue+'" ';var c=n.mincount>0?"bg-success":"";"hidden"===n.glossary&&(r+=' style="visibility: hidden;"'),n.checkbox?o+='
"):(o+='
"),s.includes("|")?(c=s.startsWith("+")?" multiple ":"",s=s.replace("<","").replace("=","").replace(">",""),o+=""):o+='")),o+="".concat(n.checkbox?"
":"",'Previous value: ').concat(n.checkbox?i?"Checked":"Unchecked":i||"","").concat(n.checkbox?"":"
")})),o+='
\n '),o+=s?'\n'):''),o+="
",s?c(a).append(o):c("#commands-list").append(o)}})),c(".sclk").off("click").on("click",(function(){runCommand(this,!1)})),c(".cclk").off("click").on("click",(function(){runCommand(this,!0)})),t.commands.forEach((function(e){c("[cmdname="+e.name+"]:input").val(""),c("[cmdname="+e.name+"]:checkbox").prop("checked",!1),e.argtable&&e.argtable.forEach((function(n){var s="#"+e.name+"-"+n.longopts,a=Tt(t,e.name,n.longopts);n.checkbox?c(s)[0].checked=a:(void 0!==a&&c(s).val(a).trigger("change"),0===c(s)[0].value.length&&(n.datatype||"").includes("|")&&(c(s)[0].value="--"))}))})),0!=c("#cfg-hw-preset-model_config").length&&(M||(M=!0,c("#cfg-hw-preset-model_config").html(""),c.getJSON("https://gist.githubusercontent.com/sle118/dae585e157b733a639c12dc70f0910c5/raw/",{_:(new Date).getTime()},(function(t){c.each(t,(function(t,e){c("#cfg-hw-preset-model_config").append("")),""!==nt&&nt==e.name&&c("#cfg-hw-preset-model_config").val(nt)})),""!==nt&&"#prev_preset".show().val(nt)})).fail((function(t,e,n){var s=e+", "+n;console.log("Request Failed: "+s)}))))})).fail((function(t,e,n){404==t.status?c(".orec").hide():L(t,0,n),c("#commands-list").empty()}))}function Et(){c.getJSON("/config.json",(function(t){c("#nvsTable tr").remove();var e=t.config?t.config:t;z=e,Object.keys(e).sort().forEach((function(t){var n=e[t].value;if("autoexec"===t)"0"===e.autoexec.value?c("#disable-squeezelite")[0].checked=!0:c("#disable-squeezelite")[0].checked=!1;else if("autoexec1"===t){var s=/-o\s?(["][^"]*["]|[^-]+)/g.exec(n);s[1].toUpperCase().startsWith("I2S")?j("i2s"):s[1].toUpperCase().startsWith("SPDIF")?j("spdif"):s[1].toUpperCase().startsWith('"BT')&&j("bt")}else"host_name"===t?(n=n.replaceAll('"',""),c("input#dhcp-name1").val(n),c("input#dhcp-name2").val(n),c("#player").val(n),document.title=n,Q=n):"rel_api"===t?W=n:"enable_airplay"===t?c("#s_airplay").css({display:p(n)?"inline":"none"}):"enable_cspot"===t?c("#s_cspot").css({display:p(n)?"inline":"none"}):"preset_name"==t?nt=n:"board_model"==t&&(tt=n);c("tbody#nvsTable").append(""+t+""),c("input#"+t).val(e[t].value)})),c("tbody#nvsTable").append(""),t.gpio?(c("#pins").show(),c("tbody#gpiotable tr").remove(),t.gpio.forEach((function(t){c("tbody#gpiotable").append("'+t.group+""+t.name+""+t.gpio+""+(t.fixed?"Fixed":"Configuration")+"")}))):c("#pins").hide()})).fail((function(t,e,n){L(t,0,n)}))}function Ot(t,e){Nt({message:t,type:e},new Date)}function Nt(t,e){var n="table-success";"MESSAGING_WARNING"===t.type?(n="table-warning","MESSAGING_INFO"===Y&&(Y="MESSAGING_WARNING")):"MESSAGING_ERROR"===t.type&&("MESSAGING_INFO"!==Y&&"MESSAGING_WARNING"!==Y||(Y="MESSAGING_ERROR"),n="table-danger"),++q>0&&(c("#msgcnt").removeClass("badge-success"),c("#msgcnt").removeClass("badge-warning"),c("#msgcnt").removeClass("badge-danger"),c("#msgcnt").addClass(O[Y]),c("#msgcnt").text(q)),c("#syslogTable").append(""+e.toLocalShort()+""+t.message.encodeHTML()+"")}function kt(t){return new h((function(e){return setTimeout(e,t)}))}h.prototype.delay=function(t){return this.then((function(e){return new h((function(n){setTimeout((function(){n(e)}),t)}))}),(function(e){return new h((function(n,s){setTimeout((function(){s(e)}),t)}))}))},window.saveAutoexec1=function(t){F("cfg-audio-tmpl","MESSAGING_INFO","Saving.\n",!1);var e='squeezelite -b 500:2000 -d all=info -C 30 -W -n "'+c("#player").val()+'"';"bt"===Z?(e+=' -o "BT" -R -Z 192000',F("cfg-audio-tmpl","MESSAGING_INFO","Remember to configure the Bluetooth audio device name.\n",!0)):e+="spdif"===Z?" -o SPDIF -Z 192000":" -o I2S",""!==c("#optional").val()&&(e+=" "+c("#optional").val());var n={timestamp:Date.now()};n.config={autoexec1:{value:e,type:33},autoexec:{value:c("#disable-squeezelite").prop("checked")?"0":"1",type:33}},c.ajax({url:"/config.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(n),error:L,complete:function(e){e.responseText&&"OK"===JSON.parse(e.responseText).result?(F("cfg-audio-tmpl","MESSAGING_INFO","Done.\n",!0),t&&dt(1500,"cfg-audio-tmpl")):JSON.parse(e.responseText).result?F("cfg-audio-tmpl","MESSAGING_WARNING",JSON.parse(e.responseText).Result+"\n",!0):F("cfg-audio-tmpl","MESSAGING_ERROR",e.statusText+"\n"),console.log(e.responseText)}}),console.log("sent data:",JSON.stringify(n))},window.handleDisconnect=function(){c.ajax({url:"/connect.json",dataType:"text",method:"DELETE",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()})})},window.handleConnect=function(){ot.ssid=c("#manual_ssid").val(),ot.pwd=c("#manual_pwd").val(),ot.dhcpname=c("#dhcp-name2").val(),c("*[class*='connecting']").hide(),c("#ssid-wait").text(ot.ssid),c(".connecting").show(),c.ajax({url:"/connect.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now(),ssid:ot.ssid,pwd:ot.pwd}),error:L})},c(document).ready((function(){f(),G.init(),c("#fw-url-input").on("input",(function(){c(this).val().length>8&&(c(this).val().startsWith("http://")||c(this).val().startsWith("https://"))?c("#start-flash").show():c("#start-flash").hide()})),c(".upSrch").on("input",(function(){var t=this.value;c("#rTable tr").removeClass(this.id+"_hide"),t.length>0&&c("#rTable td:nth-child(".concat(c(this).parent().index()+1,")")).filter((function(){return!c(this).text().toUpperCase().includes(t.toUpperCase())})).parent().addClass(this.id+"_hide"),c('[class*="_hide"]').hide(),c("#rTable tr").not('[class*="_hide"]').show()})),setTimeout(pt,1500),c("#WifiConnectDialog")[0].addEventListener("shown.bs.modal",(function(t){c("*[class*='connecting']").hide(),null!=t&&t.relatedTarget&&(ot.Action=rt,c(t.relatedTarget).children("td:eq(1)").text()==at.ssid?ot.Action=lt:c(t.relatedTarget).is(":last-child")?(ot.Action=ct,ot.ssid="",c("#manual_ssid").val(ot.ssid)):(ot.ssid=c(t.relatedTarget).children("td:eq(1)").text(),c("#manual_ssid").val(ot.ssid))),ot.Action!==lt?(c(".connecting-init").show(),c("#manual_ssid").trigger("focus")):yt()})),c("#WifiConnectDialog")[0].addEventListener("hidden.bs.modal",(function(){c("#WifiConnectDialog input").val("")})),c("#uCnfrm")[0].addEventListener("shown.bs.modal",(function(){c("#selectedFWURL").text(c("#fw-url-input").val())})),c("input#show-commands")[0].checked=1===V,c('a[href^="#tab-commands"]').hide(),c("#load-nvs").on("click",(function(){c("#nvsfilename").trigger("click")})),c("#nvsfilename").on("change",(function(){if("function"!=typeof window.FileReader)throw"The file API isn't supported on this browser.";if(!this.files)throw"This browser does not support the `files` property of the file input.";if(this.files[0]){var t=this.files[0],e=new FileReader;e.onload=function(t){var e={};try{e=JSON.parse(t.target.result)}catch(t){alert("Parsing failed!\r\n "+t)}c("input.nvs").each((function(t,n){c(this).parent().removeClass("bg-warning").removeClass("bg-success"),e[n.id]&&(e[n.id]!==n.value?(console.log("Changed "+n.id+" "+n.value+"==>"+e[n.id]),c(this).parent().addClass("bg-warning"),c(this).val(e[n.id])):c(this).parent().addClass("bg-success"))})),c("input.nvs").children(".bg-warning")&&alert("Highlighted values were changed. Press Commit to change on the device")},e.readAsText(t),this.value=null}})),c("#clear-syslog").on("click",(function(){q=0,Y="MESSAGING_INFO",c("#msgcnt").text(""),c("#syslogTable").html("")})),c("#ok-credits").on("click",(function(){c("#credits").slideUp("fast",(function(){})),c("#app").slideDown("fast",(function(){}))})),c("#acredits").on("click",(function(t){t.preventDefault(),c("#app").slideUp("fast",(function(){})),c("#credits").slideDown("fast",(function(){}))})),c("input#show-commands").on("click",(function(){this.checked=this.checked?1:0,this.checked?(c('a[href^="#tab-commands"]').show(),V=1):(V=0,c('a[href^="#tab-commands"]').hide())})),c("input#show-nvs").on("click",(function(){this.checked=this.checked?1:0,r.Z.set("show-nvs",this.checked?"Y":"N"),f()})),c("#btn_reboot_recovery").on("click",(function(){handleReboot("recovery")})),c("#btn_reboot").on("click",(function(){handleReboot("reboot")})),c("#btn_flash").on("click",(function(){hFlash()})),c("#save-autoexec1").on("click",(function(){saveAutoexec1(!1)})),c("#commit-autoexec1").on("click",(function(){saveAutoexec1(!0)})),c("#btn_disconnect").on("click",(function(){handleDisconnect()})),c("#btnJoin").on("click",(function(){handleConnect()})),c("#reboot_nav").on("click",(function(){handleReboot("reboot")})),c("#reboot_ota_nav").on("click",(function(){handleReboot("reboot_ota")})),c("#save-as-nvs").on("click",(function(){var t=ut(!0),e=document.createElement("a");e.href=URL.createObjectURL(new Blob([JSON.stringify(t,null,2)],{type:"text/plain"})),e.setAttribute("download","nvs_config_"+Q+"_"+Date.now()+"json"),document.body.appendChild(e),e.click(),document.body.removeChild(e)})),c("#save-nvs").on("click",(function(){U(ut(!1))})),c("#fwUpload").on("click",(function(){0===document.getElementById("flashfilename").files.length?alert("No file selected!"):(c("#fw-url-input").value=null,G.StartOTA())})),c("[name=output-tmpl]").on("click",(function(){j(this.id)})),c("#chkUpdates").on("click",(function(){c("#rTable").html(""),c.getJSON(W,(function(t){var e=[];t.forEach((function(t){var n=t.name.split("#")[3];e.includes(n)||e.push(n)}));var n="";e.forEach((function(t){n+='"})),c("#fwbranch").append(n),t.forEach((function(t){var e="";t.assets.forEach((function(t){t.name.match(/\.bin$/)&&(e=t.browser_download_url)}));var n=t.name.split("#"),s=n[0],a=n[2],o=n[3],i=s.substr(s.lastIndexOf("-")+1);i="32"==i||"16"==i?i:"";var r=t.body;r=(r=(r=r.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- ").encodeHTML(),c("#rTable").append("\n ").concat(s,"").concat(new Date(t.created_at).toLocalShort(),"\n ").concat(a,"").concat(o,"").concat(i,""))})),c("#searchfw").css("display","inline"),ht(et)||ht($),c("#rTable tr.release").on("click",(function(){var t=this.attributes.fwurl.value;J&&(t=t.replace(/.*\/download\//,J+"/plugins/SqueezeESP32/firmware/")),c("#fw-url-input").val(t),c("#start-flash").show(),c("#rTable tr.release").removeClass("table-success table-warning"),c(this).addClass("table-success table-warning")}))})).fail((function(){alert("failed to fetch release history!")}))})),c("#fwcheck").on("click",(function(){c("#releaseTable").html(""),c("#fwbranch").empty(),c.getJSON(W,(function(t){var e,n=0,s=[];t.forEach((function(t){var e=t.name.split("#")[3];s.includes(e)||s.push(e)})),s.forEach((function(t){e+='"})),c("#fwbranch").append(e),t.forEach((function(t){var e="";t.assets.forEach((function(t){t.name.match(/\.bin$/)&&(e=t.browser_download_url)}));var s=t.name.split("#"),a=s[0],o=s[1],i=s[2],r=s[3],l=t.body;l=(l=(l=l.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- ");var u=n++>6?" hide":"";c("#releaseTable").append(""+a+""+new Date(t.created_at).toLocalShort()+""+i+""+o+""+r+"")})),n>7&&(c("#releaseTable").append(""),c("#showallbutton").on("click",(function(){c("tr.hide").removeClass("hide"),c("tr#showall").addClass("hide")}))),c("#searchfw").css("display","inline")})).fail((function(){alert("failed to fetch release history!")}))})),c("#updateAP").on("click",(function(){pt(),console.log("refresh AP")})),Et(),At(),St(),wt()})),window.setURL=function(t){var e=t.dataset.url;c('[data-bs-url^="http"]').addClass("btn-success").removeClass("btn-danger"),c('[data-bs-url="'+e+'"]').addClass("btn-danger").removeClass("btn-success"),J&&(e=e.replace(/.*\/download\//,J+"/plugins/SqueezeESP32/firmware/")),c("#fwurl").val(e)},window.runCommand=function(t,e){var n=t.attributes.cmdname.value;F(t.attributes.cmdname.value,"MESSAGING_INFO","Executing.",!1);var s=document.getElementById("flds-"+n),o=null==s?void 0:s.querySelectorAll("select,input");if("cfg-hw-preset"===n)return function(t,e){var n=JSON.parse(t[0].value),s=t[0].attributes.cmdname.value;console.log("selected model: ".concat(n.name));for(var o={timestamp:Date.now(),config:{model_config:{value:n.name,type:33}}},i=0,r=Object.entries(n.config);i{n.r(e)},607:(t,e,n)=>{n(169),n(393),n(861),n(322)},861:t=>{t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAb1BMVEXIycuswsKMjI4rqqZyc3RQlpQ6jIEmJifW2dq5ursppJ8Om4zC0NAFdGYmmpb///8Hg3O4x8cHkoEggX0jko5Ks6/P0dM5r6ocoZb3+PgiiYVevrp/y8bg4uOS09FtxMDs7+7M6um529qoysik2tiNn72gAAAAF3RSTlP94Fr/Wf39BP26/////////////////kibhL0AAAGjSURBVDjLbZMJkoMgEEWtmETEJWpkiSC45P5nnF4wk7HmW2jLfzYIdFYUxbXUYp5nIbTOUFoLAR2ivIKZFQXYuu6TahSHmdAlAqWub0/QNI1jSxrHacKeWw9EdtH1xHbbyiRgCJn67JqVAr9nO2fJnBDMoUuYEvsfmxnJBM66Zj8/iYmaAPKlOvRNJAC/fz8OefINEAngAbYPEMiHTJCCAZrACciVMpCCgDEBKwsAowymMO3IAP3Btqa5vYJx0ZlcOSUZaE/AWznvnTHOyfZ/wMUQvAIg/wb27QNEH94BgGj+APsZiF8AXAhQQEMwkIYYLW7xvsENoyUoF0I0ysf0F2O743kDQNXzXM8+j8Eb6byzDEz7gtpsO1PgrXG5Nd6btNTP+YXarKTny1uQ9JiAN6vbqT9au+BzMQjAWtlq6BiYttdjiVVVqfXxWFWFkk6Cz0DTdYOFPmpHAAK/YQCJoTppQJ8A3TAxVAAhR439Bg5tKe7NgSDEje3mDsf+ovuGCUbYZb/BwoHS6ykHMYfo/U6lx8Xb/+qo3U/x/lf+VP9c/j9c3zy20WEMxgAAAABJRU5ErkJggg=="}},n={};function s(t){var a=n[t];if(void 0!==a)return a.exports;var o=n[t]={id:t,loaded:!1,exports:{}};return e[t].call(o.exports,o,o.exports,s),o.loaded=!0,o.exports}s.m=e,t=[],s.O=(e,n,a,o)=>{if(!n){var i=1/0;for(u=0;u=o)&&Object.keys(s.O).every((t=>s.O[t](n[c])))?n.splice(c--,1):(r=!1,o0&&t[u-1][2]>o;u--)t[u]=t[u-1];t[u]=[n,a,o]},s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var n in e)s.o(e,n)&&!s.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),(()=>{var t={826:0};s.O.j=e=>0===t[e];var e=(e,n)=>{var a,o,[i,r,c]=n,l=0;if(i.some((e=>0!==t[e]))){for(a in r)s.o(r,a)&&(s.m[a]=r[a]);if(c)var u=c(s)}for(e&&e(n);ls(607)));a=s.O(a)})(); +//# sourceMappingURL=index.ad2bb1.bundle.js.map \ No newline at end of file diff --git a/components/wifi-manager/webapp/dist/js/index.ad2bb1.bundle.js.gz b/components/wifi-manager/webapp/dist/js/index.ad2bb1.bundle.js.gz new file mode 100644 index 00000000..8581b741 Binary files /dev/null and b/components/wifi-manager/webapp/dist/js/index.ad2bb1.bundle.js.gz differ diff --git a/components/wifi-manager/webapp/dist/js/index.ad2bb1.bundle.js.map b/components/wifi-manager/webapp/dist/js/index.ad2bb1.bundle.js.map new file mode 100644 index 00000000..4f81eb51 --- /dev/null +++ b/components/wifi-manager/webapp/dist/js/index.ad2bb1.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"./js/index.ad2bb1.bundle.js","mappings":"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","sources":["webpack://squeezelite-esp32/webpack/runtime/chunk loaded","webpack://squeezelite-esp32/./src/js/custom.js","webpack://squeezelite-esp32/./src/index.ts","webpack://squeezelite-esp32/webpack/bootstrap","webpack://squeezelite-esp32/webpack/runtime/compat get default export","webpack://squeezelite-esp32/webpack/runtime/define property getters","webpack://squeezelite-esp32/webpack/runtime/global","webpack://squeezelite-esp32/webpack/runtime/hasOwnProperty shorthand","webpack://squeezelite-esp32/webpack/runtime/make namespace object","webpack://squeezelite-esp32/webpack/runtime/node module decorator","webpack://squeezelite-esp32/webpack/runtime/jsonp chunk loading","webpack://squeezelite-esp32/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var he = require('he');\r\nvar Promise = require('es6-promise').Promise;\r\nwindow.bootstrap = require('bootstrap');\r\nimport Cookies from 'js-cookie';\r\n\r\n\r\n\r\nif (!String.prototype.format) {\r\n Object.assign(String.prototype, {\r\n format() {\r\n const args = arguments;\r\n return this.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] !== 'undefined' ? args[number] : match;\r\n });\r\n },\r\n });\r\n}\r\nif (!String.prototype.encodeHTML) {\r\n Object.assign(String.prototype, {\r\n encodeHTML() {\r\n return he.encode(this).replace(/\\n/g, '
');\r\n },\r\n });\r\n}\r\nObject.assign(Date.prototype, {\r\n toLocalShort() {\r\n const opt = { dateStyle: 'short', timeStyle: 'short' };\r\n return this.toLocaleString(undefined, opt);\r\n },\r\n});\r\nfunction handleNVSVisible(){\r\n let nvs_previous_checked = isEnabled(Cookies.get(\"show-nvs\"));\r\n $('input#show-nvs')[0].checked = nvs_previous_checked ;\r\n if ($('input#show-nvs')[0].checked || recovery) {\r\n $('*[href*=\"-nvs\"]').show();\r\n } else {\r\n $('*[href*=\"-nvs\"]').hide();\r\n }\r\n}\r\n\r\n\r\nfunction isEnabled(val) {\r\n return val!=undefined && typeof val === 'string' && val.match(\"[Yy1]\");\r\n}\r\n\r\nconst nvsTypes = {\r\n NVS_TYPE_U8: 0x01,\r\n\r\n /*! < Type uint8_t */\r\n NVS_TYPE_I8: 0x11,\r\n\r\n /*! < Type int8_t */\r\n NVS_TYPE_U16: 0x02,\r\n\r\n /*! < Type uint16_t */\r\n NVS_TYPE_I16: 0x12,\r\n\r\n /*! < Type int16_t */\r\n NVS_TYPE_U32: 0x04,\r\n\r\n /*! < Type uint32_t */\r\n NVS_TYPE_I32: 0x14,\r\n\r\n /*! < Type int32_t */\r\n NVS_TYPE_U64: 0x08,\r\n\r\n /*! < Type uint64_t */\r\n NVS_TYPE_I64: 0x18,\r\n\r\n /*! < Type int64_t */\r\n NVS_TYPE_STR: 0x21,\r\n\r\n /*! < Type string */\r\n NVS_TYPE_BLOB: 0x42,\r\n\r\n /*! < Type blob */\r\n NVS_TYPE_ANY: 0xff /*! < Must be last */,\r\n};\r\nconst btIcons = {\r\n bt_playing: 'media_bluetooth_on',\r\n bt_disconnected: 'media_bluetooth_off',\r\n bt_neutral: 'bluetooth',\r\n bt_connecting: 'bluetooth_searching',\r\n bt_connected: 'bluetooth_connected',\r\n bt_disabled: 'bluetooth_disabled',\r\n play_arrow: 'play_circle_filled',\r\n pause: 'pause_circle',\r\n stop: 'stop_circle',\r\n '': '',\r\n};\r\nconst batIcons = [\r\n { icon: \"battery_0_bar\", ranges: [{ f: 5.8, t: 6.8 }, { f: 8.8, t: 10.2 }] },\r\n { icon: \"battery_2_bar\", ranges: [{ f: 6.8, t: 7.4 }, { f: 10.2, t: 11.1 }] },\r\n { icon: \"battery_3_bar\", ranges: [{ f: 7.4, t: 7.5 }, { f: 11.1, t: 11.25 }] },\r\n { icon: \"battery_4_bar\", ranges: [{ f: 7.5, t: 7.8 }, { f: 11.25, t: 11.7 }] }\r\n];\r\nconst btStateIcons = [\r\n { desc: 'Idle', sub: ['bt_neutral'] },\r\n { desc: 'Discovering', sub: ['bt_connecting'] },\r\n { desc: 'Discovered', sub: ['bt_connecting'] },\r\n { desc: 'Unconnected', sub: ['bt_disconnected'] },\r\n { desc: 'Connecting', sub: ['bt_connecting'] },\r\n {\r\n desc: 'Connected',\r\n sub: ['bt_connected', 'play_arrow', 'bt_playing', 'pause', 'stop'],\r\n },\r\n { desc: 'Disconnecting', sub: ['bt_disconnected'] },\r\n];\r\n\r\nconst pillcolors = {\r\n MESSAGING_INFO: 'badge-success',\r\n MESSAGING_WARNING: 'badge-warning',\r\n MESSAGING_ERROR: 'badge-danger',\r\n};\r\nconst connectReturnCode = {\r\n OK: 0,\r\n FAIL: 1,\r\n DISC: 2,\r\n LOST: 3,\r\n RESTORE: 4,\r\n ETH: 5\r\n}\r\nconst taskStates = {\r\n 0: 'eRunning',\r\n /*! < A task is querying the state of itself, so must be running. */\r\n 1: 'eReady',\r\n /*! < The task being queried is in a read or pending ready list. */\r\n 2: 'eBlocked',\r\n /*! < The task being queried is in the Blocked state. */\r\n 3: 'eSuspended',\r\n /*! < The task being queried is in the Suspended state, or is in the Blocked state with an infinite time out. */\r\n 4: 'eDeleted',\r\n};\r\nlet flashState = {\r\n NONE: 0,\r\n REBOOT_TO_RECOVERY: 2,\r\n SET_FWURL: 5,\r\n FLASHING: 6,\r\n DONE: 7,\r\n UPLOADING: 8,\r\n ERROR: 9,\r\n UPLOADCOMPLETE: 10,\r\n _state: -1,\r\n olderRecovery: false,\r\n statusText: '',\r\n flashURL: '',\r\n flashFileName: '',\r\n statusPercent: 0,\r\n Completed: false,\r\n recovery: false,\r\n prevRecovery: false,\r\n updateModal: new bootstrap.Modal(document.getElementById('otadiv'), {}),\r\n reset: function () {\r\n\r\n this.olderRecovery = false;\r\n this.statusText = '';\r\n this.statusPercent = -1;\r\n this.flashURL = '';\r\n this.flashFileName = undefined;\r\n this.UpdateProgress();\r\n $('#rTable tr.release').removeClass('table-success table-warning');\r\n $('.flact').prop('disabled', false);\r\n $('#flashfilename').value = null;\r\n $('#fw-url-input').value = null;\r\n if(!this.isStateError()){\r\n $('span#flash-status').html('');\r\n $('#fwProgressLabel').parent().removeClass('bg-danger');\r\n }\r\n this._state = this.NONE\r\n return this;\r\n },\r\n isStateUploadComplete: function () {\r\n return this._state == this.UPLOADCOMPLETE;\r\n },\r\n isStateError: function () {\r\n return this._state == this.ERROR;\r\n },\r\n isStateNone: function () {\r\n return this._state == this.NONE;\r\n },\r\n isStateRebootRecovery: function () {\r\n return this._state == this.REBOOT_TO_RECOVERY;\r\n },\r\n isStateSetUrl: function () {\r\n return this._state == this.SET_FWURL;\r\n },\r\n isStateFlashing: function () {\r\n return this._state == this.FLASHING;\r\n },\r\n isStateDone: function () {\r\n return this._state == this.DONE;\r\n },\r\n isStateUploading: function () {\r\n return this._state == this.UPLOADING;\r\n },\r\n init: function () {\r\n this._state = this.NONE;\r\n return this;\r\n },\r\n\r\n SetStateError: function () {\r\n this._state = this.ERROR;\r\n $('#fwProgressLabel').parent().addClass('bg-danger');\r\n return this;\r\n },\r\n SetStateNone: function () {\r\n this._state = this.NONE;\r\n return this;\r\n },\r\n SetStateRebootRecovery: function () {\r\n this._state = this.REBOOT_TO_RECOVERY;\r\n // Reboot system to recovery mode\r\n this.SetStatusText('Starting recovery mode.')\r\n $.ajax({\r\n url: '/recovery.json',\r\n context: this,\r\n dataType: 'text',\r\n method: 'POST',\r\n cache: false,\r\n contentType: 'application/json; charset=utf-8',\r\n data: JSON.stringify({\r\n timestamp: Date.now(),\r\n }),\r\n error: function (xhr, _ajaxOptions, thrownError) {\r\n this.setOTAError(`Unexpected error while trying to restart to recovery. (status=${xhr.status ?? ''}, error=${thrownError ?? ''} ) `);\r\n },\r\n complete: function (response) {\r\n this.SetStatusText('Waiting for system to boot.')\r\n },\r\n });\r\n return this;\r\n },\r\n SetStateSetUrl: function () {\r\n this._state = this.SET_FWURL;\r\n this.statusText = 'Sending firmware download location.';\r\n let confData = {\r\n fwurl: {\r\n value: this.flashURL,\r\n type: 33,\r\n }\r\n };\r\n post_config(confData);\r\n return this;\r\n },\r\n SetStateFlashing: function () {\r\n this._state = this.FLASHING;\r\n return this;\r\n },\r\n SetStateDone: function () {\r\n this._state = this.DONE;\r\n this.reset();\r\n return this;\r\n },\r\n SetStateUploading: function () {\r\n this._state = this.UPLOADING;\r\n return this.SetStatusText('Sending file to device.');\r\n },\r\n SetStateUploadComplete: function () {\r\n this._state = this.UPLOADCOMPLETE;\r\n return this;\r\n },\r\n\r\n isFlashExecuting: function () {\r\n return true === (this._state != this.UPLOADING && (this.statusText !== '' || this.statusPercent >= 0));\r\n },\r\n\r\n\r\n\r\n toString: function () {\r\n let keys = Object.keys(this);\r\n return keys.find(x => this[x] === this._state);\r\n },\r\n\r\n setOTATargets: function () {\r\n this.flashURL = '';\r\n this.flashFileName = '';\r\n this.flashURL = $('#fw-url-input').val();\r\n let fileInput = $('#flashfilename')[0].files;\r\n if (fileInput.length > 0) {\r\n this.flashFileName = fileInput[0];\r\n }\r\n if (this.flashFileName.length == 0 && this.flashURL.length == 0) {\r\n this.setOTAError('Invalid url or file. Cannot start OTA');\r\n }\r\n return this;\r\n },\r\n\r\n setOTAError: function (message) {\r\n this.SetStateError().SetStatusPercent(0).SetStatusText(message).reset();\r\n return this;\r\n },\r\n\r\n ShowDialog: function () {\r\n if (!this.isStateNone()) {\r\n this.updateModal.show();\r\n $('.flact').prop('disabled', true);\r\n }\r\n return this;\r\n },\r\n\r\n SetStatusPercent: function (pct) {\r\n var pctChanged = (this.statusPercent != pct);\r\n this.statusPercent = pct;\r\n if (pctChanged) {\r\n if (!this.isStateUploading() && !this.isStateFlashing()) {\r\n this.SetStateFlashing();\r\n }\r\n if (pct == 100) {\r\n if (this.isStateFlashing()) {\r\n this.SetStateDone();\r\n }\r\n else if (this.isStateUploading()) {\r\n this.statusPercent = 0;\r\n this.SetStateFlashing();\r\n }\r\n }\r\n this.UpdateProgress().ShowDialog();\r\n }\r\n return this;\r\n },\r\n SetStatusText: function (txt) {\r\n var changed = (this.statusText != txt);\r\n this.statusText = txt;\r\n if (changed) {\r\n $('span#flash-status').html(this.statusText);\r\n this.ShowDialog();\r\n }\r\n\r\n return this;\r\n },\r\n UpdateProgress: function () {\r\n $('.progress-bar')\r\n .css('width', this.statusPercent + '%')\r\n .attr('aria-valuenow', this.statusPercent)\r\n .text(this.statusPercent + '%')\r\n $('.progress-bar').html((this.isStateDone() ? 100 : this.statusPercent) + '%');\r\n return this;\r\n },\r\n StartOTA: function () {\r\n this.logEvent(this.StartOTA.name);\r\n $('#fwProgressLabel').parent().removeClass('bg-danger');\r\n this.setOTATargets();\r\n if (this.isStateError()) {\r\n return this;\r\n }\r\n if (!recovery) {\r\n this.SetStateRebootRecovery();\r\n }\r\n else {\r\n this.SetStateFlashing().TargetReadyStartOTA();\r\n }\r\n\r\n return this;\r\n },\r\n UploadLocalFile: function () {\r\n this.SetStateUploading();\r\n const xhttp = new XMLHttpRequest();\r\n xhttp.context = this;\r\n var boundHandleUploadProgressEvent = this.HandleUploadProgressEvent.bind(this);\r\n var boundsetOTAError=this.setOTAError.bind(this);\r\n xhttp.upload.addEventListener(\"progress\",boundHandleUploadProgressEvent, false);\r\n xhttp.onreadystatechange = function () {\r\n if (xhttp.readyState === 4) {\r\n if (xhttp.status === 0 || xhttp.status === 404) {\r\n boundsetOTAError(`Upload Failed. Recovery version might not support uploading. Please use web update instead.`);\r\n }\r\n }\r\n };\r\n xhttp.open('POST', '/flash.json', true);\r\n xhttp.send(this.flashFileName);\r\n },\r\n TargetReadyStartOTA: function () {\r\n if (recovery && this.prevRecovery && !this.isStateRebootRecovery() && !this.isStateFlashing()) {\r\n // this should only execute once, while being in a valid state\r\n return this;\r\n }\r\n\r\n this.logEvent(this.TargetReadyStartOTA.name);\r\n if (!recovery) {\r\n console.error('Event TargetReadyStartOTA fired in the wrong mode ');\r\n return this;\r\n }\r\n this.prevRecovery = true;\r\n\r\n if (this.flashFileName !== '') {\r\n this.UploadLocalFile();\r\n }\r\n else if (this.flashURL != '') {\r\n this.SetStateSetUrl();\r\n }\r\n else {\r\n this.setOTAError('Invalid URL or file name while trying to start the OTa process')\r\n }\r\n },\r\n HandleUploadProgressEvent: function (data) {\r\n this.logEvent(this.HandleUploadProgressEvent.name);\r\n this.SetStateUploading().SetStatusPercent(Math.round(data.loaded / data.total * 100)).SetStatusText('Uploading file to device');\r\n },\r\n EventTargetStatus: function (data) {\r\n if (!this.isStateNone()) {\r\n this.logEvent(this.EventTargetStatus.name);\r\n }\r\n if (data.ota_pct ?? -1 >= 0) {\r\n this.olderRecovery = true;\r\n this.SetStatusPercent(data.ota_pct);\r\n }\r\n if ((data.ota_dsc ?? '') != '') {\r\n this.olderRecovery = true;\r\n this.SetStatusText(data.ota_dsc);\r\n }\r\n\r\n if (data.recovery != undefined) {\r\n this.recovery = data.recovery === 1 ? true : false;\r\n }\r\n if (this.isStateRebootRecovery() && this.recovery) {\r\n this.TargetReadyStartOTA();\r\n }\r\n },\r\n EventOTAMessageClass: function (data) {\r\n this.logEvent(this.EventOTAMessageClass.name);\r\n var otaData = JSON.parse(data);\r\n this.SetStatusPercent(otaData.ota_pct).SetStatusText(otaData.ota_dsc);\r\n },\r\n logEvent: function (fun) {\r\n console.log(`${fun}, flash state ${this.toString()}, recovery: ${this.recovery}, ota pct: ${this.statusPercent}, ota desc: ${this.statusText}`);\r\n }\r\n\r\n};\r\nwindow.hideSurrounding = function (obj) {\r\n $(obj).parent().parent().hide();\r\n}\r\n\r\nlet presetsloaded = false;\r\nlet is_i2c_locked = false;\r\nlet statusInterval = 2000;\r\nlet messageInterval = 2500;\r\nfunction post_config(data) {\r\n let confPayload = {\r\n timestamp: Date.now(),\r\n config: data\r\n };\r\n $.ajax({\r\n url: '/config.json',\r\n dataType: 'text',\r\n method: 'POST',\r\n cache: false,\r\n contentType: 'application/json; charset=utf-8',\r\n data: JSON.stringify(confPayload),\r\n error: handleExceptionResponse,\r\n });\r\n}\r\n\r\n\r\nwindow.hFlash = function () {\r\n // reset file upload selection if any;\r\n $('#flashfilename').value = null\r\n flashState.StartOTA();\r\n}\r\nwindow.handleReboot = function (link) {\r\n if (link == 'reboot_ota') {\r\n $('#reboot_ota_nav').removeClass('active').prop(\"disabled\", true); delayReboot(500, '', 'reboot_ota');\r\n }\r\n else {\r\n $('#reboot_nav').removeClass('active'); delayReboot(500, '', link);\r\n }\r\n}\r\nfunction handlebtstate(data) {\r\n let icon = '';\r\n let tt = '';\r\n if (data.bt_status !== undefined && data.bt_sub_status !== undefined) {\r\n const iconindex = btStateIcons[data.bt_status].sub[data.bt_sub_status];\r\n if (iconindex) {\r\n icon = btIcons[iconindex];\r\n tt = btStateIcons[data.bt_status].desc;\r\n } else {\r\n icon = btIcons.bt_connected;\r\n tt = 'Output status';\r\n }\r\n }\r\n\r\n $('#o_type').attr('title', tt);\r\n $('#o_bt').html(icon);\r\n}\r\nfunction handleTemplateTypeRadio(outtype) {\r\n $('#o_type').children('span').css({ display: 'none' });\r\n if (outtype === 'bt') {\r\n output = 'bt';\r\n } else if (outtype === 'spdif') {\r\n output = 'spdif';\r\n } else {\r\n output = 'i2s';\r\n }\r\n $('#' + output).prop('checked', true);\r\n $('#o_' + output).css({ display: 'inline' });\r\n}\r\n\r\nfunction handleExceptionResponse(xhr, _ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n console.log(thrownError);\r\n if (thrownError !== '') {\r\n showLocalMessage(thrownError, 'MESSAGING_ERROR');\r\n }\r\n}\r\nfunction HideCmdMessage(cmdname) {\r\n $('#toast_' + cmdname)\r\n .removeClass('table-success')\r\n .removeClass('table-warning')\r\n .removeClass('table-danger')\r\n .addClass('table-success')\r\n .removeClass('show');\r\n $('#msg_' + cmdname).html('');\r\n}\r\nfunction showCmdMessage(cmdname, msgtype, msgtext, append = false) {\r\n let color = 'table-success';\r\n if (msgtype === 'MESSAGING_WARNING') {\r\n color = 'table-warning';\r\n } else if (msgtype === 'MESSAGING_ERROR') {\r\n color = 'table-danger';\r\n }\r\n $('#toast_' + cmdname)\r\n .removeClass('table-success')\r\n .removeClass('table-warning')\r\n .removeClass('table-danger')\r\n .addClass(color)\r\n .addClass('show');\r\n let escapedtext = msgtext\r\n .substring(0, msgtext.length - 1)\r\n .encodeHTML()\r\n .replace(/\\n/g, '
');\r\n escapedtext =\r\n ($('#msg_' + cmdname).html().length > 0 && append\r\n ? $('#msg_' + cmdname).html() + '
'\r\n : '') + escapedtext;\r\n $('#msg_' + cmdname).html(escapedtext);\r\n}\r\n\r\nlet releaseURL =\r\n 'https://api.github.com/repos/sle118/squeezelite-esp32/releases';\r\n\r\nlet recovery = false;\r\nlet messagesHeld = false;\r\nconst commandHeader = 'squeezelite -b 500:2000 -d all=info -C 30 -W';\r\n//let blockFlashButton = false;\r\nlet apList = null;\r\n//let selectedSSID = '';\r\n//let checkStatusInterval = null;\r\nlet messagecount = 0;\r\nlet messageseverity = 'MESSAGING_INFO';\r\nlet SystemConfig = {};\r\nlet LastCommandsState = null;\r\nvar output = '';\r\nlet hostName = '';\r\nlet versionName = 'Squeezelite-ESP32';\r\nlet prevmessage = '';\r\nlet project_name = versionName;\r\nlet board_model = '';\r\nlet platform_name = versionName;\r\nlet preset_name = '';\r\nlet btSinkNamesOptSel = '#cfg-audio-bt_source-sink_name';\r\nlet ConnectedTo = {};\r\nlet ConnectingToSSID = {};\r\nlet lmsBaseUrl;\r\nlet prevLMSIP = '';\r\nconst ConnectingToActions = {\r\n 'CONN': 0, 'MAN': 1, 'STS': 2,\r\n}\r\n\r\nPromise.prototype.delay = function (duration) {\r\n return this.then(\r\n function (value) {\r\n return new Promise(function (resolve) {\r\n setTimeout(function () {\r\n resolve(value);\r\n }, duration);\r\n });\r\n },\r\n function (reason) {\r\n return new Promise(function (_resolve, reject) {\r\n setTimeout(function () {\r\n reject(reason);\r\n }, duration);\r\n });\r\n }\r\n );\r\n};\r\n\r\nfunction getConfigJson(slimMode) {\r\n const config = {};\r\n $('input.nvs').each(function (_index, entry) {\r\n if (!slimMode) {\r\n const nvsType = parseInt(entry.attributes.nvs_type.value, 10);\r\n if (entry.id !== '') {\r\n config[entry.id] = {};\r\n if (\r\n nvsType === nvsTypes.NVS_TYPE_U8 ||\r\n nvsType === nvsTypes.NVS_TYPE_I8 ||\r\n nvsType === nvsTypes.NVS_TYPE_U16 ||\r\n nvsType === nvsTypes.NVS_TYPE_I16 ||\r\n nvsType === nvsTypes.NVS_TYPE_U32 ||\r\n nvsType === nvsTypes.NVS_TYPE_I32 ||\r\n nvsType === nvsTypes.NVS_TYPE_U64 ||\r\n nvsType === nvsTypes.NVS_TYPE_I64\r\n ) {\r\n config[entry.id].value = parseInt(entry.value);\r\n } else {\r\n config[entry.id].value = entry.value;\r\n }\r\n config[entry.id].type = nvsType;\r\n }\r\n } else {\r\n config[entry.id] = entry.value;\r\n }\r\n });\r\n const key = $('#nvs-new-key').val();\r\n const val = $('#nvs-new-value').val();\r\n if (key !== '') {\r\n if (!slimMode) {\r\n config[key] = {};\r\n config[key].value = val;\r\n config[key].type = 33;\r\n } else {\r\n config[key] = val;\r\n }\r\n }\r\n return config;\r\n}\r\n\r\nfunction handleHWPreset(allfields, reboot) {\r\n\r\n const selJson = JSON.parse(allfields[0].value);\r\n var cmd = allfields[0].attributes.cmdname.value;\r\n\r\n console.log(`selected model: ${selJson.name}`);\r\n let confPayload = {\r\n timestamp: Date.now(),\r\n config: { model_config: { value: selJson.name, type: 33 } }\r\n };\r\n for (const [name, value] of Object.entries(selJson.config)) {\r\n const storedval = (typeof value === 'string' || value instanceof String) ? value : JSON.stringify(value);\r\n confPayload.config[name] = {\r\n value: storedval,\r\n type: 33,\r\n }\r\n showCmdMessage(\r\n cmd,\r\n 'MESSAGING_INFO',\r\n `Setting ${name}=${storedval} `,\r\n true\r\n );\r\n }\r\n\r\n showCmdMessage(\r\n cmd,\r\n 'MESSAGING_INFO',\r\n `Committing `,\r\n true\r\n );\r\n $.ajax({\r\n url: '/config.json',\r\n dataType: 'text',\r\n method: 'POST',\r\n cache: false,\r\n contentType: 'application/json; charset=utf-8',\r\n data: JSON.stringify(confPayload),\r\n error: function (xhr, _ajaxOptions, thrownError) {\r\n handleExceptionResponse(xhr, _ajaxOptions, thrownError);\r\n showCmdMessage(\r\n cmd,\r\n 'MESSAGING_ERROR',\r\n `Unexpected error ${(thrownError !== '') ? thrownError : 'with return status = ' + xhr.status} `,\r\n true\r\n );\r\n },\r\n success: function (response) {\r\n showCmdMessage(\r\n cmd,\r\n 'MESSAGING_INFO',\r\n `Saving complete `,\r\n true\r\n );\r\n console.log(response);\r\n if (reboot) {\r\n delayReboot(2500, cmd);\r\n }\r\n },\r\n });\r\n\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n// pull json file from https://gist.githubusercontent.com/sle118/dae585e157b733a639c12dc70f0910c5/raw/b462691f69e2ad31ac95c547af6ec97afb0f53db/squeezelite-esp32-presets.json and\r\nfunction loadPresets() {\r\n if ($(\"#cfg-hw-preset-model_config\").length == 0) return;\r\n if (presetsloaded) return;\r\n presetsloaded = true;\r\n $('#cfg-hw-preset-model_config').html('');\r\n $.getJSON(\r\n 'https://gist.githubusercontent.com/sle118/dae585e157b733a639c12dc70f0910c5/raw/',\r\n { _: new Date().getTime() },\r\n function (data) {\r\n $.each(data, function (key, val) {\r\n $('#cfg-hw-preset-model_config').append(``);\r\n if (preset_name !== '' && preset_name == val.name) {\r\n $('#cfg-hw-preset-model_config').val(preset_name);\r\n }\r\n });\r\n if (preset_name !== '') {\r\n ('#prev_preset').show().val(preset_name);\r\n }\r\n }\r\n\r\n ).fail(function (jqxhr, textStatus, error) {\r\n const err = textStatus + ', ' + error;\r\n console.log('Request Failed: ' + err);\r\n }\r\n );\r\n}\r\n\r\nfunction delayReboot(duration, cmdname, ota = 'reboot') {\r\n const url = '/' + ota + '.json';\r\n $('tbody#tasks').empty();\r\n $('#tasks_sect').css('visibility', 'collapse');\r\n Promise.resolve({ cmdname: cmdname, url: url })\r\n .delay(duration)\r\n .then(function (data) {\r\n if (data.cmdname.length > 0) {\r\n showCmdMessage(\r\n data.cmdname,\r\n 'MESSAGING_WARNING',\r\n 'System is rebooting.\\n',\r\n true\r\n );\r\n } else {\r\n showLocalMessage('System is rebooting.\\n', 'MESSAGING_WARNING');\r\n }\r\n console.log('now triggering reboot');\r\n $(\"button[onclick*='handleReboot']\").addClass('rebooting');\r\n $.ajax({\r\n url: data.url,\r\n dataType: 'text',\r\n method: 'POST',\r\n cache: false,\r\n contentType: 'application/json; charset=utf-8',\r\n data: JSON.stringify({\r\n timestamp: Date.now(),\r\n }),\r\n error: handleExceptionResponse,\r\n complete: function () {\r\n console.log('reboot call completed');\r\n Promise.resolve(data)\r\n .delay(6000)\r\n .then(function (rdata) {\r\n if (rdata.cmdname.length > 0) {\r\n HideCmdMessage(rdata.cmdname);\r\n }\r\n getCommands();\r\n getConfig();\r\n });\r\n },\r\n });\r\n });\r\n}\r\n// eslint-disable-next-line no-unused-vars\r\nwindow.saveAutoexec1 = function (apply) {\r\n showCmdMessage('cfg-audio-tmpl', 'MESSAGING_INFO', 'Saving.\\n', false);\r\n let commandLine = commandHeader + ' -n \"' + $('#player').val() + '\"';\r\n if (output === 'bt') {\r\n commandLine += ' -o \"BT\" -R -Z 192000';\r\n showCmdMessage(\r\n 'cfg-audio-tmpl',\r\n 'MESSAGING_INFO',\r\n 'Remember to configure the Bluetooth audio device name.\\n',\r\n true\r\n );\r\n } else if (output === 'spdif') {\r\n commandLine += ' -o SPDIF -Z 192000';\r\n } else {\r\n commandLine += ' -o I2S';\r\n }\r\n if ($('#optional').val() !== '') {\r\n commandLine += ' ' + $('#optional').val();\r\n }\r\n const data = {\r\n timestamp: Date.now(),\r\n };\r\n data.config = {\r\n autoexec1: { value: commandLine, type: 33 },\r\n autoexec: {\r\n value: $('#disable-squeezelite').prop('checked') ? '0' : '1',\r\n type: 33,\r\n },\r\n };\r\n\r\n $.ajax({\r\n url: '/config.json',\r\n dataType: 'text',\r\n method: 'POST',\r\n cache: false,\r\n contentType: 'application/json; charset=utf-8',\r\n data: JSON.stringify(data),\r\n error: handleExceptionResponse,\r\n complete: function (response) {\r\n if (\r\n response.responseText &&\r\n JSON.parse(response.responseText).result === 'OK'\r\n ) {\r\n showCmdMessage('cfg-audio-tmpl', 'MESSAGING_INFO', 'Done.\\n', true);\r\n if (apply) {\r\n delayReboot(1500, 'cfg-audio-tmpl');\r\n }\r\n } else if (JSON.parse(response.responseText).result) {\r\n showCmdMessage(\r\n 'cfg-audio-tmpl',\r\n 'MESSAGING_WARNING',\r\n JSON.parse(response.responseText).Result + '\\n',\r\n true\r\n );\r\n } else {\r\n showCmdMessage(\r\n 'cfg-audio-tmpl',\r\n 'MESSAGING_ERROR',\r\n response.statusText + '\\n'\r\n );\r\n }\r\n console.log(response.responseText);\r\n },\r\n });\r\n console.log('sent data:', JSON.stringify(data));\r\n}\r\nwindow.handleDisconnect = function () {\r\n $.ajax({\r\n url: '/connect.json',\r\n dataType: 'text',\r\n method: 'DELETE',\r\n cache: false,\r\n contentType: 'application/json; charset=utf-8',\r\n data: JSON.stringify({\r\n timestamp: Date.now(),\r\n }),\r\n });\r\n}\r\nfunction setPlatformFilter(val) {\r\n if ($('.upf').filter(function () { return $(this).text().toUpperCase() === val.toUpperCase() }).length > 0) {\r\n $('#splf').val(val).trigger('input');\r\n return true;\r\n }\r\n return false;\r\n}\r\nwindow.handleConnect = function () {\r\n ConnectingToSSID.ssid = $('#manual_ssid').val();\r\n ConnectingToSSID.pwd = $('#manual_pwd').val();\r\n ConnectingToSSID.dhcpname = $('#dhcp-name2').val();\r\n $(\"*[class*='connecting']\").hide();\r\n $('#ssid-wait').text(ConnectingToSSID.ssid);\r\n $('.connecting').show();\r\n\r\n $.ajax({\r\n url: '/connect.json',\r\n dataType: 'text',\r\n method: 'POST',\r\n cache: false,\r\n contentType: 'application/json; charset=utf-8',\r\n data: JSON.stringify({\r\n timestamp: Date.now(),\r\n ssid: ConnectingToSSID.ssid,\r\n pwd: ConnectingToSSID.pwd\r\n }),\r\n error: handleExceptionResponse,\r\n });\r\n\r\n // now we can re-set the intervals regardless of result\r\n\r\n}\r\n$(document).ready(function () {\r\n handleNVSVisible();\r\n flashState.init();\r\n $('#fw-url-input').on('input', function () {\r\n if ($(this).val().length > 8 && ($(this).val().startsWith('http://') || $(this).val().startsWith('https://'))) {\r\n $('#start-flash').show();\r\n }\r\n else {\r\n $('#start-flash').hide();\r\n }\r\n });\r\n $('.upSrch').on('input', function () {\r\n const val = this.value;\r\n $(\"#rTable tr\").removeClass(this.id + '_hide');\r\n if (val.length > 0) {\r\n $(`#rTable td:nth-child(${$(this).parent().index() + 1})`).filter(function () {\r\n return !$(this).text().toUpperCase().includes(val.toUpperCase());\r\n }).parent().addClass(this.id + '_hide');\r\n }\r\n $('[class*=\"_hide\"]').hide();\r\n $('#rTable tr').not('[class*=\"_hide\"]').show()\r\n\r\n });\r\n setTimeout(refreshAP, 1500);\r\n\r\n $('#WifiConnectDialog')[0].addEventListener('shown.bs.modal', function (event) {\r\n $(\"*[class*='connecting']\").hide();\r\n\r\n if (event?.relatedTarget) {\r\n ConnectingToSSID.Action = ConnectingToActions.CONN;\r\n if ($(event.relatedTarget).children('td:eq(1)').text() == ConnectedTo.ssid) {\r\n ConnectingToSSID.Action = ConnectingToActions.STS;\r\n }\r\n else {\r\n if (!$(event.relatedTarget).is(':last-child')) {\r\n ConnectingToSSID.ssid = $(event.relatedTarget).children('td:eq(1)').text();\r\n $('#manual_ssid').val(ConnectingToSSID.ssid);\r\n }\r\n else {\r\n ConnectingToSSID.Action = ConnectingToActions.MAN;\r\n ConnectingToSSID.ssid = '';\r\n $('#manual_ssid').val(ConnectingToSSID.ssid);\r\n }\r\n }\r\n }\r\n\r\n\r\n if (ConnectingToSSID.Action !== ConnectingToActions.STS) {\r\n $('.connecting-init').show();\r\n $('#manual_ssid').trigger('focus');\r\n }\r\n else {\r\n handleWifiDialog();\r\n }\r\n });\r\n\r\n $('#WifiConnectDialog')[0].addEventListener('hidden.bs.modal', function () {\r\n $('#WifiConnectDialog input').val('');\r\n });\r\n\r\n $('#uCnfrm')[0].addEventListener('shown.bs.modal', function () {\r\n $('#selectedFWURL').text($('#fw-url-input').val());\r\n });\r\n\r\n $('input#show-commands')[0].checked = LastCommandsState === 1;\r\n $('a[href^=\"#tab-commands\"]').hide();\r\n $('#load-nvs').on('click', function () {\r\n $('#nvsfilename').trigger('click');\r\n });\r\n $('#nvsfilename').on('change', function () {\r\n if (typeof window.FileReader !== 'function') {\r\n throw \"The file API isn't supported on this browser.\";\r\n }\r\n if (!this.files) {\r\n throw 'This browser does not support the `files` property of the file input.';\r\n }\r\n if (!this.files[0]) {\r\n return undefined;\r\n }\r\n\r\n const file = this.files[0];\r\n let fr = new FileReader();\r\n fr.onload = function (e) {\r\n let data = {};\r\n try {\r\n data = JSON.parse(e.target.result);\r\n } catch (ex) {\r\n alert('Parsing failed!\\r\\n ' + ex);\r\n }\r\n $('input.nvs').each(function (_index, entry) {\r\n $(this).parent().removeClass('bg-warning').removeClass('bg-success');\r\n if (data[entry.id]) {\r\n if (data[entry.id] !== entry.value) {\r\n console.log(\r\n 'Changed ' + entry.id + ' ' + entry.value + '==>' + data[entry.id]\r\n );\r\n $(this).parent().addClass('bg-warning');\r\n $(this).val(data[entry.id]);\r\n }\r\n else {\r\n $(this).parent().addClass('bg-success');\r\n }\r\n }\r\n });\r\n var changed = $(\"input.nvs\").children('.bg-warning');\r\n if (changed) {\r\n alert('Highlighted values were changed. Press Commit to change on the device');\r\n }\r\n }\r\n fr.readAsText(file);\r\n this.value = null;\r\n\r\n }\r\n );\r\n $('#clear-syslog').on('click', function () {\r\n messagecount = 0;\r\n messageseverity = 'MESSAGING_INFO';\r\n $('#msgcnt').text('');\r\n $('#syslogTable').html('');\r\n });\r\n\r\n $('#ok-credits').on('click', function () {\r\n $('#credits').slideUp('fast', function () { });\r\n $('#app').slideDown('fast', function () { });\r\n });\r\n\r\n $('#acredits').on('click', function (event) {\r\n event.preventDefault();\r\n $('#app').slideUp('fast', function () { });\r\n $('#credits').slideDown('fast', function () { });\r\n });\r\n\r\n $('input#show-commands').on('click', function () {\r\n this.checked = this.checked ? 1 : 0;\r\n if (this.checked) {\r\n $('a[href^=\"#tab-commands\"]').show();\r\n LastCommandsState = 1;\r\n } else {\r\n LastCommandsState = 0;\r\n $('a[href^=\"#tab-commands\"]').hide();\r\n }\r\n });\r\n\r\n $('input#show-nvs').on('click', function () {\r\n this.checked = this.checked ? 1 : 0;\r\n Cookies.set(\"show-nvs\", this.checked?'Y':'N');\r\n handleNVSVisible();\r\n });\r\n $('#btn_reboot_recovery').on('click', function () {\r\n handleReboot('recovery');\r\n });\r\n $('#btn_reboot').on('click', function () {\r\n handleReboot('reboot');\r\n });\r\n $('#btn_flash').on('click', function () {\r\n hFlash();\r\n });\r\n $('#save-autoexec1').on('click', function () {\r\n saveAutoexec1(false);\r\n });\r\n $('#commit-autoexec1').on('click', function () {\r\n saveAutoexec1(true);\r\n });\r\n $('#btn_disconnect').on('click', function () {\r\n handleDisconnect();\r\n });\r\n $('#btnJoin').on('click', function () {\r\n handleConnect();\r\n });\r\n $('#reboot_nav').on('click', function () {\r\n handleReboot('reboot');\r\n });\r\n $('#reboot_ota_nav').on('click', function () {\r\n handleReboot('reboot_ota');\r\n });\r\n\r\n $('#save-as-nvs').on('click', function () {\r\n const config = getConfigJson(true);\r\n const a = document.createElement('a');\r\n a.href = URL.createObjectURL(\r\n new Blob([JSON.stringify(config, null, 2)], {\r\n type: 'text/plain',\r\n })\r\n );\r\n a.setAttribute(\r\n 'download',\r\n 'nvs_config_' + hostName + '_' + Date.now() + 'json'\r\n );\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n });\r\n\r\n $('#save-nvs').on('click', function () {\r\n post_config(getConfigJson(false));\r\n });\r\n\r\n $('#fwUpload').on('click', function () {\r\n const fileInput = document.getElementById('flashfilename').files;\r\n if (fileInput.length === 0) {\r\n alert('No file selected!');\r\n } else {\r\n $('#fw-url-input').value = null;\r\n flashState.StartOTA();\r\n }\r\n\r\n });\r\n $('[name=output-tmpl]').on('click', function () {\r\n handleTemplateTypeRadio(this.id);\r\n });\r\n\r\n $('#chkUpdates').on('click', function () {\r\n $('#rTable').html('');\r\n $.getJSON(releaseURL, function (data) {\r\n let i = 0;\r\n const branches = [];\r\n data.forEach(function (release) {\r\n const namecomponents = release.name.split('#');\r\n const branch = namecomponents[3];\r\n if (!branches.includes(branch)) {\r\n branches.push(branch);\r\n }\r\n });\r\n let fwb = '';\r\n branches.forEach(function (branch) {\r\n fwb += '';\r\n });\r\n $('#fwbranch').append(fwb);\r\n\r\n data.forEach(function (release) {\r\n let url = '';\r\n release.assets.forEach(function (asset) {\r\n if (asset.name.match(/\\.bin$/)) {\r\n url = asset.browser_download_url;\r\n }\r\n });\r\n const namecomponents = release.name.split('#');\r\n const ver = namecomponents[0];\r\n const cfg = namecomponents[2];\r\n const branch = namecomponents[3];\r\n var bits = ver.substr(ver.lastIndexOf('-') + 1);\r\n bits = (bits == '32' || bits == '16') ? bits : '';\r\n\r\n let body = release.body;\r\n body = body.replace(/'/gi, '\"');\r\n body = body.replace(\r\n /[\\s\\S]+(### Revision Log[\\s\\S]+)### ESP-IDF Version Used[\\s\\S]+/,\r\n '$1'\r\n );\r\n body = body.replace(/- \\(.+?\\) /g, '- ').encodeHTML();\r\n $('#rTable').append(`\r\n ${ver}${new Date(release.created_at).toLocalShort()}\r\n ${cfg}${branch}${bits}`\r\n );\r\n });\r\n if (i > 7) {\r\n $('#releaseTable').append(\r\n \"\" +\r\n \"\" +\r\n \"\" +\r\n '' +\r\n ''\r\n );\r\n $('#showallbutton').on('click', function () {\r\n $('tr.hide').removeClass('hide');\r\n $('tr#showall').addClass('hide');\r\n });\r\n }\r\n $('#searchfw').css('display', 'inline');\r\n if (!setPlatformFilter(platform_name)) {\r\n setPlatformFilter(project_name)\r\n }\r\n $('#rTable tr.release').on('click', function () {\r\n var url = this.attributes['fwurl'].value;\r\n if (lmsBaseUrl) {\r\n url = url.replace(/.*\\/download\\//, lmsBaseUrl + '/plugins/SqueezeESP32/firmware/');\r\n }\r\n $('#fw-url-input').val(url);\r\n $('#start-flash').show();\r\n $('#rTable tr.release').removeClass('table-success table-warning');\r\n $(this).addClass('table-success table-warning');\r\n });\r\n\r\n }).fail(function () {\r\n alert('failed to fetch release history!');\r\n });\r\n });\r\n $('#fwcheck').on('click', function () {\r\n $('#releaseTable').html('');\r\n $('#fwbranch').empty();\r\n $.getJSON(releaseURL, function (data) {\r\n let i = 0;\r\n const branches = [];\r\n data.forEach(function (release) {\r\n const namecomponents = release.name.split('#');\r\n const branch = namecomponents[3];\r\n if (!branches.includes(branch)) {\r\n branches.push(branch);\r\n }\r\n });\r\n let fwb;\r\n branches.forEach(function (branch) {\r\n fwb += '';\r\n });\r\n $('#fwbranch').append(fwb);\r\n\r\n data.forEach(function (release) {\r\n let url = '';\r\n release.assets.forEach(function (asset) {\r\n if (asset.name.match(/\\.bin$/)) {\r\n url = asset.browser_download_url;\r\n }\r\n });\r\n const namecomponents = release.name.split('#');\r\n const ver = namecomponents[0];\r\n const idf = namecomponents[1];\r\n const cfg = namecomponents[2];\r\n const branch = namecomponents[3];\r\n\r\n let body = release.body;\r\n body = body.replace(/'/gi, '\"');\r\n body = body.replace(\r\n /[\\s\\S]+(### Revision Log[\\s\\S]+)### ESP-IDF Version Used[\\s\\S]+/,\r\n '$1'\r\n );\r\n body = body.replace(/- \\(.+?\\) /g, '- ');\r\n const trclass = i++ > 6 ? ' hide' : '';\r\n $('#releaseTable').append(\r\n \"\" +\r\n \"\" +\r\n ver +\r\n '' +\r\n '' +\r\n new Date(release.created_at).toLocalShort() +\r\n '' +\r\n '' +\r\n cfg +\r\n '' +\r\n '' +\r\n idf +\r\n '' +\r\n '' +\r\n branch +\r\n '' +\r\n \"\" +\r\n ''\r\n );\r\n });\r\n if (i > 7) {\r\n $('#releaseTable').append(\r\n \"\" +\r\n \"\" +\r\n \"\" +\r\n '' +\r\n ''\r\n );\r\n $('#showallbutton').on('click', function () {\r\n $('tr.hide').removeClass('hide');\r\n $('tr#showall').addClass('hide');\r\n });\r\n }\r\n $('#searchfw').css('display', 'inline');\r\n }).fail(function () {\r\n alert('failed to fetch release history!');\r\n });\r\n });\r\n\r\n $('#updateAP').on('click', function () {\r\n refreshAP();\r\n console.log('refresh AP');\r\n });\r\n\r\n // first time the page loads: attempt to get the connection status and start the wifi scan\r\n getConfig();\r\n getCommands();\r\n getMessages();\r\n checkStatus();\r\n\r\n});\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nwindow.setURL = function (button) {\r\n let url = button.dataset.url;\r\n\r\n $('[data-bs-url^=\"http\"]')\r\n .addClass('btn-success')\r\n .removeClass('btn-danger');\r\n $('[data-bs-url=\"' + url + '\"]')\r\n .addClass('btn-danger')\r\n .removeClass('btn-success');\r\n\r\n // if user can proxy download through LMS, modify the URL\r\n if (lmsBaseUrl) {\r\n url = url.replace(/.*\\/download\\//, lmsBaseUrl + '/plugins/SqueezeESP32/firmware/');\r\n }\r\n\r\n $('#fwurl').val(url);\r\n}\r\n\r\n\r\nfunction rssiToIcon(rssi) {\r\n if (rssi >= -55) {\r\n return `signal_wifi_statusbar_4_bar`;\r\n } else if (rssi >= -60) {\r\n return `network_wifi_3_bar`;\r\n } else if (rssi >= -65) {\r\n return `network_wifi_2_bar`;\r\n } else if (rssi >= -70) {\r\n return `network_wifi_1_bar`;\r\n } else {\r\n return `signal_wifi_statusbar_null`;\r\n }\r\n}\r\n\r\nfunction refreshAP() {\r\n if (ConnectedTo.urc === connectReturnCode.ETH) return;\r\n $.getJSON('/scan.json', async function () {\r\n await sleep(2000);\r\n $.getJSON('/ap.json', function (data) {\r\n if (data.length > 0) {\r\n // sort by signal strength\r\n data.sort(function (a, b) {\r\n const x = a.rssi;\r\n const y = b.rssi;\r\n // eslint-disable-next-line no-nested-ternary\r\n return x < y ? 1 : x > y ? -1 : 0;\r\n });\r\n apList = data;\r\n refreshAPHTML2(apList);\r\n\r\n }\r\n });\r\n });\r\n}\r\nfunction formatAP(ssid, rssi, auth) {\r\n return `${ssid}\r\n ${rssiToIcon(rssi)}\r\n \t\r\n ${(auth == 0 ? 'no_encryption' : 'lock')}\r\n `;\r\n}\r\nfunction refreshAPHTML2(data) {\r\n let h = '';\r\n $('#wifiTable tr td:first-of-type').text('');\r\n $('#wifiTable tr').removeClass('table-success table-warning');\r\n if (data) {\r\n data.forEach(function (e) {\r\n h += formatAP(e.ssid, e.rssi, e.auth);\r\n });\r\n $('#wifiTable').html(h);\r\n }\r\n if ($('.manual_add').length == 0) {\r\n $('#wifiTable').append(formatAP('Manual add', 0, 0));\r\n $('#wifiTable tr:last').addClass('table-light text-dark').addClass('manual_add');\r\n }\r\n if (ConnectedTo.ssid && (ConnectedTo.urc === connectReturnCode.OK || ConnectedTo.urc === connectReturnCode.RESTORE)) {\r\n const wifiSelector = `#wifiTable td:contains(\"${ConnectedTo.ssid}\")`;\r\n if ($(wifiSelector).filter(function () { return $(this).text() === ConnectedTo.ssid; }).length == 0) {\r\n $('#wifiTable').prepend(`${formatAP(ConnectedTo.ssid, ConnectedTo.rssi ?? 0, 0)}`);\r\n }\r\n $(wifiSelector).filter(function () { return $(this).text() === ConnectedTo.ssid; }).siblings().first().html('✓').parent().addClass((ConnectedTo.urc === connectReturnCode.OK ? 'table-success' : 'table-warning'));\r\n $('span#foot-if').html(`SSID: ${ConnectedTo.ssid}, IP: ${ConnectedTo.ip}`);\r\n $('#wifiStsIcon').html(rssiToIcon(ConnectedTo.rssi));\r\n\r\n }\r\n else if (ConnectedTo.urc !== connectReturnCode.ETH) {\r\n $('span#foot-if').html('');\r\n }\r\n\r\n}\r\nfunction refreshETH() {\r\n\r\n if (ConnectedTo.urc === connectReturnCode.ETH) {\r\n $('span#foot-if').html(`Network: Ethernet, IP: ${ConnectedTo.ip}`);\r\n }\r\n}\r\nfunction showTask(task) {\r\n console.debug(\r\n this.toLocaleString() +\r\n '\\t' +\r\n task.nme +\r\n '\\t' +\r\n task.cpu +\r\n '\\t' +\r\n taskStates[task.st] +\r\n '\\t' +\r\n task.minstk +\r\n '\\t' +\r\n task.bprio +\r\n '\\t' +\r\n task.cprio +\r\n '\\t' +\r\n task.num\r\n );\r\n $('tbody#tasks').append(\r\n '' +\r\n task.num +\r\n '' +\r\n task.nme +\r\n '' +\r\n task.cpu +\r\n '' +\r\n taskStates[task.st] +\r\n '' +\r\n task.minstk +\r\n '' +\r\n task.bprio +\r\n '' +\r\n task.cprio +\r\n ''\r\n );\r\n}\r\nfunction btExists(name) {\r\n return getBTSinkOpt(name).length > 0;\r\n}\r\nfunction getBTSinkOpt(name) {\r\n return $(`${btSinkNamesOptSel} option:contains('${name}')`);\r\n}\r\nfunction getMessages() {\r\n $.getJSON('/messages.json', async function (data) {\r\n for (const msg of data) {\r\n const msgAge = msg.current_time - msg.sent_time;\r\n var msgTime = new Date();\r\n msgTime.setTime(msgTime.getTime() - msgAge);\r\n switch (msg.class) {\r\n case 'MESSAGING_CLASS_OTA':\r\n flashState.EventOTAMessageClass(msg.message);\r\n break;\r\n case 'MESSAGING_CLASS_STATS':\r\n // for task states, check structure : task_state_t\r\n var statsData = JSON.parse(msg.message);\r\n console.debug(\r\n msgTime.toLocalShort() +\r\n ' - Number of running tasks: ' +\r\n statsData.ntasks\r\n );\r\n console.debug(\r\n msgTime.toLocalShort() +\r\n '\\tname' +\r\n '\\tcpu' +\r\n '\\tstate' +\r\n '\\tminstk' +\r\n '\\tbprio' +\r\n '\\tcprio' +\r\n '\\tnum'\r\n );\r\n if (statsData.tasks) {\r\n if ($('#tasks_sect').css('visibility') === 'collapse') {\r\n $('#tasks_sect').css('visibility', 'visible');\r\n }\r\n $('tbody#tasks').html('');\r\n statsData.tasks\r\n .sort(function (a, b) {\r\n return b.cpu - a.cpu;\r\n })\r\n .forEach(showTask, msgTime);\r\n } else if ($('#tasks_sect').css('visibility') === 'visible') {\r\n $('tbody#tasks').empty();\r\n $('#tasks_sect').css('visibility', 'collapse');\r\n }\r\n break;\r\n case 'MESSAGING_CLASS_SYSTEM':\r\n showMessage(msg, msgTime);\r\n break;\r\n case 'MESSAGING_CLASS_CFGCMD':\r\n var msgparts = msg.message.split(/([^\\n]*)\\n(.*)/gs);\r\n showCmdMessage(msgparts[1], msg.type, msgparts[2], true);\r\n break;\r\n case 'MESSAGING_CLASS_BT':\r\n if ($(\"#cfg-audio-bt_source-sink_name\").is('input')) {\r\n var attr = $(\"#cfg-audio-bt_source-sink_name\")[0].attributes;\r\n var attrs = '';\r\n for (var j = 0; j < attr.length; j++) {\r\n if (attr.item(j).name != \"type\") {\r\n attrs += `${attr.item(j).name} = \"${attr.item(j).value}\" `;\r\n }\r\n }\r\n var curOpt = $(\"#cfg-audio-bt_source-sink_name\")[0].value;\r\n $(\"#cfg-audio-bt_source-sink_name\").replaceWith(` `);\r\n }\r\n JSON.parse(msg.message).forEach(function (btEntry) {\r\n //\r\n // \r\n if (!btExists(btEntry.name)) {\r\n $(\"#cfg-audio-bt_source-sink_name\").append(``);\r\n showMessage({ type: msg.type, message: `BT Audio device found: ${btEntry.name} RSSI: ${btEntry.rssi} ` }, msgTime);\r\n }\r\n getBTSinkOpt(btEntry.name).attr('data-bs-description', `${btEntry.name} (${btEntry.rssi}dB)`)\r\n .attr('rssi', btEntry.rssi)\r\n .attr('value', btEntry.name)\r\n .text(`${btEntry.name} [${btEntry.rssi}dB]`).trigger('change');\r\n\r\n });\r\n $(btSinkNamesOptSel).append($(`${btSinkNamesOptSel} option`).remove().sort(function (a, b) {\r\n console.log(`${parseInt($(a).attr('rssi'))} < ${parseInt($(b).attr('rssi'))} ? `);\r\n return parseInt($(a).attr('rssi')) < parseInt($(b).attr('rssi')) ? 1 : -1;\r\n }));\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n setTimeout(getMessages,messageInterval);\r\n }).fail(function (xhr, ajaxOptions, thrownError) {\r\n \r\n if (xhr.status == 404) {\r\n $('.orec').hide(); // system commands won't be available either\r\n messagesHeld = true;\r\n }\r\n else {\r\n handleExceptionResponse(xhr, ajaxOptions, thrownError);\r\n }\r\n if(xhr.status == 0 && xhr.readyState ==0){\r\n // probably a timeout. Target is rebooting? \r\n setTimeout(getMessages,messageInterval*2); // increase duration if a failure happens\r\n }\r\n else if(!messagesHeld){\r\n // 404 here means we rebooted to an old recovery\r\n setTimeout(getMessages,messageInterval); // increase duration if a failure happens\r\n }\r\n \r\n }\r\n );\r\n\r\n /*\r\n Minstk is minimum stack space left\r\nBprio is base priority\r\ncprio is current priority\r\nnme is name\r\nst is task state. I provided a \"typedef\" that you can use to convert to text\r\ncpu is cpu percent used\r\n*/\r\n}\r\nfunction handleRecoveryMode(data) {\r\n const locRecovery = data.recovery ?? 0;\r\n if (locRecovery === 1) {\r\n recovery = true;\r\n $('.recovery_element').show();\r\n $('.ota_element').hide();\r\n $('#boot-button').html('Reboot');\r\n $('#boot-form').attr('action', '/reboot_ota.json');\r\n } else {\r\n if(!recovery && messagesHeld){\r\n messagesHeld=false;\r\n setTimeout(getMessages,messageInterval); // increase duration if a failure happens\r\n }\r\n recovery = false;\r\n \r\n $('.recovery_element').hide();\r\n $('.ota_element').show();\r\n $('#boot-button').html('Recovery');\r\n $('#boot-form').attr('action', '/recovery.json');\r\n }\r\n \r\n}\r\n\r\nfunction hasConnectionChanged(data) {\r\n // gw: \"192.168.10.1\"\r\n // ip: \"192.168.10.225\"\r\n // netmask: \"255.255.255.0\"\r\n // ssid: \"MyTestSSID\"\r\n\r\n return (data.urc !== ConnectedTo.urc ||\r\n data.ssid !== ConnectedTo.ssid ||\r\n data.gw !== ConnectedTo.gw ||\r\n data.netmask !== ConnectedTo.netmask ||\r\n data.ip !== ConnectedTo.ip || data.rssi !== ConnectedTo.rssi)\r\n}\r\nfunction handleWifiDialog(data) {\r\n if ($('#WifiConnectDialog').is(':visible')) {\r\n if (ConnectedTo.ip) {\r\n $('#ipAddress').text(ConnectedTo.ip);\r\n }\r\n if (ConnectedTo.ssid) {\r\n $('#connectedToSSID').text(ConnectedTo.ssid);\r\n }\r\n if (ConnectedTo.gw) {\r\n $('#gateway').text(ConnectedTo.gw);\r\n }\r\n if (ConnectedTo.netmask) {\r\n $('#netmask').text(ConnectedTo.netmask);\r\n }\r\n if (ConnectingToSSID.Action === undefined || (ConnectingToSSID.Action && ConnectingToSSID.Action == ConnectingToActions.STS)) {\r\n $(\"*[class*='connecting']\").hide();\r\n $('.connecting-status').show();\r\n }\r\n if (SystemConfig.ap_ssid) {\r\n $('#apName').text(SystemConfig.ap_ssid.value);\r\n }\r\n if (SystemConfig.ap_pwd) {\r\n $('#apPass').text(SystemConfig.ap_pwd.value);\r\n }\r\n if (!data) {\r\n return;\r\n }\r\n else {\r\n switch (data.urc) {\r\n case connectReturnCode.OK:\r\n if (data.ssid && data.ssid === ConnectingToSSID.ssid) {\r\n $(\"*[class*='connecting']\").hide();\r\n $('.connecting-success').show();\r\n ConnectingToSSID.Action = ConnectingToActions.STS;\r\n }\r\n break;\r\n case connectReturnCode.FAIL:\r\n // \r\n if (ConnectingToSSID.Action != ConnectingToActions.STS && ConnectingToSSID.ssid == data.ssid) {\r\n $(\"*[class*='connecting']\").hide();\r\n $('.connecting-fail').show();\r\n }\r\n break;\r\n case connectReturnCode.LOST:\r\n\r\n break;\r\n case connectReturnCode.RESTORE:\r\n if (ConnectingToSSID.Action != ConnectingToActions.STS && ConnectingToSSID.ssid != data.ssid) {\r\n $(\"*[class*='connecting']\").hide();\r\n $('.connecting-fail').show();\r\n }\r\n break;\r\n case connectReturnCode.DISC:\r\n // that's a manual disconnect\r\n // if ($('#wifi-status').is(':visible')) {\r\n // $('#wifi-status').slideUp('fast', function() {});\r\n // $('span#foot-wifi').html('');\r\n\r\n // } \r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n }\r\n}\r\nfunction handleNetworkStatus(data) {\r\n if (hasConnectionChanged(data) || !data.urc) {\r\n ConnectedTo = data;\r\n $(\".if_eth\").hide();\r\n $('.if_wifi').hide();\r\n if (!data.urc || ConnectedTo.urc != connectReturnCode.ETH) {\r\n $('.if_wifi').show();\r\n refreshAPHTML2();\r\n }\r\n else {\r\n $(\".if_eth\").show();\r\n refreshETH();\r\n }\r\n\r\n }\r\n handleWifiDialog(data);\r\n}\r\n\r\n\r\n\r\nfunction batteryToIcon(voltage) {\r\n /* Assuming Li-ion 18650s as a power source, 3.9V per cell, or above is treated\r\n as full charge (>75% of capacity). 3.4V is empty. The gauge is loosely\r\n following the graph here:\r\n https://learn.adafruit.com/li-ion-and-lipoly-batteries/voltages\r\n using the 0.2C discharge profile for the rest of the values.\r\n*/\r\n\r\n for (const iconEntry of batIcons) {\r\n for (const entryRanges of iconEntry.ranges) {\r\n if (inRange(voltage, entryRanges.f, entryRanges.t)) {\r\n return iconEntry.icon;\r\n }\r\n }\r\n }\r\n\r\n\r\n return \"battery_full\";\r\n}\r\nfunction checkStatus() {\r\n\r\n $.getJSON('/status.json', function (data) {\r\n handleRecoveryMode(data);\r\n handleNVSVisible();\r\n handleNetworkStatus(data);\r\n handlebtstate(data);\r\n flashState.EventTargetStatus(data);\r\n\r\n if (data.project_name && data.project_name !== '') {\r\n project_name = data.project_name;\r\n }\r\n if (data.platform_name && data.platform_name !== '') {\r\n platform_name = data.platform_name;\r\n }\r\n if (board_model === '') board_model = project_name;\r\n if (board_model === '') board_model = 'Squeezelite-ESP32';\r\n if (data.version && data.version !== '') {\r\n versionName = data.version;\r\n $(\"#navtitle\").html(`${board_model}${recovery ? '
[recovery]' : ''}`);\r\n $('span#foot-fw').html(`fw: ${versionName}, mode: ${recovery ? \"Recovery\" : project_name}`);\r\n } else {\r\n $('span#flash-status').html('');\r\n }\r\n if (data.Voltage) {\r\n $('#battery').html(`${batteryToIcon(data.Voltage)}`);\r\n $('#battery').show();\r\n } else {\r\n $('#battery').hide();\r\n }\r\n if ((data.message ?? '') != '' && prevmessage != data.message) {\r\n // supporting older recovery firmwares - messages will come from the status.json structure\r\n prevmessage = data.message;\r\n showLocalMessage(data.message, 'MESSAGING_INFO')\r\n }\r\n is_i2c_locked = data.is_i2c_locked;\r\n if (is_i2c_locked) {\r\n $('flds-cfg-hw-preset').hide();\r\n }\r\n else {\r\n $('flds-cfg-hw-preset').show();\r\n }\r\n $(\"button[onclick*='handleReboot']\").removeClass('rebooting');\r\n\r\n if (typeof lmsBaseUrl == \"undefined\" || data.lms_ip != prevLMSIP && data.lms_ip && data.lms_port) {\r\n const baseUrl = 'http://' + data.lms_ip + ':' + data.lms_port;\r\n prevLMSIP = data.lms_ip;\r\n $.ajax({\r\n url: baseUrl + '/plugins/SqueezeESP32/firmware/-check.bin',\r\n type: 'HEAD',\r\n dataType: 'text',\r\n cache: false,\r\n error: function () {\r\n // define the value, so we don't check it any more.\r\n lmsBaseUrl = '';\r\n },\r\n success: function () {\r\n lmsBaseUrl = baseUrl;\r\n }\r\n });\r\n }\r\n $('#o_jack').css({ display: Number(data.Jack) ? 'inline' : 'none' });\r\n setTimeout(checkStatus,statusInterval);\r\n }).fail(function (xhr, ajaxOptions, thrownError) {\r\n handleExceptionResponse(xhr, ajaxOptions, thrownError);\r\n if(xhr.status == 0 && xhr.readyState ==0){\r\n // probably a timeout. Target is rebooting? \r\n setTimeout(checkStatus,messageInterval*2); // increase duration if a failure happens\r\n }\r\n else {\r\n setTimeout(checkStatus,messageInterval); // increase duration if a failure happens\r\n }\r\n });\r\n}\r\n// eslint-disable-next-line no-unused-vars\r\nwindow.runCommand = function (button, reboot) {\r\n let cmdstring = button.attributes.cmdname.value;\r\n showCmdMessage(\r\n button.attributes.cmdname.value,\r\n 'MESSAGING_INFO',\r\n 'Executing.',\r\n false\r\n );\r\n const fields = document.getElementById('flds-' + cmdstring);\r\n const allfields = fields?.querySelectorAll('select,input');\r\n if (cmdstring === 'cfg-hw-preset') return handleHWPreset(allfields, reboot);\r\n cmdstring += ' ';\r\n if (fields) {\r\n\r\n for (const field of allfields) {\r\n let qts = '';\r\n let opt = '';\r\n let attr = field.attributes;\r\n let isSelect = $(field).is('select');\r\n const hasValue = attr?.hasvalue?.value === 'true';\r\n const validVal = (isSelect && field.value !== '--') || (!isSelect && field.value !== '');\r\n\r\n if (!hasValue || hasValue && validVal) {\r\n if (attr?.longopts?.value !== 'undefined') {\r\n opt += '--' + attr?.longopts?.value;\r\n } else if (attr?.shortopts?.value !== 'undefined') {\r\n opt = '-' + attr.shortopts.value;\r\n }\r\n\r\n if (attr?.hasvalue?.value === 'true') {\r\n if (attr?.value !== '') {\r\n qts = /\\s/.test(field.value) ? '\"' : '';\r\n cmdstring += opt + ' ' + qts + field.value + qts + ' ';\r\n }\r\n } else {\r\n // this is a checkbox\r\n if (field?.checked) {\r\n cmdstring += opt + ' ';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n console.log(cmdstring);\r\n\r\n const data = {\r\n timestamp: Date.now(),\r\n };\r\n data.command = cmdstring;\r\n\r\n $.ajax({\r\n url: '/commands.json',\r\n dataType: 'text',\r\n method: 'POST',\r\n cache: false,\r\n contentType: 'application/json; charset=utf-8',\r\n data: JSON.stringify(data),\r\n error: function (xhr, _ajaxOptions, thrownError) {\r\n var cmd = JSON.parse(this.data).command;\r\n if (xhr.status == 404) {\r\n showCmdMessage(\r\n cmd.substr(0, cmd.indexOf(' ')),\r\n 'MESSAGING_ERROR',\r\n `${recovery ? 'Limited recovery mode active. Unsupported action ' : 'Unexpected error while processing command'}`,\r\n true\r\n );\r\n }\r\n else {\r\n handleExceptionResponse(xhr, _ajaxOptions, thrownError);\r\n showCmdMessage(\r\n cmd.substr(0, cmd.indexOf(' ') - 1),\r\n 'MESSAGING_ERROR',\r\n `Unexpected error ${(thrownError !== '') ? thrownError : 'with return status = ' + xhr.status}`,\r\n true\r\n );\r\n }\r\n },\r\n success: function (response) {\r\n $('.orec').show();\r\n console.log(response);\r\n if (\r\n JSON.parse(response).Result === 'Success' &&\r\n reboot\r\n ) {\r\n delayReboot(2500, button.attributes.cmdname.value);\r\n }\r\n },\r\n });\r\n}\r\nfunction getLongOps(data, name, longopts) {\r\n return data.values[name] !== undefined ? data.values[name][longopts] : \"\";\r\n}\r\nfunction getCommands() {\r\n $.getJSON('/commands.json', function (data) {\r\n console.log(data);\r\n $('.orec').show();\r\n data.commands.forEach(function (command) {\r\n if ($('#flds-' + command.name).length === 0) {\r\n const cmdParts = command.name.split('-');\r\n const isConfig = cmdParts[0] === 'cfg';\r\n const targetDiv = '#tab-' + cmdParts[0] + '-' + cmdParts[1];\r\n let innerhtml = '';\r\n innerhtml += `
${command.help.encodeHTML().replace(/\\n/g, '
')}
`;\r\n if (command.argtable) {\r\n command.argtable.forEach(function (arg) {\r\n let placeholder = arg.datatype || '';\r\n const ctrlname = command.name + '-' + arg.longopts;\r\n const curvalue = getLongOps(data, command.name, arg.longopts);\r\n\r\n let attributes = 'hasvalue=' + arg.hasvalue + ' ';\r\n attributes += 'longopts=\"' + arg.longopts + '\" ';\r\n attributes += 'shortopts=\"' + arg.shortopts + '\" ';\r\n attributes += 'checkbox=' + arg.checkbox + ' ';\r\n attributes += 'cmdname=\"' + command.name + '\" ';\r\n attributes +=\r\n 'id=\"' +\r\n ctrlname +\r\n '\" name=\"' +\r\n ctrlname +\r\n '\" hasvalue=\"' +\r\n arg.hasvalue +\r\n '\" ';\r\n let extraclass = arg.mincount > 0 ? 'bg-success' : '';\r\n if (arg.glossary === 'hidden') {\r\n attributes += ' style=\"visibility: hidden;\"';\r\n }\r\n if (arg.checkbox) {\r\n innerhtml += `
`;\r\n } else {\r\n innerhtml += `
`;\r\n if (placeholder.includes('|')) {\r\n extraclass = placeholder.startsWith('+') ? ' multiple ' : '';\r\n placeholder = placeholder\r\n .replace('<', '')\r\n .replace('=', '')\r\n .replace('>', '');\r\n innerhtml += `';\r\n } else {\r\n innerhtml += ``;\r\n }\r\n }\r\n\r\n innerhtml += `${arg.checkbox ? '
' : ''}Previous value: ${arg.checkbox ? (curvalue ? 'Checked' : 'Unchecked') : (curvalue || '')}${arg.checkbox ? '' : '
'}`;\r\n });\r\n }\r\n innerhtml += `
\r\n
\r\n
\r\n Result\r\n
\r\n
\r\n
`;\r\n if (isConfig) {\r\n innerhtml +=\r\n `\r\n`;\r\n } else {\r\n innerhtml += ``;\r\n }\r\n innerhtml += '
';\r\n if (isConfig) {\r\n $(targetDiv).append(innerhtml);\r\n } else {\r\n $('#commands-list').append(innerhtml);\r\n }\r\n }\r\n });\r\n $(\".sclk\").off('click').on('click', function () { runCommand(this, false); });\r\n $(\".cclk\").off('click').on('click', function () { runCommand(this, true); });\r\n data.commands.forEach(function (command) {\r\n $('[cmdname=' + command.name + ']:input').val('');\r\n $('[cmdname=' + command.name + ']:checkbox').prop('checked', false);\r\n if (command.argtable) {\r\n command.argtable.forEach(function (arg) {\r\n const ctrlselector = '#' + command.name + '-' + arg.longopts;\r\n const ctrlValue = getLongOps(data, command.name, arg.longopts);\r\n if (arg.checkbox) {\r\n $(ctrlselector)[0].checked = ctrlValue;\r\n } else {\r\n if (ctrlValue !== undefined) {\r\n $(ctrlselector)\r\n .val(ctrlValue)\r\n .trigger('change');\r\n }\r\n if (\r\n $(ctrlselector)[0].value.length === 0 &&\r\n (arg.datatype || '').includes('|')\r\n ) {\r\n $(ctrlselector)[0].value = '--';\r\n }\r\n }\r\n });\r\n }\r\n });\r\n loadPresets();\r\n }).fail(function (xhr, ajaxOptions, thrownError) {\r\n if (xhr.status == 404) {\r\n $('.orec').hide();\r\n }\r\n else {\r\n handleExceptionResponse(xhr, ajaxOptions, thrownError);\r\n }\r\n $('#commands-list').empty();\r\n\r\n });\r\n}\r\n\r\nfunction getConfig() {\r\n $.getJSON('/config.json', function (entries) {\r\n $('#nvsTable tr').remove();\r\n const data = (entries.config ? entries.config : entries);\r\n SystemConfig = data;\r\n Object.keys(data)\r\n .sort()\r\n .forEach(function (key) {\r\n let val = data[key].value;\r\n if (key === 'autoexec') {\r\n if (data.autoexec.value === '0') {\r\n $('#disable-squeezelite')[0].checked = true;\r\n } else {\r\n $('#disable-squeezelite')[0].checked = false;\r\n }\r\n } else if (key === 'autoexec1') {\r\n const re = /-o\\s?([\"][^\"]*[\"]|[^-]+)/g;\r\n const m = re.exec(val);\r\n if (m[1].toUpperCase().startsWith('I2S')) {\r\n handleTemplateTypeRadio('i2s');\r\n } else if (m[1].toUpperCase().startsWith('SPDIF')) {\r\n handleTemplateTypeRadio('spdif');\r\n } else if (m[1].toUpperCase().startsWith('\"BT')) {\r\n handleTemplateTypeRadio('bt');\r\n }\r\n } else if (key === 'host_name') {\r\n val = val.replaceAll('\"', '');\r\n $('input#dhcp-name1').val(val);\r\n $('input#dhcp-name2').val(val);\r\n $('#player').val(val);\r\n document.title = val;\r\n hostName = val;\r\n } else if (key === 'rel_api') {\r\n releaseURL = val;\r\n }\r\n else if (key === 'enable_airplay') {\r\n $(\"#s_airplay\").css({ display: isEnabled(val) ? 'inline' : 'none' })\r\n }\r\n else if (key === 'enable_cspot') {\r\n $(\"#s_cspot\").css({ display: isEnabled(val) ? 'inline' : 'none' })\r\n }\r\n else if (key == 'preset_name') {\r\n preset_name = val;\r\n }\r\n else if (key == 'board_model') {\r\n board_model = val;\r\n }\r\n\r\n $('tbody#nvsTable').append(\r\n '' +\r\n '' +\r\n key +\r\n '' +\r\n \"\" +\r\n \"' +\r\n '' +\r\n ''\r\n );\r\n $('input#' + key).val(data[key].value);\r\n });\r\n $('tbody#nvsTable').append(\r\n \"\"\r\n );\r\n if (entries.gpio) {\r\n $('#pins').show();\r\n $('tbody#gpiotable tr').remove();\r\n entries.gpio.forEach(function (gpioEntry) {\r\n $('tbody#gpiotable').append(\r\n '' +\r\n gpioEntry.group +\r\n '' +\r\n gpioEntry.name +\r\n '' +\r\n gpioEntry.gpio +\r\n '' +\r\n (gpioEntry.fixed ? 'Fixed' : 'Configuration') +\r\n ''\r\n );\r\n });\r\n }\r\n else {\r\n $('#pins').hide();\r\n }\r\n }).fail(function (xhr, ajaxOptions, thrownError) {\r\n handleExceptionResponse(xhr, ajaxOptions, thrownError);\r\n });\r\n}\r\nfunction showLocalMessage(message, severity) {\r\n const msg = {\r\n message: message,\r\n type: severity,\r\n };\r\n showMessage(msg, new Date());\r\n}\r\n\r\nfunction showMessage(msg, msgTime) {\r\n let color = 'table-success';\r\n\r\n if (msg.type === 'MESSAGING_WARNING') {\r\n color = 'table-warning';\r\n if (messageseverity === 'MESSAGING_INFO') {\r\n messageseverity = 'MESSAGING_WARNING';\r\n }\r\n } else if (msg.type === 'MESSAGING_ERROR') {\r\n if (\r\n messageseverity === 'MESSAGING_INFO' ||\r\n messageseverity === 'MESSAGING_WARNING'\r\n ) {\r\n messageseverity = 'MESSAGING_ERROR';\r\n }\r\n color = 'table-danger';\r\n }\r\n if (++messagecount > 0) {\r\n $('#msgcnt').removeClass('badge-success');\r\n $('#msgcnt').removeClass('badge-warning');\r\n $('#msgcnt').removeClass('badge-danger');\r\n $('#msgcnt').addClass(pillcolors[messageseverity]);\r\n $('#msgcnt').text(messagecount);\r\n }\r\n\r\n $('#syslogTable').append(\r\n \"\" +\r\n '' +\r\n msgTime.toLocalShort() +\r\n '' +\r\n '' +\r\n msg.message.encodeHTML() +\r\n '' +\r\n ''\r\n );\r\n}\r\n\r\nfunction inRange(x, min, max) {\r\n return (x - min) * (x - max) <= 0;\r\n}\r\n\r\nfunction sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nrequire(\"bootstrap\");\r\nrequire(\"./sass/main.scss\");\r\nrequire(\"./assets/images/favicon-32x32.png\");\r\nrequire(\"./js/custom.js\");\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t826: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksqueezelite_esp32\"] = self[\"webpackChunksqueezelite_esp32\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [987], () => (__webpack_require__(607)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","he","require","Promise","handleNVSVisible","nvs_previous_checked","isEnabled","Cookies","$","checked","recovery","show","hide","val","undefined","match","window","bootstrap","String","prototype","format","Object","assign","args","arguments","this","replace","number","encodeHTML","encode","Date","toLocalShort","toLocaleString","dateStyle","timeStyle","nvsTypes","btIcons","bt_playing","bt_disconnected","bt_neutral","bt_connecting","bt_connected","bt_disabled","play_arrow","pause","stop","batIcons","icon","ranges","f","t","btStateIcons","desc","sub","pillcolors","MESSAGING_INFO","MESSAGING_WARNING","MESSAGING_ERROR","connectReturnCode","taskStates","flashState","NONE","REBOOT_TO_RECOVERY","SET_FWURL","FLASHING","DONE","UPLOADING","ERROR","UPLOADCOMPLETE","_state","olderRecovery","statusText","flashURL","flashFileName","statusPercent","Completed","prevRecovery","updateModal","Modal","document","getElementById","reset","UpdateProgress","removeClass","prop","value","isStateError","html","parent","isStateUploadComplete","isStateNone","isStateRebootRecovery","isStateSetUrl","isStateFlashing","isStateDone","isStateUploading","init","SetStateError","addClass","SetStateNone","SetStateRebootRecovery","SetStatusText","ajax","url","context","dataType","method","cache","contentType","data","JSON","stringify","timestamp","now","error","xhr","_ajaxOptions","thrownError","setOTAError","status","complete","response","SetStateSetUrl","post_config","fwurl","type","SetStateFlashing","SetStateDone","SetStateUploading","SetStateUploadComplete","isFlashExecuting","toString","keys","find","x","setOTATargets","fileInput","files","length","message","SetStatusPercent","ShowDialog","pct","pctChanged","txt","changed","css","attr","text","StartOTA","logEvent","name","TargetReadyStartOTA","UploadLocalFile","xhttp","XMLHttpRequest","boundHandleUploadProgressEvent","HandleUploadProgressEvent","bind","boundsetOTAError","upload","addEventListener","onreadystatechange","readyState","open","send","console","Math","round","loaded","total","EventTargetStatus","ota_pct","ota_dsc","EventOTAMessageClass","otaData","parse","fun","log","hideSurrounding","obj","presetsloaded","messageInterval","confPayload","config","handleExceptionResponse","handleTemplateTypeRadio","outtype","children","display","output","showLocalMessage","HideCmdMessage","cmdname","showCmdMessage","msgtype","msgtext","append","color","escapedtext","substring","hFlash","handleReboot","link","delayReboot","lmsBaseUrl","releaseURL","messagesHeld","messagecount","messageseverity","SystemConfig","LastCommandsState","hostName","versionName","prevmessage","project_name","board_model","platform_name","preset_name","btSinkNamesOptSel","ConnectedTo","ConnectingToSSID","prevLMSIP","ConnectingToActions","getConfigJson","slimMode","each","_index","entry","id","nvsType","parseInt","attributes","nvs_type","key","duration","ota","empty","resolve","delay","then","rdata","getCommands","getConfig","setPlatformFilter","filter","toUpperCase","trigger","rssiToIcon","rssi","refreshAP","urc","getJSON","sleep","sort","a","b","y","refreshAPHTML2","formatAP","ssid","auth","h","forEach","e","wifiSelector","prepend","siblings","first","ip","showTask","task","debug","nme","cpu","st","minstk","bprio","cprio","num","getBTSinkOpt","getMessages","msg","msgAge","current_time","sent_time","msgTime","setTime","getTime","statsData","ntasks","tasks","showMessage","msgparts","split","is","attrs","j","item","curOpt","replaceWith","btEntry","remove","setTimeout","fail","ajaxOptions","handleWifiDialog","gw","netmask","Action","ap_ssid","ap_pwd","handleNetworkStatus","hasConnectionChanged","checkStatus","handleRecoveryMode","tt","bt_status","bt_sub_status","iconindex","handlebtstate","version","Voltage","voltage","iconEntry","entryRanges","batteryToIcon","is_i2c_locked","lms_ip","lms_port","baseUrl","success","Number","Jack","getLongOps","longopts","values","commands","command","cmdParts","isConfig","targetDiv","innerhtml","help","argtable","arg","placeholder","datatype","ctrlname","curvalue","hasvalue","shortopts","checkbox","extraclass","mincount","glossary","includes","startsWith","choice","off","on","runCommand","ctrlselector","ctrlValue","_","jqxhr","textStatus","err","entries","autoexec","m","exec","replaceAll","title","gpio","gpioEntry","fixed","group","severity","ms","reason","_resolve","reject","saveAutoexec1","apply","commandLine","commandHeader","autoexec1","responseText","result","Result","handleDisconnect","handleConnect","pwd","dhcpname","ready","index","not","event","relatedTarget","FileReader","file","fr","onload","target","ex","alert","readAsText","slideUp","slideDown","preventDefault","createElement","href","URL","createObjectURL","Blob","setAttribute","body","appendChild","click","removeChild","branches","release","branch","push","fwb","assets","asset","browser_download_url","namecomponents","ver","cfg","bits","substr","lastIndexOf","created_at","i","idf","trclass","setURL","button","dataset","reboot","cmdstring","fields","allfields","querySelectorAll","selJson","cmd","model_config","storedval","handleHWPreset","field","qts","opt","isSelect","hasValue","validVal","test","indexOf","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","get","g","globalThis","Function","hasOwnProperty","Symbol","toStringTag","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/components/wifi-manager/webapp/dist/js/node_vendors.7581c6.bundle.js b/components/wifi-manager/webapp/dist/js/node_vendors.7581c6.bundle.js deleted file mode 100644 index e491a3dc..00000000 --- a/components/wifi-manager/webapp/dist/js/node_vendors.7581c6.bundle.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunksqueezelite_esp32=self.webpackChunksqueezelite_esp32||[]).push([[987],{652:(e,t,r)=>{e.exports=r(141)},910:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Alert:()=>Gt,Button:()=>Xt,Carousel:()=>Ar,Collapse:()=>Vr,Dropdown:()=>mn,Modal:()=>Jn,Offcanvas:()=>di,Popover:()=>Fi,ScrollSpy:()=>eo,Tab:()=>po,Toast:()=>Co,Tooltip:()=>Ri});var n={};function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}function o(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=i(e)););return e}function a(){return a="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var n=o(e,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(arguments.length<3?e:r):i.value}},a.apply(this,arguments)}function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.r(n),r.d(n,{afterMain:()=>P,afterRead:()=>R,afterWrite:()=>U,applyStyles:()=>Y,arrow:()=>pe,auto:()=>E,basePlacements:()=>k,beforeMain:()=>B,beforeRead:()=>O,beforeWrite:()=>H,bottom:()=>w,clippingParents:()=>T,computeStyles:()=>me,createPopper:()=>Ze,createPopperBase:()=>We,createPopperLite:()=>Ye,detectOverflow:()=>Ne,end:()=>D,eventListeners:()=>ye,flip:()=>Oe,hide:()=>Be,left:()=>x,main:()=>I,modifierPhases:()=>V,offset:()=>Ie,placements:()=>N,popper:()=>C,popperGenerator:()=>ze,popperOffsets:()=>Pe,preventOverflow:()=>He,read:()=>j,reference:()=>S,right:()=>_,start:()=>A,top:()=>b,variationPlacements:()=>L,viewport:()=>q,write:()=>F});var c=r(738);var u=r(220);function l(e){return function(e){if(Array.isArray(e))return(0,c.Z)(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||(0,u.Z)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function p(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&f(e,t)}var d=r(534);function h(e,t){if(t&&("object"===(0,d.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){for(var r=0;r0&&(n=J(r.width)/a||1),o>0&&(i=J(r.height)/o||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function ee(e){var t=Q(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function te(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Z(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function re(e){return z(e).getComputedStyle(e)}function ne(e){return["table","td","th"].indexOf(M(e))>=0}function ie(e){return((G(e)?e.ownerDocument:e.document)||window.document).documentElement}function oe(e){return"html"===M(e)?e:e.assignedSlot||e.parentNode||(Z(e)?e.host:null)||ie(e)}function ae(e){return W(e)&&"fixed"!==re(e).position?e.offsetParent:null}function se(e){for(var t=z(e),r=ae(e);r&&ne(r)&&"static"===re(r).position;)r=ae(r);return r&&("html"===M(r)||"body"===M(r)&&"static"===re(r).position)?t:r||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&W(e)&&"fixed"===re(e).position)return null;for(var r=oe(e);W(r)&&["html","body"].indexOf(M(r))<0;){var n=re(r);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||t&&"filter"===n.willChange||t&&n.filter&&"none"!==n.filter)return r;r=r.parentNode}return null}(e)||t}function ce(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ue(e,t,r){return $(e,K(t,r))}function le(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fe(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}const pe={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,n=e.name,i=e.options,o=r.elements.arrow,a=r.modifiersData.popperOffsets,s=X(r.placement),c=ce(s),u=[x,_].indexOf(s)>=0?"height":"width";if(o&&a){var l=function(e,t){return le("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fe(e,k))}(i.padding,r),f=ee(o),p="y"===c?b:x,d="y"===c?w:_,h=r.rects.reference[u]+r.rects.reference[c]-a[c]-r.rects.popper[u],g=a[c]-r.rects.reference[c],m=se(o),v=m?"y"===c?m.clientHeight||0:m.clientWidth||0:0,y=h/2-g/2,E=l[p],A=v-f[u]-l[d],D=v/2-f[u]/2+y,T=ue(E,D,A),q=c;r.modifiersData[n]=((t={})[q]=T,t.centerOffset=T-D,t)}},effect:function(e){var t=e.state,r=e.options.element,n=void 0===r?"[data-popper-arrow]":r;null!=n&&("string"!=typeof n||(n=t.elements.popper.querySelector(n)))&&te(t.elements.popper,n)&&(t.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function de(e){return e.split("-")[1]}var he={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ge(e){var t,r=e.popper,n=e.popperRect,i=e.placement,o=e.variation,a=e.offsets,s=e.position,c=e.gpuAcceleration,u=e.adaptive,l=e.roundOffsets,f=e.isFixed,p=a.x,d=void 0===p?0:p,h=a.y,g=void 0===h?0:h,m="function"==typeof l?l({x:d,y:g}):{x:d,y:g};d=m.x,g=m.y;var v=a.hasOwnProperty("x"),y=a.hasOwnProperty("y"),E=x,k=b,A=window;if(u){var T=se(r),q="clientHeight",C="clientWidth";if(T===z(r)&&"static"!==re(T=ie(r)).position&&"absolute"===s&&(q="scrollHeight",C="scrollWidth"),T=T,i===b||(i===x||i===_)&&o===D)k=w,g-=(f&&A.visualViewport?A.visualViewport.height:T[q])-n.height,g*=c?1:-1;if(i===x||(i===b||i===w)&&o===D)E=_,d-=(f&&A.visualViewport?A.visualViewport.width:T[C])-n.width,d*=c?1:-1}var S,L=Object.assign({position:s},u&&he),N=!0===l?function(e){var t=e.x,r=e.y,n=window.devicePixelRatio||1;return{x:J(t*n)/n||0,y:J(r*n)/n||0}}({x:d,y:g}):{x:d,y:g};return d=N.x,g=N.y,c?Object.assign({},L,((S={})[k]=y?"0":"",S[E]=v?"0":"",S.transform=(A.devicePixelRatio||1)<=1?"translate("+d+"px, "+g+"px)":"translate3d("+d+"px, "+g+"px, 0)",S)):Object.assign({},L,((t={})[k]=y?g+"px":"",t[E]=v?d+"px":"",t.transform="",t))}const me={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,r=e.options,n=r.gpuAcceleration,i=void 0===n||n,o=r.adaptive,a=void 0===o||o,s=r.roundOffsets,c=void 0===s||s,u={placement:X(t.placement),variation:de(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,ge(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,ge(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var ve={passive:!0};const ye={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,r=e.instance,n=e.options,i=n.scroll,o=void 0===i||i,a=n.resize,s=void 0===a||a,c=z(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach((function(e){e.addEventListener("scroll",r.update,ve)})),s&&c.addEventListener("resize",r.update,ve),function(){o&&u.forEach((function(e){e.removeEventListener("scroll",r.update,ve)})),s&&c.removeEventListener("resize",r.update,ve)}},data:{}};var be={left:"right",right:"left",bottom:"top",top:"bottom"};function we(e){return e.replace(/left|right|bottom|top/g,(function(e){return be[e]}))}var _e={start:"end",end:"start"};function xe(e){return e.replace(/start|end/g,(function(e){return _e[e]}))}function Ee(e){var t=z(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ke(e){return Q(ie(e)).left+Ee(e).scrollLeft}function Ae(e){var t=re(e),r=t.overflow,n=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function De(e){return["html","body","#document"].indexOf(M(e))>=0?e.ownerDocument.body:W(e)&&Ae(e)?e:De(oe(e))}function Te(e,t){var r;void 0===t&&(t=[]);var n=De(e),i=n===(null==(r=e.ownerDocument)?void 0:r.body),o=z(n),a=i?[o].concat(o.visualViewport||[],Ae(n)?n:[]):n,s=t.concat(a);return i?s:s.concat(Te(oe(a)))}function qe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Ce(e,t){return t===q?qe(function(e){var t=z(e),r=ie(e),n=t.visualViewport,i=r.clientWidth,o=r.clientHeight,a=0,s=0;return n&&(i=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=n.offsetLeft,s=n.offsetTop)),{width:i,height:o,x:a+ke(e),y:s}}(e)):G(t)?function(e){var t=Q(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):qe(function(e){var t,r=ie(e),n=Ee(e),i=null==(t=e.ownerDocument)?void 0:t.body,o=$(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=$(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+ke(e),c=-n.scrollTop;return"rtl"===re(i||r).direction&&(s+=$(r.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:c}}(ie(e)))}function Se(e,t,r){var n="clippingParents"===t?function(e){var t=Te(oe(e)),r=["absolute","fixed"].indexOf(re(e).position)>=0&&W(e)?se(e):e;return G(r)?t.filter((function(e){return G(e)&&te(e,r)&&"body"!==M(e)})):[]}(e):[].concat(t),i=[].concat(n,[r]),o=i[0],a=i.reduce((function(t,r){var n=Ce(e,r);return t.top=$(n.top,t.top),t.right=K(n.right,t.right),t.bottom=K(n.bottom,t.bottom),t.left=$(n.left,t.left),t}),Ce(e,o));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Le(e){var t,r=e.reference,n=e.element,i=e.placement,o=i?X(i):null,a=i?de(i):null,s=r.x+r.width/2-n.width/2,c=r.y+r.height/2-n.height/2;switch(o){case b:t={x:s,y:r.y-n.height};break;case w:t={x:s,y:r.y+r.height};break;case _:t={x:r.x+r.width,y:c};break;case x:t={x:r.x-n.width,y:c};break;default:t={x:r.x,y:r.y}}var u=o?ce(o):null;if(null!=u){var l="y"===u?"height":"width";switch(a){case A:t[u]=t[u]-(r[l]/2-n[l]/2);break;case D:t[u]=t[u]+(r[l]/2-n[l]/2)}}return t}function Ne(e,t){void 0===t&&(t={});var r=t,n=r.placement,i=void 0===n?e.placement:n,o=r.boundary,a=void 0===o?T:o,s=r.rootBoundary,c=void 0===s?q:s,u=r.elementContext,l=void 0===u?C:u,f=r.altBoundary,p=void 0!==f&&f,d=r.padding,h=void 0===d?0:d,g=le("number"!=typeof h?h:fe(h,k)),m=l===C?S:C,v=e.rects.popper,y=e.elements[p?m:l],x=Se(G(y)?y:y.contextElement||ie(e.elements.popper),a,c),E=Q(e.elements.reference),A=Le({reference:E,element:v,strategy:"absolute",placement:i}),D=qe(Object.assign({},v,A)),L=l===C?D:E,N={top:x.top-L.top+g.top,bottom:L.bottom-x.bottom+g.bottom,left:x.left-L.left+g.left,right:L.right-x.right+g.right},O=e.modifiersData.offset;if(l===C&&O){var j=O[i];Object.keys(N).forEach((function(e){var t=[_,w].indexOf(e)>=0?1:-1,r=[b,w].indexOf(e)>=0?"y":"x";N[e]+=j[r]*t}))}return N}const Oe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var i=r.mainAxis,o=void 0===i||i,a=r.altAxis,s=void 0===a||a,c=r.fallbackPlacements,u=r.padding,l=r.boundary,f=r.rootBoundary,p=r.altBoundary,d=r.flipVariations,h=void 0===d||d,g=r.allowedAutoPlacements,m=t.options.placement,v=X(m),y=c||(v===m||!h?[we(m)]:function(e){if(X(e)===E)return[];var t=we(e);return[xe(e),t,xe(t)]}(m)),D=[m].concat(y).reduce((function(e,r){return e.concat(X(r)===E?function(e,t){void 0===t&&(t={});var r=t,n=r.placement,i=r.boundary,o=r.rootBoundary,a=r.padding,s=r.flipVariations,c=r.allowedAutoPlacements,u=void 0===c?N:c,l=de(n),f=l?s?L:L.filter((function(e){return de(e)===l})):k,p=f.filter((function(e){return u.indexOf(e)>=0}));0===p.length&&(p=f);var d=p.reduce((function(t,r){return t[r]=Ne(e,{placement:r,boundary:i,rootBoundary:o,padding:a})[X(r)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}(t,{placement:r,boundary:l,rootBoundary:f,padding:u,flipVariations:h,allowedAutoPlacements:g}):r)}),[]),T=t.rects.reference,q=t.rects.popper,C=new Map,S=!0,O=D[0],j=0;j=0,H=P?"width":"height",F=Ne(t,{placement:R,boundary:l,rootBoundary:f,altBoundary:p,padding:u}),U=P?I?_:x:I?w:b;T[H]>q[H]&&(U=we(U));var V=we(U),M=[];if(o&&M.push(F[B]<=0),s&&M.push(F[U]<=0,F[V]<=0),M.every((function(e){return e}))){O=R,S=!1;break}C.set(R,M)}if(S)for(var z=function(e){var t=D.find((function(t){var r=C.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return O=t,"break"},G=h?3:1;G>0;G--){if("break"===z(G))break}t.placement!==O&&(t.modifiersData[n]._skip=!0,t.placement=O,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function je(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Re(e){return[b,_,w,x].some((function(t){return e[t]>=0}))}const Be={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,r=e.name,n=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=Ne(t,{elementContext:"reference"}),s=Ne(t,{altBoundary:!0}),c=je(a,n),u=je(s,i,o),l=Re(c),f=Re(u);t.modifiersData[r]={referenceClippingOffsets:c,popperEscapeOffsets:u,isReferenceHidden:l,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":l,"data-popper-escaped":f})}};const Ie={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,n=e.name,i=r.offset,o=void 0===i?[0,0]:i,a=N.reduce((function(e,r){return e[r]=function(e,t,r){var n=X(e),i=[x,b].indexOf(n)>=0?-1:1,o="function"==typeof r?r(Object.assign({},t,{placement:e})):r,a=o[0],s=o[1];return a=a||0,s=(s||0)*i,[x,_].indexOf(n)>=0?{x:s,y:a}:{x:a,y:s}}(r,t.rects,o),e}),{}),s=a[t.placement],c=s.x,u=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=a}};const Pe={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,r=e.name;t.modifiersData[r]=Le({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};const He={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,n=e.name,i=r.mainAxis,o=void 0===i||i,a=r.altAxis,s=void 0!==a&&a,c=r.boundary,u=r.rootBoundary,l=r.altBoundary,f=r.padding,p=r.tether,d=void 0===p||p,h=r.tetherOffset,g=void 0===h?0:h,m=Ne(t,{boundary:c,rootBoundary:u,padding:f,altBoundary:l}),v=X(t.placement),y=de(t.placement),E=!y,k=ce(v),D="x"===k?"y":"x",T=t.modifiersData.popperOffsets,q=t.rects.reference,C=t.rects.popper,S="function"==typeof g?g(Object.assign({},t.rects,{placement:t.placement})):g,L="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),N=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(T){if(o){var j,R="y"===k?b:x,B="y"===k?w:_,I="y"===k?"height":"width",P=T[k],H=P+m[R],F=P-m[B],U=d?-C[I]/2:0,V=y===A?q[I]:C[I],M=y===A?-C[I]:-q[I],z=t.elements.arrow,G=d&&z?ee(z):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},Z=W[R],Y=W[B],J=ue(0,q[I],G[I]),Q=E?q[I]/2-U-J-Z-L.mainAxis:V-J-Z-L.mainAxis,te=E?-q[I]/2+U+J+Y+L.mainAxis:M+J+Y+L.mainAxis,re=t.elements.arrow&&se(t.elements.arrow),ne=re?"y"===k?re.clientTop||0:re.clientLeft||0:0,ie=null!=(j=null==N?void 0:N[k])?j:0,oe=P+te-ie,ae=ue(d?K(H,P+Q-ie-ne):H,P,d?$(F,oe):F);T[k]=ae,O[k]=ae-P}if(s){var le,fe="x"===k?b:x,pe="x"===k?w:_,he=T[D],ge="y"===D?"height":"width",me=he+m[fe],ve=he-m[pe],ye=-1!==[b,x].indexOf(v),be=null!=(le=null==N?void 0:N[D])?le:0,we=ye?me:he-q[ge]-C[ge]-be+L.altAxis,_e=ye?he+q[ge]+C[ge]-be-L.altAxis:ve,xe=d&&ye?function(e,t,r){var n=ue(e,t,r);return n>r?r:n}(we,he,_e):ue(d?we:me,he,d?_e:ve);T[D]=xe,O[D]=xe-he}t.modifiersData[n]=O}},requiresIfExists:["offset"]};function Fe(e,t,r){void 0===r&&(r=!1);var n,i,o=W(t),a=W(t)&&function(e){var t=e.getBoundingClientRect(),r=J(t.width)/e.offsetWidth||1,n=J(t.height)/e.offsetHeight||1;return 1!==r||1!==n}(t),s=ie(t),c=Q(e,a),u={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(o||!o&&!r)&&(("body"!==M(t)||Ae(s))&&(u=(n=t)!==z(n)&&W(n)?{scrollLeft:(i=n).scrollLeft,scrollTop:i.scrollTop}:Ee(n)),W(t)?((l=Q(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):s&&(l.x=ke(s))),{x:c.left+u.scrollLeft-l.x,y:c.top+u.scrollTop-l.y,width:c.width,height:c.height}}function Ue(e){var t=new Map,r=new Set,n=[];function i(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var n=t.get(e);n&&i(n)}})),n.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||i(e)})),n}var Ve={placement:"bottom",modifiers:[],strategy:"absolute"};function Me(){for(var e=arguments.length,t=new Array(e),r=0;r0?document.querySelector(e):null},st=function(e,t,r){Object.keys(r).forEach((function(n){var i,o=r[n],a=t[n],s=a&&ot(a)?"element":null==(i=a)?"".concat(i):{}.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(s))throw new TypeError("".concat(e.toUpperCase(),': Option "').concat(n,'" provided type "').concat(s,'" but expected type "').concat(o,'".'))}))},ct=function(e){return!(!ot(e)||0===e.getClientRects().length)&&"visible"===getComputedStyle(e).getPropertyValue("visibility")},ut=function(e){return!e||e.nodeType!==Node.ELEMENT_NODE||(!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")))},lt=function e(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var r=t.getRootNode();return r instanceof ShadowRoot?r:null}return t instanceof ShadowRoot?t:t.parentNode?e(t.parentNode):null},ft=function(){},pt=function(e){e.offsetHeight},dt=function(){window;var e=Xe;return e&&!document.body.hasAttribute("data-bs-no-jquery")?e:null},ht=[],gt=function(){return"rtl"===document.documentElement.dir},mt=function(e){var t;t=function(){var t=dt();if(t){var r=e.NAME,n=t.fn[r];t.fn[r]=e.jQueryInterface,t.fn[r].Constructor=e,t.fn[r].noConflict=function(){return t.fn[r]=n,e.jQueryInterface}}},"loading"===document.readyState?(ht.length||document.addEventListener("DOMContentLoaded",(function(){ht.forEach((function(e){return e()}))})),ht.push(t)):t()},vt=function(e){"function"==typeof e&&e()},yt=function(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(r){var n=5,i=nt(t)+n,o=!1,a=function r(n){n.target===t&&(o=!0,t.removeEventListener(Qe,r),vt(e))};t.addEventListener(Qe,a),setTimeout((function(){o||it(t)}),i)}else vt(e)},bt=function(e,t,r,n){var i=e.indexOf(t);if(-1===i)return e[!r&&n?e.length-1:0];var o=e.length;return i+=r?1:-1,n&&(i=(i+o)%o),e[Math.max(0,Math.min(i,o-1))]},wt=/[^.]*(?=\..*)\.|.*/,_t=/\..*/,xt=/::\d+$/,Et={},kt=1,At={mouseenter:"mouseover",mouseleave:"mouseout"},Dt=/^(mouseenter|mouseleave)/i,Tt=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function qt(e,t){return t&&"".concat(t,"::").concat(kt++)||e.uidEvent||kt++}function Ct(e){var t=qt(e);return e.uidEvent=t,Et[t]=Et[t]||{},Et[t]}function St(e,t){for(var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=Object.keys(e),i=0,o=n.length;i2&&void 0!==arguments[2])||arguments[2];yt(e,t,r)}}],[{key:"getInstance",value:function(e){return Pt(at(e),this.DATA_KEY)}},{key:"getOrCreateInstance",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getInstance(e)||new this(e,"object"===(0,d.Z)(t)?t:null)}},{key:"VERSION",get:function(){return"5.1.3"}},{key:"NAME",get:function(){throw new Error('You have to implement the static method "NAME", for each component!')}},{key:"DATA_KEY",get:function(){return"bs.".concat(this.NAME)}},{key:"EVENT_KEY",get:function(){return".".concat(this.DATA_KEY)}}]),e}(),Ut=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"hide",r="click.dismiss".concat(e.EVENT_KEY),n=e.NAME;Rt.on(document,r,'[data-bs-dismiss="'.concat(n,'"]'),(function(r){if(["A","AREA"].includes(this.tagName)&&r.preventDefault(),!ut(this)){var i=rt(this)||this.closest(".".concat(n));e.getOrCreateInstance(i)[t]()}}))},Vt=".".concat("bs.alert"),Mt="close".concat(Vt),zt="closed".concat(Vt),Gt=function(e){p(r,e);var t=Je(r);function r(){return g(this,r),t.apply(this,arguments)}return v(r,[{key:"close",value:function(){var e=this;if(!Rt.trigger(this._element,Mt).defaultPrevented){this._element.classList.remove("show");var t=this._element.classList.contains("fade");this._queueCallback((function(){return e._destroyElement()}),this._element,t)}}},{key:"_destroyElement",value:function(){this._element.remove(),Rt.trigger(this._element,zt),this.dispose()}}],[{key:"NAME",get:function(){return"alert"}},{key:"jQueryInterface",value:function(e){return this.each((function(){var t=r.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError('No method named "'.concat(e,'"'));t[e](this)}}))}}]),r}(Ft);Ut(Gt,"close"),mt(Gt);var Wt=".".concat("bs.button"),Zt='[data-bs-toggle="button"]',Yt="click".concat(Wt).concat(".data-api"),Xt=function(e){p(r,e);var t=Je(r);function r(){return g(this,r),t.apply(this,arguments)}return v(r,[{key:"toggle",value:function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}}],[{key:"NAME",get:function(){return"button"}},{key:"jQueryInterface",value:function(e){return this.each((function(){var t=r.getOrCreateInstance(this);"toggle"===e&&t[e]()}))}}]),r}(Ft);function $t(e){return"true"===e||"false"!==e&&(e===Number(e).toString()?Number(e):""===e||"null"===e?null:e)}function Kt(e){return e.replace(/[A-Z]/g,(function(e){return"-".concat(e.toLowerCase())}))}Rt.on(document,Yt,Zt,(function(e){e.preventDefault();var t=e.target.closest(Zt);Xt.getOrCreateInstance(t).toggle()})),mt(Xt);var Jt={setDataAttribute:function(e,t,r){e.setAttribute("data-bs-".concat(Kt(t)),r)},removeDataAttribute:function(e,t){e.removeAttribute("data-bs-".concat(Kt(t)))},getDataAttributes:function(e){if(!e)return{};var t={};return Object.keys(e.dataset).filter((function(e){return e.startsWith("bs")})).forEach((function(r){var n=r.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=$t(e.dataset[r])})),t},getDataAttribute:function(e,t){return $t(e.getAttribute("data-bs-".concat(Kt(t))))},offset:function(e){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},position:function(e){return{top:e.offsetTop,left:e.offsetLeft}}},Qt={find:function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return(t=[]).concat.apply(t,l(Element.prototype.querySelectorAll.call(r,e)))},findOne:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.documentElement;return Element.prototype.querySelector.call(t,e)},children:function(e,t){var r;return(r=[]).concat.apply(r,l(e.children)).filter((function(e){return e.matches(t)}))},parents:function(e,t){for(var r=[],n=e.parentNode;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(t)&&r.push(n),n=n.parentNode;return r},prev:function(e,t){for(var r=e.previousElementSibling;r;){if(r.matches(t))return[r];r=r.previousElementSibling}return[]},next:function(e,t){for(var r=e.nextElementSibling;r;){if(r.matches(t))return[r];r=r.nextElementSibling}return[]},focusableChildren:function(e){var t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((function(e){return"".concat(e,':not([tabindex^="-"])')})).join(", ");return this.find(t,e).filter((function(e){return!ut(e)&&ct(e)}))}},er="carousel",tr=".".concat("bs.carousel"),rr=".data-api",nr={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},ir={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},or="next",ar="prev",sr="left",cr="right",ur=(s(Ge={},"ArrowLeft",cr),s(Ge,"ArrowRight",sr),Ge),lr="slide".concat(tr),fr="slid".concat(tr),pr="keydown".concat(tr),dr="mouseenter".concat(tr),hr="mouseleave".concat(tr),gr="touchstart".concat(tr),mr="touchmove".concat(tr),vr="touchend".concat(tr),yr="pointerdown".concat(tr),br="pointerup".concat(tr),wr="dragstart".concat(tr),_r="load".concat(tr).concat(rr),xr="click".concat(tr).concat(rr),Er="active",kr=".active.carousel-item",Ar=function(e){p(r,e);var t=Je(r);function r(e,n){var i;return g(this,r),(i=t.call(this,e))._items=null,i._interval=null,i._activeElement=null,i._isPaused=!1,i._isSliding=!1,i.touchTimeout=null,i.touchStartX=0,i.touchDeltaX=0,i._config=i._getConfig(n),i._indicatorsElement=Qt.findOne(".carousel-indicators",i._element),i._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,i._pointerEvent=Boolean(window.PointerEvent),i._addEventListeners(),i}return v(r,[{key:"next",value:function(){this._slide(or)}},{key:"nextWhenVisible",value:function(){!document.hidden&&ct(this._element)&&this.next()}},{key:"prev",value:function(){this._slide(ar)}},{key:"pause",value:function(e){e||(this._isPaused=!0),Qt.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(it(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}},{key:"cycle",value:function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}},{key:"to",value:function(e){var t=this;this._activeElement=Qt.findOne(kr,this._element);var r=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)Rt.one(this._element,fr,(function(){return t.to(e)}));else{if(r===e)return this.pause(),void this.cycle();var n=e>r?or:ar;this._slide(n,this._items[e])}}},{key:"_getConfig",value:function(e){return e=Ke(Ke(Ke({},nr),Jt.getDataAttributes(this._element)),"object"===(0,d.Z)(e)?e:{}),st(er,e,ir),e}},{key:"_handleSwipe",value:function(){var e=Math.abs(this.touchDeltaX);if(!(e<=40)){var t=e/this.touchDeltaX;this.touchDeltaX=0,t&&this._slide(t>0?cr:sr)}}},{key:"_addEventListeners",value:function(){var e=this;this._config.keyboard&&Rt.on(this._element,pr,(function(t){return e._keydown(t)})),"hover"===this._config.pause&&(Rt.on(this._element,dr,(function(t){return e.pause(t)})),Rt.on(this._element,hr,(function(t){return e.cycle(t)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}},{key:"_addTouchEventListeners",value:function(){var e=this,t=function(t){return e._pointerEvent&&("pen"===t.pointerType||"touch"===t.pointerType)},r=function(r){t(r)?e.touchStartX=r.clientX:e._pointerEvent||(e.touchStartX=r.touches[0].clientX)},n=function(r){t(r)&&(e.touchDeltaX=r.clientX-e.touchStartX),e._handleSwipe(),"hover"===e._config.pause&&(e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout((function(t){return e.cycle(t)}),500+e._config.interval))};Qt.find(".carousel-item img",this._element).forEach((function(e){Rt.on(e,wr,(function(e){return e.preventDefault()}))})),this._pointerEvent?(Rt.on(this._element,yr,(function(e){return r(e)})),Rt.on(this._element,br,(function(e){return n(e)})),this._element.classList.add("pointer-event")):(Rt.on(this._element,gr,(function(e){return r(e)})),Rt.on(this._element,mr,(function(t){return function(t){e.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-e.touchStartX}(t)})),Rt.on(this._element,vr,(function(e){return n(e)})))}},{key:"_keydown",value:function(e){if(!/input|textarea/i.test(e.target.tagName)){var t=ur[e.key];t&&(e.preventDefault(),this._slide(t))}}},{key:"_getItemIndex",value:function(e){return this._items=e&&e.parentNode?Qt.find(".carousel-item",e.parentNode):[],this._items.indexOf(e)}},{key:"_getItemByOrder",value:function(e,t){var r=e===or;return bt(this._items,t,r,this._config.wrap)}},{key:"_triggerSlideEvent",value:function(e,t){var r=this._getItemIndex(e),n=this._getItemIndex(Qt.findOne(kr,this._element));return Rt.trigger(this._element,lr,{relatedTarget:e,direction:t,from:n,to:r})}},{key:"_setActiveIndicatorElement",value:function(e){if(this._indicatorsElement){var t=Qt.findOne(".active",this._indicatorsElement);t.classList.remove(Er),t.removeAttribute("aria-current");for(var r=Qt.find("[data-bs-target]",this._indicatorsElement),n=0;n0&&void 0!==arguments[0]?arguments[0]:this._element;return e.classList.contains(Br)}},{key:"_getConfig",value:function(e){return(e=Ke(Ke(Ke({},Cr),Jt.getDataAttributes(this._element)),e)).toggle=Boolean(e.toggle),e.parent=at(e.parent),st(Dr,e,Sr),e}},{key:"_getDimension",value:function(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}},{key:"_initializeChildren",value:function(){var e=this;if(this._config.parent){var t=Qt.find(Fr,this._config.parent);Qt.find(Ur,this._config.parent).filter((function(e){return!t.includes(e)})).forEach((function(t){var r=rt(t);r&&e._addAriaAndCollapsedClass([t],e._isShown(r))}))}}},{key:"_addAriaAndCollapsedClass",value:function(e,t){e.length&&e.forEach((function(e){t?e.classList.remove(Hr):e.classList.add(Hr),e.setAttribute("aria-expanded",t)}))}}],[{key:"Default",get:function(){return Cr}},{key:"NAME",get:function(){return Dr}},{key:"jQueryInterface",value:function(e){return this.each((function(){var t={};"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1);var n=r.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'.concat(e,'"'));n[e]()}}))}}]),r}(Ft);Rt.on(document,Rr,Ur,(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();var t=tt(this);Qt.find(t).forEach((function(e){Vr.getOrCreateInstance(e,{toggle:!1}).toggle()}))})),mt(Vr);var Mr="dropdown",zr=".".concat("bs.dropdown"),Gr=".data-api",Wr="Escape",Zr="Space",Yr="ArrowUp",Xr="ArrowDown",$r=new RegExp("".concat(Yr,"|").concat(Xr,"|").concat(Wr)),Kr="hide".concat(zr),Jr="hidden".concat(zr),Qr="show".concat(zr),en="shown".concat(zr),tn="click".concat(zr).concat(Gr),rn="keydown".concat(zr).concat(Gr),nn="keyup".concat(zr).concat(Gr),on="show",an='[data-bs-toggle="dropdown"]',sn=".dropdown-menu",cn=gt()?"top-end":"top-start",un=gt()?"top-start":"top-end",ln=gt()?"bottom-end":"bottom-start",fn=gt()?"bottom-start":"bottom-end",pn=gt()?"left-start":"right-start",dn=gt()?"right-start":"left-start",hn={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},gn={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"},mn=function(e){p(r,e);var t=Je(r);function r(e,n){var i;return g(this,r),(i=t.call(this,e))._popper=null,i._config=i._getConfig(n),i._menu=i._getMenuElement(),i._inNavbar=i._detectNavbar(),i}return v(r,[{key:"toggle",value:function(){return this._isShown()?this.hide():this.show()}},{key:"show",value:function(){if(!ut(this._element)&&!this._isShown(this._menu)){var e={relatedTarget:this._element};if(!Rt.trigger(this._element,Qr,e).defaultPrevented){var t,n=r.getParentFromElement(this._element);if(this._inNavbar?Jt.setDataAttribute(this._menu,"popper","none"):this._createPopper(n),"ontouchstart"in document.documentElement&&!n.closest(".navbar-nav"))(t=[]).concat.apply(t,l(document.body.children)).forEach((function(e){return Rt.on(e,"mouseover",ft)}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(on),this._element.classList.add(on),Rt.trigger(this._element,en,e)}}}},{key:"hide",value:function(){if(!ut(this._element)&&this._isShown(this._menu)){var e={relatedTarget:this._element};this._completeHide(e)}}},{key:"dispose",value:function(){this._popper&&this._popper.destroy(),a(i(r.prototype),"dispose",this).call(this)}},{key:"update",value:function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}},{key:"_completeHide",value:function(e){if(!Rt.trigger(this._element,Kr,e).defaultPrevented){var t;if("ontouchstart"in document.documentElement)(t=[]).concat.apply(t,l(document.body.children)).forEach((function(e){return Rt.off(e,"mouseover",ft)}));this._popper&&this._popper.destroy(),this._menu.classList.remove(on),this._element.classList.remove(on),this._element.setAttribute("aria-expanded","false"),Jt.removeDataAttribute(this._menu,"popper"),Rt.trigger(this._element,Jr,e)}}},{key:"_getConfig",value:function(e){if(e=Ke(Ke(Ke({},this.constructor.Default),Jt.getDataAttributes(this._element)),e),st(Mr,e,this.constructor.DefaultType),"object"===(0,d.Z)(e.reference)&&!ot(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError("".concat(Mr.toUpperCase(),': Option "reference" provided type "object" without a required "getBoundingClientRect" method.'));return e}},{key:"_createPopper",value:function(e){if(void 0===n)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var t=this._element;"parent"===this._config.reference?t=e:ot(this._config.reference)?t=at(this._config.reference):"object"===(0,d.Z)(this._config.reference)&&(t=this._config.reference);var r=this._getPopperConfig(),i=r.modifiers.find((function(e){return"applyStyles"===e.name&&!1===e.enabled}));this._popper=Ze(t,this._menu,r),i&&Jt.setDataAttribute(this._menu,"popper","static")}},{key:"_isShown",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._element;return e.classList.contains(on)}},{key:"_getMenuElement",value:function(){return Qt.next(this._element,sn)[0]}},{key:"_getPlacement",value:function(){var e=this._element.parentNode;if(e.classList.contains("dropend"))return pn;if(e.classList.contains("dropstart"))return dn;var t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains("dropup")?t?un:cn:t?fn:ln}},{key:"_detectNavbar",value:function(){return null!==this._element.closest(".".concat("navbar"))}},{key:"_getOffset",value:function(){var e=this,t=this._config.offset;return"string"==typeof t?t.split(",").map((function(e){return Number.parseInt(e,10)})):"function"==typeof t?function(r){return t(r,e._element)}:t}},{key:"_getPopperConfig",value:function(){var e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(e.modifiers=[{name:"applyStyles",enabled:!1}]),Ke(Ke({},e),"function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig)}},{key:"_selectMenuItem",value:function(e){var t=e.key,r=e.target,n=Qt.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(ct);n.length&&bt(n,r,t===Xr,!n.includes(r)).focus()}}],[{key:"Default",get:function(){return hn}},{key:"DefaultType",get:function(){return gn}},{key:"NAME",get:function(){return Mr}},{key:"jQueryInterface",value:function(e){return this.each((function(){var t=r.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'.concat(e,'"'));t[e]()}}))}},{key:"clearMenus",value:function(e){if(!e||2!==e.button&&("keyup"!==e.type||"Tab"===e.key))for(var t=Qt.find(an),n=0,i=t.length;ne.clientWidth+i)){n._saveInitialAttribute(e,t);var o=window.getComputedStyle(e)[t];e.style[t]="".concat(r(Number.parseFloat(o)),"px")}}))}},{key:"reset",value:function(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(vn,"paddingRight"),this._resetElementAttributes(yn,"marginRight")}},{key:"_saveInitialAttribute",value:function(e,t){var r=e.style[t];r&&Jt.setDataAttribute(e,t,r)}},{key:"_resetElementAttributes",value:function(e,t){this._applyManipulationCallback(e,(function(e){var r=Jt.getDataAttribute(e,t);void 0===r?e.style.removeProperty(t):(Jt.removeDataAttribute(e,t),e.style[t]=r)}))}},{key:"_applyManipulationCallback",value:function(e,t){ot(e)?t(e):Qt.find(e,this._element).forEach(t)}},{key:"isOverflowing",value:function(){return this.getWidth()>0}}]),e}(),wn={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},_n={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},xn="backdrop",En="show",kn="mousedown.bs.".concat(xn),An=function(){function e(t){g(this,e),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}return v(e,[{key:"show",value:function(e){this._config.isVisible?(this._append(),this._config.isAnimated&&pt(this._getElement()),this._getElement().classList.add(En),this._emulateAnimation((function(){vt(e)}))):vt(e)}},{key:"hide",value:function(e){var t=this;this._config.isVisible?(this._getElement().classList.remove(En),this._emulateAnimation((function(){t.dispose(),vt(e)}))):vt(e)}},{key:"_getElement",value:function(){if(!this._element){var e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add("fade"),this._element=e}return this._element}},{key:"_getConfig",value:function(e){return(e=Ke(Ke({},wn),"object"===(0,d.Z)(e)?e:{})).rootElement=at(e.rootElement),st(xn,e,_n),e}},{key:"_append",value:function(){var e=this;this._isAppended||(this._config.rootElement.append(this._getElement()),Rt.on(this._getElement(),kn,(function(){vt(e._config.clickCallback)})),this._isAppended=!0)}},{key:"dispose",value:function(){this._isAppended&&(Rt.off(this._element,kn),this._element.remove(),this._isAppended=!1)}},{key:"_emulateAnimation",value:function(e){yt(e,this._getElement(),this._config.isAnimated)}}]),e}(),Dn={trapElement:null,autofocus:!0},Tn={trapElement:"element",autofocus:"boolean"},qn=".".concat("bs.focustrap"),Cn="focusin".concat(qn),Sn="keydown.tab".concat(qn),Ln="backward",Nn=function(){function e(t){g(this,e),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}return v(e,[{key:"activate",value:function(){var e=this,t=this._config,r=t.trapElement,n=t.autofocus;this._isActive||(n&&r.focus(),Rt.off(document,qn),Rt.on(document,Cn,(function(t){return e._handleFocusin(t)})),Rt.on(document,Sn,(function(t){return e._handleKeydown(t)})),this._isActive=!0)}},{key:"deactivate",value:function(){this._isActive&&(this._isActive=!1,Rt.off(document,qn))}},{key:"_handleFocusin",value:function(e){var t=e.target,r=this._config.trapElement;if(t!==document&&t!==r&&!r.contains(t)){var n=Qt.focusableChildren(r);0===n.length?r.focus():this._lastTabNavDirection===Ln?n[n.length-1].focus():n[0].focus()}}},{key:"_handleKeydown",value:function(e){"Tab"===e.key&&(this._lastTabNavDirection=e.shiftKey?Ln:"forward")}},{key:"_getConfig",value:function(e){return e=Ke(Ke({},Dn),"object"===(0,d.Z)(e)?e:{}),st("focustrap",e,Tn),e}}]),e}(),On="modal",jn=".".concat("bs.modal"),Rn="Escape",Bn={backdrop:!0,keyboard:!0,focus:!0},In={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Pn="hide".concat(jn),Hn="hidePrevented".concat(jn),Fn="hidden".concat(jn),Un="show".concat(jn),Vn="shown".concat(jn),Mn="resize".concat(jn),zn="click.dismiss".concat(jn),Gn="keydown.dismiss".concat(jn),Wn="mouseup.dismiss".concat(jn),Zn="mousedown.dismiss".concat(jn),Yn="click".concat(jn).concat(".data-api"),Xn="modal-open",$n="show",Kn="modal-static",Jn=function(e){p(r,e);var t=Je(r);function r(e,n){var i;return g(this,r),(i=t.call(this,e))._config=i._getConfig(n),i._dialog=Qt.findOne(".modal-dialog",i._element),i._backdrop=i._initializeBackDrop(),i._focustrap=i._initializeFocusTrap(),i._isShown=!1,i._ignoreBackdropClick=!1,i._isTransitioning=!1,i._scrollBar=new bn,i}return v(r,[{key:"toggle",value:function(e){return this._isShown?this.hide():this.show(e)}},{key:"show",value:function(e){var t=this;this._isShown||this._isTransitioning||(Rt.trigger(this._element,Un,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Xn),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),Rt.on(this._dialog,Zn,(function(){Rt.one(t._element,Wn,(function(e){e.target===t._element&&(t._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return t._showElement(e)}))))}},{key:"hide",value:function(){var e=this;if(this._isShown&&!this._isTransitioning&&!Rt.trigger(this._element,Pn).defaultPrevented){this._isShown=!1;var t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove($n),Rt.off(this._element,zn),Rt.off(this._dialog,Zn),this._queueCallback((function(){return e._hideModal()}),this._element,t)}}},{key:"dispose",value:function(){[window,this._dialog].forEach((function(e){return Rt.off(e,jn)})),this._backdrop.dispose(),this._focustrap.deactivate(),a(i(r.prototype),"dispose",this).call(this)}},{key:"handleUpdate",value:function(){this._adjustDialog()}},{key:"_initializeBackDrop",value:function(){return new An({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}},{key:"_initializeFocusTrap",value:function(){return new Nn({trapElement:this._element})}},{key:"_getConfig",value:function(e){return e=Ke(Ke(Ke({},Bn),Jt.getDataAttributes(this._element)),"object"===(0,d.Z)(e)?e:{}),st(On,e,In),e}},{key:"_showElement",value:function(e){var t=this,r=this._isAnimated(),n=Qt.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,n&&(n.scrollTop=0),r&&pt(this._element),this._element.classList.add($n);this._queueCallback((function(){t._config.focus&&t._focustrap.activate(),t._isTransitioning=!1,Rt.trigger(t._element,Vn,{relatedTarget:e})}),this._dialog,r)}},{key:"_setEscapeEvent",value:function(){var e=this;this._isShown?Rt.on(this._element,Gn,(function(t){e._config.keyboard&&t.key===Rn?(t.preventDefault(),e.hide()):e._config.keyboard||t.key!==Rn||e._triggerBackdropTransition()})):Rt.off(this._element,Gn)}},{key:"_setResizeEvent",value:function(){var e=this;this._isShown?Rt.on(window,Mn,(function(){return e._adjustDialog()})):Rt.off(window,Mn)}},{key:"_hideModal",value:function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((function(){document.body.classList.remove(Xn),e._resetAdjustments(),e._scrollBar.reset(),Rt.trigger(e._element,Fn)}))}},{key:"_showBackdrop",value:function(e){var t=this;Rt.on(this._element,zn,(function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&(!0===t._config.backdrop?t.hide():"static"===t._config.backdrop&&t._triggerBackdropTransition())})),this._backdrop.show(e)}},{key:"_isAnimated",value:function(){return this._element.classList.contains("fade")}},{key:"_triggerBackdropTransition",value:function(){var e=this;if(!Rt.trigger(this._element,Hn).defaultPrevented){var t=this._element,r=t.classList,n=t.scrollHeight,i=t.style,o=n>document.documentElement.clientHeight;!o&&"hidden"===i.overflowY||r.contains(Kn)||(o||(i.overflowY="hidden"),r.add(Kn),this._queueCallback((function(){r.remove(Kn),o||e._queueCallback((function(){i.overflowY=""}),e._dialog)}),this._dialog),this._element.focus())}}},{key:"_adjustDialog",value:function(){var e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),r=t>0;(!r&&e&&!gt()||r&&!e&>())&&(this._element.style.paddingLeft="".concat(t,"px")),(r&&!e&&!gt()||!r&&e&>())&&(this._element.style.paddingRight="".concat(t,"px"))}},{key:"_resetAdjustments",value:function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}}],[{key:"Default",get:function(){return Bn}},{key:"NAME",get:function(){return On}},{key:"jQueryInterface",value:function(e,t){return this.each((function(){var n=r.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'.concat(e,'"'));n[e](t)}}))}}]),r}(Ft);Rt.on(document,Yn,'[data-bs-toggle="modal"]',(function(e){var t=this,r=rt(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),Rt.one(r,Un,(function(e){e.defaultPrevented||Rt.one(r,Fn,(function(){ct(t)&&t.focus()}))}));var n=Qt.findOne(".modal.show");n&&Jn.getInstance(n).hide(),Jn.getOrCreateInstance(r).toggle(this)})),Ut(Jn),mt(Jn);var Qn="offcanvas",ei=".".concat("bs.offcanvas"),ti=".data-api",ri="load".concat(ei).concat(ti),ni={backdrop:!0,keyboard:!0,scroll:!1},ii={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},oi="show",ai=".offcanvas.show",si="show".concat(ei),ci="shown".concat(ei),ui="hide".concat(ei),li="hidden".concat(ei),fi="click".concat(ei).concat(ti),pi="keydown.dismiss".concat(ei),di=function(e){p(r,e);var t=Je(r);function r(e,n){var i;return g(this,r),(i=t.call(this,e))._config=i._getConfig(n),i._isShown=!1,i._backdrop=i._initializeBackDrop(),i._focustrap=i._initializeFocusTrap(),i._addEventListeners(),i}return v(r,[{key:"toggle",value:function(e){return this._isShown?this.hide():this.show(e)}},{key:"show",value:function(e){var t=this;if(!this._isShown&&!Rt.trigger(this._element,si,{relatedTarget:e}).defaultPrevented){this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new bn).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(oi);this._queueCallback((function(){t._config.scroll||t._focustrap.activate(),Rt.trigger(t._element,ci,{relatedTarget:e})}),this._element,!0)}}},{key:"hide",value:function(){var e=this;if(this._isShown&&!Rt.trigger(this._element,ui).defaultPrevented){this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove(oi),this._backdrop.hide();this._queueCallback((function(){e._element.setAttribute("aria-hidden",!0),e._element.removeAttribute("aria-modal"),e._element.removeAttribute("role"),e._element.style.visibility="hidden",e._config.scroll||(new bn).reset(),Rt.trigger(e._element,li)}),this._element,!0)}}},{key:"dispose",value:function(){this._backdrop.dispose(),this._focustrap.deactivate(),a(i(r.prototype),"dispose",this).call(this)}},{key:"_getConfig",value:function(e){return e=Ke(Ke(Ke({},ni),Jt.getDataAttributes(this._element)),"object"===(0,d.Z)(e)?e:{}),st(Qn,e,ii),e}},{key:"_initializeBackDrop",value:function(){var e=this;return new An({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:function(){return e.hide()}})}},{key:"_initializeFocusTrap",value:function(){return new Nn({trapElement:this._element})}},{key:"_addEventListeners",value:function(){var e=this;Rt.on(this._element,pi,(function(t){e._config.keyboard&&"Escape"===t.key&&e.hide()}))}}],[{key:"NAME",get:function(){return Qn}},{key:"Default",get:function(){return ni}},{key:"jQueryInterface",value:function(e){return this.each((function(){var t=r.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError('No method named "'.concat(e,'"'));t[e](this)}}))}}]),r}(Ft);Rt.on(document,fi,'[data-bs-toggle="offcanvas"]',(function(e){var t=this,r=rt(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),!ut(this)){Rt.one(r,li,(function(){ct(t)&&t.focus()}));var n=Qt.findOne(ai);n&&n!==r&&di.getInstance(n).hide(),di.getOrCreateInstance(r).toggle(this)}})),Rt.on(window,ri,(function(){return Qt.find(ai).forEach((function(e){return di.getOrCreateInstance(e).show()}))})),Ut(di),mt(di);var hi=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),gi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,mi=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,vi={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function yi(e,t,r){var n;if(!e.length)return e;if(r&&"function"==typeof r)return r(e);for(var i=(new window.DOMParser).parseFromString(e,"text/html"),o=(n=[]).concat.apply(n,l(i.body.querySelectorAll("*"))),a=function(e,r){var n,i=o[e],a=i.nodeName.toLowerCase();if(!Object.keys(t).includes(a))return i.remove(),"continue";var s=(n=[]).concat.apply(n,l(i.attributes)),c=[].concat(t["*"]||[],t[a]||[]);s.forEach((function(e){(function(e,t){var r=e.nodeName.toLowerCase();if(t.includes(r))return!hi.has(r)||Boolean(gi.test(e.nodeValue)||mi.test(e.nodeValue));for(var n=t.filter((function(e){return e instanceof RegExp})),i=0,o=n.length;i
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:vi,popperConfig:null},Ai={HIDE:"hide".concat(wi),HIDDEN:"hidden".concat(wi),SHOW:"show".concat(wi),SHOWN:"shown".concat(wi),INSERTED:"inserted".concat(wi),CLICK:"click".concat(wi),FOCUSIN:"focusin".concat(wi),FOCUSOUT:"focusout".concat(wi),MOUSEENTER:"mouseenter".concat(wi),MOUSELEAVE:"mouseleave".concat(wi)},Di="fade",Ti="show",qi="show",Ci="out",Si=".tooltip-inner",Li=".".concat("modal"),Ni="hide.bs.modal",Oi="hover",ji="focus",Ri=function(e){p(r,e);var t=Je(r);function r(e,i){var o;if(g(this,r),void 0===n)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");return(o=t.call(this,e))._isEnabled=!0,o._timeout=0,o._hoverState="",o._activeTrigger={},o._popper=null,o._config=o._getConfig(i),o.tip=null,o._setListeners(),o}return v(r,[{key:"enable",value:function(){this._isEnabled=!0}},{key:"disable",value:function(){this._isEnabled=!1}},{key:"toggleEnabled",value:function(){this._isEnabled=!this._isEnabled}},{key:"toggle",value:function(e){if(this._isEnabled)if(e){var t=this._initializeOnDelegatedTarget(e);t._activeTrigger.click=!t._activeTrigger.click,t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)}else{if(this.getTipElement().classList.contains(Ti))return void this._leave(null,this);this._enter(null,this)}}},{key:"dispose",value:function(){clearTimeout(this._timeout),Rt.off(this._element.closest(Li),Ni,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),a(i(r.prototype),"dispose",this).call(this)}},{key:"show",value:function(){var e=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var t=Rt.trigger(this._element,this.constructor.Event.SHOW),r=lt(this._element),n=null===r?this._element.ownerDocument.documentElement.contains(this._element):r.contains(this._element);if(!t.defaultPrevented&&n){"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(Si).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);var i=this.getTipElement(),o=function(e){do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e}(this.constructor.NAME);i.setAttribute("id",o),this._element.setAttribute("aria-describedby",o),this._config.animation&&i.classList.add(Di);var a="function"==typeof this._config.placement?this._config.placement.call(this,i,this._element):this._config.placement,s=this._getAttachment(a);this._addAttachmentClass(s);var c=this._config.container;It(i,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(c.append(i),Rt.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=Ze(this._element,i,this._getPopperConfig(s)),i.classList.add(Ti);var u,f,p=this._resolvePossibleFunction(this._config.customClass);if(p)(u=i.classList).add.apply(u,l(p.split(" ")));if("ontouchstart"in document.documentElement)(f=[]).concat.apply(f,l(document.body.children)).forEach((function(e){Rt.on(e,"mouseover",ft)}));var d=this.tip.classList.contains(Di);this._queueCallback((function(){var t=e._hoverState;e._hoverState=null,Rt.trigger(e._element,e.constructor.Event.SHOWN),t===Ci&&e._leave(null,e)}),this.tip,d)}}}},{key:"hide",value:function(){var e=this;if(this._popper){var t=this.getTipElement();if(!Rt.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){var r;if(t.classList.remove(Ti),"ontouchstart"in document.documentElement)(r=[]).concat.apply(r,l(document.body.children)).forEach((function(e){return Rt.off(e,"mouseover",ft)}));this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;var n=this.tip.classList.contains(Di);this._queueCallback((function(){e._isWithActiveTrigger()||(e._hoverState!==qi&&t.remove(),e._cleanTipClass(),e._element.removeAttribute("aria-describedby"),Rt.trigger(e._element,e.constructor.Event.HIDDEN),e._disposePopper())}),this.tip,n),this._hoverState=""}}}},{key:"update",value:function(){null!==this._popper&&this._popper.update()}},{key:"isWithContent",value:function(){return Boolean(this.getTitle())}},{key:"getTipElement",value:function(){if(this.tip)return this.tip;var e=document.createElement("div");e.innerHTML=this._config.template;var t=e.children[0];return this.setContent(t),t.classList.remove(Di,Ti),this.tip=t,this.tip}},{key:"setContent",value:function(e){this._sanitizeAndSetContent(e,this.getTitle(),Si)}},{key:"_sanitizeAndSetContent",value:function(e,t,r){var n=Qt.findOne(r,e);t||!n?this.setElementContent(n,t):n.remove()}},{key:"setElementContent",value:function(e,t){if(null!==e)return ot(t)?(t=at(t),void(this._config.html?t.parentNode!==e&&(e.innerHTML="",e.append(t)):e.textContent=t.textContent)):void(this._config.html?(this._config.sanitize&&(t=yi(t,this._config.allowList,this._config.sanitizeFn)),e.innerHTML=t):e.textContent=t)}},{key:"getTitle",value:function(){var e=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(e)}},{key:"updateAttachment",value:function(e){return"right"===e?"end":"left"===e?"start":e}},{key:"_initializeOnDelegatedTarget",value:function(e,t){return t||this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}},{key:"_getOffset",value:function(){var e=this,t=this._config.offset;return"string"==typeof t?t.split(",").map((function(e){return Number.parseInt(e,10)})):"function"==typeof t?function(r){return t(r,e._element)}:t}},{key:"_resolvePossibleFunction",value:function(e){return"function"==typeof e?e.call(this._element):e}},{key:"_getPopperConfig",value:function(e){var t=this,r={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:".".concat(this.constructor.NAME,"-arrow")}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:function(e){return t._handlePopperPlacementChange(e)}}],onFirstUpdate:function(e){e.options.placement!==e.placement&&t._handlePopperPlacementChange(e)}};return Ke(Ke({},r),"function"==typeof this._config.popperConfig?this._config.popperConfig(r):this._config.popperConfig)}},{key:"_addAttachmentClass",value:function(e){this.getTipElement().classList.add("".concat(this._getBasicClassPrefix(),"-").concat(this.updateAttachment(e)))}},{key:"_getAttachment",value:function(e){return Ei[e.toUpperCase()]}},{key:"_setListeners",value:function(){var e=this;this._config.trigger.split(" ").forEach((function(t){if("click"===t)Rt.on(e._element,e.constructor.Event.CLICK,e._config.selector,(function(t){return e.toggle(t)}));else if("manual"!==t){var r=t===Oi?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,n=t===Oi?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;Rt.on(e._element,r,e._config.selector,(function(t){return e._enter(t)})),Rt.on(e._element,n,e._config.selector,(function(t){return e._leave(t)}))}})),this._hideModalHandler=function(){e._element&&e.hide()},Rt.on(this._element.closest(Li),Ni,this._hideModalHandler),this._config.selector?this._config=Ke(Ke({},this._config),{},{trigger:"manual",selector:""}):this._fixTitle()}},{key:"_fixTitle",value:function(){var e=this._element.getAttribute("title"),t=(0,d.Z)(this._element.getAttribute("data-bs-original-title"));(e||"string"!==t)&&(this._element.setAttribute("data-bs-original-title",e||""),!e||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",e),this._element.setAttribute("title",""))}},{key:"_enter",value:function(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger["focusin"===e.type?ji:Oi]=!0),t.getTipElement().classList.contains(Ti)||t._hoverState===qi?t._hoverState=qi:(clearTimeout(t._timeout),t._hoverState=qi,t._config.delay&&t._config.delay.show?t._timeout=setTimeout((function(){t._hoverState===qi&&t.show()}),t._config.delay.show):t.show())}},{key:"_leave",value:function(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger["focusout"===e.type?ji:Oi]=t._element.contains(e.relatedTarget)),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=Ci,t._config.delay&&t._config.delay.hide?t._timeout=setTimeout((function(){t._hoverState===Ci&&t.hide()}),t._config.delay.hide):t.hide())}},{key:"_isWithActiveTrigger",value:function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1}},{key:"_getConfig",value:function(e){var t=Jt.getDataAttributes(this._element);return Object.keys(t).forEach((function(e){_i.has(e)&&delete t[e]})),(e=Ke(Ke(Ke({},this.constructor.Default),t),"object"===(0,d.Z)(e)&&e?e:{})).container=!1===e.container?document.body:at(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),st(bi,e,this.constructor.DefaultType),e.sanitize&&(e.template=yi(e.template,e.allowList,e.sanitizeFn)),e}},{key:"_getDelegateConfig",value:function(){var e={};for(var t in this._config)this.constructor.Default[t]!==this._config[t]&&(e[t]=this._config[t]);return e}},{key:"_cleanTipClass",value:function(){var e=this.getTipElement(),t=new RegExp("(^|\\s)".concat(this._getBasicClassPrefix(),"\\S+"),"g"),r=e.getAttribute("class").match(t);null!==r&&r.length>0&&r.map((function(e){return e.trim()})).forEach((function(t){return e.classList.remove(t)}))}},{key:"_getBasicClassPrefix",value:function(){return"bs-tooltip"}},{key:"_handlePopperPlacementChange",value:function(e){var t=e.state;t&&(this.tip=t.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement)))}},{key:"_disposePopper",value:function(){this._popper&&(this._popper.destroy(),this._popper=null)}}],[{key:"Default",get:function(){return ki}},{key:"NAME",get:function(){return bi}},{key:"Event",get:function(){return Ai}},{key:"DefaultType",get:function(){return xi}},{key:"jQueryInterface",value:function(e){return this.each((function(){var t=r.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'.concat(e,'"'));t[e]()}}))}}]),r}(Ft);mt(Ri);var Bi=".".concat("bs.popover"),Ii=Ke(Ke({},Ri.Default),{},{placement:"right",offset:[0,8],trigger:"click",content:"",template:''}),Pi=Ke(Ke({},Ri.DefaultType),{},{content:"(string|element|function)"}),Hi={HIDE:"hide".concat(Bi),HIDDEN:"hidden".concat(Bi),SHOW:"show".concat(Bi),SHOWN:"shown".concat(Bi),INSERTED:"inserted".concat(Bi),CLICK:"click".concat(Bi),FOCUSIN:"focusin".concat(Bi),FOCUSOUT:"focusout".concat(Bi),MOUSEENTER:"mouseenter".concat(Bi),MOUSELEAVE:"mouseleave".concat(Bi)},Fi=function(e){p(r,e);var t=Je(r);function r(){return g(this,r),t.apply(this,arguments)}return v(r,[{key:"isWithContent",value:function(){return this.getTitle()||this._getContent()}},{key:"setContent",value:function(e){this._sanitizeAndSetContent(e,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(e,this._getContent(),".popover-body")}},{key:"_getContent",value:function(){return this._resolvePossibleFunction(this._config.content)}},{key:"_getBasicClassPrefix",value:function(){return"bs-popover"}}],[{key:"Default",get:function(){return Ii}},{key:"NAME",get:function(){return"popover"}},{key:"Event",get:function(){return Hi}},{key:"DefaultType",get:function(){return Pi}},{key:"jQueryInterface",value:function(e){return this.each((function(){var t=r.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'.concat(e,'"'));t[e]()}}))}}]),r}(Ri);mt(Fi);var Ui="scrollspy",Vi=".".concat("bs.scrollspy"),Mi={offset:10,method:"auto",target:""},zi={offset:"number",method:"string",target:"(string|element)"},Gi="activate".concat(Vi),Wi="scroll".concat(Vi),Zi="load".concat(Vi).concat(".data-api"),Yi="dropdown-item",Xi="active",$i=".nav-link",Ki=".list-group-item",Ji="".concat($i,", ").concat(Ki,", .").concat(Yi),Qi="position",eo=function(e){p(r,e);var t=Je(r);function r(e,n){var i;return g(this,r),(i=t.call(this,e))._scrollElement="BODY"===i._element.tagName?window:i._element,i._config=i._getConfig(n),i._offsets=[],i._targets=[],i._activeTarget=null,i._scrollHeight=0,Rt.on(i._scrollElement,Wi,(function(){return i._process()})),i.refresh(),i._process(),i}return v(r,[{key:"refresh",value:function(){var e=this,t=this._scrollElement===this._scrollElement.window?"offset":Qi,r="auto"===this._config.method?t:this._config.method,n=r===Qi?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),Qt.find(Ji,this._config.target).map((function(e){var t=tt(e),i=t?Qt.findOne(t):null;if(i){var o=i.getBoundingClientRect();if(o.width||o.height)return[Jt[r](i).top+n,t]}return null})).filter((function(e){return e})).sort((function(e,t){return e[0]-t[0]})).forEach((function(t){e._offsets.push(t[0]),e._targets.push(t[1])}))}},{key:"dispose",value:function(){Rt.off(this._scrollElement,Vi),a(i(r.prototype),"dispose",this).call(this)}},{key:"_getConfig",value:function(e){return(e=Ke(Ke(Ke({},Mi),Jt.getDataAttributes(this._element)),"object"===(0,d.Z)(e)&&e?e:{})).target=at(e.target)||document.documentElement,st(Ui,e,zi),e}},{key:"_getScrollTop",value:function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}},{key:"_getScrollHeight",value:function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}},{key:"_getOffsetHeight",value:function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}},{key:"_process",value:function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),r=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=r){var n=this._targets[this._targets.length-1];this._activeTarget!==n&&this._activate(n)}else{if(this._activeTarget&&e0)return this._activeTarget=null,void this._clear();for(var i=this._offsets.length;i--;){this._activeTarget!==this._targets[i]&&e>=this._offsets[i]&&(void 0===this._offsets[i+1]||e .dropdown-menu .active",t.parentNode);n&&n.classList.remove(so),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}e.classList.add(so),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),pt(e),e.classList.contains(co)&&e.classList.add(uo);var i=e.parentNode;if(i&&"LI"===i.nodeName&&(i=i.parentNode),i&&i.classList.contains("dropdown-menu")){var o=e.closest(".dropdown");o&&Qt.find(".dropdown-toggle",o).forEach((function(e){return e.classList.add(so)})),e.setAttribute("aria-expanded",!0)}r&&r()}}],[{key:"NAME",get:function(){return"tab"}},{key:"jQueryInterface",value:function(e){return this.each((function(){var t=r.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'.concat(e,'"'));t[e]()}}))}}]),r}(Ft);Rt.on(document,ao,'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(e){(["A","AREA"].includes(this.tagName)&&e.preventDefault(),ut(this))||po.getOrCreateInstance(this).show()})),mt(po);var ho="toast",go=".".concat("bs.toast"),mo="mouseover".concat(go),vo="mouseout".concat(go),yo="focusin".concat(go),bo="focusout".concat(go),wo="hide".concat(go),_o="hidden".concat(go),xo="show".concat(go),Eo="shown".concat(go),ko="hide",Ao="show",Do="showing",To={animation:"boolean",autohide:"boolean",delay:"number"},qo={animation:!0,autohide:!0,delay:5e3},Co=function(e){p(r,e);var t=Je(r);function r(e,n){var i;return g(this,r),(i=t.call(this,e))._config=i._getConfig(n),i._timeout=null,i._hasMouseInteraction=!1,i._hasKeyboardInteraction=!1,i._setListeners(),i}return v(r,[{key:"show",value:function(){var e=this;if(!Rt.trigger(this._element,xo).defaultPrevented){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");this._element.classList.remove(ko),pt(this._element),this._element.classList.add(Ao),this._element.classList.add(Do),this._queueCallback((function(){e._element.classList.remove(Do),Rt.trigger(e._element,Eo),e._maybeScheduleHide()}),this._element,this._config.animation)}}},{key:"hide",value:function(){var e=this;if(this._element.classList.contains(Ao)&&!Rt.trigger(this._element,wo).defaultPrevented){this._element.classList.add(Do),this._queueCallback((function(){e._element.classList.add(ko),e._element.classList.remove(Do),e._element.classList.remove(Ao),Rt.trigger(e._element,_o)}),this._element,this._config.animation)}}},{key:"dispose",value:function(){this._clearTimeout(),this._element.classList.contains(Ao)&&this._element.classList.remove(Ao),a(i(r.prototype),"dispose",this).call(this)}},{key:"_getConfig",value:function(e){return e=Ke(Ke(Ke({},qo),Jt.getDataAttributes(this._element)),"object"===(0,d.Z)(e)&&e?e:{}),st(ho,e,this.constructor.DefaultType),e}},{key:"_maybeScheduleHide",value:function(){var e=this;this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((function(){e.hide()}),this._config.delay)))}},{key:"_onInteraction",value:function(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)this._clearTimeout();else{var r=e.relatedTarget;this._element===r||this._element.contains(r)||this._maybeScheduleHide()}}},{key:"_setListeners",value:function(){var e=this;Rt.on(this._element,mo,(function(t){return e._onInteraction(t,!0)})),Rt.on(this._element,vo,(function(t){return e._onInteraction(t,!1)})),Rt.on(this._element,yo,(function(t){return e._onInteraction(t,!0)})),Rt.on(this._element,bo,(function(t){return e._onInteraction(t,!1)}))}},{key:"_clearTimeout",value:function(){clearTimeout(this._timeout),this._timeout=null}}],[{key:"DefaultType",get:function(){return To}},{key:"Default",get:function(){return qo}},{key:"NAME",get:function(){return ho}},{key:"jQueryInterface",value:function(e){return this.each((function(){var t=r.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'.concat(e,'"'));t[e](this)}}))}}]),r}(Ft);Ut(Co),mt(Co)},541:(e,t,r)=>{"use strict";var n,i,o=r(534);e=r.hmd(e),n=void 0,i=function(){function e(e){return"function"==typeof e}var t=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},n=0,i=void 0,a=void 0,s=function(e,t){h[n]=e,h[n+1]=t,2===(n+=2)&&(a?a(g):w())},c="undefined"!=typeof window?window:void 0,u=c||{},l=u.MutationObserver||u.WebKitMutationObserver,f="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),p="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function d(){var e=setTimeout;return function(){return e(g,1)}}var h=new Array(1e3);function g(){for(var e=0;e{"use strict";var n=r(534);e=r.hmd(e),function(t){var i="object"==("undefined"==typeof exports?"undefined":(0,n.Z)(exports))&&exports,o="object"==(0,n.Z)(e)&&e&&e.exports==i&&e,a="object"==(void 0===r.g?"undefined":(0,n.Z)(r.g))&&r.g;a.global!==a&&a.window!==a||(t=a);var s=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[\x01-\x7F]/g,u=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,l=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,f={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon",ˆ:"circ",ˇ:"caron","°":"deg","©":"copy","®":"reg","℗":"copysr",℘:"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78",𝒶:"ascr",𝕒:"aopf",𝔞:"afr",𝔸:"Aopf",𝔄:"Afr",𝒜:"Ascr",ª:"ordf",á:"aacute",Á:"Aacute",à:"agrave",À:"Agrave",ă:"abreve",Ă:"Abreve",â:"acirc",Â:"Acirc",å:"aring",Å:"angst",ä:"auml",Ä:"Auml",ã:"atilde",Ã:"Atilde",ą:"aogon",Ą:"Aogon",ā:"amacr",Ā:"Amacr",æ:"aelig",Æ:"AElig",𝒷:"bscr",𝕓:"bopf",𝔟:"bfr",𝔹:"Bopf",ℬ:"Bscr",𝔅:"Bfr",𝔠:"cfr",𝒸:"cscr",𝕔:"copf",ℭ:"Cfr",𝒞:"Cscr",ℂ:"Copf",ć:"cacute",Ć:"Cacute",ĉ:"ccirc",Ĉ:"Ccirc",č:"ccaron",Č:"Ccaron",ċ:"cdot",Ċ:"Cdot",ç:"ccedil",Ç:"Ccedil","℅":"incare",𝔡:"dfr",ⅆ:"dd",𝕕:"dopf",𝒹:"dscr",𝒟:"Dscr",𝔇:"Dfr",ⅅ:"DD",𝔻:"Dopf",ď:"dcaron",Ď:"Dcaron",đ:"dstrok",Đ:"Dstrok",ð:"eth",Ð:"ETH",ⅇ:"ee",ℯ:"escr",𝔢:"efr",𝕖:"eopf",ℰ:"Escr",𝔈:"Efr",𝔼:"Eopf",é:"eacute",É:"Eacute",è:"egrave",È:"Egrave",ê:"ecirc",Ê:"Ecirc",ě:"ecaron",Ě:"Ecaron",ë:"euml",Ë:"Euml",ė:"edot",Ė:"Edot",ę:"eogon",Ę:"Eogon",ē:"emacr",Ē:"Emacr",𝔣:"ffr",𝕗:"fopf",𝒻:"fscr",𝔉:"Ffr",𝔽:"Fopf",ℱ:"Fscr",ff:"fflig",ffi:"ffilig",ffl:"ffllig",fi:"filig",fj:"fjlig",fl:"fllig",ƒ:"fnof",ℊ:"gscr",𝕘:"gopf",𝔤:"gfr",𝒢:"Gscr",𝔾:"Gopf",𝔊:"Gfr",ǵ:"gacute",ğ:"gbreve",Ğ:"Gbreve",ĝ:"gcirc",Ĝ:"Gcirc",ġ:"gdot",Ġ:"Gdot",Ģ:"Gcedil",𝔥:"hfr",ℎ:"planckh",𝒽:"hscr",𝕙:"hopf",ℋ:"Hscr",ℌ:"Hfr",ℍ:"Hopf",ĥ:"hcirc",Ĥ:"Hcirc",ℏ:"hbar",ħ:"hstrok",Ħ:"Hstrok",𝕚:"iopf",𝔦:"ifr",𝒾:"iscr",ⅈ:"ii",𝕀:"Iopf",ℐ:"Iscr",ℑ:"Im",í:"iacute",Í:"Iacute",ì:"igrave",Ì:"Igrave",î:"icirc",Î:"Icirc",ï:"iuml",Ï:"Iuml",ĩ:"itilde",Ĩ:"Itilde",İ:"Idot",į:"iogon",Į:"Iogon",ī:"imacr",Ī:"Imacr",ij:"ijlig",IJ:"IJlig",ı:"imath",𝒿:"jscr",𝕛:"jopf",𝔧:"jfr",𝒥:"Jscr",𝔍:"Jfr",𝕁:"Jopf",ĵ:"jcirc",Ĵ:"Jcirc",ȷ:"jmath",𝕜:"kopf",𝓀:"kscr",𝔨:"kfr",𝒦:"Kscr",𝕂:"Kopf",𝔎:"Kfr",ķ:"kcedil",Ķ:"Kcedil",𝔩:"lfr",𝓁:"lscr",ℓ:"ell",𝕝:"lopf",ℒ:"Lscr",𝔏:"Lfr",𝕃:"Lopf",ĺ:"lacute",Ĺ:"Lacute",ľ:"lcaron",Ľ:"Lcaron",ļ:"lcedil",Ļ:"Lcedil",ł:"lstrok",Ł:"Lstrok",ŀ:"lmidot",Ŀ:"Lmidot",𝔪:"mfr",𝕞:"mopf",𝓂:"mscr",𝔐:"Mfr",𝕄:"Mopf",ℳ:"Mscr",𝔫:"nfr",𝕟:"nopf",𝓃:"nscr",ℕ:"Nopf",𝒩:"Nscr",𝔑:"Nfr",ń:"nacute",Ń:"Nacute",ň:"ncaron",Ň:"Ncaron",ñ:"ntilde",Ñ:"Ntilde",ņ:"ncedil",Ņ:"Ncedil","№":"numero",ŋ:"eng",Ŋ:"ENG",𝕠:"oopf",𝔬:"ofr",ℴ:"oscr",𝒪:"Oscr",𝔒:"Ofr",𝕆:"Oopf",º:"ordm",ó:"oacute",Ó:"Oacute",ò:"ograve",Ò:"Ograve",ô:"ocirc",Ô:"Ocirc",ö:"ouml",Ö:"Ouml",ő:"odblac",Ő:"Odblac",õ:"otilde",Õ:"Otilde",ø:"oslash",Ø:"Oslash",ō:"omacr",Ō:"Omacr",œ:"oelig",Œ:"OElig",𝔭:"pfr",𝓅:"pscr",𝕡:"popf",ℙ:"Popf",𝔓:"Pfr",𝒫:"Pscr",𝕢:"qopf",𝔮:"qfr",𝓆:"qscr",𝒬:"Qscr",𝔔:"Qfr",ℚ:"Qopf",ĸ:"kgreen",𝔯:"rfr",𝕣:"ropf",𝓇:"rscr",ℛ:"Rscr",ℜ:"Re",ℝ:"Ropf",ŕ:"racute",Ŕ:"Racute",ř:"rcaron",Ř:"Rcaron",ŗ:"rcedil",Ŗ:"Rcedil",𝕤:"sopf",𝓈:"sscr",𝔰:"sfr",𝕊:"Sopf",𝔖:"Sfr",𝒮:"Sscr","Ⓢ":"oS",ś:"sacute",Ś:"Sacute",ŝ:"scirc",Ŝ:"Scirc",š:"scaron",Š:"Scaron",ş:"scedil",Ş:"Scedil",ß:"szlig",𝔱:"tfr",𝓉:"tscr",𝕥:"topf",𝒯:"Tscr",𝔗:"Tfr",𝕋:"Topf",ť:"tcaron",Ť:"Tcaron",ţ:"tcedil",Ţ:"Tcedil","™":"trade",ŧ:"tstrok",Ŧ:"Tstrok",𝓊:"uscr",𝕦:"uopf",𝔲:"ufr",𝕌:"Uopf",𝔘:"Ufr",𝒰:"Uscr",ú:"uacute",Ú:"Uacute",ù:"ugrave",Ù:"Ugrave",ŭ:"ubreve",Ŭ:"Ubreve",û:"ucirc",Û:"Ucirc",ů:"uring",Ů:"Uring",ü:"uuml",Ü:"Uuml",ű:"udblac",Ű:"Udblac",ũ:"utilde",Ũ:"Utilde",ų:"uogon",Ų:"Uogon",ū:"umacr",Ū:"Umacr",𝔳:"vfr",𝕧:"vopf",𝓋:"vscr",𝔙:"Vfr",𝕍:"Vopf",𝒱:"Vscr",𝕨:"wopf",𝓌:"wscr",𝔴:"wfr",𝒲:"Wscr",𝕎:"Wopf",𝔚:"Wfr",ŵ:"wcirc",Ŵ:"Wcirc",𝔵:"xfr",𝓍:"xscr",𝕩:"xopf",𝕏:"Xopf",𝔛:"Xfr",𝒳:"Xscr",𝔶:"yfr",𝓎:"yscr",𝕪:"yopf",𝒴:"Yscr",𝔜:"Yfr",𝕐:"Yopf",ý:"yacute",Ý:"Yacute",ŷ:"ycirc",Ŷ:"Ycirc",ÿ:"yuml",Ÿ:"Yuml",𝓏:"zscr",𝔷:"zfr",𝕫:"zopf",ℨ:"Zfr",ℤ:"Zopf",𝒵:"Zscr",ź:"zacute",Ź:"Zacute",ž:"zcaron",Ž:"Zcaron",ż:"zdot",Ż:"Zdot",Ƶ:"imped",þ:"thorn",Þ:"THORN",ʼn:"napos",α:"alpha",Α:"Alpha",β:"beta",Β:"Beta",γ:"gamma",Γ:"Gamma",δ:"delta",Δ:"Delta",ε:"epsi",ϵ:"epsiv",Ε:"Epsilon",ϝ:"gammad",Ϝ:"Gammad",ζ:"zeta",Ζ:"Zeta",η:"eta",Η:"Eta",θ:"theta",ϑ:"thetav",Θ:"Theta",ι:"iota",Ι:"Iota",κ:"kappa",ϰ:"kappav",Κ:"Kappa",λ:"lambda",Λ:"Lambda",μ:"mu",µ:"micro",Μ:"Mu",ν:"nu",Ν:"Nu",ξ:"xi",Ξ:"Xi",ο:"omicron",Ο:"Omicron",π:"pi",ϖ:"piv",Π:"Pi",ρ:"rho",ϱ:"rhov",Ρ:"Rho",σ:"sigma",Σ:"Sigma",ς:"sigmaf",τ:"tau",Τ:"Tau",υ:"upsi",Υ:"Upsilon",ϒ:"Upsi",φ:"phi",ϕ:"phiv",Φ:"Phi",χ:"chi",Χ:"Chi",ψ:"psi",Ψ:"Psi",ω:"omega",Ω:"ohm",а:"acy",А:"Acy",б:"bcy",Б:"Bcy",в:"vcy",В:"Vcy",г:"gcy",Г:"Gcy",ѓ:"gjcy",Ѓ:"GJcy",д:"dcy",Д:"Dcy",ђ:"djcy",Ђ:"DJcy",е:"iecy",Е:"IEcy",ё:"iocy",Ё:"IOcy",є:"jukcy",Є:"Jukcy",ж:"zhcy",Ж:"ZHcy",з:"zcy",З:"Zcy",ѕ:"dscy",Ѕ:"DScy",и:"icy",И:"Icy",і:"iukcy",І:"Iukcy",ї:"yicy",Ї:"YIcy",й:"jcy",Й:"Jcy",ј:"jsercy",Ј:"Jsercy",к:"kcy",К:"Kcy",ќ:"kjcy",Ќ:"KJcy",л:"lcy",Л:"Lcy",љ:"ljcy",Љ:"LJcy",м:"mcy",М:"Mcy",н:"ncy",Н:"Ncy",њ:"njcy",Њ:"NJcy",о:"ocy",О:"Ocy",п:"pcy",П:"Pcy",р:"rcy",Р:"Rcy",с:"scy",С:"Scy",т:"tcy",Т:"Tcy",ћ:"tshcy",Ћ:"TSHcy",у:"ucy",У:"Ucy",ў:"ubrcy",Ў:"Ubrcy",ф:"fcy",Ф:"Fcy",х:"khcy",Х:"KHcy",ц:"tscy",Ц:"TScy",ч:"chcy",Ч:"CHcy",џ:"dzcy",Џ:"DZcy",ш:"shcy",Ш:"SHcy",щ:"shchcy",Щ:"SHCHcy",ъ:"hardcy",Ъ:"HARDcy",ы:"ycy",Ы:"Ycy",ь:"softcy",Ь:"SOFTcy",э:"ecy",Э:"Ecy",ю:"yucy",Ю:"YUcy",я:"yacy",Я:"YAcy",ℵ:"aleph",ℶ:"beth",ℷ:"gimel",ℸ:"daleth"},p=/["&'<>`]/g,d={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},h=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,g=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,m=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,v={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},y={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},b={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},w=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],_=String.fromCharCode,x={}.hasOwnProperty,E=function(e,t){return x.call(e,t)},k=function(e,t){if(!e)return t;var r,n={};for(r in t)n[r]=E(e,r)?e[r]:t[r];return n},A=function(e,t){var r="";return e>=55296&&e<=57343||e>1114111?(t&&q("character reference outside the permissible Unicode range"),"�"):E(b,e)?(t&&q("disallowed character reference"),b[e]):(t&&function(e,t){for(var r=-1,n=e.length;++r65535&&(r+=_((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=_(e))},D=function(e){return"&#x"+e.toString(16).toUpperCase()+";"},T=function(e){return"&#"+e+";"},q=function(e){throw Error("Parse error: "+e)},C=function e(t,r){(r=k(r,e.options)).strict&&g.test(t)&&q("forbidden code point");var n=r.encodeEverything,i=r.useNamedReferences,o=r.allowUnsafeSymbols,a=r.decimal?T:D,d=function(e){return a(e.charCodeAt(0))};return n?(t=t.replace(c,(function(e){return i&&E(f,e)?"&"+f[e]+";":d(e)})),i&&(t=t.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),i&&(t=t.replace(l,(function(e){return"&"+f[e]+";"})))):i?(o||(t=t.replace(p,(function(e){return"&"+f[e]+";"}))),t=(t=t.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(l,(function(e){return"&"+f[e]+";"}))):o||(t=t.replace(p,d)),t.replace(s,(function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1);return a(1024*(t-55296)+r-56320+65536)})).replace(u,d)};C.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var S=function e(t,r){var n=(r=k(r,e.options)).strict;return n&&h.test(t)&&q("malformed character reference"),t.replace(m,(function(e,t,i,o,a,s,c,u,l){var f,p,d,h,g,m;return t?v[g=t]:i?(g=i,(m=o)&&r.isAttributeValue?(n&&"="==m&&q("`&` did not start a character reference"),e):(n&&q("named character reference was not terminated by a semicolon"),y[g]+(m||""))):a?(d=a,p=s,n&&!p&&q("character reference was not terminated by a semicolon"),f=parseInt(d,10),A(f,n)):c?(h=c,p=u,n&&!p&&q("character reference was not terminated by a semicolon"),f=parseInt(h,16),A(f,n)):(n&&q("named character reference was not terminated by a semicolon"),e)}))};S.options={isAttributeValue:!1,strict:!1};var L={version:"1.2.0",encode:C,decode:S,escape:function(e){return e.replace(p,(function(e){return d[e]}))},unescape:S};if("function"==typeof define&&"object"==(0,n.Z)(r.amdO)&&r.amdO)define((function(){return L}));else if(i&&!i.nodeType)if(o)o.exports=L;else for(var N in L)E(L,N)&&(i[N]=L[N]);else t.he=L}(void 0)},991:(e,t,r)=>{"use strict";r.r(t);var n,i,o=r(534);e=r.hmd(e),n="undefined"!=typeof window?window:void 0,i=function(e,t){var n=[],i=Object.getPrototypeOf,a=n.slice,s=n.flat?function(e){return n.flat.call(e)}:function(e){return n.concat.apply([],e)},c=n.push,u=n.indexOf,l={},f=l.toString,p=l.hasOwnProperty,d=p.toString,h=d.call(Object),g={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},v=function(e){return null!=e&&e===e.window},y=e.document,b={type:!0,src:!0,nonce:!0,noModule:!0};function w(e,t,r){var n,i,o=(r=r||y).createElement("script");if(o.text=e,t)for(n in b)(i=t[n]||t.getAttribute&&t.getAttribute(n))&&o.setAttribute(n,i);r.head.appendChild(o).parentNode.removeChild(o)}function _(e){return null==e?e+"":"object"===(0,o.Z)(e)||"function"==typeof e?l[f.call(e)]||"object":(0,o.Z)(e)}var x="3.6.0",E=function e(t,r){return new e.fn.init(t,r)};function k(e){var t=!!e&&"length"in e&&e.length,r=_(e);return!m(e)&&!v(e)&&("array"===r||0===t||"number"==typeof t&&t>0&&t-1 in e)}E.fn=E.prototype={jquery:x,constructor:E,length:0,toArray:function(){return a.call(this)},get:function(e){return null==e?a.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=E.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return E.each(this,e)},map:function(e){return this.pushStack(E.map(this,(function(t,r){return e.call(t,r,t)})))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(E.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(E.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,r=+e+(e<0?t:0);return this.pushStack(r>=0&&r+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),G=new RegExp(I+"|>"),W=new RegExp(F),Z=new RegExp("^"+P+"$"),Y={ID:new RegExp("^#("+P+")"),CLASS:new RegExp("^\\.("+P+")"),TAG:new RegExp("^("+P+"|[*])"),ATTR:new RegExp("^"+H),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:new RegExp("^(?:"+B+")$","i"),needsContext:new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i")},X=/HTML$/i,$=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,Q=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])","g"),re=function(e,t){var r="0x"+e.slice(1)-65536;return t||(r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320))},ne=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){p()},ae=we((function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{O.apply(S=j.call(_.childNodes),_.childNodes),S[_.childNodes.length].nodeType}catch(e){O={apply:S.length?function(e,t){N.apply(e,j.call(t))}:function(e,t){for(var r=e.length,n=0;e[r++]=t[n++];);e.length=r-1}}}function se(e,t,n,i){var o,s,u,l,f,h,v,y=t&&t.ownerDocument,_=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==_&&9!==_&&11!==_)return n;if(!i&&(p(t),t=t||d,g)){if(11!==_&&(f=Q.exec(e)))if(o=f[1]){if(9===_){if(!(u=t.getElementById(o)))return n;if(u.id===o)return n.push(u),n}else if(y&&(u=y.getElementById(o))&&b(t,u)&&u.id===o)return n.push(u),n}else{if(f[2])return O.apply(n,t.getElementsByTagName(e)),n;if((o=f[3])&&r.getElementsByClassName&&t.getElementsByClassName)return O.apply(n,t.getElementsByClassName(o)),n}if(r.qsa&&!T[e+" "]&&(!m||!m.test(e))&&(1!==_||"object"!==t.nodeName.toLowerCase())){if(v=e,y=t,1===_&&(G.test(e)||z.test(e))){for((y=ee.test(e)&&ve(t.parentNode)||t)===t&&r.scope||((l=t.getAttribute("id"))?l=l.replace(ne,ie):t.setAttribute("id",l=w)),s=(h=a(e)).length;s--;)h[s]=(l?"#"+l:":scope")+" "+be(h[s]);v=h.join(",")}try{return O.apply(n,y.querySelectorAll(v)),n}catch(t){T(e,!0)}finally{l===w&&t.removeAttribute("id")}}}return c(e.replace(V,"$1"),t,n,i)}function ce(){var e=[];return function t(r,i){return e.push(r+" ")>n.cacheLength&&delete t[e.shift()],t[r+" "]=i}}function ue(e){return e[w]=!0,e}function le(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var r=e.split("|"),i=r.length;i--;)n.attrHandle[r[i]]=t}function pe(e,t){var r=t&&e,n=r&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(n)return n;if(r)for(;r=r.nextSibling;)if(r===t)return-1;return e?1:-1}function de(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function he(e){return function(t){var r=t.nodeName.toLowerCase();return("input"===r||"button"===r)&&t.type===e}}function ge(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ae(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function me(e){return ue((function(t){return t=+t,ue((function(r,n){for(var i,o=e([],r.length,t),a=o.length;a--;)r[i=o[a]]&&(r[i]=!(n[i]=r[i]))}))}))}function ve(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in r=se.support={},o=se.isXML=function(e){var t=e&&e.namespaceURI,r=e&&(e.ownerDocument||e).documentElement;return!X.test(t||r&&r.nodeName||"HTML")},p=se.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:_;return a!=d&&9===a.nodeType&&a.documentElement?(h=(d=a).documentElement,g=!o(d),_!=d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",oe,!1):i.attachEvent&&i.attachEvent("onunload",oe)),r.scope=le((function(e){return h.appendChild(e).appendChild(d.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length})),r.attributes=le((function(e){return e.className="i",!e.getAttribute("className")})),r.getElementsByTagName=le((function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length})),r.getElementsByClassName=J.test(d.getElementsByClassName),r.getById=le((function(e){return h.appendChild(e).id=w,!d.getElementsByName||!d.getElementsByName(w).length})),r.getById?(n.filter.ID=function(e){var t=e.replace(te,re);return function(e){return e.getAttribute("id")===t}},n.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var r=t.getElementById(e);return r?[r]:[]}}):(n.filter.ID=function(e){var t=e.replace(te,re);return function(e){var r=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return r&&r.value===t}},n.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var r,n,i,o=t.getElementById(e);if(o){if((r=o.getAttributeNode("id"))&&r.value===e)return[o];for(i=t.getElementsByName(e),n=0;o=i[n++];)if((r=o.getAttributeNode("id"))&&r.value===e)return[o]}return[]}}),n.find.TAG=r.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):r.qsa?t.querySelectorAll(e):void 0}:function(e,t){var r,n=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;r=o[i++];)1===r.nodeType&&n.push(r);return n}return o},n.find.CLASS=r.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],m=[],(r.qsa=J.test(d.querySelectorAll))&&(le((function(e){var t;h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|"+B+")"),e.querySelectorAll("[id~="+w+"-]").length||m.push("~="),(t=d.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||m.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+w+"+*").length||m.push(".#.+[+~]"),e.querySelectorAll("\\\f"),m.push("[\\r\\n\\f]")})),le((function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")}))),(r.matchesSelector=J.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&le((function(e){r.disconnectedMatch=y.call(e,"*"),y.call(e,"[s!='']:x"),v.push("!=",F)})),m=m.length&&new RegExp(m.join("|")),v=v.length&&new RegExp(v.join("|")),t=J.test(h.compareDocumentPosition),b=t||J.test(h.contains)?function(e,t){var r=9===e.nodeType?e.documentElement:e,n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(r.contains?r.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},q=t?function(e,t){if(e===t)return f=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!r.sortDetached&&t.compareDocumentPosition(e)===n?e==d||e.ownerDocument==_&&b(_,e)?-1:t==d||t.ownerDocument==_&&b(_,t)?1:l?R(l,e)-R(l,t):0:4&n?-1:1)}:function(e,t){if(e===t)return f=!0,0;var r,n=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==d?-1:t==d?1:i?-1:o?1:l?R(l,e)-R(l,t):0;if(i===o)return pe(e,t);for(r=e;r=r.parentNode;)a.unshift(r);for(r=t;r=r.parentNode;)s.unshift(r);for(;a[n]===s[n];)n++;return n?pe(a[n],s[n]):a[n]==_?-1:s[n]==_?1:0},d):d},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(p(e),r.matchesSelector&&g&&!T[t+" "]&&(!v||!v.test(t))&&(!m||!m.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){T(t,!0)}return se(t,d,null,[e]).length>0},se.contains=function(e,t){return(e.ownerDocument||e)!=d&&p(e),b(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=d&&p(e);var i=n.attrHandle[t.toLowerCase()],o=i&&C.call(n.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:r.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},se.escape=function(e){return(e+"").replace(ne,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],i=0,o=0;if(f=!r.detectDuplicates,l=!r.sortStable&&e.slice(0),e.sort(q),f){for(;t=e[o++];)t===e[o]&&(i=n.push(o));for(;i--;)e.splice(n[i],1)}return l=null,e},i=se.getText=function(e){var t,r="",n=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)r+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[n++];)r+=i(t);return r},n=se.selectors={cacheLength:50,createPseudo:ue,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,re),e[3]=(e[3]||e[4]||e[5]||"").replace(te,re),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,r=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":r&&W.test(r)&&(t=a(r,!0))&&(t=r.indexOf(")",r.length-t)-r.length)&&(e[0]=e[0].slice(0,t),e[2]=r.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,re).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=k[e+" "];return t||(t=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+e+"("+I+"|$)"))&&k(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,r){return function(n){var i=se.attr(n,e);return null==i?"!="===t:!t||(i+="","="===t?i===r:"!="===t?i!==r:"^="===t?r&&0===i.indexOf(r):"*="===t?r&&i.indexOf(r)>-1:"$="===t?r&&i.slice(-r.length)===r:"~="===t?(" "+i.replace(U," ")+" ").indexOf(r)>-1:"|="===t&&(i===r||i.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,r,n,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===n&&0===i?function(e){return!!e.parentNode}:function(t,r,c){var u,l,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!c&&!s,b=!1;if(m){if(o){for(;g;){for(p=t;p=p[g];)if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&y){for(b=(d=(u=(l=(f=(p=m)[w]||(p[w]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===x&&u[1])&&u[2],p=d&&m.childNodes[d];p=++d&&p&&p[g]||(b=d=0)||h.pop();)if(1===p.nodeType&&++b&&p===t){l[e]=[x,d,b];break}}else if(y&&(b=d=(u=(l=(f=(p=t)[w]||(p[w]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===x&&u[1]),!1===b)for(;(p=++d&&p&&p[g]||(b=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==v:1!==p.nodeType)||!++b||(y&&((l=(f=p[w]||(p[w]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[x,b]),p!==t)););return(b-=i)===n||b%n==0&&b/n>=0}}},PSEUDO:function(e,t){var r,i=n.pseudos[e]||n.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return i[w]?i(t):i.length>1?(r=[e,e,"",t],n.setFilters.hasOwnProperty(e.toLowerCase())?ue((function(e,r){for(var n,o=i(e,t),a=o.length;a--;)e[n=R(e,o[a])]=!(r[n]=o[a])})):function(e){return i(e,0,r)}):i}},pseudos:{not:ue((function(e){var t=[],r=[],n=s(e.replace(V,"$1"));return n[w]?ue((function(e,t,r,i){for(var o,a=n(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))})):function(e,i,o){return t[0]=e,n(t,null,o,r),t[0]=null,!r.pop()}})),has:ue((function(e){return function(t){return se(e,t).length>0}})),contains:ue((function(e){return e=e.replace(te,re),function(t){return(t.textContent||i(t)).indexOf(e)>-1}})),lang:ue((function(e){return Z.test(e||"")||se.error("unsupported lang: "+e),e=e.replace(te,re).toLowerCase(),function(t){var r;do{if(r=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(r=r.toLowerCase())===e||0===r.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var r=e.location&&e.location.hash;return r&&r.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!n.pseudos.empty(e)},header:function(e){return K.test(e.nodeName)},input:function(e){return $.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:me((function(){return[0]})),last:me((function(e,t){return[t-1]})),eq:me((function(e,t,r){return[r<0?r+t:r]})),even:me((function(e,t){for(var r=0;rt?t:r;--n>=0;)e.push(n);return e})),gt:me((function(e,t,r){for(var n=r<0?r+t:r;++n1?function(t,r,n){for(var i=e.length;i--;)if(!e[i](t,r,n))return!1;return!0}:e[0]}function xe(e,t,r,n,i){for(var o,a=[],s=0,c=e.length,u=null!=t;s-1&&(o[u]=!(a[u]=f))}}else v=xe(v===a?v.splice(h,v.length):v),i?i(null,a,v,c):O.apply(a,v)}))}function ke(e){for(var t,r,i,o=e.length,a=n.relative[e[0].type],s=a||n.relative[" "],c=a?1:0,l=we((function(e){return e===t}),s,!0),f=we((function(e){return R(t,e)>-1}),s,!0),p=[function(e,r,n){var i=!a&&(n||r!==u)||((t=r).nodeType?l(e,r,n):f(e,r,n));return t=null,i}];c1&&_e(p),c>1&&be(e.slice(0,c-1).concat({value:" "===e[c-2].type?"*":""})).replace(V,"$1"),r,c0,i=e.length>0,o=function(o,a,s,c,l){var f,h,m,v=0,y="0",b=o&&[],w=[],_=u,E=o||i&&n.find.TAG("*",l),k=x+=null==_?1:Math.random()||.1,A=E.length;for(l&&(u=a==d||a||l);y!==A&&null!=(f=E[y]);y++){if(i&&f){for(h=0,a||f.ownerDocument==d||(p(f),s=!g);m=e[h++];)if(m(f,a||d,s)){c.push(f);break}l&&(x=k)}r&&((f=!m&&f)&&v--,o&&b.push(f))}if(v+=y,r&&y!==v){for(h=0;m=t[h++];)m(b,w,a,s);if(o){if(v>0)for(;y--;)b[y]||w[y]||(w[y]=L.call(c));w=xe(w)}O.apply(c,w),l&&!o&&w.length>0&&v+t.length>1&&se.uniqueSort(c)}return l&&(x=k,u=_),b};return r?ue(o):o}(o,i)),s.selector=e}return s},c=se.select=function(e,t,r,i){var o,c,u,l,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(r=r||[],1===d.length){if((c=d[0]=d[0].slice(0)).length>2&&"ID"===(u=c[0]).type&&9===t.nodeType&&g&&n.relative[c[1].type]){if(!(t=(n.find.ID(u.matches[0].replace(te,re),t)||[])[0]))return r;p&&(t=t.parentNode),e=e.slice(c.shift().value.length)}for(o=Y.needsContext.test(e)?0:c.length;o--&&(u=c[o],!n.relative[l=u.type]);)if((f=n.find[l])&&(i=f(u.matches[0].replace(te,re),ee.test(c[0].type)&&ve(t.parentNode)||t))){if(c.splice(o,1),!(e=i.length&&be(c)))return O.apply(r,i),r;break}}return(p||s(e,d))(i,t,!g,r,!t||ee.test(e)&&ve(t.parentNode)||t),r},r.sortStable=w.split("").sort(q).join("")===w,r.detectDuplicates=!!f,p(),r.sortDetached=le((function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))})),le((function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")}))||fe("type|href|height|width",(function(e,t,r){if(!r)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),r.attributes&&le((function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||fe("value",(function(e,t,r){if(!r&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),le((function(e){return null==e.getAttribute("disabled")}))||fe(B,(function(e,t,r){var n;if(!r)return!0===e[t]?t.toLowerCase():(n=e.getAttributeNode(t))&&n.specified?n.value:null})),se}(e);E.find=A,(E.expr=A.selectors)[":"]=E.expr.pseudos,E.uniqueSort=E.unique=A.uniqueSort,E.text=A.getText,E.isXMLDoc=A.isXML,E.contains=A.contains,E.escapeSelector=A.escape;var D=function(e,t,r){for(var n=[],i=void 0!==r;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&E(e).is(r))break;n.push(e)}return n},T=function(e,t){for(var r=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&r.push(e);return r},q=E.expr.match.needsContext;function C(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var S=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function L(e,t,r){return m(t)?E.grep(e,(function(e,n){return!!t.call(e,n,e)!==r})):t.nodeType?E.grep(e,(function(e){return e===t!==r})):"string"!=typeof t?E.grep(e,(function(e){return u.call(t,e)>-1!==r})):E.filter(t,e,r)}E.filter=function(e,t,r){var n=t[0];return r&&(e=":not("+e+")"),1===t.length&&1===n.nodeType?E.find.matchesSelector(n,e)?[n]:[]:E.find.matches(e,E.grep(t,(function(e){return 1===e.nodeType})))},E.fn.extend({find:function(e){var t,r,n=this.length,i=this;if("string"!=typeof e)return this.pushStack(E(e).filter((function(){for(t=0;t1?E.uniqueSort(r):r},filter:function(e){return this.pushStack(L(this,e||[],!1))},not:function(e){return this.pushStack(L(this,e||[],!0))},is:function(e){return!!L(this,"string"==typeof e&&q.test(e)?E(e):e||[],!1).length}});var N,O=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,r){var n,i;if(!e)return this;if(r=r||N,"string"==typeof e){if(!(n="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:O.exec(e))||!n[1]&&t)return!t||t.jquery?(t||r).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:y,!0)),S.test(n[1])&&E.isPlainObject(t))for(n in t)m(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}return(i=y.getElementById(n[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==r.ready?r.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,N=E(y);var j=/^(?:parents|prev(?:Until|All))/,R={children:!0,contents:!0,next:!0,prev:!0};function B(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),r=t.length;return this.filter((function(){for(var e=0;e-1:1===r.nodeType&&E.find.matchesSelector(r,e))){o.push(r);break}return this.pushStack(o.length>1?E.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(E(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return D(e,"parentNode")},parentsUntil:function(e,t,r){return D(e,"parentNode",r)},next:function(e){return B(e,"nextSibling")},prev:function(e){return B(e,"previousSibling")},nextAll:function(e){return D(e,"nextSibling")},prevAll:function(e){return D(e,"previousSibling")},nextUntil:function(e,t,r){return D(e,"nextSibling",r)},prevUntil:function(e,t,r){return D(e,"previousSibling",r)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&i(e.contentDocument)?e.contentDocument:(C(e,"template")&&(e=e.content||e),E.merge([],e.childNodes))}},(function(e,t){E.fn[e]=function(r,n){var i=E.map(this,t,r);return"Until"!==e.slice(-5)&&(n=r),n&&"string"==typeof n&&(i=E.filter(n,i)),this.length>1&&(R[e]||E.uniqueSort(i),j.test(e)&&i.reverse()),this.pushStack(i)}}));var I=/[^\x20\t\r\n\f]+/g;function P(e){return e}function H(e){throw e}function F(e,t,r,n){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(r):e&&m(i=e.then)?i.call(e,t,r):t.apply(void 0,[e].slice(n))}catch(e){r.apply(void 0,[e])}}E.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return E.each(e.match(I)||[],(function(e,r){t[r]=!0})),t}(e):E.extend({},e);var t,r,n,i,o=[],a=[],s=-1,c=function(){for(i=i||e.once,n=t=!0;a.length;s=-1)for(r=a.shift();++s-1;)o.splice(r,1),r<=s&&s--})),this},has:function(e){return e?E.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=r="",this},disabled:function(){return!o},lock:function(){return i=a=[],r||t||(o=r=""),this},locked:function(){return!!i},fireWith:function(e,r){return i||(r=[e,(r=r||[]).slice?r.slice():r],a.push(r),t||c()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!n}};return u},E.extend({Deferred:function(t){var r=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],n="pending",i={state:function(){return n},always:function(){return a.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return E.Deferred((function(t){E.each(r,(function(r,n){var i=m(e[n[4]])&&e[n[4]];a[n[1]]((function(){var e=i&&i.apply(this,arguments);e&&m(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[n[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(t,n,i){var a=0;function s(t,r,n,i){return function(){var c=this,u=arguments,l=function(){var e,l;if(!(t=a&&(n!==H&&(c=void 0,u=[e]),r.rejectWith(c,u))}};t?f():(E.Deferred.getStackHook&&(f.stackTrace=E.Deferred.getStackHook()),e.setTimeout(f))}}return E.Deferred((function(e){r[0][3].add(s(0,e,m(i)?i:P,e.notifyWith)),r[1][3].add(s(0,e,m(t)?t:P)),r[2][3].add(s(0,e,m(n)?n:H))})).promise()},promise:function(e){return null!=e?E.extend(e,i):i}},a={};return E.each(r,(function(e,t){var o=t[2],s=t[5];i[t[1]]=o.add,s&&o.add((function(){n=s}),r[3-e][2].disable,r[3-e][3].disable,r[0][2].lock,r[0][3].lock),o.add(t[3].fire),a[t[0]]=function(){return a[t[0]+"With"](this===a?void 0:this,arguments),this},a[t[0]+"With"]=o.fireWith})),i.promise(a),t&&t.call(a,a),a},when:function(e){var t=arguments.length,r=t,n=Array(r),i=a.call(arguments),o=E.Deferred(),s=function(e){return function(r){n[e]=this,i[e]=arguments.length>1?a.call(arguments):r,--t||o.resolveWith(n,i)}};if(t<=1&&(F(e,o.done(s(r)).resolve,o.reject,!t),"pending"===o.state()||m(i[r]&&i[r].then)))return o.then();for(;r--;)F(i[r],s(r),o.reject);return o.promise()}});var U=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(t,r){e.console&&e.console.warn&&t&&U.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,r)},E.readyException=function(t){e.setTimeout((function(){throw t}))};var V=E.Deferred();function M(){y.removeEventListener("DOMContentLoaded",M),e.removeEventListener("load",M),E.ready()}E.fn.ready=function(e){return V.then(e).catch((function(e){E.readyException(e)})),this},E.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0,!0!==e&&--E.readyWait>0||V.resolveWith(y,[E]))}}),E.ready.then=V.then,"complete"===y.readyState||"loading"!==y.readyState&&!y.documentElement.doScroll?e.setTimeout(E.ready):(y.addEventListener("DOMContentLoaded",M),e.addEventListener("load",M));var z=function e(t,r,n,i,o,a,s){var c=0,u=t.length,l=null==n;if("object"===_(n))for(c in o=!0,n)e(t,r,c,n[c],!0,a,s);else if(void 0!==i&&(o=!0,m(i)||(s=!0),l&&(s?(r.call(t,i),r=null):(l=r,r=function(e,t,r){return l.call(E(e),r)})),r))for(;c1,null,!0)},removeData:function(e){return this.each((function(){J.remove(this,e)}))}}),E.extend({queue:function(e,t,r){var n;if(e)return t=(t||"fx")+"queue",n=K.get(e,t),r&&(!n||Array.isArray(r)?n=K.access(e,t,E.makeArray(r)):n.push(r)),n||[]},dequeue:function(e,t){var r=E.queue(e,t=t||"fx"),n=r.length,i=r.shift(),o=E._queueHooks(e,t);"inprogress"===i&&(i=r.shift(),n--),i&&("fx"===t&&r.unshift("inprogress"),delete o.stop,i.call(e,(function(){E.dequeue(e,t)}),o)),!n&&o&&o.empty.fire()},_queueHooks:function(e,t){var r=t+"queueHooks";return K.get(e,r)||K.access(e,r,{empty:E.Callbacks("once memory").add((function(){K.remove(e,[t+"queue",r])}))})}}),E.fn.extend({queue:function(e,t){var r=2;return"string"!=typeof e&&(t=e,e="fx",r--),arguments.length\x20\t\r\n\f]*)/i,ve=/^$|^module$|\/(?:java|ecma)script/i;de=y.createDocumentFragment().appendChild(y.createElement("div")),(he=y.createElement("input")).setAttribute("type","radio"),he.setAttribute("checked","checked"),he.setAttribute("name","t"),de.appendChild(he),g.checkClone=de.cloneNode(!0).cloneNode(!0).lastChild.checked,de.innerHTML="",g.noCloneChecked=!!de.cloneNode(!0).lastChild.defaultValue,de.innerHTML="",g.option=!!de.lastChild;var ye={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function be(e,t){var r;return r=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&C(e,t)?E.merge([e],r):r}function we(e,t){for(var r=0,n=e.length;r",""]);var _e=/<|&#?\w+;/;function xe(e,t,r,n,i){for(var o,a,s,c,u,l,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d-1)i&&i.push(o);else if(u=ae(o),a=be(f.appendChild(o),"script"),u&&we(a),r)for(l=0;o=a[l++];)ve.test(o.type||"")&&r.push(o);return f}var Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Ae(){return!1}function De(e,t){return e===function(){try{return y.activeElement}catch(e){}}()==("focus"===t)}function Te(e,t,r,n,i,a){var s,c;if("object"===(0,o.Z)(t)){for(c in"string"!=typeof r&&(n=n||r,r=void 0),t)Te(e,c,r,n,t[c],a);return e}if(null==n&&null==i?(i=r,n=r=void 0):null==i&&("string"==typeof r?(i=n,n=void 0):(i=n,n=r,r=void 0)),!1===i)i=Ae;else if(!i)return e;return 1===a&&(s=i,i=function(e){return E().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=E.guid++)),e.each((function(){E.event.add(this,t,i,n,r)}))}function qe(e,t,r){r?(K.set(e,t,!1),E.event.add(e,t,{namespace:!1,handler:function(e){var n,i,o=K.get(this,t);if(1&e.isTrigger&&this[t]){if(o.length)(E.event.special[t]||{}).delegateType&&e.stopPropagation();else if(o=a.call(arguments),K.set(this,t,o),n=r(this,t),this[t](),o!==(i=K.get(this,t))||n?K.set(this,t,!1):i={},o!==i)return e.stopImmediatePropagation(),e.preventDefault(),i&&i.value}else o.length&&(K.set(this,t,{value:E.event.trigger(E.extend(o[0],E.Event.prototype),o.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===K.get(e,t)&&E.event.add(e,t,ke)}E.event={global:{},add:function(e,t,r,n,i){var o,a,s,c,u,l,f,p,d,h,g,m=K.get(e);if(X(e))for(r.handler&&(r=(o=r).handler,i=o.selector),i&&E.find.matchesSelector(oe,i),r.guid||(r.guid=E.guid++),(c=m.events)||(c=m.events=Object.create(null)),(a=m.handle)||(a=m.handle=function(t){return E.event.triggered!==t.type?E.event.dispatch.apply(e,arguments):void 0}),u=(t=(t||"").match(I)||[""]).length;u--;)d=g=(s=Ee.exec(t[u])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=E.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=E.event.special[d]||{},l=E.extend({type:d,origType:g,data:n,handler:r,guid:r.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=c[d])||((p=c[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,n,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,l),l.handler.guid||(l.handler.guid=r.guid)),i?p.splice(p.delegateCount++,0,l):p.push(l),E.event.global[d]=!0)},remove:function(e,t,r,n,i){var o,a,s,c,u,l,f,p,d,h,g,m=K.hasData(e)&&K.get(e);if(m&&(c=m.events)){for(u=(t=(t||"").match(I)||[""]).length;u--;)if(d=g=(s=Ee.exec(t[u])||[])[1],h=(s[2]||"").split(".").sort(),d){for(f=E.event.special[d]||{},p=c[d=(n?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)l=p[o],!i&&g!==l.origType||r&&r.guid!==l.guid||s&&!s.test(l.namespace)||n&&n!==l.selector&&("**"!==n||!l.selector)||(p.splice(o,1),l.selector&&p.delegateCount--,f.remove&&f.remove.call(e,l));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,m.handle)||E.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)E.event.remove(e,d+t[u],r,n,!0);E.isEmptyObject(c)&&K.remove(e,"handle events")}},dispatch:function(e){var t,r,n,i,o,a,s=new Array(arguments.length),c=E.event.fix(e),u=(K.get(this,"events")||Object.create(null))[c.type]||[],l=E.event.special[c.type]||{};for(s[0]=c,t=1;t=1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&("click"!==e.type||!0!==u.disabled)){for(o=[],a={},r=0;r-1:E.find(i,this,null,[u]).length),a[i]&&o.push(n);o.length&&s.push({elem:u,handlers:o})}return u=this,c\s*$/g;function Ne(e,t){return C(e,"table")&&C(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function Oe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function je(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Re(e,t){var r,n,i,o,a,s;if(1===t.nodeType){if(K.hasData(e)&&(s=K.get(e).events))for(i in K.remove(t,"handle events"),s)for(r=0,n=s[i].length;r1&&"string"==typeof h&&!g.checkClone&&Se.test(h))return e.each((function(i){var o=e.eq(i);v&&(t[0]=h.call(this,i,o.html())),Ie(o,t,r,n)}));if(p&&(o=(i=xe(t,e[0].ownerDocument,!1,e,n)).firstChild,1===i.childNodes.length&&(i=o),o||n)){for(c=(a=E.map(be(i,"script"),Oe)).length;f0&&we(a,!c&&be(e,"script")),s},cleanData:function(e){for(var t,r,n,i=E.event.special,o=0;void 0!==(r=e[o]);o++)if(X(r)){if(t=r[K.expando]){if(t.events)for(n in t.events)i[n]?E.event.remove(r,n):E.removeEvent(r,n,t.handle);r[K.expando]=void 0}r[J.expando]&&(r[J.expando]=void 0)}}}),E.fn.extend({detach:function(e){return Pe(this,e,!0)},remove:function(e){return Pe(this,e)},text:function(e){return z(this,(function(e){return void 0===e?E.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Ie(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Ne(this,e).appendChild(e)}))},prepend:function(){return Ie(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Ne(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Ie(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Ie(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(E.cleanData(be(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return E.clone(this,e,t)}))},html:function(e){return z(this,(function(e){var t=this[0]||{},r=0,n=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ce.test(e)&&!ye[(me.exec(e)||["",""])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;r=0&&(c+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-c-s-.5))||0),c}function tt(e,t,r){var n=Fe(e),i=(!g.boxSizingReliable()||r)&&"border-box"===E.css(e,"boxSizing",!1,n),o=i,a=Me(e,t,n),s="offset"+t[0].toUpperCase()+t.slice(1);if(He.test(a)){if(!r)return a;a="auto"}return(!g.boxSizingReliable()&&i||!g.reliableTrDimensions()&&C(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===E.css(e,"display",!1,n))&&e.getClientRects().length&&(i="border-box"===E.css(e,"boxSizing",!1,n),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,r||(i?"border":"content"),o,n,a)+"px"}function rt(e,t,r,n,i){return new rt.prototype.init(e,t,r,n,i)}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){var r=Me(e,"opacity");return""===r?"1":r}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,r,n){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,a,s,c=Y(t),u=$e.test(t),l=e.style;if(u||(t=Ye(c)),s=E.cssHooks[t]||E.cssHooks[c],void 0===r)return s&&"get"in s&&void 0!==(i=s.get(e,!1,n))?i:l[t];"string"===(a=(0,o.Z)(r))&&(i=ne.exec(r))&&i[1]&&(r=ue(e,t,i),a="number"),null!=r&&r==r&&("number"!==a||u||(r+=i&&i[3]||(E.cssNumber[c]?"":"px")),g.clearCloneStyle||""!==r||0!==t.indexOf("background")||(l[t]="inherit"),s&&"set"in s&&void 0===(r=s.set(e,r,n))||(u?l.setProperty(t,r):l[t]=r))}},css:function(e,t,r,n){var i,o,a,s=Y(t);return $e.test(t)||(t=Ye(s)),(a=E.cssHooks[t]||E.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,r)),void 0===i&&(i=Me(e,t,n)),"normal"===i&&t in Je&&(i=Je[t]),""===r||r?(o=parseFloat(i),!0===r||isFinite(o)?o||0:i):i}}),E.each(["height","width"],(function(e,t){E.cssHooks[t]={get:function(e,r,n){if(r)return!Xe.test(E.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,t,n):Ue(e,Ke,(function(){return tt(e,t,n)}))},set:function(e,r,n){var i,o=Fe(e),a=!g.scrollboxSize()&&"absolute"===o.position,s=(a||n)&&"border-box"===E.css(e,"boxSizing",!1,o),c=n?et(e,t,n,s,o):0;return s&&a&&(c-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-et(e,t,"border",!1,o)-.5)),c&&(i=ne.exec(r))&&"px"!==(i[3]||"px")&&(e.style[t]=r,r=E.css(e,t)),Qe(0,r,c)}}})),E.cssHooks.marginLeft=ze(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Me(e,"marginLeft"))||e.getBoundingClientRect().left-Ue(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),E.each({margin:"",padding:"",border:"Width"},(function(e,t){E.cssHooks[e+t]={expand:function(r){for(var n=0,i={},o="string"==typeof r?r.split(" "):[r];n<4;n++)i[e+ie[n]+t]=o[n]||o[n-2]||o[0];return i}},"margin"!==e&&(E.cssHooks[e+t].set=Qe)})),E.fn.extend({css:function(e,t){return z(this,(function(e,t,r){var n,i,o={},a=0;if(Array.isArray(t)){for(n=Fe(e),i=t.length;a1)}}),E.Tween=rt,rt.prototype={constructor:rt,init:function(e,t,r,n,i,o){this.elem=e,this.prop=r,this.easing=i||E.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=n,this.unit=o||(E.cssNumber[r]?"":"px")},cur:function(){var e=rt.propHooks[this.prop];return e&&e.get?e.get(this):rt.propHooks._default.get(this)},run:function(e){var t,r=rt.propHooks[this.prop];return this.options.duration?this.pos=t=E.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),r&&r.set?r.set(this):rt.propHooks._default.set(this),this}},rt.prototype.init.prototype=rt.prototype,rt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=E.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){E.fx.step[e.prop]?E.fx.step[e.prop](e):1!==e.elem.nodeType||!E.cssHooks[e.prop]&&null==e.elem.style[Ye(e.prop)]?e.elem[e.prop]=e.now:E.style(e.elem,e.prop,e.now+e.unit)}}},rt.propHooks.scrollTop=rt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},E.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},(E.fx=rt.prototype.init).step={};var nt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){it&&(!1===y.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(st):e.setTimeout(st,E.fx.interval),E.fx.tick())}function ct(){return e.setTimeout((function(){nt=void 0})),nt=Date.now()}function ut(e,t){var r,n=0,i={height:e};for(t=t?1:0;n<4;n+=2-t)i["margin"+(r=ie[n])]=i["padding"+r]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,r){for(var n,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each((function(){E.removeAttr(this,e)}))}}),E.extend({attr:function(e,t,r){var n,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?E.prop(e,t,r):(1===o&&E.isXMLDoc(e)||(i=E.attrHooks[t.toLowerCase()]||(E.expr.match.bool.test(t)?pt:void 0)),void 0!==r?null===r?void E.removeAttr(e,t):i&&"set"in i&&void 0!==(n=i.set(e,r,t))?n:(e.setAttribute(t,r+""),r):i&&"get"in i&&null!==(n=i.get(e,t))?n:null==(n=E.find.attr(e,t))?void 0:n)},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&C(e,"input")){var r=e.value;return e.setAttribute("type",t),r&&(e.value=r),t}}}},removeAttr:function(e,t){var r,n=0,i=t&&t.match(I);if(i&&1===e.nodeType)for(;r=i[n++];)e.removeAttribute(r)}}),pt={set:function(e,t,r){return!1===t?E.removeAttr(e,r):e.setAttribute(r,r),r}},E.each(E.expr.match.bool.source.match(/\w+/g),(function(e,t){var r=dt[t]||E.find.attr;dt[t]=function(e,t,n){var i,o,a=t.toLowerCase();return n||(o=dt[a],dt[a]=i,i=null!=r(e,t,n)?a:null,dt[a]=o),i}}));var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function mt(e){return(e.match(I)||[]).join(" ")}function vt(e){return e.getAttribute&&e.getAttribute("class")||""}function yt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(I)||[]}E.fn.extend({prop:function(e,t){return z(this,E.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[E.propFix[e]||e]}))}}),E.extend({prop:function(e,t,r){var n,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&E.isXMLDoc(e)||(t=E.propFix[t]||t,i=E.propHooks[t]),void 0!==r?i&&"set"in i&&void 0!==(n=i.set(e,r,t))?n:e[t]=r:i&&"get"in i&&null!==(n=i.get(e,t))?n:e[t]},propHooks:{tabIndex:{get:function(e){var t=E.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(E.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){E.propFix[this.toLowerCase()]=this})),E.fn.extend({addClass:function(e){var t,r,n,i,o,a,s,c=0;if(m(e))return this.each((function(t){E(this).addClass(e.call(this,t,vt(this)))}));if((t=yt(e)).length)for(;r=this[c++];)if(i=vt(r),n=1===r.nodeType&&" "+mt(i)+" "){for(a=0;o=t[a++];)n.indexOf(" "+o+" ")<0&&(n+=o+" ");i!==(s=mt(n))&&r.setAttribute("class",s)}return this},removeClass:function(e){var t,r,n,i,o,a,s,c=0;if(m(e))return this.each((function(t){E(this).removeClass(e.call(this,t,vt(this)))}));if(!arguments.length)return this.attr("class","");if((t=yt(e)).length)for(;r=this[c++];)if(i=vt(r),n=1===r.nodeType&&" "+mt(i)+" "){for(a=0;o=t[a++];)for(;n.indexOf(" "+o+" ")>-1;)n=n.replace(" "+o+" "," ");i!==(s=mt(n))&&r.setAttribute("class",s)}return this},toggleClass:function(e,t){var r=(0,o.Z)(e),n="string"===r||Array.isArray(e);return"boolean"==typeof t&&n?t?this.addClass(e):this.removeClass(e):m(e)?this.each((function(r){E(this).toggleClass(e.call(this,r,vt(this),t),t)})):this.each((function(){var t,i,o,a;if(n)for(i=0,o=E(this),a=yt(e);t=a[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==r||((t=vt(this))&&K.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":K.get(this,"__className__")||""))}))},hasClass:function(e){var t,r,n=0;for(t=" "+e+" ";r=this[n++];)if(1===r.nodeType&&(" "+mt(vt(r))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;E.fn.extend({val:function(e){var t,r,n,i=this[0];return arguments.length?(n=m(e),this.each((function(r){var i;1===this.nodeType&&(null==(i=n?e.call(this,r,E(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=E.map(i,(function(e){return null==e?"":e+""}))),(t=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=E.valHooks[i.type]||E.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(r=t.get(i,"value"))?r:"string"==typeof(r=i.value)?r.replace(bt,""):null==r?"":r:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,"value");return null!=t?t:mt(E.text(e))}},select:{get:function(e){var t,r,n,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],c=a?o+1:i.length;for(n=o<0?c:a?o:0;n-1)&&(r=!0);return r||(e.selectedIndex=-1),o}}}}),E.each(["radio","checkbox"],(function(){E.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=E.inArray(E(e).val(),t)>-1}},g.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})})),g.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,_t=function(e){e.stopPropagation()};E.extend(E.event,{trigger:function(t,r,n,i){var a,s,c,u,l,f,d,h,g=[n||y],b=p.call(t,"type")?t.type:t,w=p.call(t,"namespace")?t.namespace.split("."):[];if(s=h=c=n=n||y,3!==n.nodeType&&8!==n.nodeType&&!wt.test(b+E.event.triggered)&&(b.indexOf(".")>-1&&(w=b.split("."),b=w.shift(),w.sort()),l=b.indexOf(":")<0&&"on"+b,(t=t[E.expando]?t:new E.Event(b,"object"===(0,o.Z)(t)&&t)).isTrigger=i?2:3,t.namespace=w.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+w.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=n),r=null==r?[t]:E.makeArray(r,[t]),d=E.event.special[b]||{},i||!d.trigger||!1!==d.trigger.apply(n,r))){if(!i&&!d.noBubble&&!v(n)){for(u=d.delegateType||b,wt.test(u+b)||(s=s.parentNode);s;s=s.parentNode)g.push(s),c=s;c===(n.ownerDocument||y)&&g.push(c.defaultView||c.parentWindow||e)}for(a=0;(s=g[a++])&&!t.isPropagationStopped();)h=s,t.type=a>1?u:d.bindType||b,(f=(K.get(s,"events")||Object.create(null))[t.type]&&K.get(s,"handle"))&&f.apply(s,r),(f=l&&s[l])&&f.apply&&X(s)&&(t.result=f.apply(s,r),!1===t.result&&t.preventDefault());return t.type=b,i||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(g.pop(),r)||!X(n)||l&&m(n[b])&&!v(n)&&((c=n[l])&&(n[l]=null),E.event.triggered=b,t.isPropagationStopped()&&h.addEventListener(b,_t),n[b](),t.isPropagationStopped()&&h.removeEventListener(b,_t),E.event.triggered=void 0,c&&(n[l]=c)),t.result}},simulate:function(e,t,r){var n=E.extend(new E.Event,r,{type:e,isSimulated:!0});E.event.trigger(n,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each((function(){E.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var r=this[0];if(r)return E.event.trigger(e,t,r,!0)}}),g.focusin||E.each({focus:"focusin",blur:"focusout"},(function(e,t){var r=function(e){E.event.simulate(t,e.target,E.event.fix(e))};E.event.special[t]={setup:function(){var n=this.ownerDocument||this.document||this,i=K.access(n,t);i||n.addEventListener(e,r,!0),K.access(n,t,(i||0)+1)},teardown:function(){var n=this.ownerDocument||this.document||this,i=K.access(n,t)-1;i?K.access(n,t,i):(n.removeEventListener(e,r,!0),K.remove(n,t))}}}));var xt=e.location,Et={guid:Date.now()},kt=/\?/;E.parseXML=function(t){var r,n;if(!t||"string"!=typeof t)return null;try{r=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){}return n=r&&r.getElementsByTagName("parsererror")[0],r&&!n||E.error("Invalid XML: "+(n?E.map(n.childNodes,(function(e){return e.textContent})).join("\n"):t)),r};var At=/\[\]$/,Dt=/\r?\n/g,Tt=/^(?:submit|button|image|reset|file)$/i,qt=/^(?:input|select|textarea|keygen)/i;function Ct(e,t,r,n){var i;if(Array.isArray(t))E.each(t,(function(t,i){r||At.test(e)?n(e,i):Ct(e+"["+("object"===(0,o.Z)(i)&&null!=i?t:"")+"]",i,r,n)}));else if(r||"object"!==_(t))n(e,t);else for(i in t)Ct(e+"["+i+"]",t[i],r,n)}E.param=function(e,t){var r,n=[],i=function(e,t){var r=m(t)?t():t;n[n.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==r?"":r)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,(function(){i(this.name,this.value)}));else for(r in e)Ct(r,e[r],t,i);return n.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=E.prop(this,"elements");return e?E.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!E(this).is(":disabled")&&qt.test(this.nodeName)&&!Tt.test(e)&&(this.checked||!ge.test(e))})).map((function(e,t){var r=E(this).val();return null==r?null:Array.isArray(r)?E.map(r,(function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}})):{name:t.name,value:r.replace(Dt,"\r\n")}})).get()}});var St=/%20/g,Lt=/#.*$/,Nt=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,jt=/^(?:GET|HEAD)$/,Rt=/^\/\//,Bt={},It={},Pt="*/".concat("*"),Ht=y.createElement("a");function Ft(e){return function(t,r){"string"!=typeof t&&(r=t,t="*");var n,i=0,o=t.toLowerCase().match(I)||[];if(m(r))for(;n=o[i++];)"+"===n[0]?(n=n.slice(1)||"*",(e[n]=e[n]||[]).unshift(r)):(e[n]=e[n]||[]).push(r)}}function Ut(e,t,r,n){var i={},o=e===It;function a(s){var c;return i[s]=!0,E.each(e[s]||[],(function(e,s){var u=s(t,r,n);return"string"!=typeof u||o||i[u]?o?!(c=u):void 0:(t.dataTypes.unshift(u),a(u),!1)})),c}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Vt(e,t){var r,n,i=E.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&E.extend(!0,e,n),e}Ht.href=xt.href,E.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:xt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(xt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Pt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":E.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Vt(Vt(e,E.ajaxSettings),t):Vt(E.ajaxSettings,e)},ajaxPrefilter:Ft(Bt),ajaxTransport:Ft(It),ajax:function(t,r){"object"===(0,o.Z)(t)&&(r=t,t=void 0);var n,i,a,s,c,u,l,f,p,d,h=E.ajaxSetup({},r=r||{}),g=h.context||h,m=h.context&&(g.nodeType||g.jquery)?E(g):E.event,v=E.Deferred(),b=E.Callbacks("once memory"),w=h.statusCode||{},_={},x={},k="canceled",A={readyState:0,getResponseHeader:function(e){var t;if(l){if(!s)for(s={};t=Ot.exec(a);)s[t[1].toLowerCase()+" "]=(s[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=s[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return l?a:null},setRequestHeader:function(e,t){return null==l&&(e=x[e.toLowerCase()]=x[e.toLowerCase()]||e,_[e]=t),this},overrideMimeType:function(e){return null==l&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)A.always(e[A.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||k;return n&&n.abort(t),D(0,t),this}};if(v.promise(A),h.url=((t||h.url||xt.href)+"").replace(Rt,xt.protocol+"//"),h.type=r.method||r.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(I)||[""],null==h.crossDomain){u=y.createElement("a");try{u.href=h.url,u.href=u.href,h.crossDomain=Ht.protocol+"//"+Ht.host!=u.protocol+"//"+u.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=E.param(h.data,h.traditional)),Ut(Bt,h,r,A),l)return A;for(p in(f=E.event&&h.global)&&0==E.active++&&E.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!jt.test(h.type),i=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(St,"+")):(d=h.url.slice(i.length),h.data&&(h.processData||"string"==typeof h.data)&&(i+=(kt.test(i)?"&":"?")+h.data,delete h.data),!1===h.cache&&(i=i.replace(Nt,"$1"),d=(kt.test(i)?"&":"?")+"_="+Et.guid+++d),h.url=i+d),h.ifModified&&(E.lastModified[i]&&A.setRequestHeader("If-Modified-Since",E.lastModified[i]),E.etag[i]&&A.setRequestHeader("If-None-Match",E.etag[i])),(h.data&&h.hasContent&&!1!==h.contentType||r.contentType)&&A.setRequestHeader("Content-Type",h.contentType),A.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Pt+"; q=0.01":""):h.accepts["*"]),h.headers)A.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,A,h)||l))return A.abort();if(k="abort",b.add(h.complete),A.done(h.success),A.fail(h.error),n=Ut(It,h,r,A)){if(A.readyState=1,f&&m.trigger("ajaxSend",[A,h]),l)return A;h.async&&h.timeout>0&&(c=e.setTimeout((function(){A.abort("timeout")}),h.timeout));try{l=!1,n.send(_,D)}catch(e){if(l)throw e;D(-1,e)}}else D(-1,"No Transport");function D(t,r,o,s){var u,p,d,y,_,x=r;l||(l=!0,c&&e.clearTimeout(c),n=void 0,a=s||"",A.readyState=t>0?4:0,u=t>=200&&t<300||304===t,o&&(y=function(e,t,r){for(var n,i,o,a,s=e.contents,c=e.dataTypes;"*"===c[0];)c.shift(),void 0===n&&(n=e.mimeType||t.getResponseHeader("Content-Type"));if(n)for(i in s)if(s[i]&&s[i].test(n)){c.unshift(i);break}if(c[0]in r)o=c[0];else{for(i in r){if(!c[0]||e.converters[i+" "+c[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==c[0]&&c.unshift(o),r[o]}(h,A,o)),!u&&E.inArray("script",h.dataTypes)>-1&&E.inArray("json",h.dataTypes)<0&&(h.converters["text script"]=function(){}),y=function(e,t,r,n){var i,o,a,s,c,u={},l=e.dataTypes.slice();if(l[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];for(o=l.shift();o;)if(e.responseFields[o]&&(r[e.responseFields[o]]=t),!c&&n&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),c=o,o=l.shift())if("*"===o)o=c;else if("*"!==c&&c!==o){if(!(a=u[c+" "+o]||u["* "+o]))for(i in u)if((s=i.split(" "))[1]===o&&(a=u[c+" "+s[0]]||u["* "+s[0]])){!0===a?a=u[i]:!0!==u[i]&&(o=s[0],l.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+c+" to "+o}}}return{state:"success",data:t}}(h,y,A,u),u?(h.ifModified&&((_=A.getResponseHeader("Last-Modified"))&&(E.lastModified[i]=_),(_=A.getResponseHeader("etag"))&&(E.etag[i]=_)),204===t||"HEAD"===h.type?x="nocontent":304===t?x="notmodified":(x=y.state,p=y.data,u=!(d=y.error))):(d=x,!t&&x||(x="error",t<0&&(t=0))),A.status=t,A.statusText=(r||x)+"",u?v.resolveWith(g,[p,x,A]):v.rejectWith(g,[A,x,d]),A.statusCode(w),w=void 0,f&&m.trigger(u?"ajaxSuccess":"ajaxError",[A,h,u?p:d]),b.fireWith(g,[A,x]),f&&(m.trigger("ajaxComplete",[A,h]),--E.active||E.event.trigger("ajaxStop")))}return A},getJSON:function(e,t,r){return E.get(e,t,r,"json")},getScript:function(e,t){return E.get(e,void 0,t,"script")}}),E.each(["get","post"],(function(e,t){E[t]=function(e,r,n,i){return m(r)&&(i=i||n,n=r,r=void 0),E.ajax(E.extend({url:e,type:t,dataType:i,data:r,success:n},E.isPlainObject(e)&&e))}})),E.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),E._evalUrl=function(e,t,r){return E.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){E.globalEval(e,t,r)}})},E.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=E(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return m(e)?this.each((function(t){E(this).wrapInner(e.call(this,t))})):this.each((function(){var t=E(this),r=t.contents();r.length?r.wrapAll(e):t.append(e)}))},wrap:function(e){var t=m(e);return this.each((function(r){E(this).wrapAll(t?e.call(this,r):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){E(this).replaceWith(this.childNodes)})),this}}),E.expr.pseudos.hidden=function(e){return!E.expr.pseudos.visible(e)},E.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},E.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Mt={0:200,1223:204},zt=E.ajaxSettings.xhr();g.cors=!!zt&&"withCredentials"in zt,g.ajax=zt=!!zt,E.ajaxTransport((function(t){var r,n;if(g.cors||zt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];for(a in t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);r=function(e){return function(){r&&(r=n=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Mt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=r(),n=s.onerror=s.ontimeout=r("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout((function(){r&&n()}))},r=r("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(r)throw e}},abort:function(){r&&r()}}})),E.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),E.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return E.globalEval(e),e}}}),E.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),E.ajaxTransport("script",(function(e){var t,r;if(e.crossDomain||e.scriptAttrs)return{send:function(n,i){t=E("