From 57c3d59317a26240a25ea6987ab76c98c8658c7e Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Wed, 20 Sep 2023 18:54:33 +0200 Subject: [PATCH 01/18] Include the label id in `Label::render()` --- .../files/lib/data/label/Label.class.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/wcfsetup/install/files/lib/data/label/Label.class.php b/wcfsetup/install/files/lib/data/label/Label.class.php index ebb5f89a080..5821711d332 100644 --- a/wcfsetup/install/files/lib/data/label/Label.class.php +++ b/wcfsetup/install/files/lib/data/label/Label.class.php @@ -60,10 +60,20 @@ public function getClassNames() * @return string * @since 5.3 */ - public function render($additionalClasses = '') + public function render($additionalClasses = ''): string { - return '' - . StringUtil::encodeHTML($this->getTitle()) . ''; + $classNames = 'badge label'; + if ($this->getClassNames()) { + $classNames .= " {$this->getClassNames()}"; + } + if ($additionalClasses) { + $classNames .= " {$additionalClasses}"; + } + return \sprintf( + '%s', + $classNames, + $this->labelID, + StringUtil::encodeHTML($this->getTitle()), + ); } } From dd1df86275c6db8fb3d7f4a1a9bf1f8e9abb876a Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Thu, 21 Sep 2023 17:49:02 +0200 Subject: [PATCH 02/18] Prototype of a new label picker --- com.woltlab.wcf/templates/articleAdd.tpl | 7 ++ ts/WoltLabSuite/WebComponent/index.ts | 1 + .../WebComponent/woltlab-core-label-picker.ts | 99 +++++++++++++++++++ .../files/js/WoltLabSuite/WebComponent.min.js | 18 ++-- .../lib/acp/form/ArticleAddForm.class.php | 9 ++ .../category/ArticleCategory.class.php | 18 ++++ .../files/lib/data/label/Label.class.php | 3 +- .../label/group/ViewableLabelGroup.class.php | 19 ++++ .../lib/system/label/LabelHandler.class.php | 14 +++ .../lib/system/label/LabelPicker.class.php | 32 ++++++ 10 files changed, 209 insertions(+), 11 deletions(-) create mode 100644 ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts create mode 100644 wcfsetup/install/files/lib/system/label/LabelPicker.class.php diff --git a/com.woltlab.wcf/templates/articleAdd.tpl b/com.woltlab.wcf/templates/articleAdd.tpl index 79394c919e6..367d7a518e8 100644 --- a/com.woltlab.wcf/templates/articleAdd.tpl +++ b/com.woltlab.wcf/templates/articleAdd.tpl @@ -161,6 +161,13 @@ {event name='categoryFields'} + + {foreach from=$labelPickers item=labelPicker} +
+
{$labelPicker->labelGroup->getTitle()}
+
{@$labelPicker->toHtml()}
+
+ {/foreach} {if $labelGroups|count} {foreach from=$labelGroups item=labelGroup} diff --git a/ts/WoltLabSuite/WebComponent/index.ts b/ts/WoltLabSuite/WebComponent/index.ts index b44b02355a6..21cd146e720 100644 --- a/ts/WoltLabSuite/WebComponent/index.ts +++ b/ts/WoltLabSuite/WebComponent/index.ts @@ -12,6 +12,7 @@ import "./fa-metadata.js"; import "./fa-brand.ts"; import "./fa-icon.ts"; import "./woltlab-core-date-time.ts"; +import "./woltlab-core-label-picker.ts"; import "./woltlab-core-loading-indicator"; import "./woltlab-core-pagination.ts"; import "./woltlab-core-reaction-summary.ts"; diff --git a/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts b/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts new file mode 100644 index 00000000000..a9bea72a2a7 --- /dev/null +++ b/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts @@ -0,0 +1,99 @@ +{ + class WoltlabCoreLabelPickerElement extends HTMLElement { + readonly #button: HTMLButtonElement; + #labels = new Map(); + + constructor() { + super(); + + this.#button = document.createElement("button"); + } + + connectedCallback() { + if (this.hasAttribute("labels")) { + this.#labels = new Map(JSON.parse(this.getAttribute("labels")!)); + this.removeAttribute("labels"); + } + + if (this.#labels.size === 0) { + throw new Error("Expected a non empty list of labels."); + } + + this.#button.classList.add("dropdownToggle"); + this.#button.innerHTML = `${window.WoltLabLanguage.getPhrase("wcf.label.none")}`; + this.#button.addEventListener("click", (event) => { + event.preventDefault(); + + const evt = new CustomEvent("showPicker"); + this.dispatchEvent(evt); + }); + + this.append(this.#button); + + const dropdownMenu = document.createElement("ul"); + dropdownMenu.classList.add("dropdownMenu"); + for (const [labelId, html] of this.#labels) { + const button = document.createElement("button"); + button.dataset.labelId = labelId.toString(); + button.innerHTML = html; + button.addEventListener("click", () => { + this.selected = labelId; + }); + + const listItem = document.createElement("li"); + listItem.append(button); + + dropdownMenu.append(listItem); + } + + this.append(dropdownMenu); + + this.classList.add("dropdown"); + } + + set selected(selected: number) { + this.setAttribute("selected", selected.toString()); + + this.#button.innerHTML = this.#labels.get(selected)!; + } + + get selected(): number | undefined { + const selected = parseInt(this.getAttribute("selected")!); + if (Number.isNaN(selected)) { + return undefined; + } + + return selected; + } + + set disabled(disabled: boolean) { + if (disabled) { + this.setAttribute("disabled", ""); + } else { + this.removeAttribute("disabled"); + } + } + + get disabled(): boolean { + return this.hasAttribute("disabled"); + } + + set required(required: boolean) { + if (required) { + this.setAttribute("required", ""); + } else { + this.removeAttribute("required"); + } + } + + get required(): boolean { + return this.hasAttribute("required"); + } + + get labels(): Map { + return new Map(this.#labels); + } + } + + window.customElements.define("woltlab-core-label-picker", WoltlabCoreLabelPickerElement); +} diff --git a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js index 9c9112b3542..ffab9ce576b 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js +++ b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js @@ -1,24 +1,24 @@ -"use strict";(()=>{var ke=Object.create;var te=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var xe=Object.getPrototypeOf,Ee=Object.prototype.hasOwnProperty;var se=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,n)=>(typeof require<"u"?require:r)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var _e=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),fe=(e,r)=>{for(var n in r)te(e,n,{get:r[n],enumerable:!0})},Le=(e,r,n,h)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of ve(r))!Ee.call(e,t)&&t!==n&&te(e,t,{get:()=>r[t],enumerable:!(h=ye(r,t))||h.enumerable});return e};var Te=(e,r,n)=>(n=e!=null?ke(xe(e)):{},Le(r||!e||!e.__esModule?te(n,"default",{value:e,enumerable:!0}):n,e));var ce=_e((H,re)=>{"use strict";var Q=function(){var e=function(R,o,f,c){for(f=f||{},c=R.length;c--;f[R[c]]=o);return f},r=[2,44],n=[5,9,11,12,13,18,19,21,22,23,25,26,28,29,30,32,33,34,35,37,39,41],h=[1,25],t=[1,27],a=[1,33],l=[1,31],d=[1,32],b=[1,28],k=[1,29],A=[1,26],S=[1,35],z=[1,41],P=[1,40],u=[11,12,15,42,43,47,49,51,52,54,55],g=[9,11,12,13,18,19,21,23,26,28,30,32,33,34,35,37,39],p=[11,12,15,42,43,46,47,48,49,51,52,54,55],E=[1,64],y=[1,65],_=[18,37,39],C=[12,15],W={trace:function(){},yy:{},symbols_:{error:2,TEMPLATE:3,CHUNK_STAR:4,EOF:5,CHUNK_STAR_repetition0:6,CHUNK:7,PLAIN_ANY:8,T_LITERAL:9,COMMAND:10,T_ANY:11,T_WS:12,"{if":13,COMMAND_PARAMETERS:14,"}":15,COMMAND_repetition0:16,COMMAND_option0:17,"{/if}":18,"{include":19,COMMAND_PARAMETER_LIST:20,"{implode":21,"{/implode}":22,"{foreach":23,COMMAND_option1:24,"{/foreach}":25,"{plural":26,PLURAL_PARAMETER_LIST:27,"{lang}":28,"{/lang}":29,"{":30,VARIABLE:31,"{#":32,"{@":33,"{ldelim}":34,"{rdelim}":35,ELSE:36,"{else}":37,ELSE_IF:38,"{elseif":39,FOREACH_ELSE:40,"{foreachelse}":41,T_VARIABLE:42,T_VARIABLE_NAME:43,VARIABLE_repetition0:44,VARIABLE_SUFFIX:45,"[":46,"]":47,".":48,"(":49,VARIABLE_SUFFIX_option0:50,")":51,"=":52,COMMAND_PARAMETER_VALUE:53,T_QUOTED_STRING:54,T_DIGITS:55,COMMAND_PARAMETERS_repetition_plus0:56,COMMAND_PARAMETER:57,T_PLURAL_PARAMETER_NAME:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",9:"T_LITERAL",11:"T_ANY",12:"T_WS",13:"{if",15:"}",18:"{/if}",19:"{include",21:"{implode",22:"{/implode}",23:"{foreach",25:"{/foreach}",26:"{plural",28:"{lang}",29:"{/lang}",30:"{",32:"{#",33:"{@",34:"{ldelim}",35:"{rdelim}",37:"{else}",39:"{elseif",41:"{foreachelse}",42:"T_VARIABLE",43:"T_VARIABLE_NAME",46:"[",47:"]",48:".",49:"(",51:")",52:"=",54:"T_QUOTED_STRING",55:"T_DIGITS"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[8,1],[8,1],[10,7],[10,3],[10,5],[10,6],[10,3],[10,3],[10,3],[10,3],[10,3],[10,1],[10,1],[36,2],[38,4],[40,2],[31,3],[45,3],[45,2],[45,3],[20,5],[20,3],[53,1],[53,1],[53,1],[14,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,3],[27,5],[27,3],[58,1],[58,1],[6,0],[6,2],[16,0],[16,2],[17,0],[17,1],[24,0],[24,1],[44,0],[44,2],[50,0],[50,1],[56,1],[56,2]],performAction:function(o,f,c,w,m,s,U){var i=s.length-1;switch(m){case 1:return s[i-1]+";";case 2:var D=s[i].reduce(function(L,T){return T.encode&&!L[1]?L[0]+=" + '"+T.value:T.encode&&L[1]?L[0]+=T.value:!T.encode&&L[1]?L[0]+="' + "+T.value:!T.encode&&!L[1]&&(L[0]+=" + "+T.value),L[1]=T.encode,L},["''",!1]);D[1]&&(D[0]+="'"),this.$=D[0];break;case 3:case 4:this.$={encode:!0,value:s[i].replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\r\n|\n|\r)/g,"\\n")};break;case 5:this.$={encode:!1,value:s[i]};break;case 8:this.$="(function() { if ("+s[i-5]+") { return "+s[i-3]+"; } "+s[i-2].join(" ")+" "+(s[i-1]||"")+" return ''; })()";break;case 9:if(!s[i-1].file)throw new Error("Missing parameter file");this.$=s[i-1].file+".fetch(v)";break;case 10:if(!s[i-3].from)throw new Error("Missing parameter from");if(!s[i-3].item)throw new Error("Missing parameter item");s[i-3].glue||(s[i-3].glue="', '"),this.$="(function() { return "+s[i-3].from+".map(function(item) { v["+s[i-3].item+"] = item; return "+s[i-1]+"; }).join("+s[i-3].glue+"); })()";break;case 11:if(!s[i-4].from)throw new Error("Missing parameter from");if(!s[i-4].item)throw new Error("Missing parameter item");this.$="(function() {var looped = false, result = '';if ("+s[i-4].from+" instanceof Array) {for (var i = 0; i < "+s[i-4].from+".length; i++) { looped = true;v["+s[i-4].key+"] = i;v["+s[i-4].item+"] = "+s[i-4].from+"[i];result += "+s[i-2]+";}} else {for (var key in "+s[i-4].from+") {if (!"+s[i-4].from+".hasOwnProperty(key)) continue;looped = true;v["+s[i-4].key+"] = key;v["+s[i-4].item+"] = "+s[i-4].from+"[key];result += "+s[i-2]+";}}return (looped ? result : "+(s[i-1]||"''")+"); })()";break;case 12:this.$="h.selectPlural({";var B=!1;for(var F in s[i-1])objOwns(s[i-1],F)&&(this.$+=(B?",":"")+F+": "+s[i-1][F],B=!0);this.$+="})";break;case 13:this.$="Language.get("+s[i-1]+", v)";break;case 14:this.$="h.escapeHTML("+s[i-1]+")";break;case 15:this.$="h.formatNumeric("+s[i-1]+")";break;case 16:this.$=s[i-1];break;case 17:this.$="'{'";break;case 18:this.$="'}'";break;case 19:this.$="else { return "+s[i]+"; }";break;case 20:this.$="else if ("+s[i-2]+") { return "+s[i]+"; }";break;case 21:this.$=s[i];break;case 22:this.$="v['"+s[i-1]+"']"+s[i].join("");break;case 23:this.$=s[i-2]+s[i-1]+s[i];break;case 24:this.$="['"+s[i]+"']";break;case 25:case 39:this.$=s[i-2]+(s[i-1]||"")+s[i];break;case 26:case 40:this.$=s[i],this.$[s[i-4]]=s[i-2];break;case 27:case 41:this.$={},this.$[s[i-2]]=s[i];break;case 31:this.$=s[i].join("");break;case 44:case 46:case 52:this.$=[];break;case 45:case 47:case 53:case 57:s[i-1].push(s[i]);break;case 56:this.$=[s[i]];break}},table:[e([5,9,11,12,13,19,21,23,26,28,30,32,33,34,35],r,{3:1,4:2,6:3}),{1:[3]},{5:[1,4]},e([5,18,22,25,29,37,39,41],[2,2],{7:5,8:6,10:8,9:[1,7],11:[1,9],12:[1,10],13:[1,11],19:[1,12],21:[1,13],23:[1,14],26:[1,15],28:[1,16],30:[1,17],32:[1,18],33:[1,19],34:[1,20],35:[1,21]}),{1:[2,1]},e(n,[2,45]),e(n,[2,3]),e(n,[2,4]),e(n,[2,5]),e(n,[2,6]),e(n,[2,7]),{11:h,12:t,14:22,31:30,42:a,43:l,49:d,52:b,54:k,55:A,56:23,57:24},{20:34,43:S},{20:36,43:S},{20:37,43:S},{27:38,43:z,55:P,58:39},e([9,11,12,13,19,21,23,26,28,29,30,32,33,34,35],r,{6:3,4:42}),{31:43,42:a},{31:44,42:a},{31:45,42:a},e(n,[2,17]),e(n,[2,18]),{15:[1,46]},e([15,47,51],[2,31],{31:30,57:47,11:h,12:t,42:a,43:l,49:d,52:b,54:k,55:A}),e(u,[2,56]),e(u,[2,32]),e(u,[2,33]),e(u,[2,34]),e(u,[2,35]),e(u,[2,36]),e(u,[2,37]),e(u,[2,38]),{11:h,12:t,14:48,31:30,42:a,43:l,49:d,52:b,54:k,55:A,56:23,57:24},{43:[1,49]},{15:[1,50]},{52:[1,51]},{15:[1,52]},{15:[1,53]},{15:[1,54]},{52:[1,55]},{52:[2,42]},{52:[2,43]},{29:[1,56]},{15:[1,57]},{15:[1,58]},{15:[1,59]},e(g,r,{6:3,4:60}),e(u,[2,57]),{51:[1,61]},e(p,[2,52],{44:62}),e(n,[2,9]),{31:66,42:a,53:63,54:E,55:y},e([9,11,12,13,19,21,22,23,26,28,30,32,33,34,35],r,{6:3,4:67}),e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35,41],r,{6:3,4:68}),e(n,[2,12]),{31:66,42:a,53:69,54:E,55:y},e(n,[2,13]),e(n,[2,14]),e(n,[2,15]),e(n,[2,16]),e(_,[2,46],{16:70}),e(u,[2,39]),e([11,12,15,42,43,47,51,52,54,55],[2,22],{45:71,46:[1,72],48:[1,73],49:[1,74]}),{12:[1,75],15:[2,27]},e(C,[2,28]),e(C,[2,29]),e(C,[2,30]),{22:[1,76]},{24:77,25:[2,50],40:78,41:[1,79]},{12:[1,80],15:[2,41]},{17:81,18:[2,48],36:83,37:[1,85],38:82,39:[1,84]},e(p,[2,53]),{11:h,12:t,14:86,31:30,42:a,43:l,49:d,52:b,54:k,55:A,56:23,57:24},{43:[1,87]},{11:h,12:t,14:89,31:30,42:a,43:l,49:d,50:88,51:[2,54],52:b,54:k,55:A,56:23,57:24},{20:90,43:S},e(n,[2,10]),{25:[1,91]},{25:[2,51]},e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35],r,{6:3,4:92}),{27:93,43:z,55:P,58:39},{18:[1,94]},e(_,[2,47]),{18:[2,49]},{11:h,12:t,14:95,31:30,42:a,43:l,49:d,52:b,54:k,55:A,56:23,57:24},e([9,11,12,13,18,19,21,23,26,28,30,32,33,34,35],r,{6:3,4:96}),{47:[1,97]},e(p,[2,24]),{51:[1,98]},{51:[2,55]},{15:[2,26]},e(n,[2,11]),{25:[2,21]},{15:[2,40]},e(n,[2,8]),{15:[1,99]},{18:[2,19]},e(p,[2,23]),e(p,[2,25]),e(g,r,{6:3,4:100}),e(_,[2,20])],defaultActions:{4:[2,1],40:[2,42],41:[2,43],78:[2,51],83:[2,49],89:[2,55],90:[2,26],92:[2,21],93:[2,40],96:[2,19]},parseError:function(o,f){if(f.recoverable)this.trace(o);else{var c=new Error(o);throw c.hash=f,c}},parse:function(o){var f=this,c=[0],w=[],m=[null],s=[],U=this.table,i="",D=0,B=0,F=0,L=2,T=1,me=s.slice.call(arguments,1),v=Object.create(this.lexer),j={yy:{}};for(var X in this.yy)Object.prototype.hasOwnProperty.call(this.yy,X)&&(j.yy[X]=this.yy[X]);v.setInput(o,j.yy),j.yy.lexer=v,j.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var J=v.yylloc;s.push(J);var be=v.options&&v.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Re(M){c.length=c.length-2*M,m.length=m.length-M,s.length=s.length-M}for(var we=function(){var M;return M=v.lex()||T,typeof M!="number"&&(M=f.symbols_[M]||M),M},x,$,O,q,De,ee,N={},Y,I,oe,Z;;){if(O=c[c.length-1],this.defaultActions[O]?q=this.defaultActions[O]:((x===null||typeof x>"u")&&(x=we()),q=U[O]&&U[O][x]),typeof q>"u"||!q.length||!q[0]){var ae="";Z=[];for(Y in U[O])this.terminals_[Y]&&Y>L&&Z.push("'"+this.terminals_[Y]+"'");v.showPosition?ae="Parse error on line "+(D+1)+`: +"use strict";(()=>{var ke=Object.create;var te=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var Ee=Object.getPrototypeOf,xe=Object.prototype.hasOwnProperty;var se=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,l)=>(typeof require<"u"?require:r)[l]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Le=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),fe=(e,r)=>{for(var l in r)te(e,l,{get:r[l],enumerable:!0})},_e=(e,r,l,u)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of ve(r))!xe.call(e,t)&&t!==l&&te(e,t,{get:()=>r[t],enumerable:!(u=ye(r,t))||u.enumerable});return e};var Te=(e,r,l)=>(l=e!=null?ke(Ee(e)):{},_e(r||!e||!e.__esModule?te(l,"default",{value:e,enumerable:!0}):l,e));var ce=Le((N,re)=>{"use strict";var Q=function(){var e=function(R,o,f,c){for(f=f||{},c=R.length;c--;f[R[c]]=o);return f},r=[2,44],l=[5,9,11,12,13,18,19,21,22,23,25,26,28,29,30,32,33,34,35,37,39,41],u=[1,25],t=[1,27],a=[1,33],i=[1,31],d=[1,32],b=[1,28],k=[1,29],q=[1,26],S=[1,35],z=[1,41],P=[1,40],h=[11,12,15,42,43,47,49,51,52,54,55],g=[9,11,12,13,18,19,21,23,26,28,30,32,33,34,35,37,39],p=[11,12,15,42,43,46,47,48,49,51,52,54,55],x=[1,64],y=[1,65],L=[18,37,39],C=[12,15],W={trace:function(){},yy:{},symbols_:{error:2,TEMPLATE:3,CHUNK_STAR:4,EOF:5,CHUNK_STAR_repetition0:6,CHUNK:7,PLAIN_ANY:8,T_LITERAL:9,COMMAND:10,T_ANY:11,T_WS:12,"{if":13,COMMAND_PARAMETERS:14,"}":15,COMMAND_repetition0:16,COMMAND_option0:17,"{/if}":18,"{include":19,COMMAND_PARAMETER_LIST:20,"{implode":21,"{/implode}":22,"{foreach":23,COMMAND_option1:24,"{/foreach}":25,"{plural":26,PLURAL_PARAMETER_LIST:27,"{lang}":28,"{/lang}":29,"{":30,VARIABLE:31,"{#":32,"{@":33,"{ldelim}":34,"{rdelim}":35,ELSE:36,"{else}":37,ELSE_IF:38,"{elseif":39,FOREACH_ELSE:40,"{foreachelse}":41,T_VARIABLE:42,T_VARIABLE_NAME:43,VARIABLE_repetition0:44,VARIABLE_SUFFIX:45,"[":46,"]":47,".":48,"(":49,VARIABLE_SUFFIX_option0:50,")":51,"=":52,COMMAND_PARAMETER_VALUE:53,T_QUOTED_STRING:54,T_DIGITS:55,COMMAND_PARAMETERS_repetition_plus0:56,COMMAND_PARAMETER:57,T_PLURAL_PARAMETER_NAME:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",9:"T_LITERAL",11:"T_ANY",12:"T_WS",13:"{if",15:"}",18:"{/if}",19:"{include",21:"{implode",22:"{/implode}",23:"{foreach",25:"{/foreach}",26:"{plural",28:"{lang}",29:"{/lang}",30:"{",32:"{#",33:"{@",34:"{ldelim}",35:"{rdelim}",37:"{else}",39:"{elseif",41:"{foreachelse}",42:"T_VARIABLE",43:"T_VARIABLE_NAME",46:"[",47:"]",48:".",49:"(",51:")",52:"=",54:"T_QUOTED_STRING",55:"T_DIGITS"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[8,1],[8,1],[10,7],[10,3],[10,5],[10,6],[10,3],[10,3],[10,3],[10,3],[10,3],[10,1],[10,1],[36,2],[38,4],[40,2],[31,3],[45,3],[45,2],[45,3],[20,5],[20,3],[53,1],[53,1],[53,1],[14,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,3],[27,5],[27,3],[58,1],[58,1],[6,0],[6,2],[16,0],[16,2],[17,0],[17,1],[24,0],[24,1],[44,0],[44,2],[50,0],[50,1],[56,1],[56,2]],performAction:function(o,f,c,w,m,s,U){var n=s.length-1;switch(m){case 1:return s[n-1]+";";case 2:var D=s[n].reduce(function(_,T){return T.encode&&!_[1]?_[0]+=" + '"+T.value:T.encode&&_[1]?_[0]+=T.value:!T.encode&&_[1]?_[0]+="' + "+T.value:!T.encode&&!_[1]&&(_[0]+=" + "+T.value),_[1]=T.encode,_},["''",!1]);D[1]&&(D[0]+="'"),this.$=D[0];break;case 3:case 4:this.$={encode:!0,value:s[n].replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\r\n|\n|\r)/g,"\\n")};break;case 5:this.$={encode:!1,value:s[n]};break;case 8:this.$="(function() { if ("+s[n-5]+") { return "+s[n-3]+"; } "+s[n-2].join(" ")+" "+(s[n-1]||"")+" return ''; })()";break;case 9:if(!s[n-1].file)throw new Error("Missing parameter file");this.$=s[n-1].file+".fetch(v)";break;case 10:if(!s[n-3].from)throw new Error("Missing parameter from");if(!s[n-3].item)throw new Error("Missing parameter item");s[n-3].glue||(s[n-3].glue="', '"),this.$="(function() { return "+s[n-3].from+".map(function(item) { v["+s[n-3].item+"] = item; return "+s[n-1]+"; }).join("+s[n-3].glue+"); })()";break;case 11:if(!s[n-4].from)throw new Error("Missing parameter from");if(!s[n-4].item)throw new Error("Missing parameter item");this.$="(function() {var looped = false, result = '';if ("+s[n-4].from+" instanceof Array) {for (var i = 0; i < "+s[n-4].from+".length; i++) { looped = true;v["+s[n-4].key+"] = i;v["+s[n-4].item+"] = "+s[n-4].from+"[i];result += "+s[n-2]+";}} else {for (var key in "+s[n-4].from+") {if (!"+s[n-4].from+".hasOwnProperty(key)) continue;looped = true;v["+s[n-4].key+"] = key;v["+s[n-4].item+"] = "+s[n-4].from+"[key];result += "+s[n-2]+";}}return (looped ? result : "+(s[n-1]||"''")+"); })()";break;case 12:this.$="h.selectPlural({";var B=!1;for(var O in s[n-1])objOwns(s[n-1],O)&&(this.$+=(B?",":"")+O+": "+s[n-1][O],B=!0);this.$+="})";break;case 13:this.$="Language.get("+s[n-1]+", v)";break;case 14:this.$="h.escapeHTML("+s[n-1]+")";break;case 15:this.$="h.formatNumeric("+s[n-1]+")";break;case 16:this.$=s[n-1];break;case 17:this.$="'{'";break;case 18:this.$="'}'";break;case 19:this.$="else { return "+s[n]+"; }";break;case 20:this.$="else if ("+s[n-2]+") { return "+s[n]+"; }";break;case 21:this.$=s[n];break;case 22:this.$="v['"+s[n-1]+"']"+s[n].join("");break;case 23:this.$=s[n-2]+s[n-1]+s[n];break;case 24:this.$="['"+s[n]+"']";break;case 25:case 39:this.$=s[n-2]+(s[n-1]||"")+s[n];break;case 26:case 40:this.$=s[n],this.$[s[n-4]]=s[n-2];break;case 27:case 41:this.$={},this.$[s[n-2]]=s[n];break;case 31:this.$=s[n].join("");break;case 44:case 46:case 52:this.$=[];break;case 45:case 47:case 53:case 57:s[n-1].push(s[n]);break;case 56:this.$=[s[n]];break}},table:[e([5,9,11,12,13,19,21,23,26,28,30,32,33,34,35],r,{3:1,4:2,6:3}),{1:[3]},{5:[1,4]},e([5,18,22,25,29,37,39,41],[2,2],{7:5,8:6,10:8,9:[1,7],11:[1,9],12:[1,10],13:[1,11],19:[1,12],21:[1,13],23:[1,14],26:[1,15],28:[1,16],30:[1,17],32:[1,18],33:[1,19],34:[1,20],35:[1,21]}),{1:[2,1]},e(l,[2,45]),e(l,[2,3]),e(l,[2,4]),e(l,[2,5]),e(l,[2,6]),e(l,[2,7]),{11:u,12:t,14:22,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{20:34,43:S},{20:36,43:S},{20:37,43:S},{27:38,43:z,55:P,58:39},e([9,11,12,13,19,21,23,26,28,29,30,32,33,34,35],r,{6:3,4:42}),{31:43,42:a},{31:44,42:a},{31:45,42:a},e(l,[2,17]),e(l,[2,18]),{15:[1,46]},e([15,47,51],[2,31],{31:30,57:47,11:u,12:t,42:a,43:i,49:d,52:b,54:k,55:q}),e(h,[2,56]),e(h,[2,32]),e(h,[2,33]),e(h,[2,34]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{11:u,12:t,14:48,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{43:[1,49]},{15:[1,50]},{52:[1,51]},{15:[1,52]},{15:[1,53]},{15:[1,54]},{52:[1,55]},{52:[2,42]},{52:[2,43]},{29:[1,56]},{15:[1,57]},{15:[1,58]},{15:[1,59]},e(g,r,{6:3,4:60}),e(h,[2,57]),{51:[1,61]},e(p,[2,52],{44:62}),e(l,[2,9]),{31:66,42:a,53:63,54:x,55:y},e([9,11,12,13,19,21,22,23,26,28,30,32,33,34,35],r,{6:3,4:67}),e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35,41],r,{6:3,4:68}),e(l,[2,12]),{31:66,42:a,53:69,54:x,55:y},e(l,[2,13]),e(l,[2,14]),e(l,[2,15]),e(l,[2,16]),e(L,[2,46],{16:70}),e(h,[2,39]),e([11,12,15,42,43,47,51,52,54,55],[2,22],{45:71,46:[1,72],48:[1,73],49:[1,74]}),{12:[1,75],15:[2,27]},e(C,[2,28]),e(C,[2,29]),e(C,[2,30]),{22:[1,76]},{24:77,25:[2,50],40:78,41:[1,79]},{12:[1,80],15:[2,41]},{17:81,18:[2,48],36:83,37:[1,85],38:82,39:[1,84]},e(p,[2,53]),{11:u,12:t,14:86,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{43:[1,87]},{11:u,12:t,14:89,31:30,42:a,43:i,49:d,50:88,51:[2,54],52:b,54:k,55:q,56:23,57:24},{20:90,43:S},e(l,[2,10]),{25:[1,91]},{25:[2,51]},e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35],r,{6:3,4:92}),{27:93,43:z,55:P,58:39},{18:[1,94]},e(L,[2,47]),{18:[2,49]},{11:u,12:t,14:95,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},e([9,11,12,13,18,19,21,23,26,28,30,32,33,34,35],r,{6:3,4:96}),{47:[1,97]},e(p,[2,24]),{51:[1,98]},{51:[2,55]},{15:[2,26]},e(l,[2,11]),{25:[2,21]},{15:[2,40]},e(l,[2,8]),{15:[1,99]},{18:[2,19]},e(p,[2,23]),e(p,[2,25]),e(g,r,{6:3,4:100}),e(L,[2,20])],defaultActions:{4:[2,1],40:[2,42],41:[2,43],78:[2,51],83:[2,49],89:[2,55],90:[2,26],92:[2,21],93:[2,40],96:[2,19]},parseError:function(o,f){if(f.recoverable)this.trace(o);else{var c=new Error(o);throw c.hash=f,c}},parse:function(o){var f=this,c=[0],w=[],m=[null],s=[],U=this.table,n="",D=0,B=0,O=0,_=2,T=1,me=s.slice.call(arguments,1),v=Object.create(this.lexer),j={yy:{}};for(var X in this.yy)Object.prototype.hasOwnProperty.call(this.yy,X)&&(j.yy[X]=this.yy[X]);v.setInput(o,j.yy),j.yy.lexer=v,j.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var J=v.yylloc;s.push(J);var be=v.options&&v.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Re(M){c.length=c.length-2*M,m.length=m.length-M,s.length=s.length-M}for(var we=function(){var M;return M=v.lex()||T,typeof M!="number"&&(M=f.symbols_[M]||M),M},E,$,H,A,De,ee,F={},Y,I,oe,Z;;){if(H=c[c.length-1],this.defaultActions[H]?A=this.defaultActions[H]:((E===null||typeof E>"u")&&(E=we()),A=U[H]&&U[H][E]),typeof A>"u"||!A.length||!A[0]){var ae="";Z=[];for(Y in U[H])this.terminals_[Y]&&Y>_&&Z.push("'"+this.terminals_[Y]+"'");v.showPosition?ae="Parse error on line "+(D+1)+`: `+v.showPosition()+` -Expecting `+Z.join(", ")+", got '"+(this.terminals_[x]||x)+"'":ae="Parse error on line "+(D+1)+": Unexpected "+(x==T?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(ae,{text:v.match,token:this.terminals_[x]||x,line:v.yylineno,loc:J,expected:Z})}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+x);switch(q[0]){case 1:c.push(x),m.push(v.yytext),s.push(v.yylloc),c.push(q[1]),x=null,$?(x=$,$=null):(B=v.yyleng,i=v.yytext,D=v.yylineno,J=v.yylloc,F>0&&F--);break;case 2:if(I=this.productions_[q[1]][1],N.$=m[m.length-I],N._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column},be&&(N._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]]),ee=this.performAction.apply(N,[i,B,D,j.yy,q[1],m,s].concat(me)),typeof ee<"u")return ee;I&&(c=c.slice(0,-1*I*2),m=m.slice(0,-1*I),s=s.slice(0,-1*I)),c.push(this.productions_[q[1]][0]),m.push(N.$),s.push(N._$),oe=U[c[c.length-2]][c[c.length-1]],c.push(oe);break;case 3:return!0}}return!0}},ge=function(){var R={EOF:1,parseError:function(f,c){if(this.yy.parser)this.yy.parser.parseError(f,c);else throw new Error(f)},setInput:function(o,f){return this.yy=f||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var f=o.match(/(?:\r\n?|\n).*/g);return f?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var f=o.length,c=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-f),this.offset-=f;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var m=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===w.length?this.yylloc.first_column:0)+w[w.length-c.length].length-c[0].length:this.yylloc.first_column-f},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-f]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +Expecting `+Z.join(", ")+", got '"+(this.terminals_[E]||E)+"'":ae="Parse error on line "+(D+1)+": Unexpected "+(E==T?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(ae,{text:v.match,token:this.terminals_[E]||E,line:v.yylineno,loc:J,expected:Z})}if(A[0]instanceof Array&&A.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+E);switch(A[0]){case 1:c.push(E),m.push(v.yytext),s.push(v.yylloc),c.push(A[1]),E=null,$?(E=$,$=null):(B=v.yyleng,n=v.yytext,D=v.yylineno,J=v.yylloc,O>0&&O--);break;case 2:if(I=this.productions_[A[1]][1],F.$=m[m.length-I],F._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column},be&&(F._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]]),ee=this.performAction.apply(F,[n,B,D,j.yy,A[1],m,s].concat(me)),typeof ee<"u")return ee;I&&(c=c.slice(0,-1*I*2),m=m.slice(0,-1*I),s=s.slice(0,-1*I)),c.push(this.productions_[A[1]][0]),m.push(F.$),s.push(F._$),oe=U[c[c.length-2]][c[c.length-1]],c.push(oe);break;case 3:return!0}}return!0}},ge=function(){var R={EOF:1,parseError:function(f,c){if(this.yy.parser)this.yy.parser.parseError(f,c);else throw new Error(f)},setInput:function(o,f){return this.yy=f||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var f=o.match(/(?:\r\n?|\n).*/g);return f?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var f=o.length,c=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-f),this.offset-=f;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var m=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===w.length?this.yylloc.first_column:0)+w[w.length-c.length].length-c[0].length:this.yylloc.first_column-f},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-f]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),f=new Array(o.length+1).join("-");return o+this.upcomingInput()+` `+f+"^"},test_match:function(o,f){var c,w,m;if(this.options.backtrack_lexer&&(m={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(m.yylloc.range=this.yylloc.range.slice(0))),w=o[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],c=this.performAction.call(this,this.yy,this,f,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var s in m)this[s]=m[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,f,c,w;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),s=0;sf[0].length)){if(f=c,w=s,this.options.backtrack_lexer){if(o=this.test_match(c,m[s]),o!==!1)return o;if(this._backtrack){f=!1;continue}else return!1}else if(!this.options.flex)break}return f?(o=this.test_match(f,m[w]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var f=this.next();return f||this.lex()},begin:function(f){this.conditionStack.push(f)},popState:function(){var f=this.conditionStack.length-1;return f>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(f){return f=this.conditionStack.length-1-Math.abs(f||0),f>=0?this.conditionStack[f]:"INITIAL"},pushState:function(f){this.begin(f)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(f,c,w,m){var s=m;switch(w){case 0:break;case 1:return c.yytext=c.yytext.substring(9,c.yytext.length-10),9;break;case 2:return 54;case 3:return 54;case 4:return 42;case 5:return 55;case 6:return 43;case 7:return 48;case 8:return 46;case 9:return 47;case 10:return 49;case 11:return 51;case 12:return 52;case 13:return 34;case 14:return 35;case 15:return this.begin("command"),32;break;case 16:return this.begin("command"),33;break;case 17:return this.begin("command"),13;break;case 18:return this.begin("command"),39;break;case 19:return this.begin("command"),39;break;case 20:return 37;case 21:return 18;case 22:return 28;case 23:return 29;case 24:return this.begin("command"),19;break;case 25:return this.begin("command"),21;break;case 26:return this.begin("command"),26;break;case 27:return 22;case 28:return this.begin("command"),23;break;case 29:return 41;case 30:return 25;case 31:return this.begin("command"),30;break;case 32:return this.popState(),15;break;case 33:return 12;case 34:return 5;case 35:return 11}},rules:[/^(?:\{\*[\s\S]*?\*\})/,/^(?:\{literal\}[\s\S]*?\{\/literal\})/,/^(?:"([^"]|\\\.)*")/,/^(?:'([^']|\\\.)*')/,/^(?:\$)/,/^(?:[0-9]+)/,/^(?:[_a-zA-Z][_a-zA-Z0-9]*)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:\()/,/^(?:\))/,/^(?:=)/,/^(?:\{ldelim\})/,/^(?:\{rdelim\})/,/^(?:\{#)/,/^(?:\{@)/,/^(?:\{if )/,/^(?:\{else if )/,/^(?:\{elseif )/,/^(?:\{else\})/,/^(?:\{\/if\})/,/^(?:\{lang\})/,/^(?:\{\/lang\})/,/^(?:\{include )/,/^(?:\{implode )/,/^(?:\{plural )/,/^(?:\{\/implode\})/,/^(?:\{foreach )/,/^(?:\{foreachelse\})/,/^(?:\{\/foreach\})/,/^(?:\{(?!\s))/,/^(?:\})/,/^(?:\s+)/,/^(?:$)/,/^(?:[^{])/],conditions:{command:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],inclusive:!0},INITIAL:{rules:[0,1,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35],inclusive:!0}}};return R}();W.lexer=ge;function K(){this.yy={}}return K.prototype=W,W.Parser=K,new K}();typeof se<"u"&&typeof H<"u"&&(H.parser=Q,H.Parser=Q.Parser,H.parse=function(){return Q.parse.apply(Q,arguments)},H.main=!0,typeof re<"u"&&se.main===re&&H.main(process.argv.slice(1)))});var ne={};fe(ne,{getPhrase:()=>le,registerPhrase:()=>Ie});var he=Te(ce());var ie={};fe(ie,{add:()=>G,get:()=>le});var ue=new Map;function le(e,r={}){let n=ue.get(e);return n===void 0?e:n(r)}function G(e,r){ue.set(e,r)}function qe(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function de(e){return Number(e).toLocaleString(document.documentElement.lang,{maximumFractionDigits:2}).replace("-","\u2212")}var Ae=new Intl.PluralRules(document.documentElement.lang);function Se(e){if(!Object.hasOwn(e,"value"))throw new Error("Missing parameter value");if(!e.other)throw new Error("Missing parameter other");let r=e.value;Array.isArray(r)&&(r=r.length);let n=Object.keys(e).find(a=>a.toString()===parseInt(a).toString()&&a.toString()===r.toString());if(n)return n;let h=Ae.select(r);e[h]===void 0&&(h="other");let t=e[h];return t.includes("#")?t.replace("#",de(r)):t}function Me(e){let r=`var tmp = {}; +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var f=this.next();return f||this.lex()},begin:function(f){this.conditionStack.push(f)},popState:function(){var f=this.conditionStack.length-1;return f>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(f){return f=this.conditionStack.length-1-Math.abs(f||0),f>=0?this.conditionStack[f]:"INITIAL"},pushState:function(f){this.begin(f)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(f,c,w,m){var s=m;switch(w){case 0:break;case 1:return c.yytext=c.yytext.substring(9,c.yytext.length-10),9;break;case 2:return 54;case 3:return 54;case 4:return 42;case 5:return 55;case 6:return 43;case 7:return 48;case 8:return 46;case 9:return 47;case 10:return 49;case 11:return 51;case 12:return 52;case 13:return 34;case 14:return 35;case 15:return this.begin("command"),32;break;case 16:return this.begin("command"),33;break;case 17:return this.begin("command"),13;break;case 18:return this.begin("command"),39;break;case 19:return this.begin("command"),39;break;case 20:return 37;case 21:return 18;case 22:return 28;case 23:return 29;case 24:return this.begin("command"),19;break;case 25:return this.begin("command"),21;break;case 26:return this.begin("command"),26;break;case 27:return 22;case 28:return this.begin("command"),23;break;case 29:return 41;case 30:return 25;case 31:return this.begin("command"),30;break;case 32:return this.popState(),15;break;case 33:return 12;case 34:return 5;case 35:return 11}},rules:[/^(?:\{\*[\s\S]*?\*\})/,/^(?:\{literal\}[\s\S]*?\{\/literal\})/,/^(?:"([^"]|\\\.)*")/,/^(?:'([^']|\\\.)*')/,/^(?:\$)/,/^(?:[0-9]+)/,/^(?:[_a-zA-Z][_a-zA-Z0-9]*)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:\()/,/^(?:\))/,/^(?:=)/,/^(?:\{ldelim\})/,/^(?:\{rdelim\})/,/^(?:\{#)/,/^(?:\{@)/,/^(?:\{if )/,/^(?:\{else if )/,/^(?:\{elseif )/,/^(?:\{else\})/,/^(?:\{\/if\})/,/^(?:\{lang\})/,/^(?:\{\/lang\})/,/^(?:\{include )/,/^(?:\{implode )/,/^(?:\{plural )/,/^(?:\{\/implode\})/,/^(?:\{foreach )/,/^(?:\{foreachelse\})/,/^(?:\{\/foreach\})/,/^(?:\{(?!\s))/,/^(?:\})/,/^(?:\s+)/,/^(?:$)/,/^(?:[^{])/],conditions:{command:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],inclusive:!0},INITIAL:{rules:[0,1,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35],inclusive:!0}}};return R}();W.lexer=ge;function K(){this.yy={}}return K.prototype=W,W.Parser=K,new K}();typeof se<"u"&&typeof N<"u"&&(N.parser=Q,N.Parser=Q.Parser,N.parse=function(){return Q.parse.apply(Q,arguments)},N.main=!0,typeof re<"u"&&se.main===re&&N.main(process.argv.slice(1)))});var ne={};fe(ne,{getPhrase:()=>le,registerPhrase:()=>Ie});var he=Te(ce());var ie={};fe(ie,{add:()=>G,get:()=>le});var ue=new Map;function le(e,r={}){let l=ue.get(e);return l===void 0?e:l(r)}function G(e,r){ue.set(e,r)}function Ae(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function de(e){return Number(e).toLocaleString(document.documentElement.lang,{maximumFractionDigits:2}).replace("-","\u2212")}var qe=new Intl.PluralRules(document.documentElement.lang);function Se(e){if(!Object.hasOwn(e,"value"))throw new Error("Missing parameter value");if(!e.other)throw new Error("Missing parameter other");let r=e.value;Array.isArray(r)&&(r=r.length);let l=Object.keys(e).find(a=>a.toString()===parseInt(a).toString()&&a.toString()===r.toString());if(l)return l;let u=qe.select(r);e[u]===void 0&&(u="other");let t=e[u];return t.includes("#")?t.replace("#",de(r)):t}function Me(e){let r=`var tmp = {}; for (var key in v) tmp[key] = v[key]; v = tmp; v.__wcf = window.WCF; v.__window = window; return ${he.parse(e)} - `;return new Function("Language","h","v",r)}var V=class{compiled;constructor(r){try{this.compiled=Me(r)}catch(n){throw n instanceof Error&&console.debug(n.message),n}}fetch(r){return this.compiled(ie,{selectPlural:Se,escapeHTML:qe,formatNumeric:de},r)}};function Ie(e,r){typeof r=="string"?G(e,ze(r)):G(e,function(){return r})}function ze(e){if(!e.includes("{"))return function(){return e};try{let r=new V(e);return r.fetch.bind(r)}catch{return function(){return e}}}var Pe=(()=>{let e="DOMContentLoaded",r=new WeakMap,n=[],h=l=>{do if(l.nextSibling)return!0;while(l=l.parentNode);return!1},t=()=>{n.splice(0).forEach(l=>{r.get(l[0])!==!0&&(r.set(l[0],!0),l[0][l[1]]())})};document.addEventListener(e,t);class a extends HTMLElement{static withParsedCallback(d,b="parsed"){let{prototype:k}=d,{connectedCallback:A}=k,S=b+"Callback",z=(u,g,p,E)=>{g.disconnect(),p.removeEventListener(e,E),P(u)},P=u=>{n.length||requestAnimationFrame(t),n.push([u,S])};return Object.defineProperties(k,{connectedCallback:{configurable:!0,writable:!0,value(){if(A&&A.apply(this,arguments),S in this&&!r.has(this)){let u=this,{ownerDocument:g}=u;if(r.set(u,!1),g.readyState==="complete"||h(u))P(u);else{let p=()=>z(u,E,g,p);g.addEventListener(e,p);let E=new MutationObserver(()=>{h(u)&&z(u,E,g,p)});E.observe(u.parentNode,{childList:!0,subtree:!0})}}}},[b]:{configurable:!0,get(){return r.get(this)===!0}}}),d}}return a.withParsedCallback(a)})(),pe=Pe;(()=>{let e=new Map([["contact-book","address-book"],["contact-card","address-card"],["vcard","address-card"],["angle-double-down","angles-down"],["angle-double-left","angles-left"],["angle-double-right","angles-right"],["angle-double-up","angles-up"],["apple-alt","apple-whole"],["sort-numeric-asc","arrow-down-1-9"],["sort-numeric-down","arrow-down-1-9"],["sort-numeric-desc","arrow-down-9-1"],["sort-numeric-down-alt","arrow-down-9-1"],["sort-alpha-asc","arrow-down-a-z"],["sort-alpha-down","arrow-down-a-z"],["long-arrow-down","arrow-down-long"],["sort-amount-desc","arrow-down-short-wide"],["sort-amount-down-alt","arrow-down-short-wide"],["sort-amount-asc","arrow-down-wide-short"],["sort-amount-down","arrow-down-wide-short"],["sort-alpha-desc","arrow-down-z-a"],["sort-alpha-down-alt","arrow-down-z-a"],["long-arrow-left","arrow-left-long"],["mouse-pointer","arrow-pointer"],["exchange","arrow-right-arrow-left"],["sign-out","arrow-right-from-bracket"],["long-arrow-right","arrow-right-long"],["sign-in","arrow-right-to-bracket"],["arrow-left-rotate","arrow-rotate-left"],["arrow-rotate-back","arrow-rotate-left"],["arrow-rotate-backward","arrow-rotate-left"],["undo","arrow-rotate-left"],["arrow-right-rotate","arrow-rotate-right"],["arrow-rotate-forward","arrow-rotate-right"],["redo","arrow-rotate-right"],["level-down","arrow-turn-down"],["level-up","arrow-turn-up"],["sort-numeric-up","arrow-up-1-9"],["sort-numeric-up-alt","arrow-up-9-1"],["sort-alpha-up","arrow-up-a-z"],["long-arrow-up","arrow-up-long"],["external-link","arrow-up-right-from-square"],["sort-amount-up-alt","arrow-up-short-wide"],["sort-amount-up","arrow-up-wide-short"],["sort-alpha-up-alt","arrow-up-z-a"],["arrows-h","arrows-left-right"],["refresh","arrows-rotate"],["sync","arrows-rotate"],["arrows-v","arrows-up-down"],["arrows","arrows-up-down-left-right"],["carriage-baby","baby-carriage"],["fast-backward","backward-fast"],["step-backward","backward-step"],["shopping-bag","bag-shopping"],["haykal","bahai"],["cancel","ban"],["smoking-ban","ban-smoking"],["band-aid","bandage"],["navicon","bars"],["tasks-alt","bars-progress"],["reorder","bars-staggered"],["stream","bars-staggered"],["baseball-ball","baseball"],["shopping-basket","basket-shopping"],["basketball-ball","basketball"],["bathtub","bath"],["battery-0","battery-empty"],["battery","battery-full"],["battery-5","battery-full"],["battery-3","battery-half"],["battery-2","battery-quarter"],["battery-4","battery-three-quarters"],["procedures","bed-pulse"],["beer","beer-mug-empty"],["concierge-bell","bell-concierge"],["zap","bolt"],["atlas","book-atlas"],["bible","book-bible"],["journal-whills","book-journal-whills"],["book-reader","book-open-reader"],["quran","book-quran"],["book-dead","book-skull"],["tanakh","book-tanakh"],["border-style","border-top-left"],["archive","box-archive"],["boxes","boxes-stacked"],["boxes-alt","boxes-stacked"],["quidditch","broom-ball"],["quidditch-broom-ball","broom-ball"],["bank","building-columns"],["institution","building-columns"],["museum","building-columns"],["university","building-columns"],["hamburger","burger"],["bus-alt","bus-simple"],["briefcase-clock","business-time"],["tram","cable-car"],["birthday-cake","cake-candles"],["cake","cake-candles"],["calendar-alt","calendar-days"],["calendar-times","calendar-xmark"],["camera-alt","camera"],["automobile","car"],["battery-car","car-battery"],["car-crash","car-burst"],["car-alt","car-rear"],["dolly-flatbed","cart-flatbed"],["luggage-cart","cart-flatbed-suitcase"],["shopping-cart","cart-shopping"],["blackboard","chalkboard"],["chalkboard-teacher","chalkboard-user"],["glass-cheers","champagne-glasses"],["area-chart","chart-area"],["bar-chart","chart-bar"],["line-chart","chart-line"],["pie-chart","chart-pie"],["vote-yea","check-to-slot"],["child-rifle","child-combatant"],["arrow-circle-down","circle-arrow-down"],["arrow-circle-left","circle-arrow-left"],["arrow-circle-right","circle-arrow-right"],["arrow-circle-up","circle-arrow-up"],["check-circle","circle-check"],["chevron-circle-down","circle-chevron-down"],["chevron-circle-left","circle-chevron-left"],["chevron-circle-right","circle-chevron-right"],["chevron-circle-up","circle-chevron-up"],["donate","circle-dollar-to-slot"],["dot-circle","circle-dot"],["arrow-alt-circle-down","circle-down"],["exclamation-circle","circle-exclamation"],["hospital-symbol","circle-h"],["adjust","circle-half-stroke"],["info-circle","circle-info"],["arrow-alt-circle-left","circle-left"],["minus-circle","circle-minus"],["pause-circle","circle-pause"],["play-circle","circle-play"],["plus-circle","circle-plus"],["question-circle","circle-question"],["radiation-alt","circle-radiation"],["arrow-alt-circle-right","circle-right"],["stop-circle","circle-stop"],["arrow-alt-circle-up","circle-up"],["user-circle","circle-user"],["times-circle","circle-xmark"],["xmark-circle","circle-xmark"],["clock-four","clock"],["history","clock-rotate-left"],["cloud-download","cloud-arrow-down"],["cloud-download-alt","cloud-arrow-down"],["cloud-upload","cloud-arrow-up"],["cloud-upload-alt","cloud-arrow-up"],["thunderstorm","cloud-bolt"],["commenting","comment-dots"],["sms","comment-sms"],["drafting-compass","compass-drafting"],["mouse","computer-mouse"],["credit-card-alt","credit-card"],["crop-alt","crop-simple"],["backspace","delete-left"],["desktop-alt","desktop"],["project-diagram","diagram-project"],["directions","diamond-turn-right"],["dollar","dollar-sign"],["usd","dollar-sign"],["dolly-box","dolly"],["compress-alt","down-left-and-up-right-to-center"],["long-arrow-alt-down","down-long"],["tint","droplet"],["tint-slash","droplet-slash"],["deaf","ear-deaf"],["deafness","ear-deaf"],["hard-of-hearing","ear-deaf"],["assistive-listening-systems","ear-listen"],["globe-africa","earth-africa"],["earth","earth-americas"],["earth-america","earth-americas"],["globe-americas","earth-americas"],["globe-asia","earth-asia"],["globe-europe","earth-europe"],["globe-oceania","earth-oceania"],["ellipsis-h","ellipsis"],["ellipsis-v","ellipsis-vertical"],["mail-bulk","envelopes-bulk"],["eur","euro-sign"],["euro","euro-sign"],["eye-dropper-empty","eye-dropper"],["eyedropper","eye-dropper"],["low-vision","eye-low-vision"],["angry","face-angry"],["dizzy","face-dizzy"],["flushed","face-flushed"],["frown","face-frown"],["frown-open","face-frown-open"],["grimace","face-grimace"],["grin","face-grin"],["grin-beam","face-grin-beam"],["grin-beam-sweat","face-grin-beam-sweat"],["grin-hearts","face-grin-hearts"],["grin-squint","face-grin-squint"],["grin-squint-tears","face-grin-squint-tears"],["grin-stars","face-grin-stars"],["grin-tears","face-grin-tears"],["grin-tongue","face-grin-tongue"],["grin-tongue-squint","face-grin-tongue-squint"],["grin-tongue-wink","face-grin-tongue-wink"],["grin-alt","face-grin-wide"],["grin-wink","face-grin-wink"],["kiss","face-kiss"],["kiss-beam","face-kiss-beam"],["kiss-wink-heart","face-kiss-wink-heart"],["laugh","face-laugh"],["laugh-beam","face-laugh-beam"],["laugh-squint","face-laugh-squint"],["laugh-wink","face-laugh-wink"],["meh","face-meh"],["meh-blank","face-meh-blank"],["meh-rolling-eyes","face-rolling-eyes"],["sad-cry","face-sad-cry"],["sad-tear","face-sad-tear"],["smile","face-smile"],["smile-beam","face-smile-beam"],["smile-wink","face-smile-wink"],["surprise","face-surprise"],["tired","face-tired"],["feather-alt","feather-pointed"],["file-download","file-arrow-down"],["file-upload","file-arrow-up"],["arrow-right-from-file","file-export"],["arrow-right-to-file","file-import"],["file-alt","file-lines"],["file-text","file-lines"],["file-edit","file-pen"],["file-medical-alt","file-waveform"],["file-archive","file-zipper"],["funnel-dollar","filter-circle-dollar"],["fire-alt","fire-flame-curved"],["burn","fire-flame-simple"],["save","floppy-disk"],["folder-blank","folder"],["football-ball","football"],["fast-forward","forward-fast"],["step-forward","forward-step"],["futbol-ball","futbol"],["soccer-ball","futbol"],["dashboard","gauge"],["gauge-med","gauge"],["tachometer-alt-average","gauge"],["tachometer-alt","gauge-high"],["tachometer-alt-fast","gauge-high"],["gauge-simple-med","gauge-simple"],["tachometer-average","gauge-simple"],["tachometer","gauge-simple-high"],["tachometer-fast","gauge-simple-high"],["legal","gavel"],["cog","gear"],["cogs","gears"],["golf-ball","golf-ball-tee"],["mortar-board","graduation-cap"],["grip-horizontal","grip"],["hand-paper","hand"],["hand-rock","hand-back-fist"],["allergies","hand-dots"],["fist-raised","hand-fist"],["hand-holding-usd","hand-holding-dollar"],["hand-holding-water","hand-holding-droplet"],["sign-language","hands"],["signing","hands"],["american-sign-language-interpreting","hands-asl-interpreting"],["asl-interpreting","hands-asl-interpreting"],["hands-american-sign-language-interpreting","hands-asl-interpreting"],["hands-wash","hands-bubbles"],["praying-hands","hands-praying"],["hands-helping","handshake-angle"],["handshake-alt","handshake-simple"],["handshake-alt-slash","handshake-simple-slash"],["hdd","hard-drive"],["header","heading"],["headphones-alt","headphones-simple"],["heart-broken","heart-crack"],["heartbeat","heart-pulse"],["hard-hat","helmet-safety"],["hat-hard","helmet-safety"],["hospital-alt","hospital"],["hospital-wide","hospital"],["hot-tub","hot-tub-person"],["hourglass-empty","hourglass"],["hourglass-3","hourglass-end"],["hourglass-2","hourglass-half"],["hourglass-1","hourglass-start"],["home","house"],["home-alt","house"],["home-lg-alt","house"],["home-lg","house-chimney"],["house-damage","house-chimney-crack"],["clinic-medical","house-chimney-medical"],["laptop-house","house-laptop"],["home-user","house-user"],["hryvnia","hryvnia-sign"],["heart-music-camera-bolt","icons"],["drivers-license","id-card"],["id-card-alt","id-card-clip"],["portrait","image-portrait"],["indian-rupee","indian-rupee-sign"],["inr","indian-rupee-sign"],["fighter-jet","jet-fighter"],["first-aid","kit-medical"],["landmark-alt","landmark-dome"],["long-arrow-alt-left","left-long"],["arrows-alt-h","left-right"],["chain","link"],["chain-broken","link-slash"],["chain-slash","link-slash"],["unlink","link-slash"],["list-squares","list"],["tasks","list-check"],["list-1-2","list-ol"],["list-numeric","list-ol"],["list-dots","list-ul"],["location","location-crosshairs"],["map-marker-alt","location-dot"],["map-marker","location-pin"],["search","magnifying-glass"],["search-dollar","magnifying-glass-dollar"],["search-location","magnifying-glass-location"],["search-minus","magnifying-glass-minus"],["search-plus","magnifying-glass-plus"],["map-marked","map-location"],["map-marked-alt","map-location-dot"],["mars-stroke-h","mars-stroke-right"],["mars-stroke-v","mars-stroke-up"],["glass-martini-alt","martini-glass"],["cocktail","martini-glass-citrus"],["glass-martini","martini-glass-empty"],["theater-masks","masks-theater"],["expand-arrows-alt","maximize"],["comment-alt","message"],["microphone-alt","microphone-lines"],["microphone-alt-slash","microphone-lines-slash"],["compress-arrows-alt","minimize"],["subtract","minus"],["mobile-android","mobile"],["mobile-phone","mobile"],["mobile-android-alt","mobile-screen"],["mobile-alt","mobile-screen-button"],["money-bill-alt","money-bill-1"],["money-bill-wave-alt","money-bill-1-wave"],["money-check-alt","money-check-dollar"],["coffee","mug-saucer"],["sticky-note","note-sticky"],["dedent","outdent"],["paint-brush","paintbrush"],["file-clipboard","paste"],["pen-alt","pen-clip"],["pencil-ruler","pen-ruler"],["edit","pen-to-square"],["pencil-alt","pencil"],["people-arrows-left-right","people-arrows"],["people-carry","people-carry-box"],["percentage","percent"],["male","person"],["biking","person-biking"],["digging","person-digging"],["diagnoses","person-dots-from-line"],["female","person-dress"],["hiking","person-hiking"],["pray","person-praying"],["running","person-running"],["skating","person-skating"],["skiing","person-skiing"],["skiing-nordic","person-skiing-nordic"],["snowboarding","person-snowboarding"],["swimmer","person-swimming"],["walking","person-walking"],["blind","person-walking-with-cane"],["phone-alt","phone-flip"],["volume-control-phone","phone-volume"],["photo-video","photo-film"],["add","plus"],["poo-bolt","poo-storm"],["prescription-bottle-alt","prescription-bottle-medical"],["quote-left-alt","quote-left"],["quote-right-alt","quote-right"],["ad","rectangle-ad"],["list-alt","rectangle-list"],["rectangle-times","rectangle-xmark"],["times-rectangle","rectangle-xmark"],["window-close","rectangle-xmark"],["mail-reply","reply"],["mail-reply-all","reply-all"],["sign-out-alt","right-from-bracket"],["exchange-alt","right-left"],["long-arrow-alt-right","right-long"],["sign-in-alt","right-to-bracket"],["sync-alt","rotate"],["rotate-back","rotate-left"],["rotate-backward","rotate-left"],["undo-alt","rotate-left"],["redo-alt","rotate-right"],["rotate-forward","rotate-right"],["feed","rss"],["rouble","ruble-sign"],["rub","ruble-sign"],["ruble","ruble-sign"],["rupee","rupee-sign"],["balance-scale","scale-balanced"],["balance-scale-left","scale-unbalanced"],["balance-scale-right","scale-unbalanced-flip"],["cut","scissors"],["tools","screwdriver-wrench"],["torah","scroll-torah"],["sprout","seedling"],["triangle-circle-square","shapes"],["arrow-turn-right","share"],["mail-forward","share"],["share-square","share-from-square"],["share-alt","share-nodes"],["ils","shekel-sign"],["shekel","shekel-sign"],["sheqel","shekel-sign"],["sheqel-sign","shekel-sign"],["shield-blank","shield"],["shield-alt","shield-halved"],["t-shirt","shirt"],["tshirt","shirt"],["store-alt","shop"],["store-alt-slash","shop-slash"],["random","shuffle"],["space-shuttle","shuttle-space"],["sign","sign-hanging"],["signal-5","signal"],["signal-perfect","signal"],["map-signs","signs-post"],["sliders-h","sliders"],["unsorted","sort"],["sort-desc","sort-down"],["sort-asc","sort-up"],["pastafarianism","spaghetti-monster-flying"],["utensil-spoon","spoon"],["air-freshener","spray-can-sparkles"],["external-link-square","square-arrow-up-right"],["caret-square-down","square-caret-down"],["caret-square-left","square-caret-left"],["caret-square-right","square-caret-right"],["caret-square-up","square-caret-up"],["check-square","square-check"],["envelope-square","square-envelope"],["h-square","square-h"],["minus-square","square-minus"],["parking","square-parking"],["pen-square","square-pen"],["pencil-square","square-pen"],["phone-square","square-phone"],["phone-square-alt","square-phone-flip"],["plus-square","square-plus"],["poll-h","square-poll-horizontal"],["poll","square-poll-vertical"],["square-root-alt","square-root-variable"],["rss-square","square-rss"],["share-alt-square","square-share-nodes"],["external-link-square-alt","square-up-right"],["times-square","square-xmark"],["xmark-square","square-xmark"],["rod-asclepius","staff-snake"],["rod-snake","staff-snake"],["staff-aesculapius","staff-snake"],["star-half-alt","star-half-stroke"],["gbp","sterling-sign"],["pound-sign","sterling-sign"],["medkit","suitcase-medical"],["th","table-cells"],["th-large","table-cells-large"],["columns","table-columns"],["th-list","table-list"],["ping-pong-paddle-ball","table-tennis-paddle-ball"],["table-tennis","table-tennis-paddle-ball"],["tablet-android","tablet"],["tablet-alt","tablet-screen-button"],["digital-tachograph","tachograph-digital"],["cab","taxi"],["temperature-down","temperature-arrow-down"],["temperature-up","temperature-arrow-up"],["temperature-0","temperature-empty"],["thermometer-0","temperature-empty"],["thermometer-empty","temperature-empty"],["temperature-4","temperature-full"],["thermometer-4","temperature-full"],["thermometer-full","temperature-full"],["temperature-2","temperature-half"],["thermometer-2","temperature-half"],["thermometer-half","temperature-half"],["temperature-1","temperature-quarter"],["thermometer-1","temperature-quarter"],["thermometer-quarter","temperature-quarter"],["temperature-3","temperature-three-quarters"],["thermometer-3","temperature-three-quarters"],["thermometer-three-quarters","temperature-three-quarters"],["tenge","tenge-sign"],["remove-format","text-slash"],["thumb-tack","thumbtack"],["ticket-alt","ticket-simple"],["broadcast-tower","tower-broadcast"],["subway","train-subway"],["transgender-alt","transgender"],["trash-restore","trash-arrow-up"],["trash-alt","trash-can"],["trash-restore-alt","trash-can-arrow-up"],["exclamation-triangle","triangle-exclamation"],["warning","triangle-exclamation"],["shipping-fast","truck-fast"],["ambulance","truck-medical"],["truck-loading","truck-ramp-box"],["teletype","tty"],["try","turkish-lira-sign"],["turkish-lira","turkish-lira-sign"],["level-down-alt","turn-down"],["level-up-alt","turn-up"],["television","tv"],["tv-alt","tv"],["unlock-alt","unlock-keyhole"],["arrows-alt-v","up-down"],["arrows-alt","up-down-left-right"],["long-arrow-alt-up","up-long"],["expand-alt","up-right-and-down-left-from-center"],["external-link-alt","up-right-from-square"],["user-md","user-doctor"],["user-cog","user-gear"],["user-friends","user-group"],["user-alt","user-large"],["user-alt-slash","user-large-slash"],["user-edit","user-pen"],["user-times","user-xmark"],["users-cog","users-gear"],["cutlery","utensils"],["shuttle-van","van-shuttle"],["video-camera","video"],["volleyball-ball","volleyball"],["volume-up","volume-high"],["volume-down","volume-low"],["volume-mute","volume-xmark"],["volume-times","volume-xmark"],["magic","wand-magic"],["magic-wand-sparkles","wand-magic-sparkles"],["ladder-water","water-ladder"],["swimming-pool","water-ladder"],["weight","weight-scale"],["wheat-alt","wheat-awn"],["wheelchair-alt","wheelchair-move"],["glass-whiskey","whiskey-glass"],["wifi-3","wifi"],["wifi-strong","wifi"],["wine-glass-alt","wine-glass-empty"],["krw","won-sign"],["won","won-sign"],["close","xmark"],["multiply","xmark"],["remove","xmark"],["times","xmark"],["cny","yen-sign"],["jpy","yen-sign"],["rmb","yen-sign"],["yen","yen-sign"]]),r=new Map([["0",["0",!1]],["1",["1",!1]],["2",["2",!1]],["3",["3",!1]],["4",["4",!1]],["5",["5",!1]],["6",["6",!1]],["7",["7",!1]],["8",["8",!1]],["9",["9",!1]],["a",["A",!1]],["address-book",["\uF2B9",!0]],["address-card",["\uF2BB",!0]],["align-center",["\uF037",!1]],["align-justify",["\uF039",!1]],["align-left",["\uF036",!1]],["align-right",["\uF038",!1]],["anchor",["\uF13D",!1]],["anchor-circle-check",["\uE4AA",!1]],["anchor-circle-exclamation",["\uE4AB",!1]],["anchor-circle-xmark",["\uE4AC",!1]],["anchor-lock",["\uE4AD",!1]],["angle-down",["\uF107",!1]],["angle-left",["\uF104",!1]],["angle-right",["\uF105",!1]],["angle-up",["\uF106",!1]],["angles-down",["\uF103",!1]],["angles-left",["\uF100",!1]],["angles-right",["\uF101",!1]],["angles-up",["\uF102",!1]],["ankh",["\uF644",!1]],["apple-whole",["\uF5D1",!1]],["archway",["\uF557",!1]],["arrow-down",["\uF063",!1]],["arrow-down-1-9",["\uF162",!1]],["arrow-down-9-1",["\uF886",!1]],["arrow-down-a-z",["\uF15D",!1]],["arrow-down-long",["\uF175",!1]],["arrow-down-short-wide",["\uF884",!1]],["arrow-down-up-across-line",["\uE4AF",!1]],["arrow-down-up-lock",["\uE4B0",!1]],["arrow-down-wide-short",["\uF160",!1]],["arrow-down-z-a",["\uF881",!1]],["arrow-left",["\uF060",!1]],["arrow-left-long",["\uF177",!1]],["arrow-pointer",["\uF245",!1]],["arrow-right",["\uF061",!1]],["arrow-right-arrow-left",["\uF0EC",!1]],["arrow-right-from-bracket",["\uF08B",!1]],["arrow-right-long",["\uF178",!1]],["arrow-right-to-bracket",["\uF090",!1]],["arrow-right-to-city",["\uE4B3",!1]],["arrow-rotate-left",["\uF0E2",!1]],["arrow-rotate-right",["\uF01E",!1]],["arrow-trend-down",["\uE097",!1]],["arrow-trend-up",["\uE098",!1]],["arrow-turn-down",["\uF149",!1]],["arrow-turn-up",["\uF148",!1]],["arrow-up",["\uF062",!1]],["arrow-up-1-9",["\uF163",!1]],["arrow-up-9-1",["\uF887",!1]],["arrow-up-a-z",["\uF15E",!1]],["arrow-up-from-bracket",["\uE09A",!1]],["arrow-up-from-ground-water",["\uE4B5",!1]],["arrow-up-from-water-pump",["\uE4B6",!1]],["arrow-up-long",["\uF176",!1]],["arrow-up-right-dots",["\uE4B7",!1]],["arrow-up-right-from-square",["\uF08E",!1]],["arrow-up-short-wide",["\uF885",!1]],["arrow-up-wide-short",["\uF161",!1]],["arrow-up-z-a",["\uF882",!1]],["arrows-down-to-line",["\uE4B8",!1]],["arrows-down-to-people",["\uE4B9",!1]],["arrows-left-right",["\uF07E",!1]],["arrows-left-right-to-line",["\uE4BA",!1]],["arrows-rotate",["\uF021",!1]],["arrows-spin",["\uE4BB",!1]],["arrows-split-up-and-left",["\uE4BC",!1]],["arrows-to-circle",["\uE4BD",!1]],["arrows-to-dot",["\uE4BE",!1]],["arrows-to-eye",["\uE4BF",!1]],["arrows-turn-right",["\uE4C0",!1]],["arrows-turn-to-dots",["\uE4C1",!1]],["arrows-up-down",["\uF07D",!1]],["arrows-up-down-left-right",["\uF047",!1]],["arrows-up-to-line",["\uE4C2",!1]],["asterisk",["*",!1]],["at",["@",!1]],["atom",["\uF5D2",!1]],["audio-description",["\uF29E",!1]],["austral-sign",["\uE0A9",!1]],["award",["\uF559",!1]],["b",["B",!1]],["baby",["\uF77C",!1]],["baby-carriage",["\uF77D",!1]],["backward",["\uF04A",!1]],["backward-fast",["\uF049",!1]],["backward-step",["\uF048",!1]],["bacon",["\uF7E5",!1]],["bacteria",["\uE059",!1]],["bacterium",["\uE05A",!1]],["bag-shopping",["\uF290",!1]],["bahai",["\uF666",!1]],["baht-sign",["\uE0AC",!1]],["ban",["\uF05E",!1]],["ban-smoking",["\uF54D",!1]],["bandage",["\uF462",!1]],["bangladeshi-taka-sign",["\uE2E6",!1]],["barcode",["\uF02A",!1]],["bars",["\uF0C9",!1]],["bars-progress",["\uF828",!1]],["bars-staggered",["\uF550",!1]],["baseball",["\uF433",!1]],["baseball-bat-ball",["\uF432",!1]],["basket-shopping",["\uF291",!1]],["basketball",["\uF434",!1]],["bath",["\uF2CD",!1]],["battery-empty",["\uF244",!1]],["battery-full",["\uF240",!1]],["battery-half",["\uF242",!1]],["battery-quarter",["\uF243",!1]],["battery-three-quarters",["\uF241",!1]],["bed",["\uF236",!1]],["bed-pulse",["\uF487",!1]],["beer-mug-empty",["\uF0FC",!1]],["bell",["\uF0F3",!0]],["bell-concierge",["\uF562",!1]],["bell-slash",["\uF1F6",!0]],["bezier-curve",["\uF55B",!1]],["bicycle",["\uF206",!1]],["binoculars",["\uF1E5",!1]],["biohazard",["\uF780",!1]],["bitcoin-sign",["\uE0B4",!1]],["blender",["\uF517",!1]],["blender-phone",["\uF6B6",!1]],["blog",["\uF781",!1]],["bold",["\uF032",!1]],["bolt",["\uF0E7",!1]],["bolt-lightning",["\uE0B7",!1]],["bomb",["\uF1E2",!1]],["bone",["\uF5D7",!1]],["bong",["\uF55C",!1]],["book",["\uF02D",!1]],["book-atlas",["\uF558",!1]],["book-bible",["\uF647",!1]],["book-bookmark",["\uE0BB",!1]],["book-journal-whills",["\uF66A",!1]],["book-medical",["\uF7E6",!1]],["book-open",["\uF518",!1]],["book-open-reader",["\uF5DA",!1]],["book-quran",["\uF687",!1]],["book-skull",["\uF6B7",!1]],["book-tanakh",["\uF827",!1]],["bookmark",["\uF02E",!0]],["border-all",["\uF84C",!1]],["border-none",["\uF850",!1]],["border-top-left",["\uF853",!1]],["bore-hole",["\uE4C3",!1]],["bottle-droplet",["\uE4C4",!1]],["bottle-water",["\uE4C5",!1]],["bowl-food",["\uE4C6",!1]],["bowl-rice",["\uE2EB",!1]],["bowling-ball",["\uF436",!1]],["box",["\uF466",!1]],["box-archive",["\uF187",!1]],["box-open",["\uF49E",!1]],["box-tissue",["\uE05B",!1]],["boxes-packing",["\uE4C7",!1]],["boxes-stacked",["\uF468",!1]],["braille",["\uF2A1",!1]],["brain",["\uF5DC",!1]],["brazilian-real-sign",["\uE46C",!1]],["bread-slice",["\uF7EC",!1]],["bridge",["\uE4C8",!1]],["bridge-circle-check",["\uE4C9",!1]],["bridge-circle-exclamation",["\uE4CA",!1]],["bridge-circle-xmark",["\uE4CB",!1]],["bridge-lock",["\uE4CC",!1]],["bridge-water",["\uE4CE",!1]],["briefcase",["\uF0B1",!1]],["briefcase-medical",["\uF469",!1]],["broom",["\uF51A",!1]],["broom-ball",["\uF458",!1]],["brush",["\uF55D",!1]],["bucket",["\uE4CF",!1]],["bug",["\uF188",!1]],["bug-slash",["\uE490",!1]],["bugs",["\uE4D0",!1]],["building",["\uF1AD",!0]],["building-circle-arrow-right",["\uE4D1",!1]],["building-circle-check",["\uE4D2",!1]],["building-circle-exclamation",["\uE4D3",!1]],["building-circle-xmark",["\uE4D4",!1]],["building-columns",["\uF19C",!1]],["building-flag",["\uE4D5",!1]],["building-lock",["\uE4D6",!1]],["building-ngo",["\uE4D7",!1]],["building-shield",["\uE4D8",!1]],["building-un",["\uE4D9",!1]],["building-user",["\uE4DA",!1]],["building-wheat",["\uE4DB",!1]],["bullhorn",["\uF0A1",!1]],["bullseye",["\uF140",!1]],["burger",["\uF805",!1]],["burst",["\uE4DC",!1]],["bus",["\uF207",!1]],["bus-simple",["\uF55E",!1]],["business-time",["\uF64A",!1]],["c",["C",!1]],["cable-car",["\uF7DA",!1]],["cake-candles",["\uF1FD",!1]],["calculator",["\uF1EC",!1]],["calendar",["\uF133",!0]],["calendar-check",["\uF274",!0]],["calendar-day",["\uF783",!1]],["calendar-days",["\uF073",!0]],["calendar-minus",["\uF272",!0]],["calendar-plus",["\uF271",!0]],["calendar-week",["\uF784",!1]],["calendar-xmark",["\uF273",!0]],["camera",["\uF030",!1]],["camera-retro",["\uF083",!1]],["camera-rotate",["\uE0D8",!1]],["campground",["\uF6BB",!1]],["candy-cane",["\uF786",!1]],["cannabis",["\uF55F",!1]],["capsules",["\uF46B",!1]],["car",["\uF1B9",!1]],["car-battery",["\uF5DF",!1]],["car-burst",["\uF5E1",!1]],["car-on",["\uE4DD",!1]],["car-rear",["\uF5DE",!1]],["car-side",["\uF5E4",!1]],["car-tunnel",["\uE4DE",!1]],["caravan",["\uF8FF",!1]],["caret-down",["\uF0D7",!1]],["caret-left",["\uF0D9",!1]],["caret-right",["\uF0DA",!1]],["caret-up",["\uF0D8",!1]],["carrot",["\uF787",!1]],["cart-arrow-down",["\uF218",!1]],["cart-flatbed",["\uF474",!1]],["cart-flatbed-suitcase",["\uF59D",!1]],["cart-plus",["\uF217",!1]],["cart-shopping",["\uF07A",!1]],["cash-register",["\uF788",!1]],["cat",["\uF6BE",!1]],["cedi-sign",["\uE0DF",!1]],["cent-sign",["\uE3F5",!1]],["certificate",["\uF0A3",!1]],["chair",["\uF6C0",!1]],["chalkboard",["\uF51B",!1]],["chalkboard-user",["\uF51C",!1]],["champagne-glasses",["\uF79F",!1]],["charging-station",["\uF5E7",!1]],["chart-area",["\uF1FE",!1]],["chart-bar",["\uF080",!0]],["chart-column",["\uE0E3",!1]],["chart-gantt",["\uE0E4",!1]],["chart-line",["\uF201",!1]],["chart-pie",["\uF200",!1]],["chart-simple",["\uE473",!1]],["check",["\uF00C",!1]],["check-double",["\uF560",!1]],["check-to-slot",["\uF772",!1]],["cheese",["\uF7EF",!1]],["chess",["\uF439",!1]],["chess-bishop",["\uF43A",!0]],["chess-board",["\uF43C",!1]],["chess-king",["\uF43F",!0]],["chess-knight",["\uF441",!0]],["chess-pawn",["\uF443",!0]],["chess-queen",["\uF445",!0]],["chess-rook",["\uF447",!0]],["chevron-down",["\uF078",!1]],["chevron-left",["\uF053",!1]],["chevron-right",["\uF054",!1]],["chevron-up",["\uF077",!1]],["child",["\uF1AE",!1]],["child-combatant",["\uE4E0",!1]],["child-dress",["\uE59C",!1]],["child-reaching",["\uE59D",!1]],["children",["\uE4E1",!1]],["church",["\uF51D",!1]],["circle",["\uF111",!0]],["circle-arrow-down",["\uF0AB",!1]],["circle-arrow-left",["\uF0A8",!1]],["circle-arrow-right",["\uF0A9",!1]],["circle-arrow-up",["\uF0AA",!1]],["circle-check",["\uF058",!0]],["circle-chevron-down",["\uF13A",!1]],["circle-chevron-left",["\uF137",!1]],["circle-chevron-right",["\uF138",!1]],["circle-chevron-up",["\uF139",!1]],["circle-dollar-to-slot",["\uF4B9",!1]],["circle-dot",["\uF192",!0]],["circle-down",["\uF358",!0]],["circle-exclamation",["\uF06A",!1]],["circle-h",["\uF47E",!1]],["circle-half-stroke",["\uF042",!1]],["circle-info",["\uF05A",!1]],["circle-left",["\uF359",!0]],["circle-minus",["\uF056",!1]],["circle-nodes",["\uE4E2",!1]],["circle-notch",["\uF1CE",!1]],["circle-pause",["\uF28B",!0]],["circle-play",["\uF144",!0]],["circle-plus",["\uF055",!1]],["circle-question",["\uF059",!0]],["circle-radiation",["\uF7BA",!1]],["circle-right",["\uF35A",!0]],["circle-stop",["\uF28D",!0]],["circle-up",["\uF35B",!0]],["circle-user",["\uF2BD",!0]],["circle-xmark",["\uF057",!0]],["city",["\uF64F",!1]],["clapperboard",["\uE131",!1]],["clipboard",["\uF328",!0]],["clipboard-check",["\uF46C",!1]],["clipboard-list",["\uF46D",!1]],["clipboard-question",["\uE4E3",!1]],["clipboard-user",["\uF7F3",!1]],["clock",["\uF017",!0]],["clock-rotate-left",["\uF1DA",!1]],["clone",["\uF24D",!0]],["closed-captioning",["\uF20A",!0]],["cloud",["\uF0C2",!1]],["cloud-arrow-down",["\uF0ED",!1]],["cloud-arrow-up",["\uF0EE",!1]],["cloud-bolt",["\uF76C",!1]],["cloud-meatball",["\uF73B",!1]],["cloud-moon",["\uF6C3",!1]],["cloud-moon-rain",["\uF73C",!1]],["cloud-rain",["\uF73D",!1]],["cloud-showers-heavy",["\uF740",!1]],["cloud-showers-water",["\uE4E4",!1]],["cloud-sun",["\uF6C4",!1]],["cloud-sun-rain",["\uF743",!1]],["clover",["\uE139",!1]],["code",["\uF121",!1]],["code-branch",["\uF126",!1]],["code-commit",["\uF386",!1]],["code-compare",["\uE13A",!1]],["code-fork",["\uE13B",!1]],["code-merge",["\uF387",!1]],["code-pull-request",["\uE13C",!1]],["coins",["\uF51E",!1]],["colon-sign",["\uE140",!1]],["comment",["\uF075",!0]],["comment-dollar",["\uF651",!1]],["comment-dots",["\uF4AD",!0]],["comment-medical",["\uF7F5",!1]],["comment-slash",["\uF4B3",!1]],["comment-sms",["\uF7CD",!1]],["comments",["\uF086",!0]],["comments-dollar",["\uF653",!1]],["compact-disc",["\uF51F",!1]],["compass",["\uF14E",!0]],["compass-drafting",["\uF568",!1]],["compress",["\uF066",!1]],["computer",["\uE4E5",!1]],["computer-mouse",["\uF8CC",!1]],["cookie",["\uF563",!1]],["cookie-bite",["\uF564",!1]],["copy",["\uF0C5",!0]],["copyright",["\uF1F9",!0]],["couch",["\uF4B8",!1]],["cow",["\uF6C8",!1]],["credit-card",["\uF09D",!0]],["crop",["\uF125",!1]],["crop-simple",["\uF565",!1]],["cross",["\uF654",!1]],["crosshairs",["\uF05B",!1]],["crow",["\uF520",!1]],["crown",["\uF521",!1]],["crutch",["\uF7F7",!1]],["cruzeiro-sign",["\uE152",!1]],["cube",["\uF1B2",!1]],["cubes",["\uF1B3",!1]],["cubes-stacked",["\uE4E6",!1]],["d",["D",!1]],["database",["\uF1C0",!1]],["delete-left",["\uF55A",!1]],["democrat",["\uF747",!1]],["desktop",["\uF390",!1]],["dharmachakra",["\uF655",!1]],["diagram-next",["\uE476",!1]],["diagram-predecessor",["\uE477",!1]],["diagram-project",["\uF542",!1]],["diagram-successor",["\uE47A",!1]],["diamond",["\uF219",!1]],["diamond-turn-right",["\uF5EB",!1]],["dice",["\uF522",!1]],["dice-d20",["\uF6CF",!1]],["dice-d6",["\uF6D1",!1]],["dice-five",["\uF523",!1]],["dice-four",["\uF524",!1]],["dice-one",["\uF525",!1]],["dice-six",["\uF526",!1]],["dice-three",["\uF527",!1]],["dice-two",["\uF528",!1]],["disease",["\uF7FA",!1]],["display",["\uE163",!1]],["divide",["\uF529",!1]],["dna",["\uF471",!1]],["dog",["\uF6D3",!1]],["dollar-sign",["$",!1]],["dolly",["\uF472",!1]],["dong-sign",["\uE169",!1]],["door-closed",["\uF52A",!1]],["door-open",["\uF52B",!1]],["dove",["\uF4BA",!1]],["down-left-and-up-right-to-center",["\uF422",!1]],["down-long",["\uF309",!1]],["download",["\uF019",!1]],["dragon",["\uF6D5",!1]],["draw-polygon",["\uF5EE",!1]],["droplet",["\uF043",!1]],["droplet-slash",["\uF5C7",!1]],["drum",["\uF569",!1]],["drum-steelpan",["\uF56A",!1]],["drumstick-bite",["\uF6D7",!1]],["dumbbell",["\uF44B",!1]],["dumpster",["\uF793",!1]],["dumpster-fire",["\uF794",!1]],["dungeon",["\uF6D9",!1]],["e",["E",!1]],["ear-deaf",["\uF2A4",!1]],["ear-listen",["\uF2A2",!1]],["earth-africa",["\uF57C",!1]],["earth-americas",["\uF57D",!1]],["earth-asia",["\uF57E",!1]],["earth-europe",["\uF7A2",!1]],["earth-oceania",["\uE47B",!1]],["egg",["\uF7FB",!1]],["eject",["\uF052",!1]],["elevator",["\uE16D",!1]],["ellipsis",["\uF141",!1]],["ellipsis-vertical",["\uF142",!1]],["envelope",["\uF0E0",!0]],["envelope-circle-check",["\uE4E8",!1]],["envelope-open",["\uF2B6",!0]],["envelope-open-text",["\uF658",!1]],["envelopes-bulk",["\uF674",!1]],["equals",["=",!1]],["eraser",["\uF12D",!1]],["ethernet",["\uF796",!1]],["euro-sign",["\uF153",!1]],["exclamation",["!",!1]],["expand",["\uF065",!1]],["explosion",["\uE4E9",!1]],["eye",["\uF06E",!0]],["eye-dropper",["\uF1FB",!1]],["eye-low-vision",["\uF2A8",!1]],["eye-slash",["\uF070",!0]],["f",["F",!1]],["face-angry",["\uF556",!0]],["face-dizzy",["\uF567",!0]],["face-flushed",["\uF579",!0]],["face-frown",["\uF119",!0]],["face-frown-open",["\uF57A",!0]],["face-grimace",["\uF57F",!0]],["face-grin",["\uF580",!0]],["face-grin-beam",["\uF582",!0]],["face-grin-beam-sweat",["\uF583",!0]],["face-grin-hearts",["\uF584",!0]],["face-grin-squint",["\uF585",!0]],["face-grin-squint-tears",["\uF586",!0]],["face-grin-stars",["\uF587",!0]],["face-grin-tears",["\uF588",!0]],["face-grin-tongue",["\uF589",!0]],["face-grin-tongue-squint",["\uF58A",!0]],["face-grin-tongue-wink",["\uF58B",!0]],["face-grin-wide",["\uF581",!0]],["face-grin-wink",["\uF58C",!0]],["face-kiss",["\uF596",!0]],["face-kiss-beam",["\uF597",!0]],["face-kiss-wink-heart",["\uF598",!0]],["face-laugh",["\uF599",!0]],["face-laugh-beam",["\uF59A",!0]],["face-laugh-squint",["\uF59B",!0]],["face-laugh-wink",["\uF59C",!0]],["face-meh",["\uF11A",!0]],["face-meh-blank",["\uF5A4",!0]],["face-rolling-eyes",["\uF5A5",!0]],["face-sad-cry",["\uF5B3",!0]],["face-sad-tear",["\uF5B4",!0]],["face-smile",["\uF118",!0]],["face-smile-beam",["\uF5B8",!0]],["face-smile-wink",["\uF4DA",!0]],["face-surprise",["\uF5C2",!0]],["face-tired",["\uF5C8",!0]],["fan",["\uF863",!1]],["faucet",["\uE005",!1]],["faucet-drip",["\uE006",!1]],["fax",["\uF1AC",!1]],["feather",["\uF52D",!1]],["feather-pointed",["\uF56B",!1]],["ferry",["\uE4EA",!1]],["file",["\uF15B",!0]],["file-arrow-down",["\uF56D",!1]],["file-arrow-up",["\uF574",!1]],["file-audio",["\uF1C7",!0]],["file-circle-check",["\uE5A0",!1]],["file-circle-exclamation",["\uE4EB",!1]],["file-circle-minus",["\uE4ED",!1]],["file-circle-plus",["\uE494",!1]],["file-circle-question",["\uE4EF",!1]],["file-circle-xmark",["\uE5A1",!1]],["file-code",["\uF1C9",!0]],["file-contract",["\uF56C",!1]],["file-csv",["\uF6DD",!1]],["file-excel",["\uF1C3",!0]],["file-export",["\uF56E",!1]],["file-image",["\uF1C5",!0]],["file-import",["\uF56F",!1]],["file-invoice",["\uF570",!1]],["file-invoice-dollar",["\uF571",!1]],["file-lines",["\uF15C",!0]],["file-medical",["\uF477",!1]],["file-pdf",["\uF1C1",!0]],["file-pen",["\uF31C",!1]],["file-powerpoint",["\uF1C4",!0]],["file-prescription",["\uF572",!1]],["file-shield",["\uE4F0",!1]],["file-signature",["\uF573",!1]],["file-video",["\uF1C8",!0]],["file-waveform",["\uF478",!1]],["file-word",["\uF1C2",!0]],["file-zipper",["\uF1C6",!0]],["fill",["\uF575",!1]],["fill-drip",["\uF576",!1]],["film",["\uF008",!1]],["filter",["\uF0B0",!1]],["filter-circle-dollar",["\uF662",!1]],["filter-circle-xmark",["\uE17B",!1]],["fingerprint",["\uF577",!1]],["fire",["\uF06D",!1]],["fire-burner",["\uE4F1",!1]],["fire-extinguisher",["\uF134",!1]],["fire-flame-curved",["\uF7E4",!1]],["fire-flame-simple",["\uF46A",!1]],["fish",["\uF578",!1]],["fish-fins",["\uE4F2",!1]],["flag",["\uF024",!0]],["flag-checkered",["\uF11E",!1]],["flag-usa",["\uF74D",!1]],["flask",["\uF0C3",!1]],["flask-vial",["\uE4F3",!1]],["floppy-disk",["\uF0C7",!0]],["florin-sign",["\uE184",!1]],["folder",["\uF07B",!0]],["folder-closed",["\uE185",!0]],["folder-minus",["\uF65D",!1]],["folder-open",["\uF07C",!0]],["folder-plus",["\uF65E",!1]],["folder-tree",["\uF802",!1]],["font",["\uF031",!1]],["football",["\uF44E",!1]],["forward",["\uF04E",!1]],["forward-fast",["\uF050",!1]],["forward-step",["\uF051",!1]],["franc-sign",["\uE18F",!1]],["frog",["\uF52E",!1]],["futbol",["\uF1E3",!0]],["g",["G",!1]],["gamepad",["\uF11B",!1]],["gas-pump",["\uF52F",!1]],["gauge",["\uF624",!1]],["gauge-high",["\uF625",!1]],["gauge-simple",["\uF629",!1]],["gauge-simple-high",["\uF62A",!1]],["gavel",["\uF0E3",!1]],["gear",["\uF013",!1]],["gears",["\uF085",!1]],["gem",["\uF3A5",!0]],["genderless",["\uF22D",!1]],["ghost",["\uF6E2",!1]],["gift",["\uF06B",!1]],["gifts",["\uF79C",!1]],["glass-water",["\uE4F4",!1]],["glass-water-droplet",["\uE4F5",!1]],["glasses",["\uF530",!1]],["globe",["\uF0AC",!1]],["golf-ball-tee",["\uF450",!1]],["gopuram",["\uF664",!1]],["graduation-cap",["\uF19D",!1]],["greater-than",[">",!1]],["greater-than-equal",["\uF532",!1]],["grip",["\uF58D",!1]],["grip-lines",["\uF7A4",!1]],["grip-lines-vertical",["\uF7A5",!1]],["grip-vertical",["\uF58E",!1]],["group-arrows-rotate",["\uE4F6",!1]],["guarani-sign",["\uE19A",!1]],["guitar",["\uF7A6",!1]],["gun",["\uE19B",!1]],["h",["H",!1]],["hammer",["\uF6E3",!1]],["hamsa",["\uF665",!1]],["hand",["\uF256",!0]],["hand-back-fist",["\uF255",!0]],["hand-dots",["\uF461",!1]],["hand-fist",["\uF6DE",!1]],["hand-holding",["\uF4BD",!1]],["hand-holding-dollar",["\uF4C0",!1]],["hand-holding-droplet",["\uF4C1",!1]],["hand-holding-hand",["\uE4F7",!1]],["hand-holding-heart",["\uF4BE",!1]],["hand-holding-medical",["\uE05C",!1]],["hand-lizard",["\uF258",!0]],["hand-middle-finger",["\uF806",!1]],["hand-peace",["\uF25B",!0]],["hand-point-down",["\uF0A7",!0]],["hand-point-left",["\uF0A5",!0]],["hand-point-right",["\uF0A4",!0]],["hand-point-up",["\uF0A6",!0]],["hand-pointer",["\uF25A",!0]],["hand-scissors",["\uF257",!0]],["hand-sparkles",["\uE05D",!1]],["hand-spock",["\uF259",!0]],["handcuffs",["\uE4F8",!1]],["hands",["\uF2A7",!1]],["hands-asl-interpreting",["\uF2A3",!1]],["hands-bound",["\uE4F9",!1]],["hands-bubbles",["\uE05E",!1]],["hands-clapping",["\uE1A8",!1]],["hands-holding",["\uF4C2",!1]],["hands-holding-child",["\uE4FA",!1]],["hands-holding-circle",["\uE4FB",!1]],["hands-praying",["\uF684",!1]],["handshake",["\uF2B5",!0]],["handshake-angle",["\uF4C4",!1]],["handshake-simple",["\uF4C6",!1]],["handshake-simple-slash",["\uE05F",!1]],["handshake-slash",["\uE060",!1]],["hanukiah",["\uF6E6",!1]],["hard-drive",["\uF0A0",!0]],["hashtag",["#",!1]],["hat-cowboy",["\uF8C0",!1]],["hat-cowboy-side",["\uF8C1",!1]],["hat-wizard",["\uF6E8",!1]],["head-side-cough",["\uE061",!1]],["head-side-cough-slash",["\uE062",!1]],["head-side-mask",["\uE063",!1]],["head-side-virus",["\uE064",!1]],["heading",["\uF1DC",!1]],["headphones",["\uF025",!1]],["headphones-simple",["\uF58F",!1]],["headset",["\uF590",!1]],["heart",["\uF004",!0]],["heart-circle-bolt",["\uE4FC",!1]],["heart-circle-check",["\uE4FD",!1]],["heart-circle-exclamation",["\uE4FE",!1]],["heart-circle-minus",["\uE4FF",!1]],["heart-circle-plus",["\uE500",!1]],["heart-circle-xmark",["\uE501",!1]],["heart-crack",["\uF7A9",!1]],["heart-pulse",["\uF21E",!1]],["helicopter",["\uF533",!1]],["helicopter-symbol",["\uE502",!1]],["helmet-safety",["\uF807",!1]],["helmet-un",["\uE503",!1]],["highlighter",["\uF591",!1]],["hill-avalanche",["\uE507",!1]],["hill-rockslide",["\uE508",!1]],["hippo",["\uF6ED",!1]],["hockey-puck",["\uF453",!1]],["holly-berry",["\uF7AA",!1]],["horse",["\uF6F0",!1]],["horse-head",["\uF7AB",!1]],["hospital",["\uF0F8",!0]],["hospital-user",["\uF80D",!1]],["hot-tub-person",["\uF593",!1]],["hotdog",["\uF80F",!1]],["hotel",["\uF594",!1]],["hourglass",["\uF254",!0]],["hourglass-end",["\uF253",!1]],["hourglass-half",["\uF252",!0]],["hourglass-start",["\uF251",!1]],["house",["\uF015",!1]],["house-chimney",["\uE3AF",!1]],["house-chimney-crack",["\uF6F1",!1]],["house-chimney-medical",["\uF7F2",!1]],["house-chimney-user",["\uE065",!1]],["house-chimney-window",["\uE00D",!1]],["house-circle-check",["\uE509",!1]],["house-circle-exclamation",["\uE50A",!1]],["house-circle-xmark",["\uE50B",!1]],["house-crack",["\uE3B1",!1]],["house-fire",["\uE50C",!1]],["house-flag",["\uE50D",!1]],["house-flood-water",["\uE50E",!1]],["house-flood-water-circle-arrow-right",["\uE50F",!1]],["house-laptop",["\uE066",!1]],["house-lock",["\uE510",!1]],["house-medical",["\uE3B2",!1]],["house-medical-circle-check",["\uE511",!1]],["house-medical-circle-exclamation",["\uE512",!1]],["house-medical-circle-xmark",["\uE513",!1]],["house-medical-flag",["\uE514",!1]],["house-signal",["\uE012",!1]],["house-tsunami",["\uE515",!1]],["house-user",["\uE1B0",!1]],["hryvnia-sign",["\uF6F2",!1]],["hurricane",["\uF751",!1]],["i",["I",!1]],["i-cursor",["\uF246",!1]],["ice-cream",["\uF810",!1]],["icicles",["\uF7AD",!1]],["icons",["\uF86D",!1]],["id-badge",["\uF2C1",!0]],["id-card",["\uF2C2",!0]],["id-card-clip",["\uF47F",!1]],["igloo",["\uF7AE",!1]],["image",["\uF03E",!0]],["image-portrait",["\uF3E0",!1]],["images",["\uF302",!0]],["inbox",["\uF01C",!1]],["indent",["\uF03C",!1]],["indian-rupee-sign",["\uE1BC",!1]],["industry",["\uF275",!1]],["infinity",["\uF534",!1]],["info",["\uF129",!1]],["italic",["\uF033",!1]],["j",["J",!1]],["jar",["\uE516",!1]],["jar-wheat",["\uE517",!1]],["jedi",["\uF669",!1]],["jet-fighter",["\uF0FB",!1]],["jet-fighter-up",["\uE518",!1]],["joint",["\uF595",!1]],["jug-detergent",["\uE519",!1]],["k",["K",!1]],["kaaba",["\uF66B",!1]],["key",["\uF084",!1]],["keyboard",["\uF11C",!0]],["khanda",["\uF66D",!1]],["kip-sign",["\uE1C4",!1]],["kit-medical",["\uF479",!1]],["kitchen-set",["\uE51A",!1]],["kiwi-bird",["\uF535",!1]],["l",["L",!1]],["land-mine-on",["\uE51B",!1]],["landmark",["\uF66F",!1]],["landmark-dome",["\uF752",!1]],["landmark-flag",["\uE51C",!1]],["language",["\uF1AB",!1]],["laptop",["\uF109",!1]],["laptop-code",["\uF5FC",!1]],["laptop-file",["\uE51D",!1]],["laptop-medical",["\uF812",!1]],["lari-sign",["\uE1C8",!1]],["layer-group",["\uF5FD",!1]],["leaf",["\uF06C",!1]],["left-long",["\uF30A",!1]],["left-right",["\uF337",!1]],["lemon",["\uF094",!0]],["less-than",["<",!1]],["less-than-equal",["\uF537",!1]],["life-ring",["\uF1CD",!0]],["lightbulb",["\uF0EB",!0]],["lines-leaning",["\uE51E",!1]],["link",["\uF0C1",!1]],["link-slash",["\uF127",!1]],["lira-sign",["\uF195",!1]],["list",["\uF03A",!1]],["list-check",["\uF0AE",!1]],["list-ol",["\uF0CB",!1]],["list-ul",["\uF0CA",!1]],["litecoin-sign",["\uE1D3",!1]],["location-arrow",["\uF124",!1]],["location-crosshairs",["\uF601",!1]],["location-dot",["\uF3C5",!1]],["location-pin",["\uF041",!1]],["location-pin-lock",["\uE51F",!1]],["lock",["\uF023",!1]],["lock-open",["\uF3C1",!1]],["locust",["\uE520",!1]],["lungs",["\uF604",!1]],["lungs-virus",["\uE067",!1]],["m",["M",!1]],["magnet",["\uF076",!1]],["magnifying-glass",["\uF002",!1]],["magnifying-glass-arrow-right",["\uE521",!1]],["magnifying-glass-chart",["\uE522",!1]],["magnifying-glass-dollar",["\uF688",!1]],["magnifying-glass-location",["\uF689",!1]],["magnifying-glass-minus",["\uF010",!1]],["magnifying-glass-plus",["\uF00E",!1]],["manat-sign",["\uE1D5",!1]],["map",["\uF279",!0]],["map-location",["\uF59F",!1]],["map-location-dot",["\uF5A0",!1]],["map-pin",["\uF276",!1]],["marker",["\uF5A1",!1]],["mars",["\uF222",!1]],["mars-and-venus",["\uF224",!1]],["mars-and-venus-burst",["\uE523",!1]],["mars-double",["\uF227",!1]],["mars-stroke",["\uF229",!1]],["mars-stroke-right",["\uF22B",!1]],["mars-stroke-up",["\uF22A",!1]],["martini-glass",["\uF57B",!1]],["martini-glass-citrus",["\uF561",!1]],["martini-glass-empty",["\uF000",!1]],["mask",["\uF6FA",!1]],["mask-face",["\uE1D7",!1]],["mask-ventilator",["\uE524",!1]],["masks-theater",["\uF630",!1]],["mattress-pillow",["\uE525",!1]],["maximize",["\uF31E",!1]],["medal",["\uF5A2",!1]],["memory",["\uF538",!1]],["menorah",["\uF676",!1]],["mercury",["\uF223",!1]],["message",["\uF27A",!0]],["meteor",["\uF753",!1]],["microchip",["\uF2DB",!1]],["microphone",["\uF130",!1]],["microphone-lines",["\uF3C9",!1]],["microphone-lines-slash",["\uF539",!1]],["microphone-slash",["\uF131",!1]],["microscope",["\uF610",!1]],["mill-sign",["\uE1ED",!1]],["minimize",["\uF78C",!1]],["minus",["\uF068",!1]],["mitten",["\uF7B5",!1]],["mobile",["\uF3CE",!1]],["mobile-button",["\uF10B",!1]],["mobile-retro",["\uE527",!1]],["mobile-screen",["\uF3CF",!1]],["mobile-screen-button",["\uF3CD",!1]],["money-bill",["\uF0D6",!1]],["money-bill-1",["\uF3D1",!0]],["money-bill-1-wave",["\uF53B",!1]],["money-bill-transfer",["\uE528",!1]],["money-bill-trend-up",["\uE529",!1]],["money-bill-wave",["\uF53A",!1]],["money-bill-wheat",["\uE52A",!1]],["money-bills",["\uE1F3",!1]],["money-check",["\uF53C",!1]],["money-check-dollar",["\uF53D",!1]],["monument",["\uF5A6",!1]],["moon",["\uF186",!0]],["mortar-pestle",["\uF5A7",!1]],["mosque",["\uF678",!1]],["mosquito",["\uE52B",!1]],["mosquito-net",["\uE52C",!1]],["motorcycle",["\uF21C",!1]],["mound",["\uE52D",!1]],["mountain",["\uF6FC",!1]],["mountain-city",["\uE52E",!1]],["mountain-sun",["\uE52F",!1]],["mug-hot",["\uF7B6",!1]],["mug-saucer",["\uF0F4",!1]],["music",["\uF001",!1]],["n",["N",!1]],["naira-sign",["\uE1F6",!1]],["network-wired",["\uF6FF",!1]],["neuter",["\uF22C",!1]],["newspaper",["\uF1EA",!0]],["not-equal",["\uF53E",!1]],["notdef",["\uE1FE",!1]],["note-sticky",["\uF249",!0]],["notes-medical",["\uF481",!1]],["o",["O",!1]],["object-group",["\uF247",!0]],["object-ungroup",["\uF248",!0]],["oil-can",["\uF613",!1]],["oil-well",["\uE532",!1]],["om",["\uF679",!1]],["otter",["\uF700",!1]],["outdent",["\uF03B",!1]],["p",["P",!1]],["pager",["\uF815",!1]],["paint-roller",["\uF5AA",!1]],["paintbrush",["\uF1FC",!1]],["palette",["\uF53F",!1]],["pallet",["\uF482",!1]],["panorama",["\uE209",!1]],["paper-plane",["\uF1D8",!0]],["paperclip",["\uF0C6",!1]],["parachute-box",["\uF4CD",!1]],["paragraph",["\uF1DD",!1]],["passport",["\uF5AB",!1]],["paste",["\uF0EA",!0]],["pause",["\uF04C",!1]],["paw",["\uF1B0",!1]],["peace",["\uF67C",!1]],["pen",["\uF304",!1]],["pen-clip",["\uF305",!1]],["pen-fancy",["\uF5AC",!1]],["pen-nib",["\uF5AD",!1]],["pen-ruler",["\uF5AE",!1]],["pen-to-square",["\uF044",!0]],["pencil",["\uF303",!1]],["people-arrows",["\uE068",!1]],["people-carry-box",["\uF4CE",!1]],["people-group",["\uE533",!1]],["people-line",["\uE534",!1]],["people-pulling",["\uE535",!1]],["people-robbery",["\uE536",!1]],["people-roof",["\uE537",!1]],["pepper-hot",["\uF816",!1]],["percent",["%",!1]],["person",["\uF183",!1]],["person-arrow-down-to-line",["\uE538",!1]],["person-arrow-up-from-line",["\uE539",!1]],["person-biking",["\uF84A",!1]],["person-booth",["\uF756",!1]],["person-breastfeeding",["\uE53A",!1]],["person-burst",["\uE53B",!1]],["person-cane",["\uE53C",!1]],["person-chalkboard",["\uE53D",!1]],["person-circle-check",["\uE53E",!1]],["person-circle-exclamation",["\uE53F",!1]],["person-circle-minus",["\uE540",!1]],["person-circle-plus",["\uE541",!1]],["person-circle-question",["\uE542",!1]],["person-circle-xmark",["\uE543",!1]],["person-digging",["\uF85E",!1]],["person-dots-from-line",["\uF470",!1]],["person-dress",["\uF182",!1]],["person-dress-burst",["\uE544",!1]],["person-drowning",["\uE545",!1]],["person-falling",["\uE546",!1]],["person-falling-burst",["\uE547",!1]],["person-half-dress",["\uE548",!1]],["person-harassing",["\uE549",!1]],["person-hiking",["\uF6EC",!1]],["person-military-pointing",["\uE54A",!1]],["person-military-rifle",["\uE54B",!1]],["person-military-to-person",["\uE54C",!1]],["person-praying",["\uF683",!1]],["person-pregnant",["\uE31E",!1]],["person-rays",["\uE54D",!1]],["person-rifle",["\uE54E",!1]],["person-running",["\uF70C",!1]],["person-shelter",["\uE54F",!1]],["person-skating",["\uF7C5",!1]],["person-skiing",["\uF7C9",!1]],["person-skiing-nordic",["\uF7CA",!1]],["person-snowboarding",["\uF7CE",!1]],["person-swimming",["\uF5C4",!1]],["person-through-window",["\uE5A9",!1]],["person-walking",["\uF554",!1]],["person-walking-arrow-loop-left",["\uE551",!1]],["person-walking-arrow-right",["\uE552",!1]],["person-walking-dashed-line-arrow-right",["\uE553",!1]],["person-walking-luggage",["\uE554",!1]],["person-walking-with-cane",["\uF29D",!1]],["peseta-sign",["\uE221",!1]],["peso-sign",["\uE222",!1]],["phone",["\uF095",!1]],["phone-flip",["\uF879",!1]],["phone-slash",["\uF3DD",!1]],["phone-volume",["\uF2A0",!1]],["photo-film",["\uF87C",!1]],["piggy-bank",["\uF4D3",!1]],["pills",["\uF484",!1]],["pizza-slice",["\uF818",!1]],["place-of-worship",["\uF67F",!1]],["plane",["\uF072",!1]],["plane-arrival",["\uF5AF",!1]],["plane-circle-check",["\uE555",!1]],["plane-circle-exclamation",["\uE556",!1]],["plane-circle-xmark",["\uE557",!1]],["plane-departure",["\uF5B0",!1]],["plane-lock",["\uE558",!1]],["plane-slash",["\uE069",!1]],["plane-up",["\uE22D",!1]],["plant-wilt",["\uE5AA",!1]],["plate-wheat",["\uE55A",!1]],["play",["\uF04B",!1]],["plug",["\uF1E6",!1]],["plug-circle-bolt",["\uE55B",!1]],["plug-circle-check",["\uE55C",!1]],["plug-circle-exclamation",["\uE55D",!1]],["plug-circle-minus",["\uE55E",!1]],["plug-circle-plus",["\uE55F",!1]],["plug-circle-xmark",["\uE560",!1]],["plus",["+",!1]],["plus-minus",["\uE43C",!1]],["podcast",["\uF2CE",!1]],["poo",["\uF2FE",!1]],["poo-storm",["\uF75A",!1]],["poop",["\uF619",!1]],["power-off",["\uF011",!1]],["prescription",["\uF5B1",!1]],["prescription-bottle",["\uF485",!1]],["prescription-bottle-medical",["\uF486",!1]],["print",["\uF02F",!1]],["pump-medical",["\uE06A",!1]],["pump-soap",["\uE06B",!1]],["puzzle-piece",["\uF12E",!1]],["q",["Q",!1]],["qrcode",["\uF029",!1]],["question",["?",!1]],["quote-left",["\uF10D",!1]],["quote-right",["\uF10E",!1]],["r",["R",!1]],["radiation",["\uF7B9",!1]],["radio",["\uF8D7",!1]],["rainbow",["\uF75B",!1]],["ranking-star",["\uE561",!1]],["receipt",["\uF543",!1]],["record-vinyl",["\uF8D9",!1]],["rectangle-ad",["\uF641",!1]],["rectangle-list",["\uF022",!0]],["rectangle-xmark",["\uF410",!0]],["recycle",["\uF1B8",!1]],["registered",["\uF25D",!0]],["repeat",["\uF363",!1]],["reply",["\uF3E5",!1]],["reply-all",["\uF122",!1]],["republican",["\uF75E",!1]],["restroom",["\uF7BD",!1]],["retweet",["\uF079",!1]],["ribbon",["\uF4D6",!1]],["right-from-bracket",["\uF2F5",!1]],["right-left",["\uF362",!1]],["right-long",["\uF30B",!1]],["right-to-bracket",["\uF2F6",!1]],["ring",["\uF70B",!1]],["road",["\uF018",!1]],["road-barrier",["\uE562",!1]],["road-bridge",["\uE563",!1]],["road-circle-check",["\uE564",!1]],["road-circle-exclamation",["\uE565",!1]],["road-circle-xmark",["\uE566",!1]],["road-lock",["\uE567",!1]],["road-spikes",["\uE568",!1]],["robot",["\uF544",!1]],["rocket",["\uF135",!1]],["rotate",["\uF2F1",!1]],["rotate-left",["\uF2EA",!1]],["rotate-right",["\uF2F9",!1]],["route",["\uF4D7",!1]],["rss",["\uF09E",!1]],["ruble-sign",["\uF158",!1]],["rug",["\uE569",!1]],["ruler",["\uF545",!1]],["ruler-combined",["\uF546",!1]],["ruler-horizontal",["\uF547",!1]],["ruler-vertical",["\uF548",!1]],["rupee-sign",["\uF156",!1]],["rupiah-sign",["\uE23D",!1]],["s",["S",!1]],["sack-dollar",["\uF81D",!1]],["sack-xmark",["\uE56A",!1]],["sailboat",["\uE445",!1]],["satellite",["\uF7BF",!1]],["satellite-dish",["\uF7C0",!1]],["scale-balanced",["\uF24E",!1]],["scale-unbalanced",["\uF515",!1]],["scale-unbalanced-flip",["\uF516",!1]],["school",["\uF549",!1]],["school-circle-check",["\uE56B",!1]],["school-circle-exclamation",["\uE56C",!1]],["school-circle-xmark",["\uE56D",!1]],["school-flag",["\uE56E",!1]],["school-lock",["\uE56F",!1]],["scissors",["\uF0C4",!1]],["screwdriver",["\uF54A",!1]],["screwdriver-wrench",["\uF7D9",!1]],["scroll",["\uF70E",!1]],["scroll-torah",["\uF6A0",!1]],["sd-card",["\uF7C2",!1]],["section",["\uE447",!1]],["seedling",["\uF4D8",!1]],["server",["\uF233",!1]],["shapes",["\uF61F",!1]],["share",["\uF064",!1]],["share-from-square",["\uF14D",!0]],["share-nodes",["\uF1E0",!1]],["sheet-plastic",["\uE571",!1]],["shekel-sign",["\uF20B",!1]],["shield",["\uF132",!1]],["shield-cat",["\uE572",!1]],["shield-dog",["\uE573",!1]],["shield-halved",["\uF3ED",!1]],["shield-heart",["\uE574",!1]],["shield-virus",["\uE06C",!1]],["ship",["\uF21A",!1]],["shirt",["\uF553",!1]],["shoe-prints",["\uF54B",!1]],["shop",["\uF54F",!1]],["shop-lock",["\uE4A5",!1]],["shop-slash",["\uE070",!1]],["shower",["\uF2CC",!1]],["shrimp",["\uE448",!1]],["shuffle",["\uF074",!1]],["shuttle-space",["\uF197",!1]],["sign-hanging",["\uF4D9",!1]],["signal",["\uF012",!1]],["signature",["\uF5B7",!1]],["signs-post",["\uF277",!1]],["sim-card",["\uF7C4",!1]],["sink",["\uE06D",!1]],["sitemap",["\uF0E8",!1]],["skull",["\uF54C",!1]],["skull-crossbones",["\uF714",!1]],["slash",["\uF715",!1]],["sleigh",["\uF7CC",!1]],["sliders",["\uF1DE",!1]],["smog",["\uF75F",!1]],["smoking",["\uF48D",!1]],["snowflake",["\uF2DC",!0]],["snowman",["\uF7D0",!1]],["snowplow",["\uF7D2",!1]],["soap",["\uE06E",!1]],["socks",["\uF696",!1]],["solar-panel",["\uF5BA",!1]],["sort",["\uF0DC",!1]],["sort-down",["\uF0DD",!1]],["sort-up",["\uF0DE",!1]],["spa",["\uF5BB",!1]],["spaghetti-monster-flying",["\uF67B",!1]],["spell-check",["\uF891",!1]],["spider",["\uF717",!1]],["spinner",["\uF110",!1]],["splotch",["\uF5BC",!1]],["spoon",["\uF2E5",!1]],["spray-can",["\uF5BD",!1]],["spray-can-sparkles",["\uF5D0",!1]],["square",["\uF0C8",!0]],["square-arrow-up-right",["\uF14C",!1]],["square-caret-down",["\uF150",!0]],["square-caret-left",["\uF191",!0]],["square-caret-right",["\uF152",!0]],["square-caret-up",["\uF151",!0]],["square-check",["\uF14A",!0]],["square-envelope",["\uF199",!1]],["square-full",["\uF45C",!0]],["square-h",["\uF0FD",!1]],["square-minus",["\uF146",!0]],["square-nfi",["\uE576",!1]],["square-parking",["\uF540",!1]],["square-pen",["\uF14B",!1]],["square-person-confined",["\uE577",!1]],["square-phone",["\uF098",!1]],["square-phone-flip",["\uF87B",!1]],["square-plus",["\uF0FE",!0]],["square-poll-horizontal",["\uF682",!1]],["square-poll-vertical",["\uF681",!1]],["square-root-variable",["\uF698",!1]],["square-rss",["\uF143",!1]],["square-share-nodes",["\uF1E1",!1]],["square-up-right",["\uF360",!1]],["square-virus",["\uE578",!1]],["square-xmark",["\uF2D3",!1]],["staff-snake",["\uE579",!1]],["stairs",["\uE289",!1]],["stamp",["\uF5BF",!1]],["stapler",["\uE5AF",!1]],["star",["\uF005",!0]],["star-and-crescent",["\uF699",!1]],["star-half",["\uF089",!0]],["star-half-stroke",["\uF5C0",!0]],["star-of-david",["\uF69A",!1]],["star-of-life",["\uF621",!1]],["sterling-sign",["\uF154",!1]],["stethoscope",["\uF0F1",!1]],["stop",["\uF04D",!1]],["stopwatch",["\uF2F2",!1]],["stopwatch-20",["\uE06F",!1]],["store",["\uF54E",!1]],["store-slash",["\uE071",!1]],["street-view",["\uF21D",!1]],["strikethrough",["\uF0CC",!1]],["stroopwafel",["\uF551",!1]],["subscript",["\uF12C",!1]],["suitcase",["\uF0F2",!1]],["suitcase-medical",["\uF0FA",!1]],["suitcase-rolling",["\uF5C1",!1]],["sun",["\uF185",!0]],["sun-plant-wilt",["\uE57A",!1]],["superscript",["\uF12B",!1]],["swatchbook",["\uF5C3",!1]],["synagogue",["\uF69B",!1]],["syringe",["\uF48E",!1]],["t",["T",!1]],["table",["\uF0CE",!1]],["table-cells",["\uF00A",!1]],["table-cells-large",["\uF009",!1]],["table-columns",["\uF0DB",!1]],["table-list",["\uF00B",!1]],["table-tennis-paddle-ball",["\uF45D",!1]],["tablet",["\uF3FB",!1]],["tablet-button",["\uF10A",!1]],["tablet-screen-button",["\uF3FA",!1]],["tablets",["\uF490",!1]],["tachograph-digital",["\uF566",!1]],["tag",["\uF02B",!1]],["tags",["\uF02C",!1]],["tape",["\uF4DB",!1]],["tarp",["\uE57B",!1]],["tarp-droplet",["\uE57C",!1]],["taxi",["\uF1BA",!1]],["teeth",["\uF62E",!1]],["teeth-open",["\uF62F",!1]],["temperature-arrow-down",["\uE03F",!1]],["temperature-arrow-up",["\uE040",!1]],["temperature-empty",["\uF2CB",!1]],["temperature-full",["\uF2C7",!1]],["temperature-half",["\uF2C9",!1]],["temperature-high",["\uF769",!1]],["temperature-low",["\uF76B",!1]],["temperature-quarter",["\uF2CA",!1]],["temperature-three-quarters",["\uF2C8",!1]],["tenge-sign",["\uF7D7",!1]],["tent",["\uE57D",!1]],["tent-arrow-down-to-line",["\uE57E",!1]],["tent-arrow-left-right",["\uE57F",!1]],["tent-arrow-turn-left",["\uE580",!1]],["tent-arrows-down",["\uE581",!1]],["tents",["\uE582",!1]],["terminal",["\uF120",!1]],["text-height",["\uF034",!1]],["text-slash",["\uF87D",!1]],["text-width",["\uF035",!1]],["thermometer",["\uF491",!1]],["thumbs-down",["\uF165",!0]],["thumbs-up",["\uF164",!0]],["thumbtack",["\uF08D",!1]],["ticket",["\uF145",!1]],["ticket-simple",["\uF3FF",!1]],["timeline",["\uE29C",!1]],["toggle-off",["\uF204",!1]],["toggle-on",["\uF205",!1]],["toilet",["\uF7D8",!1]],["toilet-paper",["\uF71E",!1]],["toilet-paper-slash",["\uE072",!1]],["toilet-portable",["\uE583",!1]],["toilets-portable",["\uE584",!1]],["toolbox",["\uF552",!1]],["tooth",["\uF5C9",!1]],["torii-gate",["\uF6A1",!1]],["tornado",["\uF76F",!1]],["tower-broadcast",["\uF519",!1]],["tower-cell",["\uE585",!1]],["tower-observation",["\uE586",!1]],["tractor",["\uF722",!1]],["trademark",["\uF25C",!1]],["traffic-light",["\uF637",!1]],["trailer",["\uE041",!1]],["train",["\uF238",!1]],["train-subway",["\uF239",!1]],["train-tram",["\uE5B4",!1]],["transgender",["\uF225",!1]],["trash",["\uF1F8",!1]],["trash-arrow-up",["\uF829",!1]],["trash-can",["\uF2ED",!0]],["trash-can-arrow-up",["\uF82A",!1]],["tree",["\uF1BB",!1]],["tree-city",["\uE587",!1]],["triangle-exclamation",["\uF071",!1]],["trophy",["\uF091",!1]],["trowel",["\uE589",!1]],["trowel-bricks",["\uE58A",!1]],["truck",["\uF0D1",!1]],["truck-arrow-right",["\uE58B",!1]],["truck-droplet",["\uE58C",!1]],["truck-fast",["\uF48B",!1]],["truck-field",["\uE58D",!1]],["truck-field-un",["\uE58E",!1]],["truck-front",["\uE2B7",!1]],["truck-medical",["\uF0F9",!1]],["truck-monster",["\uF63B",!1]],["truck-moving",["\uF4DF",!1]],["truck-pickup",["\uF63C",!1]],["truck-plane",["\uE58F",!1]],["truck-ramp-box",["\uF4DE",!1]],["tty",["\uF1E4",!1]],["turkish-lira-sign",["\uE2BB",!1]],["turn-down",["\uF3BE",!1]],["turn-up",["\uF3BF",!1]],["tv",["\uF26C",!1]],["u",["U",!1]],["umbrella",["\uF0E9",!1]],["umbrella-beach",["\uF5CA",!1]],["underline",["\uF0CD",!1]],["universal-access",["\uF29A",!1]],["unlock",["\uF09C",!1]],["unlock-keyhole",["\uF13E",!1]],["up-down",["\uF338",!1]],["up-down-left-right",["\uF0B2",!1]],["up-long",["\uF30C",!1]],["up-right-and-down-left-from-center",["\uF424",!1]],["up-right-from-square",["\uF35D",!1]],["upload",["\uF093",!1]],["user",["\uF007",!0]],["user-astronaut",["\uF4FB",!1]],["user-check",["\uF4FC",!1]],["user-clock",["\uF4FD",!1]],["user-doctor",["\uF0F0",!1]],["user-gear",["\uF4FE",!1]],["user-graduate",["\uF501",!1]],["user-group",["\uF500",!1]],["user-injured",["\uF728",!1]],["user-large",["\uF406",!1]],["user-large-slash",["\uF4FA",!1]],["user-lock",["\uF502",!1]],["user-minus",["\uF503",!1]],["user-ninja",["\uF504",!1]],["user-nurse",["\uF82F",!1]],["user-pen",["\uF4FF",!1]],["user-plus",["\uF234",!1]],["user-secret",["\uF21B",!1]],["user-shield",["\uF505",!1]],["user-slash",["\uF506",!1]],["user-tag",["\uF507",!1]],["user-tie",["\uF508",!1]],["user-xmark",["\uF235",!1]],["users",["\uF0C0",!1]],["users-between-lines",["\uE591",!1]],["users-gear",["\uF509",!1]],["users-line",["\uE592",!1]],["users-rays",["\uE593",!1]],["users-rectangle",["\uE594",!1]],["users-slash",["\uE073",!1]],["users-viewfinder",["\uE595",!1]],["utensils",["\uF2E7",!1]],["v",["V",!1]],["van-shuttle",["\uF5B6",!1]],["vault",["\uE2C5",!1]],["vector-square",["\uF5CB",!1]],["venus",["\uF221",!1]],["venus-double",["\uF226",!1]],["venus-mars",["\uF228",!1]],["vest",["\uE085",!1]],["vest-patches",["\uE086",!1]],["vial",["\uF492",!1]],["vial-circle-check",["\uE596",!1]],["vial-virus",["\uE597",!1]],["vials",["\uF493",!1]],["video",["\uF03D",!1]],["video-slash",["\uF4E2",!1]],["vihara",["\uF6A7",!1]],["virus",["\uE074",!1]],["virus-covid",["\uE4A8",!1]],["virus-covid-slash",["\uE4A9",!1]],["virus-slash",["\uE075",!1]],["viruses",["\uE076",!1]],["voicemail",["\uF897",!1]],["volcano",["\uF770",!1]],["volleyball",["\uF45F",!1]],["volume-high",["\uF028",!1]],["volume-low",["\uF027",!1]],["volume-off",["\uF026",!1]],["volume-xmark",["\uF6A9",!1]],["vr-cardboard",["\uF729",!1]],["w",["W",!1]],["walkie-talkie",["\uF8EF",!1]],["wallet",["\uF555",!1]],["wand-magic",["\uF0D0",!1]],["wand-magic-sparkles",["\uE2CA",!1]],["wand-sparkles",["\uF72B",!1]],["warehouse",["\uF494",!1]],["water",["\uF773",!1]],["water-ladder",["\uF5C5",!1]],["wave-square",["\uF83E",!1]],["weight-hanging",["\uF5CD",!1]],["weight-scale",["\uF496",!1]],["wheat-awn",["\uE2CD",!1]],["wheat-awn-circle-exclamation",["\uE598",!1]],["wheelchair",["\uF193",!1]],["wheelchair-move",["\uE2CE",!1]],["whiskey-glass",["\uF7A0",!1]],["wifi",["\uF1EB",!1]],["wind",["\uF72E",!1]],["window-maximize",["\uF2D0",!0]],["window-minimize",["\uF2D1",!0]],["window-restore",["\uF2D2",!0]],["wine-bottle",["\uF72F",!1]],["wine-glass",["\uF4E3",!1]],["wine-glass-empty",["\uF5CE",!1]],["won-sign",["\uF159",!1]],["worm",["\uE599",!1]],["wrench",["\uF0AD",!1]],["x",["X",!1]],["x-ray",["\uF497",!1]],["xmark",["\uF00D",!1]],["xmarks-lines",["\uE59A",!1]],["y",["Y",!1]],["yen-sign",["\uF157",!1]],["yin-yang",["\uF6AD",!1]],["z",["Z",!1]]]);window.getFontAwesome6Metadata=()=>new Map(r),window.getFontAwesome6IconMetadata=n=>r.get(e.get(n)||n)})();(()=>{let e=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class r extends HTMLElement{root=void 0;svgStyle=document.createElement("style");connectedCallback(){this.validate();let h=this.getRoot(),t=document.createElement("slot");t.name="svg",h.append(t),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(this.size===0)throw new TypeError("Must provide an icon size.");if(!e.has(this.size))throw new TypeError("Must provide a valid icon size.")}getRoot(){return this.root===void 0&&(this.root=this.attachShadow({mode:"open"}),this.updateRenderSize(),this.root.append(this.svgStyle)),this.root}updateRenderSize(){let h=e.get(this.size);this.svgStyle.textContent=` + `;return new Function("Language","h","v",r)}var V=class{compiled;constructor(r){try{this.compiled=Me(r)}catch(l){throw l instanceof Error&&console.debug(l.message),l}}fetch(r){return this.compiled(ie,{selectPlural:Se,escapeHTML:Ae,formatNumeric:de},r)}};function Ie(e,r){typeof r=="string"?G(e,ze(r)):G(e,function(){return r})}function ze(e){if(!e.includes("{"))return function(){return e};try{let r=new V(e);return r.fetch.bind(r)}catch{return function(){return e}}}var Pe=(()=>{let e="DOMContentLoaded",r=new WeakMap,l=[],u=i=>{do if(i.nextSibling)return!0;while(i=i.parentNode);return!1},t=()=>{l.splice(0).forEach(i=>{r.get(i[0])!==!0&&(r.set(i[0],!0),i[0][i[1]]())})};document.addEventListener(e,t);class a extends HTMLElement{static withParsedCallback(d,b="parsed"){let{prototype:k}=d,{connectedCallback:q}=k,S=b+"Callback",z=(h,g,p,x)=>{g.disconnect(),p.removeEventListener(e,x),P(h)},P=h=>{l.length||requestAnimationFrame(t),l.push([h,S])};return Object.defineProperties(k,{connectedCallback:{configurable:!0,writable:!0,value(){if(q&&q.apply(this,arguments),S in this&&!r.has(this)){let h=this,{ownerDocument:g}=h;if(r.set(h,!1),g.readyState==="complete"||u(h))P(h);else{let p=()=>z(h,x,g,p);g.addEventListener(e,p);let x=new MutationObserver(()=>{u(h)&&z(h,x,g,p)});x.observe(h.parentNode,{childList:!0,subtree:!0})}}}},[b]:{configurable:!0,get(){return r.get(this)===!0}}}),d}}return a.withParsedCallback(a)})(),pe=Pe;(()=>{let e=new Map([["contact-book","address-book"],["contact-card","address-card"],["vcard","address-card"],["angle-double-down","angles-down"],["angle-double-left","angles-left"],["angle-double-right","angles-right"],["angle-double-up","angles-up"],["apple-alt","apple-whole"],["sort-numeric-asc","arrow-down-1-9"],["sort-numeric-down","arrow-down-1-9"],["sort-numeric-desc","arrow-down-9-1"],["sort-numeric-down-alt","arrow-down-9-1"],["sort-alpha-asc","arrow-down-a-z"],["sort-alpha-down","arrow-down-a-z"],["long-arrow-down","arrow-down-long"],["sort-amount-desc","arrow-down-short-wide"],["sort-amount-down-alt","arrow-down-short-wide"],["sort-amount-asc","arrow-down-wide-short"],["sort-amount-down","arrow-down-wide-short"],["sort-alpha-desc","arrow-down-z-a"],["sort-alpha-down-alt","arrow-down-z-a"],["long-arrow-left","arrow-left-long"],["mouse-pointer","arrow-pointer"],["exchange","arrow-right-arrow-left"],["sign-out","arrow-right-from-bracket"],["long-arrow-right","arrow-right-long"],["sign-in","arrow-right-to-bracket"],["arrow-left-rotate","arrow-rotate-left"],["arrow-rotate-back","arrow-rotate-left"],["arrow-rotate-backward","arrow-rotate-left"],["undo","arrow-rotate-left"],["arrow-right-rotate","arrow-rotate-right"],["arrow-rotate-forward","arrow-rotate-right"],["redo","arrow-rotate-right"],["level-down","arrow-turn-down"],["level-up","arrow-turn-up"],["sort-numeric-up","arrow-up-1-9"],["sort-numeric-up-alt","arrow-up-9-1"],["sort-alpha-up","arrow-up-a-z"],["long-arrow-up","arrow-up-long"],["external-link","arrow-up-right-from-square"],["sort-amount-up-alt","arrow-up-short-wide"],["sort-amount-up","arrow-up-wide-short"],["sort-alpha-up-alt","arrow-up-z-a"],["arrows-h","arrows-left-right"],["refresh","arrows-rotate"],["sync","arrows-rotate"],["arrows-v","arrows-up-down"],["arrows","arrows-up-down-left-right"],["carriage-baby","baby-carriage"],["fast-backward","backward-fast"],["step-backward","backward-step"],["shopping-bag","bag-shopping"],["haykal","bahai"],["cancel","ban"],["smoking-ban","ban-smoking"],["band-aid","bandage"],["navicon","bars"],["tasks-alt","bars-progress"],["reorder","bars-staggered"],["stream","bars-staggered"],["baseball-ball","baseball"],["shopping-basket","basket-shopping"],["basketball-ball","basketball"],["bathtub","bath"],["battery-0","battery-empty"],["battery","battery-full"],["battery-5","battery-full"],["battery-3","battery-half"],["battery-2","battery-quarter"],["battery-4","battery-three-quarters"],["procedures","bed-pulse"],["beer","beer-mug-empty"],["concierge-bell","bell-concierge"],["zap","bolt"],["atlas","book-atlas"],["bible","book-bible"],["journal-whills","book-journal-whills"],["book-reader","book-open-reader"],["quran","book-quran"],["book-dead","book-skull"],["tanakh","book-tanakh"],["border-style","border-top-left"],["archive","box-archive"],["boxes","boxes-stacked"],["boxes-alt","boxes-stacked"],["quidditch","broom-ball"],["quidditch-broom-ball","broom-ball"],["bank","building-columns"],["institution","building-columns"],["museum","building-columns"],["university","building-columns"],["hamburger","burger"],["bus-alt","bus-simple"],["briefcase-clock","business-time"],["tram","cable-car"],["birthday-cake","cake-candles"],["cake","cake-candles"],["calendar-alt","calendar-days"],["calendar-times","calendar-xmark"],["camera-alt","camera"],["automobile","car"],["battery-car","car-battery"],["car-crash","car-burst"],["car-alt","car-rear"],["dolly-flatbed","cart-flatbed"],["luggage-cart","cart-flatbed-suitcase"],["shopping-cart","cart-shopping"],["blackboard","chalkboard"],["chalkboard-teacher","chalkboard-user"],["glass-cheers","champagne-glasses"],["area-chart","chart-area"],["bar-chart","chart-bar"],["line-chart","chart-line"],["pie-chart","chart-pie"],["vote-yea","check-to-slot"],["child-rifle","child-combatant"],["arrow-circle-down","circle-arrow-down"],["arrow-circle-left","circle-arrow-left"],["arrow-circle-right","circle-arrow-right"],["arrow-circle-up","circle-arrow-up"],["check-circle","circle-check"],["chevron-circle-down","circle-chevron-down"],["chevron-circle-left","circle-chevron-left"],["chevron-circle-right","circle-chevron-right"],["chevron-circle-up","circle-chevron-up"],["donate","circle-dollar-to-slot"],["dot-circle","circle-dot"],["arrow-alt-circle-down","circle-down"],["exclamation-circle","circle-exclamation"],["hospital-symbol","circle-h"],["adjust","circle-half-stroke"],["info-circle","circle-info"],["arrow-alt-circle-left","circle-left"],["minus-circle","circle-minus"],["pause-circle","circle-pause"],["play-circle","circle-play"],["plus-circle","circle-plus"],["question-circle","circle-question"],["radiation-alt","circle-radiation"],["arrow-alt-circle-right","circle-right"],["stop-circle","circle-stop"],["arrow-alt-circle-up","circle-up"],["user-circle","circle-user"],["times-circle","circle-xmark"],["xmark-circle","circle-xmark"],["clock-four","clock"],["history","clock-rotate-left"],["cloud-download","cloud-arrow-down"],["cloud-download-alt","cloud-arrow-down"],["cloud-upload","cloud-arrow-up"],["cloud-upload-alt","cloud-arrow-up"],["thunderstorm","cloud-bolt"],["commenting","comment-dots"],["sms","comment-sms"],["drafting-compass","compass-drafting"],["mouse","computer-mouse"],["credit-card-alt","credit-card"],["crop-alt","crop-simple"],["backspace","delete-left"],["desktop-alt","desktop"],["project-diagram","diagram-project"],["directions","diamond-turn-right"],["dollar","dollar-sign"],["usd","dollar-sign"],["dolly-box","dolly"],["compress-alt","down-left-and-up-right-to-center"],["long-arrow-alt-down","down-long"],["tint","droplet"],["tint-slash","droplet-slash"],["deaf","ear-deaf"],["deafness","ear-deaf"],["hard-of-hearing","ear-deaf"],["assistive-listening-systems","ear-listen"],["globe-africa","earth-africa"],["earth","earth-americas"],["earth-america","earth-americas"],["globe-americas","earth-americas"],["globe-asia","earth-asia"],["globe-europe","earth-europe"],["globe-oceania","earth-oceania"],["ellipsis-h","ellipsis"],["ellipsis-v","ellipsis-vertical"],["mail-bulk","envelopes-bulk"],["eur","euro-sign"],["euro","euro-sign"],["eye-dropper-empty","eye-dropper"],["eyedropper","eye-dropper"],["low-vision","eye-low-vision"],["angry","face-angry"],["dizzy","face-dizzy"],["flushed","face-flushed"],["frown","face-frown"],["frown-open","face-frown-open"],["grimace","face-grimace"],["grin","face-grin"],["grin-beam","face-grin-beam"],["grin-beam-sweat","face-grin-beam-sweat"],["grin-hearts","face-grin-hearts"],["grin-squint","face-grin-squint"],["grin-squint-tears","face-grin-squint-tears"],["grin-stars","face-grin-stars"],["grin-tears","face-grin-tears"],["grin-tongue","face-grin-tongue"],["grin-tongue-squint","face-grin-tongue-squint"],["grin-tongue-wink","face-grin-tongue-wink"],["grin-alt","face-grin-wide"],["grin-wink","face-grin-wink"],["kiss","face-kiss"],["kiss-beam","face-kiss-beam"],["kiss-wink-heart","face-kiss-wink-heart"],["laugh","face-laugh"],["laugh-beam","face-laugh-beam"],["laugh-squint","face-laugh-squint"],["laugh-wink","face-laugh-wink"],["meh","face-meh"],["meh-blank","face-meh-blank"],["meh-rolling-eyes","face-rolling-eyes"],["sad-cry","face-sad-cry"],["sad-tear","face-sad-tear"],["smile","face-smile"],["smile-beam","face-smile-beam"],["smile-wink","face-smile-wink"],["surprise","face-surprise"],["tired","face-tired"],["feather-alt","feather-pointed"],["file-download","file-arrow-down"],["file-upload","file-arrow-up"],["arrow-right-from-file","file-export"],["arrow-right-to-file","file-import"],["file-alt","file-lines"],["file-text","file-lines"],["file-edit","file-pen"],["file-medical-alt","file-waveform"],["file-archive","file-zipper"],["funnel-dollar","filter-circle-dollar"],["fire-alt","fire-flame-curved"],["burn","fire-flame-simple"],["save","floppy-disk"],["folder-blank","folder"],["football-ball","football"],["fast-forward","forward-fast"],["step-forward","forward-step"],["futbol-ball","futbol"],["soccer-ball","futbol"],["dashboard","gauge"],["gauge-med","gauge"],["tachometer-alt-average","gauge"],["tachometer-alt","gauge-high"],["tachometer-alt-fast","gauge-high"],["gauge-simple-med","gauge-simple"],["tachometer-average","gauge-simple"],["tachometer","gauge-simple-high"],["tachometer-fast","gauge-simple-high"],["legal","gavel"],["cog","gear"],["cogs","gears"],["golf-ball","golf-ball-tee"],["mortar-board","graduation-cap"],["grip-horizontal","grip"],["hand-paper","hand"],["hand-rock","hand-back-fist"],["allergies","hand-dots"],["fist-raised","hand-fist"],["hand-holding-usd","hand-holding-dollar"],["hand-holding-water","hand-holding-droplet"],["sign-language","hands"],["signing","hands"],["american-sign-language-interpreting","hands-asl-interpreting"],["asl-interpreting","hands-asl-interpreting"],["hands-american-sign-language-interpreting","hands-asl-interpreting"],["hands-wash","hands-bubbles"],["praying-hands","hands-praying"],["hands-helping","handshake-angle"],["handshake-alt","handshake-simple"],["handshake-alt-slash","handshake-simple-slash"],["hdd","hard-drive"],["header","heading"],["headphones-alt","headphones-simple"],["heart-broken","heart-crack"],["heartbeat","heart-pulse"],["hard-hat","helmet-safety"],["hat-hard","helmet-safety"],["hospital-alt","hospital"],["hospital-wide","hospital"],["hot-tub","hot-tub-person"],["hourglass-empty","hourglass"],["hourglass-3","hourglass-end"],["hourglass-2","hourglass-half"],["hourglass-1","hourglass-start"],["home","house"],["home-alt","house"],["home-lg-alt","house"],["home-lg","house-chimney"],["house-damage","house-chimney-crack"],["clinic-medical","house-chimney-medical"],["laptop-house","house-laptop"],["home-user","house-user"],["hryvnia","hryvnia-sign"],["heart-music-camera-bolt","icons"],["drivers-license","id-card"],["id-card-alt","id-card-clip"],["portrait","image-portrait"],["indian-rupee","indian-rupee-sign"],["inr","indian-rupee-sign"],["fighter-jet","jet-fighter"],["first-aid","kit-medical"],["landmark-alt","landmark-dome"],["long-arrow-alt-left","left-long"],["arrows-alt-h","left-right"],["chain","link"],["chain-broken","link-slash"],["chain-slash","link-slash"],["unlink","link-slash"],["list-squares","list"],["tasks","list-check"],["list-1-2","list-ol"],["list-numeric","list-ol"],["list-dots","list-ul"],["location","location-crosshairs"],["map-marker-alt","location-dot"],["map-marker","location-pin"],["search","magnifying-glass"],["search-dollar","magnifying-glass-dollar"],["search-location","magnifying-glass-location"],["search-minus","magnifying-glass-minus"],["search-plus","magnifying-glass-plus"],["map-marked","map-location"],["map-marked-alt","map-location-dot"],["mars-stroke-h","mars-stroke-right"],["mars-stroke-v","mars-stroke-up"],["glass-martini-alt","martini-glass"],["cocktail","martini-glass-citrus"],["glass-martini","martini-glass-empty"],["theater-masks","masks-theater"],["expand-arrows-alt","maximize"],["comment-alt","message"],["microphone-alt","microphone-lines"],["microphone-alt-slash","microphone-lines-slash"],["compress-arrows-alt","minimize"],["subtract","minus"],["mobile-android","mobile"],["mobile-phone","mobile"],["mobile-android-alt","mobile-screen"],["mobile-alt","mobile-screen-button"],["money-bill-alt","money-bill-1"],["money-bill-wave-alt","money-bill-1-wave"],["money-check-alt","money-check-dollar"],["coffee","mug-saucer"],["sticky-note","note-sticky"],["dedent","outdent"],["paint-brush","paintbrush"],["file-clipboard","paste"],["pen-alt","pen-clip"],["pencil-ruler","pen-ruler"],["edit","pen-to-square"],["pencil-alt","pencil"],["people-arrows-left-right","people-arrows"],["people-carry","people-carry-box"],["percentage","percent"],["male","person"],["biking","person-biking"],["digging","person-digging"],["diagnoses","person-dots-from-line"],["female","person-dress"],["hiking","person-hiking"],["pray","person-praying"],["running","person-running"],["skating","person-skating"],["skiing","person-skiing"],["skiing-nordic","person-skiing-nordic"],["snowboarding","person-snowboarding"],["swimmer","person-swimming"],["walking","person-walking"],["blind","person-walking-with-cane"],["phone-alt","phone-flip"],["volume-control-phone","phone-volume"],["photo-video","photo-film"],["add","plus"],["poo-bolt","poo-storm"],["prescription-bottle-alt","prescription-bottle-medical"],["quote-left-alt","quote-left"],["quote-right-alt","quote-right"],["ad","rectangle-ad"],["list-alt","rectangle-list"],["rectangle-times","rectangle-xmark"],["times-rectangle","rectangle-xmark"],["window-close","rectangle-xmark"],["mail-reply","reply"],["mail-reply-all","reply-all"],["sign-out-alt","right-from-bracket"],["exchange-alt","right-left"],["long-arrow-alt-right","right-long"],["sign-in-alt","right-to-bracket"],["sync-alt","rotate"],["rotate-back","rotate-left"],["rotate-backward","rotate-left"],["undo-alt","rotate-left"],["redo-alt","rotate-right"],["rotate-forward","rotate-right"],["feed","rss"],["rouble","ruble-sign"],["rub","ruble-sign"],["ruble","ruble-sign"],["rupee","rupee-sign"],["balance-scale","scale-balanced"],["balance-scale-left","scale-unbalanced"],["balance-scale-right","scale-unbalanced-flip"],["cut","scissors"],["tools","screwdriver-wrench"],["torah","scroll-torah"],["sprout","seedling"],["triangle-circle-square","shapes"],["arrow-turn-right","share"],["mail-forward","share"],["share-square","share-from-square"],["share-alt","share-nodes"],["ils","shekel-sign"],["shekel","shekel-sign"],["sheqel","shekel-sign"],["sheqel-sign","shekel-sign"],["shield-blank","shield"],["shield-alt","shield-halved"],["t-shirt","shirt"],["tshirt","shirt"],["store-alt","shop"],["store-alt-slash","shop-slash"],["random","shuffle"],["space-shuttle","shuttle-space"],["sign","sign-hanging"],["signal-5","signal"],["signal-perfect","signal"],["map-signs","signs-post"],["sliders-h","sliders"],["unsorted","sort"],["sort-desc","sort-down"],["sort-asc","sort-up"],["pastafarianism","spaghetti-monster-flying"],["utensil-spoon","spoon"],["air-freshener","spray-can-sparkles"],["external-link-square","square-arrow-up-right"],["caret-square-down","square-caret-down"],["caret-square-left","square-caret-left"],["caret-square-right","square-caret-right"],["caret-square-up","square-caret-up"],["check-square","square-check"],["envelope-square","square-envelope"],["h-square","square-h"],["minus-square","square-minus"],["parking","square-parking"],["pen-square","square-pen"],["pencil-square","square-pen"],["phone-square","square-phone"],["phone-square-alt","square-phone-flip"],["plus-square","square-plus"],["poll-h","square-poll-horizontal"],["poll","square-poll-vertical"],["square-root-alt","square-root-variable"],["rss-square","square-rss"],["share-alt-square","square-share-nodes"],["external-link-square-alt","square-up-right"],["times-square","square-xmark"],["xmark-square","square-xmark"],["rod-asclepius","staff-snake"],["rod-snake","staff-snake"],["staff-aesculapius","staff-snake"],["star-half-alt","star-half-stroke"],["gbp","sterling-sign"],["pound-sign","sterling-sign"],["medkit","suitcase-medical"],["th","table-cells"],["th-large","table-cells-large"],["columns","table-columns"],["th-list","table-list"],["ping-pong-paddle-ball","table-tennis-paddle-ball"],["table-tennis","table-tennis-paddle-ball"],["tablet-android","tablet"],["tablet-alt","tablet-screen-button"],["digital-tachograph","tachograph-digital"],["cab","taxi"],["temperature-down","temperature-arrow-down"],["temperature-up","temperature-arrow-up"],["temperature-0","temperature-empty"],["thermometer-0","temperature-empty"],["thermometer-empty","temperature-empty"],["temperature-4","temperature-full"],["thermometer-4","temperature-full"],["thermometer-full","temperature-full"],["temperature-2","temperature-half"],["thermometer-2","temperature-half"],["thermometer-half","temperature-half"],["temperature-1","temperature-quarter"],["thermometer-1","temperature-quarter"],["thermometer-quarter","temperature-quarter"],["temperature-3","temperature-three-quarters"],["thermometer-3","temperature-three-quarters"],["thermometer-three-quarters","temperature-three-quarters"],["tenge","tenge-sign"],["remove-format","text-slash"],["thumb-tack","thumbtack"],["ticket-alt","ticket-simple"],["broadcast-tower","tower-broadcast"],["subway","train-subway"],["transgender-alt","transgender"],["trash-restore","trash-arrow-up"],["trash-alt","trash-can"],["trash-restore-alt","trash-can-arrow-up"],["exclamation-triangle","triangle-exclamation"],["warning","triangle-exclamation"],["shipping-fast","truck-fast"],["ambulance","truck-medical"],["truck-loading","truck-ramp-box"],["teletype","tty"],["try","turkish-lira-sign"],["turkish-lira","turkish-lira-sign"],["level-down-alt","turn-down"],["level-up-alt","turn-up"],["television","tv"],["tv-alt","tv"],["unlock-alt","unlock-keyhole"],["arrows-alt-v","up-down"],["arrows-alt","up-down-left-right"],["long-arrow-alt-up","up-long"],["expand-alt","up-right-and-down-left-from-center"],["external-link-alt","up-right-from-square"],["user-md","user-doctor"],["user-cog","user-gear"],["user-friends","user-group"],["user-alt","user-large"],["user-alt-slash","user-large-slash"],["user-edit","user-pen"],["user-times","user-xmark"],["users-cog","users-gear"],["cutlery","utensils"],["shuttle-van","van-shuttle"],["video-camera","video"],["volleyball-ball","volleyball"],["volume-up","volume-high"],["volume-down","volume-low"],["volume-mute","volume-xmark"],["volume-times","volume-xmark"],["magic","wand-magic"],["magic-wand-sparkles","wand-magic-sparkles"],["ladder-water","water-ladder"],["swimming-pool","water-ladder"],["weight","weight-scale"],["wheat-alt","wheat-awn"],["wheelchair-alt","wheelchair-move"],["glass-whiskey","whiskey-glass"],["wifi-3","wifi"],["wifi-strong","wifi"],["wine-glass-alt","wine-glass-empty"],["krw","won-sign"],["won","won-sign"],["close","xmark"],["multiply","xmark"],["remove","xmark"],["times","xmark"],["cny","yen-sign"],["jpy","yen-sign"],["rmb","yen-sign"],["yen","yen-sign"]]),r=new Map([["0",["0",!1]],["1",["1",!1]],["2",["2",!1]],["3",["3",!1]],["4",["4",!1]],["5",["5",!1]],["6",["6",!1]],["7",["7",!1]],["8",["8",!1]],["9",["9",!1]],["a",["A",!1]],["address-book",["\uF2B9",!0]],["address-card",["\uF2BB",!0]],["align-center",["\uF037",!1]],["align-justify",["\uF039",!1]],["align-left",["\uF036",!1]],["align-right",["\uF038",!1]],["anchor",["\uF13D",!1]],["anchor-circle-check",["\uE4AA",!1]],["anchor-circle-exclamation",["\uE4AB",!1]],["anchor-circle-xmark",["\uE4AC",!1]],["anchor-lock",["\uE4AD",!1]],["angle-down",["\uF107",!1]],["angle-left",["\uF104",!1]],["angle-right",["\uF105",!1]],["angle-up",["\uF106",!1]],["angles-down",["\uF103",!1]],["angles-left",["\uF100",!1]],["angles-right",["\uF101",!1]],["angles-up",["\uF102",!1]],["ankh",["\uF644",!1]],["apple-whole",["\uF5D1",!1]],["archway",["\uF557",!1]],["arrow-down",["\uF063",!1]],["arrow-down-1-9",["\uF162",!1]],["arrow-down-9-1",["\uF886",!1]],["arrow-down-a-z",["\uF15D",!1]],["arrow-down-long",["\uF175",!1]],["arrow-down-short-wide",["\uF884",!1]],["arrow-down-up-across-line",["\uE4AF",!1]],["arrow-down-up-lock",["\uE4B0",!1]],["arrow-down-wide-short",["\uF160",!1]],["arrow-down-z-a",["\uF881",!1]],["arrow-left",["\uF060",!1]],["arrow-left-long",["\uF177",!1]],["arrow-pointer",["\uF245",!1]],["arrow-right",["\uF061",!1]],["arrow-right-arrow-left",["\uF0EC",!1]],["arrow-right-from-bracket",["\uF08B",!1]],["arrow-right-long",["\uF178",!1]],["arrow-right-to-bracket",["\uF090",!1]],["arrow-right-to-city",["\uE4B3",!1]],["arrow-rotate-left",["\uF0E2",!1]],["arrow-rotate-right",["\uF01E",!1]],["arrow-trend-down",["\uE097",!1]],["arrow-trend-up",["\uE098",!1]],["arrow-turn-down",["\uF149",!1]],["arrow-turn-up",["\uF148",!1]],["arrow-up",["\uF062",!1]],["arrow-up-1-9",["\uF163",!1]],["arrow-up-9-1",["\uF887",!1]],["arrow-up-a-z",["\uF15E",!1]],["arrow-up-from-bracket",["\uE09A",!1]],["arrow-up-from-ground-water",["\uE4B5",!1]],["arrow-up-from-water-pump",["\uE4B6",!1]],["arrow-up-long",["\uF176",!1]],["arrow-up-right-dots",["\uE4B7",!1]],["arrow-up-right-from-square",["\uF08E",!1]],["arrow-up-short-wide",["\uF885",!1]],["arrow-up-wide-short",["\uF161",!1]],["arrow-up-z-a",["\uF882",!1]],["arrows-down-to-line",["\uE4B8",!1]],["arrows-down-to-people",["\uE4B9",!1]],["arrows-left-right",["\uF07E",!1]],["arrows-left-right-to-line",["\uE4BA",!1]],["arrows-rotate",["\uF021",!1]],["arrows-spin",["\uE4BB",!1]],["arrows-split-up-and-left",["\uE4BC",!1]],["arrows-to-circle",["\uE4BD",!1]],["arrows-to-dot",["\uE4BE",!1]],["arrows-to-eye",["\uE4BF",!1]],["arrows-turn-right",["\uE4C0",!1]],["arrows-turn-to-dots",["\uE4C1",!1]],["arrows-up-down",["\uF07D",!1]],["arrows-up-down-left-right",["\uF047",!1]],["arrows-up-to-line",["\uE4C2",!1]],["asterisk",["*",!1]],["at",["@",!1]],["atom",["\uF5D2",!1]],["audio-description",["\uF29E",!1]],["austral-sign",["\uE0A9",!1]],["award",["\uF559",!1]],["b",["B",!1]],["baby",["\uF77C",!1]],["baby-carriage",["\uF77D",!1]],["backward",["\uF04A",!1]],["backward-fast",["\uF049",!1]],["backward-step",["\uF048",!1]],["bacon",["\uF7E5",!1]],["bacteria",["\uE059",!1]],["bacterium",["\uE05A",!1]],["bag-shopping",["\uF290",!1]],["bahai",["\uF666",!1]],["baht-sign",["\uE0AC",!1]],["ban",["\uF05E",!1]],["ban-smoking",["\uF54D",!1]],["bandage",["\uF462",!1]],["bangladeshi-taka-sign",["\uE2E6",!1]],["barcode",["\uF02A",!1]],["bars",["\uF0C9",!1]],["bars-progress",["\uF828",!1]],["bars-staggered",["\uF550",!1]],["baseball",["\uF433",!1]],["baseball-bat-ball",["\uF432",!1]],["basket-shopping",["\uF291",!1]],["basketball",["\uF434",!1]],["bath",["\uF2CD",!1]],["battery-empty",["\uF244",!1]],["battery-full",["\uF240",!1]],["battery-half",["\uF242",!1]],["battery-quarter",["\uF243",!1]],["battery-three-quarters",["\uF241",!1]],["bed",["\uF236",!1]],["bed-pulse",["\uF487",!1]],["beer-mug-empty",["\uF0FC",!1]],["bell",["\uF0F3",!0]],["bell-concierge",["\uF562",!1]],["bell-slash",["\uF1F6",!0]],["bezier-curve",["\uF55B",!1]],["bicycle",["\uF206",!1]],["binoculars",["\uF1E5",!1]],["biohazard",["\uF780",!1]],["bitcoin-sign",["\uE0B4",!1]],["blender",["\uF517",!1]],["blender-phone",["\uF6B6",!1]],["blog",["\uF781",!1]],["bold",["\uF032",!1]],["bolt",["\uF0E7",!1]],["bolt-lightning",["\uE0B7",!1]],["bomb",["\uF1E2",!1]],["bone",["\uF5D7",!1]],["bong",["\uF55C",!1]],["book",["\uF02D",!1]],["book-atlas",["\uF558",!1]],["book-bible",["\uF647",!1]],["book-bookmark",["\uE0BB",!1]],["book-journal-whills",["\uF66A",!1]],["book-medical",["\uF7E6",!1]],["book-open",["\uF518",!1]],["book-open-reader",["\uF5DA",!1]],["book-quran",["\uF687",!1]],["book-skull",["\uF6B7",!1]],["book-tanakh",["\uF827",!1]],["bookmark",["\uF02E",!0]],["border-all",["\uF84C",!1]],["border-none",["\uF850",!1]],["border-top-left",["\uF853",!1]],["bore-hole",["\uE4C3",!1]],["bottle-droplet",["\uE4C4",!1]],["bottle-water",["\uE4C5",!1]],["bowl-food",["\uE4C6",!1]],["bowl-rice",["\uE2EB",!1]],["bowling-ball",["\uF436",!1]],["box",["\uF466",!1]],["box-archive",["\uF187",!1]],["box-open",["\uF49E",!1]],["box-tissue",["\uE05B",!1]],["boxes-packing",["\uE4C7",!1]],["boxes-stacked",["\uF468",!1]],["braille",["\uF2A1",!1]],["brain",["\uF5DC",!1]],["brazilian-real-sign",["\uE46C",!1]],["bread-slice",["\uF7EC",!1]],["bridge",["\uE4C8",!1]],["bridge-circle-check",["\uE4C9",!1]],["bridge-circle-exclamation",["\uE4CA",!1]],["bridge-circle-xmark",["\uE4CB",!1]],["bridge-lock",["\uE4CC",!1]],["bridge-water",["\uE4CE",!1]],["briefcase",["\uF0B1",!1]],["briefcase-medical",["\uF469",!1]],["broom",["\uF51A",!1]],["broom-ball",["\uF458",!1]],["brush",["\uF55D",!1]],["bucket",["\uE4CF",!1]],["bug",["\uF188",!1]],["bug-slash",["\uE490",!1]],["bugs",["\uE4D0",!1]],["building",["\uF1AD",!0]],["building-circle-arrow-right",["\uE4D1",!1]],["building-circle-check",["\uE4D2",!1]],["building-circle-exclamation",["\uE4D3",!1]],["building-circle-xmark",["\uE4D4",!1]],["building-columns",["\uF19C",!1]],["building-flag",["\uE4D5",!1]],["building-lock",["\uE4D6",!1]],["building-ngo",["\uE4D7",!1]],["building-shield",["\uE4D8",!1]],["building-un",["\uE4D9",!1]],["building-user",["\uE4DA",!1]],["building-wheat",["\uE4DB",!1]],["bullhorn",["\uF0A1",!1]],["bullseye",["\uF140",!1]],["burger",["\uF805",!1]],["burst",["\uE4DC",!1]],["bus",["\uF207",!1]],["bus-simple",["\uF55E",!1]],["business-time",["\uF64A",!1]],["c",["C",!1]],["cable-car",["\uF7DA",!1]],["cake-candles",["\uF1FD",!1]],["calculator",["\uF1EC",!1]],["calendar",["\uF133",!0]],["calendar-check",["\uF274",!0]],["calendar-day",["\uF783",!1]],["calendar-days",["\uF073",!0]],["calendar-minus",["\uF272",!0]],["calendar-plus",["\uF271",!0]],["calendar-week",["\uF784",!1]],["calendar-xmark",["\uF273",!0]],["camera",["\uF030",!1]],["camera-retro",["\uF083",!1]],["camera-rotate",["\uE0D8",!1]],["campground",["\uF6BB",!1]],["candy-cane",["\uF786",!1]],["cannabis",["\uF55F",!1]],["capsules",["\uF46B",!1]],["car",["\uF1B9",!1]],["car-battery",["\uF5DF",!1]],["car-burst",["\uF5E1",!1]],["car-on",["\uE4DD",!1]],["car-rear",["\uF5DE",!1]],["car-side",["\uF5E4",!1]],["car-tunnel",["\uE4DE",!1]],["caravan",["\uF8FF",!1]],["caret-down",["\uF0D7",!1]],["caret-left",["\uF0D9",!1]],["caret-right",["\uF0DA",!1]],["caret-up",["\uF0D8",!1]],["carrot",["\uF787",!1]],["cart-arrow-down",["\uF218",!1]],["cart-flatbed",["\uF474",!1]],["cart-flatbed-suitcase",["\uF59D",!1]],["cart-plus",["\uF217",!1]],["cart-shopping",["\uF07A",!1]],["cash-register",["\uF788",!1]],["cat",["\uF6BE",!1]],["cedi-sign",["\uE0DF",!1]],["cent-sign",["\uE3F5",!1]],["certificate",["\uF0A3",!1]],["chair",["\uF6C0",!1]],["chalkboard",["\uF51B",!1]],["chalkboard-user",["\uF51C",!1]],["champagne-glasses",["\uF79F",!1]],["charging-station",["\uF5E7",!1]],["chart-area",["\uF1FE",!1]],["chart-bar",["\uF080",!0]],["chart-column",["\uE0E3",!1]],["chart-gantt",["\uE0E4",!1]],["chart-line",["\uF201",!1]],["chart-pie",["\uF200",!1]],["chart-simple",["\uE473",!1]],["check",["\uF00C",!1]],["check-double",["\uF560",!1]],["check-to-slot",["\uF772",!1]],["cheese",["\uF7EF",!1]],["chess",["\uF439",!1]],["chess-bishop",["\uF43A",!0]],["chess-board",["\uF43C",!1]],["chess-king",["\uF43F",!0]],["chess-knight",["\uF441",!0]],["chess-pawn",["\uF443",!0]],["chess-queen",["\uF445",!0]],["chess-rook",["\uF447",!0]],["chevron-down",["\uF078",!1]],["chevron-left",["\uF053",!1]],["chevron-right",["\uF054",!1]],["chevron-up",["\uF077",!1]],["child",["\uF1AE",!1]],["child-combatant",["\uE4E0",!1]],["child-dress",["\uE59C",!1]],["child-reaching",["\uE59D",!1]],["children",["\uE4E1",!1]],["church",["\uF51D",!1]],["circle",["\uF111",!0]],["circle-arrow-down",["\uF0AB",!1]],["circle-arrow-left",["\uF0A8",!1]],["circle-arrow-right",["\uF0A9",!1]],["circle-arrow-up",["\uF0AA",!1]],["circle-check",["\uF058",!0]],["circle-chevron-down",["\uF13A",!1]],["circle-chevron-left",["\uF137",!1]],["circle-chevron-right",["\uF138",!1]],["circle-chevron-up",["\uF139",!1]],["circle-dollar-to-slot",["\uF4B9",!1]],["circle-dot",["\uF192",!0]],["circle-down",["\uF358",!0]],["circle-exclamation",["\uF06A",!1]],["circle-h",["\uF47E",!1]],["circle-half-stroke",["\uF042",!1]],["circle-info",["\uF05A",!1]],["circle-left",["\uF359",!0]],["circle-minus",["\uF056",!1]],["circle-nodes",["\uE4E2",!1]],["circle-notch",["\uF1CE",!1]],["circle-pause",["\uF28B",!0]],["circle-play",["\uF144",!0]],["circle-plus",["\uF055",!1]],["circle-question",["\uF059",!0]],["circle-radiation",["\uF7BA",!1]],["circle-right",["\uF35A",!0]],["circle-stop",["\uF28D",!0]],["circle-up",["\uF35B",!0]],["circle-user",["\uF2BD",!0]],["circle-xmark",["\uF057",!0]],["city",["\uF64F",!1]],["clapperboard",["\uE131",!1]],["clipboard",["\uF328",!0]],["clipboard-check",["\uF46C",!1]],["clipboard-list",["\uF46D",!1]],["clipboard-question",["\uE4E3",!1]],["clipboard-user",["\uF7F3",!1]],["clock",["\uF017",!0]],["clock-rotate-left",["\uF1DA",!1]],["clone",["\uF24D",!0]],["closed-captioning",["\uF20A",!0]],["cloud",["\uF0C2",!1]],["cloud-arrow-down",["\uF0ED",!1]],["cloud-arrow-up",["\uF0EE",!1]],["cloud-bolt",["\uF76C",!1]],["cloud-meatball",["\uF73B",!1]],["cloud-moon",["\uF6C3",!1]],["cloud-moon-rain",["\uF73C",!1]],["cloud-rain",["\uF73D",!1]],["cloud-showers-heavy",["\uF740",!1]],["cloud-showers-water",["\uE4E4",!1]],["cloud-sun",["\uF6C4",!1]],["cloud-sun-rain",["\uF743",!1]],["clover",["\uE139",!1]],["code",["\uF121",!1]],["code-branch",["\uF126",!1]],["code-commit",["\uF386",!1]],["code-compare",["\uE13A",!1]],["code-fork",["\uE13B",!1]],["code-merge",["\uF387",!1]],["code-pull-request",["\uE13C",!1]],["coins",["\uF51E",!1]],["colon-sign",["\uE140",!1]],["comment",["\uF075",!0]],["comment-dollar",["\uF651",!1]],["comment-dots",["\uF4AD",!0]],["comment-medical",["\uF7F5",!1]],["comment-slash",["\uF4B3",!1]],["comment-sms",["\uF7CD",!1]],["comments",["\uF086",!0]],["comments-dollar",["\uF653",!1]],["compact-disc",["\uF51F",!1]],["compass",["\uF14E",!0]],["compass-drafting",["\uF568",!1]],["compress",["\uF066",!1]],["computer",["\uE4E5",!1]],["computer-mouse",["\uF8CC",!1]],["cookie",["\uF563",!1]],["cookie-bite",["\uF564",!1]],["copy",["\uF0C5",!0]],["copyright",["\uF1F9",!0]],["couch",["\uF4B8",!1]],["cow",["\uF6C8",!1]],["credit-card",["\uF09D",!0]],["crop",["\uF125",!1]],["crop-simple",["\uF565",!1]],["cross",["\uF654",!1]],["crosshairs",["\uF05B",!1]],["crow",["\uF520",!1]],["crown",["\uF521",!1]],["crutch",["\uF7F7",!1]],["cruzeiro-sign",["\uE152",!1]],["cube",["\uF1B2",!1]],["cubes",["\uF1B3",!1]],["cubes-stacked",["\uE4E6",!1]],["d",["D",!1]],["database",["\uF1C0",!1]],["delete-left",["\uF55A",!1]],["democrat",["\uF747",!1]],["desktop",["\uF390",!1]],["dharmachakra",["\uF655",!1]],["diagram-next",["\uE476",!1]],["diagram-predecessor",["\uE477",!1]],["diagram-project",["\uF542",!1]],["diagram-successor",["\uE47A",!1]],["diamond",["\uF219",!1]],["diamond-turn-right",["\uF5EB",!1]],["dice",["\uF522",!1]],["dice-d20",["\uF6CF",!1]],["dice-d6",["\uF6D1",!1]],["dice-five",["\uF523",!1]],["dice-four",["\uF524",!1]],["dice-one",["\uF525",!1]],["dice-six",["\uF526",!1]],["dice-three",["\uF527",!1]],["dice-two",["\uF528",!1]],["disease",["\uF7FA",!1]],["display",["\uE163",!1]],["divide",["\uF529",!1]],["dna",["\uF471",!1]],["dog",["\uF6D3",!1]],["dollar-sign",["$",!1]],["dolly",["\uF472",!1]],["dong-sign",["\uE169",!1]],["door-closed",["\uF52A",!1]],["door-open",["\uF52B",!1]],["dove",["\uF4BA",!1]],["down-left-and-up-right-to-center",["\uF422",!1]],["down-long",["\uF309",!1]],["download",["\uF019",!1]],["dragon",["\uF6D5",!1]],["draw-polygon",["\uF5EE",!1]],["droplet",["\uF043",!1]],["droplet-slash",["\uF5C7",!1]],["drum",["\uF569",!1]],["drum-steelpan",["\uF56A",!1]],["drumstick-bite",["\uF6D7",!1]],["dumbbell",["\uF44B",!1]],["dumpster",["\uF793",!1]],["dumpster-fire",["\uF794",!1]],["dungeon",["\uF6D9",!1]],["e",["E",!1]],["ear-deaf",["\uF2A4",!1]],["ear-listen",["\uF2A2",!1]],["earth-africa",["\uF57C",!1]],["earth-americas",["\uF57D",!1]],["earth-asia",["\uF57E",!1]],["earth-europe",["\uF7A2",!1]],["earth-oceania",["\uE47B",!1]],["egg",["\uF7FB",!1]],["eject",["\uF052",!1]],["elevator",["\uE16D",!1]],["ellipsis",["\uF141",!1]],["ellipsis-vertical",["\uF142",!1]],["envelope",["\uF0E0",!0]],["envelope-circle-check",["\uE4E8",!1]],["envelope-open",["\uF2B6",!0]],["envelope-open-text",["\uF658",!1]],["envelopes-bulk",["\uF674",!1]],["equals",["=",!1]],["eraser",["\uF12D",!1]],["ethernet",["\uF796",!1]],["euro-sign",["\uF153",!1]],["exclamation",["!",!1]],["expand",["\uF065",!1]],["explosion",["\uE4E9",!1]],["eye",["\uF06E",!0]],["eye-dropper",["\uF1FB",!1]],["eye-low-vision",["\uF2A8",!1]],["eye-slash",["\uF070",!0]],["f",["F",!1]],["face-angry",["\uF556",!0]],["face-dizzy",["\uF567",!0]],["face-flushed",["\uF579",!0]],["face-frown",["\uF119",!0]],["face-frown-open",["\uF57A",!0]],["face-grimace",["\uF57F",!0]],["face-grin",["\uF580",!0]],["face-grin-beam",["\uF582",!0]],["face-grin-beam-sweat",["\uF583",!0]],["face-grin-hearts",["\uF584",!0]],["face-grin-squint",["\uF585",!0]],["face-grin-squint-tears",["\uF586",!0]],["face-grin-stars",["\uF587",!0]],["face-grin-tears",["\uF588",!0]],["face-grin-tongue",["\uF589",!0]],["face-grin-tongue-squint",["\uF58A",!0]],["face-grin-tongue-wink",["\uF58B",!0]],["face-grin-wide",["\uF581",!0]],["face-grin-wink",["\uF58C",!0]],["face-kiss",["\uF596",!0]],["face-kiss-beam",["\uF597",!0]],["face-kiss-wink-heart",["\uF598",!0]],["face-laugh",["\uF599",!0]],["face-laugh-beam",["\uF59A",!0]],["face-laugh-squint",["\uF59B",!0]],["face-laugh-wink",["\uF59C",!0]],["face-meh",["\uF11A",!0]],["face-meh-blank",["\uF5A4",!0]],["face-rolling-eyes",["\uF5A5",!0]],["face-sad-cry",["\uF5B3",!0]],["face-sad-tear",["\uF5B4",!0]],["face-smile",["\uF118",!0]],["face-smile-beam",["\uF5B8",!0]],["face-smile-wink",["\uF4DA",!0]],["face-surprise",["\uF5C2",!0]],["face-tired",["\uF5C8",!0]],["fan",["\uF863",!1]],["faucet",["\uE005",!1]],["faucet-drip",["\uE006",!1]],["fax",["\uF1AC",!1]],["feather",["\uF52D",!1]],["feather-pointed",["\uF56B",!1]],["ferry",["\uE4EA",!1]],["file",["\uF15B",!0]],["file-arrow-down",["\uF56D",!1]],["file-arrow-up",["\uF574",!1]],["file-audio",["\uF1C7",!0]],["file-circle-check",["\uE5A0",!1]],["file-circle-exclamation",["\uE4EB",!1]],["file-circle-minus",["\uE4ED",!1]],["file-circle-plus",["\uE494",!1]],["file-circle-question",["\uE4EF",!1]],["file-circle-xmark",["\uE5A1",!1]],["file-code",["\uF1C9",!0]],["file-contract",["\uF56C",!1]],["file-csv",["\uF6DD",!1]],["file-excel",["\uF1C3",!0]],["file-export",["\uF56E",!1]],["file-image",["\uF1C5",!0]],["file-import",["\uF56F",!1]],["file-invoice",["\uF570",!1]],["file-invoice-dollar",["\uF571",!1]],["file-lines",["\uF15C",!0]],["file-medical",["\uF477",!1]],["file-pdf",["\uF1C1",!0]],["file-pen",["\uF31C",!1]],["file-powerpoint",["\uF1C4",!0]],["file-prescription",["\uF572",!1]],["file-shield",["\uE4F0",!1]],["file-signature",["\uF573",!1]],["file-video",["\uF1C8",!0]],["file-waveform",["\uF478",!1]],["file-word",["\uF1C2",!0]],["file-zipper",["\uF1C6",!0]],["fill",["\uF575",!1]],["fill-drip",["\uF576",!1]],["film",["\uF008",!1]],["filter",["\uF0B0",!1]],["filter-circle-dollar",["\uF662",!1]],["filter-circle-xmark",["\uE17B",!1]],["fingerprint",["\uF577",!1]],["fire",["\uF06D",!1]],["fire-burner",["\uE4F1",!1]],["fire-extinguisher",["\uF134",!1]],["fire-flame-curved",["\uF7E4",!1]],["fire-flame-simple",["\uF46A",!1]],["fish",["\uF578",!1]],["fish-fins",["\uE4F2",!1]],["flag",["\uF024",!0]],["flag-checkered",["\uF11E",!1]],["flag-usa",["\uF74D",!1]],["flask",["\uF0C3",!1]],["flask-vial",["\uE4F3",!1]],["floppy-disk",["\uF0C7",!0]],["florin-sign",["\uE184",!1]],["folder",["\uF07B",!0]],["folder-closed",["\uE185",!0]],["folder-minus",["\uF65D",!1]],["folder-open",["\uF07C",!0]],["folder-plus",["\uF65E",!1]],["folder-tree",["\uF802",!1]],["font",["\uF031",!1]],["football",["\uF44E",!1]],["forward",["\uF04E",!1]],["forward-fast",["\uF050",!1]],["forward-step",["\uF051",!1]],["franc-sign",["\uE18F",!1]],["frog",["\uF52E",!1]],["futbol",["\uF1E3",!0]],["g",["G",!1]],["gamepad",["\uF11B",!1]],["gas-pump",["\uF52F",!1]],["gauge",["\uF624",!1]],["gauge-high",["\uF625",!1]],["gauge-simple",["\uF629",!1]],["gauge-simple-high",["\uF62A",!1]],["gavel",["\uF0E3",!1]],["gear",["\uF013",!1]],["gears",["\uF085",!1]],["gem",["\uF3A5",!0]],["genderless",["\uF22D",!1]],["ghost",["\uF6E2",!1]],["gift",["\uF06B",!1]],["gifts",["\uF79C",!1]],["glass-water",["\uE4F4",!1]],["glass-water-droplet",["\uE4F5",!1]],["glasses",["\uF530",!1]],["globe",["\uF0AC",!1]],["golf-ball-tee",["\uF450",!1]],["gopuram",["\uF664",!1]],["graduation-cap",["\uF19D",!1]],["greater-than",[">",!1]],["greater-than-equal",["\uF532",!1]],["grip",["\uF58D",!1]],["grip-lines",["\uF7A4",!1]],["grip-lines-vertical",["\uF7A5",!1]],["grip-vertical",["\uF58E",!1]],["group-arrows-rotate",["\uE4F6",!1]],["guarani-sign",["\uE19A",!1]],["guitar",["\uF7A6",!1]],["gun",["\uE19B",!1]],["h",["H",!1]],["hammer",["\uF6E3",!1]],["hamsa",["\uF665",!1]],["hand",["\uF256",!0]],["hand-back-fist",["\uF255",!0]],["hand-dots",["\uF461",!1]],["hand-fist",["\uF6DE",!1]],["hand-holding",["\uF4BD",!1]],["hand-holding-dollar",["\uF4C0",!1]],["hand-holding-droplet",["\uF4C1",!1]],["hand-holding-hand",["\uE4F7",!1]],["hand-holding-heart",["\uF4BE",!1]],["hand-holding-medical",["\uE05C",!1]],["hand-lizard",["\uF258",!0]],["hand-middle-finger",["\uF806",!1]],["hand-peace",["\uF25B",!0]],["hand-point-down",["\uF0A7",!0]],["hand-point-left",["\uF0A5",!0]],["hand-point-right",["\uF0A4",!0]],["hand-point-up",["\uF0A6",!0]],["hand-pointer",["\uF25A",!0]],["hand-scissors",["\uF257",!0]],["hand-sparkles",["\uE05D",!1]],["hand-spock",["\uF259",!0]],["handcuffs",["\uE4F8",!1]],["hands",["\uF2A7",!1]],["hands-asl-interpreting",["\uF2A3",!1]],["hands-bound",["\uE4F9",!1]],["hands-bubbles",["\uE05E",!1]],["hands-clapping",["\uE1A8",!1]],["hands-holding",["\uF4C2",!1]],["hands-holding-child",["\uE4FA",!1]],["hands-holding-circle",["\uE4FB",!1]],["hands-praying",["\uF684",!1]],["handshake",["\uF2B5",!0]],["handshake-angle",["\uF4C4",!1]],["handshake-simple",["\uF4C6",!1]],["handshake-simple-slash",["\uE05F",!1]],["handshake-slash",["\uE060",!1]],["hanukiah",["\uF6E6",!1]],["hard-drive",["\uF0A0",!0]],["hashtag",["#",!1]],["hat-cowboy",["\uF8C0",!1]],["hat-cowboy-side",["\uF8C1",!1]],["hat-wizard",["\uF6E8",!1]],["head-side-cough",["\uE061",!1]],["head-side-cough-slash",["\uE062",!1]],["head-side-mask",["\uE063",!1]],["head-side-virus",["\uE064",!1]],["heading",["\uF1DC",!1]],["headphones",["\uF025",!1]],["headphones-simple",["\uF58F",!1]],["headset",["\uF590",!1]],["heart",["\uF004",!0]],["heart-circle-bolt",["\uE4FC",!1]],["heart-circle-check",["\uE4FD",!1]],["heart-circle-exclamation",["\uE4FE",!1]],["heart-circle-minus",["\uE4FF",!1]],["heart-circle-plus",["\uE500",!1]],["heart-circle-xmark",["\uE501",!1]],["heart-crack",["\uF7A9",!1]],["heart-pulse",["\uF21E",!1]],["helicopter",["\uF533",!1]],["helicopter-symbol",["\uE502",!1]],["helmet-safety",["\uF807",!1]],["helmet-un",["\uE503",!1]],["highlighter",["\uF591",!1]],["hill-avalanche",["\uE507",!1]],["hill-rockslide",["\uE508",!1]],["hippo",["\uF6ED",!1]],["hockey-puck",["\uF453",!1]],["holly-berry",["\uF7AA",!1]],["horse",["\uF6F0",!1]],["horse-head",["\uF7AB",!1]],["hospital",["\uF0F8",!0]],["hospital-user",["\uF80D",!1]],["hot-tub-person",["\uF593",!1]],["hotdog",["\uF80F",!1]],["hotel",["\uF594",!1]],["hourglass",["\uF254",!0]],["hourglass-end",["\uF253",!1]],["hourglass-half",["\uF252",!0]],["hourglass-start",["\uF251",!1]],["house",["\uF015",!1]],["house-chimney",["\uE3AF",!1]],["house-chimney-crack",["\uF6F1",!1]],["house-chimney-medical",["\uF7F2",!1]],["house-chimney-user",["\uE065",!1]],["house-chimney-window",["\uE00D",!1]],["house-circle-check",["\uE509",!1]],["house-circle-exclamation",["\uE50A",!1]],["house-circle-xmark",["\uE50B",!1]],["house-crack",["\uE3B1",!1]],["house-fire",["\uE50C",!1]],["house-flag",["\uE50D",!1]],["house-flood-water",["\uE50E",!1]],["house-flood-water-circle-arrow-right",["\uE50F",!1]],["house-laptop",["\uE066",!1]],["house-lock",["\uE510",!1]],["house-medical",["\uE3B2",!1]],["house-medical-circle-check",["\uE511",!1]],["house-medical-circle-exclamation",["\uE512",!1]],["house-medical-circle-xmark",["\uE513",!1]],["house-medical-flag",["\uE514",!1]],["house-signal",["\uE012",!1]],["house-tsunami",["\uE515",!1]],["house-user",["\uE1B0",!1]],["hryvnia-sign",["\uF6F2",!1]],["hurricane",["\uF751",!1]],["i",["I",!1]],["i-cursor",["\uF246",!1]],["ice-cream",["\uF810",!1]],["icicles",["\uF7AD",!1]],["icons",["\uF86D",!1]],["id-badge",["\uF2C1",!0]],["id-card",["\uF2C2",!0]],["id-card-clip",["\uF47F",!1]],["igloo",["\uF7AE",!1]],["image",["\uF03E",!0]],["image-portrait",["\uF3E0",!1]],["images",["\uF302",!0]],["inbox",["\uF01C",!1]],["indent",["\uF03C",!1]],["indian-rupee-sign",["\uE1BC",!1]],["industry",["\uF275",!1]],["infinity",["\uF534",!1]],["info",["\uF129",!1]],["italic",["\uF033",!1]],["j",["J",!1]],["jar",["\uE516",!1]],["jar-wheat",["\uE517",!1]],["jedi",["\uF669",!1]],["jet-fighter",["\uF0FB",!1]],["jet-fighter-up",["\uE518",!1]],["joint",["\uF595",!1]],["jug-detergent",["\uE519",!1]],["k",["K",!1]],["kaaba",["\uF66B",!1]],["key",["\uF084",!1]],["keyboard",["\uF11C",!0]],["khanda",["\uF66D",!1]],["kip-sign",["\uE1C4",!1]],["kit-medical",["\uF479",!1]],["kitchen-set",["\uE51A",!1]],["kiwi-bird",["\uF535",!1]],["l",["L",!1]],["land-mine-on",["\uE51B",!1]],["landmark",["\uF66F",!1]],["landmark-dome",["\uF752",!1]],["landmark-flag",["\uE51C",!1]],["language",["\uF1AB",!1]],["laptop",["\uF109",!1]],["laptop-code",["\uF5FC",!1]],["laptop-file",["\uE51D",!1]],["laptop-medical",["\uF812",!1]],["lari-sign",["\uE1C8",!1]],["layer-group",["\uF5FD",!1]],["leaf",["\uF06C",!1]],["left-long",["\uF30A",!1]],["left-right",["\uF337",!1]],["lemon",["\uF094",!0]],["less-than",["<",!1]],["less-than-equal",["\uF537",!1]],["life-ring",["\uF1CD",!0]],["lightbulb",["\uF0EB",!0]],["lines-leaning",["\uE51E",!1]],["link",["\uF0C1",!1]],["link-slash",["\uF127",!1]],["lira-sign",["\uF195",!1]],["list",["\uF03A",!1]],["list-check",["\uF0AE",!1]],["list-ol",["\uF0CB",!1]],["list-ul",["\uF0CA",!1]],["litecoin-sign",["\uE1D3",!1]],["location-arrow",["\uF124",!1]],["location-crosshairs",["\uF601",!1]],["location-dot",["\uF3C5",!1]],["location-pin",["\uF041",!1]],["location-pin-lock",["\uE51F",!1]],["lock",["\uF023",!1]],["lock-open",["\uF3C1",!1]],["locust",["\uE520",!1]],["lungs",["\uF604",!1]],["lungs-virus",["\uE067",!1]],["m",["M",!1]],["magnet",["\uF076",!1]],["magnifying-glass",["\uF002",!1]],["magnifying-glass-arrow-right",["\uE521",!1]],["magnifying-glass-chart",["\uE522",!1]],["magnifying-glass-dollar",["\uF688",!1]],["magnifying-glass-location",["\uF689",!1]],["magnifying-glass-minus",["\uF010",!1]],["magnifying-glass-plus",["\uF00E",!1]],["manat-sign",["\uE1D5",!1]],["map",["\uF279",!0]],["map-location",["\uF59F",!1]],["map-location-dot",["\uF5A0",!1]],["map-pin",["\uF276",!1]],["marker",["\uF5A1",!1]],["mars",["\uF222",!1]],["mars-and-venus",["\uF224",!1]],["mars-and-venus-burst",["\uE523",!1]],["mars-double",["\uF227",!1]],["mars-stroke",["\uF229",!1]],["mars-stroke-right",["\uF22B",!1]],["mars-stroke-up",["\uF22A",!1]],["martini-glass",["\uF57B",!1]],["martini-glass-citrus",["\uF561",!1]],["martini-glass-empty",["\uF000",!1]],["mask",["\uF6FA",!1]],["mask-face",["\uE1D7",!1]],["mask-ventilator",["\uE524",!1]],["masks-theater",["\uF630",!1]],["mattress-pillow",["\uE525",!1]],["maximize",["\uF31E",!1]],["medal",["\uF5A2",!1]],["memory",["\uF538",!1]],["menorah",["\uF676",!1]],["mercury",["\uF223",!1]],["message",["\uF27A",!0]],["meteor",["\uF753",!1]],["microchip",["\uF2DB",!1]],["microphone",["\uF130",!1]],["microphone-lines",["\uF3C9",!1]],["microphone-lines-slash",["\uF539",!1]],["microphone-slash",["\uF131",!1]],["microscope",["\uF610",!1]],["mill-sign",["\uE1ED",!1]],["minimize",["\uF78C",!1]],["minus",["\uF068",!1]],["mitten",["\uF7B5",!1]],["mobile",["\uF3CE",!1]],["mobile-button",["\uF10B",!1]],["mobile-retro",["\uE527",!1]],["mobile-screen",["\uF3CF",!1]],["mobile-screen-button",["\uF3CD",!1]],["money-bill",["\uF0D6",!1]],["money-bill-1",["\uF3D1",!0]],["money-bill-1-wave",["\uF53B",!1]],["money-bill-transfer",["\uE528",!1]],["money-bill-trend-up",["\uE529",!1]],["money-bill-wave",["\uF53A",!1]],["money-bill-wheat",["\uE52A",!1]],["money-bills",["\uE1F3",!1]],["money-check",["\uF53C",!1]],["money-check-dollar",["\uF53D",!1]],["monument",["\uF5A6",!1]],["moon",["\uF186",!0]],["mortar-pestle",["\uF5A7",!1]],["mosque",["\uF678",!1]],["mosquito",["\uE52B",!1]],["mosquito-net",["\uE52C",!1]],["motorcycle",["\uF21C",!1]],["mound",["\uE52D",!1]],["mountain",["\uF6FC",!1]],["mountain-city",["\uE52E",!1]],["mountain-sun",["\uE52F",!1]],["mug-hot",["\uF7B6",!1]],["mug-saucer",["\uF0F4",!1]],["music",["\uF001",!1]],["n",["N",!1]],["naira-sign",["\uE1F6",!1]],["network-wired",["\uF6FF",!1]],["neuter",["\uF22C",!1]],["newspaper",["\uF1EA",!0]],["not-equal",["\uF53E",!1]],["notdef",["\uE1FE",!1]],["note-sticky",["\uF249",!0]],["notes-medical",["\uF481",!1]],["o",["O",!1]],["object-group",["\uF247",!0]],["object-ungroup",["\uF248",!0]],["oil-can",["\uF613",!1]],["oil-well",["\uE532",!1]],["om",["\uF679",!1]],["otter",["\uF700",!1]],["outdent",["\uF03B",!1]],["p",["P",!1]],["pager",["\uF815",!1]],["paint-roller",["\uF5AA",!1]],["paintbrush",["\uF1FC",!1]],["palette",["\uF53F",!1]],["pallet",["\uF482",!1]],["panorama",["\uE209",!1]],["paper-plane",["\uF1D8",!0]],["paperclip",["\uF0C6",!1]],["parachute-box",["\uF4CD",!1]],["paragraph",["\uF1DD",!1]],["passport",["\uF5AB",!1]],["paste",["\uF0EA",!0]],["pause",["\uF04C",!1]],["paw",["\uF1B0",!1]],["peace",["\uF67C",!1]],["pen",["\uF304",!1]],["pen-clip",["\uF305",!1]],["pen-fancy",["\uF5AC",!1]],["pen-nib",["\uF5AD",!1]],["pen-ruler",["\uF5AE",!1]],["pen-to-square",["\uF044",!0]],["pencil",["\uF303",!1]],["people-arrows",["\uE068",!1]],["people-carry-box",["\uF4CE",!1]],["people-group",["\uE533",!1]],["people-line",["\uE534",!1]],["people-pulling",["\uE535",!1]],["people-robbery",["\uE536",!1]],["people-roof",["\uE537",!1]],["pepper-hot",["\uF816",!1]],["percent",["%",!1]],["person",["\uF183",!1]],["person-arrow-down-to-line",["\uE538",!1]],["person-arrow-up-from-line",["\uE539",!1]],["person-biking",["\uF84A",!1]],["person-booth",["\uF756",!1]],["person-breastfeeding",["\uE53A",!1]],["person-burst",["\uE53B",!1]],["person-cane",["\uE53C",!1]],["person-chalkboard",["\uE53D",!1]],["person-circle-check",["\uE53E",!1]],["person-circle-exclamation",["\uE53F",!1]],["person-circle-minus",["\uE540",!1]],["person-circle-plus",["\uE541",!1]],["person-circle-question",["\uE542",!1]],["person-circle-xmark",["\uE543",!1]],["person-digging",["\uF85E",!1]],["person-dots-from-line",["\uF470",!1]],["person-dress",["\uF182",!1]],["person-dress-burst",["\uE544",!1]],["person-drowning",["\uE545",!1]],["person-falling",["\uE546",!1]],["person-falling-burst",["\uE547",!1]],["person-half-dress",["\uE548",!1]],["person-harassing",["\uE549",!1]],["person-hiking",["\uF6EC",!1]],["person-military-pointing",["\uE54A",!1]],["person-military-rifle",["\uE54B",!1]],["person-military-to-person",["\uE54C",!1]],["person-praying",["\uF683",!1]],["person-pregnant",["\uE31E",!1]],["person-rays",["\uE54D",!1]],["person-rifle",["\uE54E",!1]],["person-running",["\uF70C",!1]],["person-shelter",["\uE54F",!1]],["person-skating",["\uF7C5",!1]],["person-skiing",["\uF7C9",!1]],["person-skiing-nordic",["\uF7CA",!1]],["person-snowboarding",["\uF7CE",!1]],["person-swimming",["\uF5C4",!1]],["person-through-window",["\uE5A9",!1]],["person-walking",["\uF554",!1]],["person-walking-arrow-loop-left",["\uE551",!1]],["person-walking-arrow-right",["\uE552",!1]],["person-walking-dashed-line-arrow-right",["\uE553",!1]],["person-walking-luggage",["\uE554",!1]],["person-walking-with-cane",["\uF29D",!1]],["peseta-sign",["\uE221",!1]],["peso-sign",["\uE222",!1]],["phone",["\uF095",!1]],["phone-flip",["\uF879",!1]],["phone-slash",["\uF3DD",!1]],["phone-volume",["\uF2A0",!1]],["photo-film",["\uF87C",!1]],["piggy-bank",["\uF4D3",!1]],["pills",["\uF484",!1]],["pizza-slice",["\uF818",!1]],["place-of-worship",["\uF67F",!1]],["plane",["\uF072",!1]],["plane-arrival",["\uF5AF",!1]],["plane-circle-check",["\uE555",!1]],["plane-circle-exclamation",["\uE556",!1]],["plane-circle-xmark",["\uE557",!1]],["plane-departure",["\uF5B0",!1]],["plane-lock",["\uE558",!1]],["plane-slash",["\uE069",!1]],["plane-up",["\uE22D",!1]],["plant-wilt",["\uE5AA",!1]],["plate-wheat",["\uE55A",!1]],["play",["\uF04B",!1]],["plug",["\uF1E6",!1]],["plug-circle-bolt",["\uE55B",!1]],["plug-circle-check",["\uE55C",!1]],["plug-circle-exclamation",["\uE55D",!1]],["plug-circle-minus",["\uE55E",!1]],["plug-circle-plus",["\uE55F",!1]],["plug-circle-xmark",["\uE560",!1]],["plus",["+",!1]],["plus-minus",["\uE43C",!1]],["podcast",["\uF2CE",!1]],["poo",["\uF2FE",!1]],["poo-storm",["\uF75A",!1]],["poop",["\uF619",!1]],["power-off",["\uF011",!1]],["prescription",["\uF5B1",!1]],["prescription-bottle",["\uF485",!1]],["prescription-bottle-medical",["\uF486",!1]],["print",["\uF02F",!1]],["pump-medical",["\uE06A",!1]],["pump-soap",["\uE06B",!1]],["puzzle-piece",["\uF12E",!1]],["q",["Q",!1]],["qrcode",["\uF029",!1]],["question",["?",!1]],["quote-left",["\uF10D",!1]],["quote-right",["\uF10E",!1]],["r",["R",!1]],["radiation",["\uF7B9",!1]],["radio",["\uF8D7",!1]],["rainbow",["\uF75B",!1]],["ranking-star",["\uE561",!1]],["receipt",["\uF543",!1]],["record-vinyl",["\uF8D9",!1]],["rectangle-ad",["\uF641",!1]],["rectangle-list",["\uF022",!0]],["rectangle-xmark",["\uF410",!0]],["recycle",["\uF1B8",!1]],["registered",["\uF25D",!0]],["repeat",["\uF363",!1]],["reply",["\uF3E5",!1]],["reply-all",["\uF122",!1]],["republican",["\uF75E",!1]],["restroom",["\uF7BD",!1]],["retweet",["\uF079",!1]],["ribbon",["\uF4D6",!1]],["right-from-bracket",["\uF2F5",!1]],["right-left",["\uF362",!1]],["right-long",["\uF30B",!1]],["right-to-bracket",["\uF2F6",!1]],["ring",["\uF70B",!1]],["road",["\uF018",!1]],["road-barrier",["\uE562",!1]],["road-bridge",["\uE563",!1]],["road-circle-check",["\uE564",!1]],["road-circle-exclamation",["\uE565",!1]],["road-circle-xmark",["\uE566",!1]],["road-lock",["\uE567",!1]],["road-spikes",["\uE568",!1]],["robot",["\uF544",!1]],["rocket",["\uF135",!1]],["rotate",["\uF2F1",!1]],["rotate-left",["\uF2EA",!1]],["rotate-right",["\uF2F9",!1]],["route",["\uF4D7",!1]],["rss",["\uF09E",!1]],["ruble-sign",["\uF158",!1]],["rug",["\uE569",!1]],["ruler",["\uF545",!1]],["ruler-combined",["\uF546",!1]],["ruler-horizontal",["\uF547",!1]],["ruler-vertical",["\uF548",!1]],["rupee-sign",["\uF156",!1]],["rupiah-sign",["\uE23D",!1]],["s",["S",!1]],["sack-dollar",["\uF81D",!1]],["sack-xmark",["\uE56A",!1]],["sailboat",["\uE445",!1]],["satellite",["\uF7BF",!1]],["satellite-dish",["\uF7C0",!1]],["scale-balanced",["\uF24E",!1]],["scale-unbalanced",["\uF515",!1]],["scale-unbalanced-flip",["\uF516",!1]],["school",["\uF549",!1]],["school-circle-check",["\uE56B",!1]],["school-circle-exclamation",["\uE56C",!1]],["school-circle-xmark",["\uE56D",!1]],["school-flag",["\uE56E",!1]],["school-lock",["\uE56F",!1]],["scissors",["\uF0C4",!1]],["screwdriver",["\uF54A",!1]],["screwdriver-wrench",["\uF7D9",!1]],["scroll",["\uF70E",!1]],["scroll-torah",["\uF6A0",!1]],["sd-card",["\uF7C2",!1]],["section",["\uE447",!1]],["seedling",["\uF4D8",!1]],["server",["\uF233",!1]],["shapes",["\uF61F",!1]],["share",["\uF064",!1]],["share-from-square",["\uF14D",!0]],["share-nodes",["\uF1E0",!1]],["sheet-plastic",["\uE571",!1]],["shekel-sign",["\uF20B",!1]],["shield",["\uF132",!1]],["shield-cat",["\uE572",!1]],["shield-dog",["\uE573",!1]],["shield-halved",["\uF3ED",!1]],["shield-heart",["\uE574",!1]],["shield-virus",["\uE06C",!1]],["ship",["\uF21A",!1]],["shirt",["\uF553",!1]],["shoe-prints",["\uF54B",!1]],["shop",["\uF54F",!1]],["shop-lock",["\uE4A5",!1]],["shop-slash",["\uE070",!1]],["shower",["\uF2CC",!1]],["shrimp",["\uE448",!1]],["shuffle",["\uF074",!1]],["shuttle-space",["\uF197",!1]],["sign-hanging",["\uF4D9",!1]],["signal",["\uF012",!1]],["signature",["\uF5B7",!1]],["signs-post",["\uF277",!1]],["sim-card",["\uF7C4",!1]],["sink",["\uE06D",!1]],["sitemap",["\uF0E8",!1]],["skull",["\uF54C",!1]],["skull-crossbones",["\uF714",!1]],["slash",["\uF715",!1]],["sleigh",["\uF7CC",!1]],["sliders",["\uF1DE",!1]],["smog",["\uF75F",!1]],["smoking",["\uF48D",!1]],["snowflake",["\uF2DC",!0]],["snowman",["\uF7D0",!1]],["snowplow",["\uF7D2",!1]],["soap",["\uE06E",!1]],["socks",["\uF696",!1]],["solar-panel",["\uF5BA",!1]],["sort",["\uF0DC",!1]],["sort-down",["\uF0DD",!1]],["sort-up",["\uF0DE",!1]],["spa",["\uF5BB",!1]],["spaghetti-monster-flying",["\uF67B",!1]],["spell-check",["\uF891",!1]],["spider",["\uF717",!1]],["spinner",["\uF110",!1]],["splotch",["\uF5BC",!1]],["spoon",["\uF2E5",!1]],["spray-can",["\uF5BD",!1]],["spray-can-sparkles",["\uF5D0",!1]],["square",["\uF0C8",!0]],["square-arrow-up-right",["\uF14C",!1]],["square-caret-down",["\uF150",!0]],["square-caret-left",["\uF191",!0]],["square-caret-right",["\uF152",!0]],["square-caret-up",["\uF151",!0]],["square-check",["\uF14A",!0]],["square-envelope",["\uF199",!1]],["square-full",["\uF45C",!0]],["square-h",["\uF0FD",!1]],["square-minus",["\uF146",!0]],["square-nfi",["\uE576",!1]],["square-parking",["\uF540",!1]],["square-pen",["\uF14B",!1]],["square-person-confined",["\uE577",!1]],["square-phone",["\uF098",!1]],["square-phone-flip",["\uF87B",!1]],["square-plus",["\uF0FE",!0]],["square-poll-horizontal",["\uF682",!1]],["square-poll-vertical",["\uF681",!1]],["square-root-variable",["\uF698",!1]],["square-rss",["\uF143",!1]],["square-share-nodes",["\uF1E1",!1]],["square-up-right",["\uF360",!1]],["square-virus",["\uE578",!1]],["square-xmark",["\uF2D3",!1]],["staff-snake",["\uE579",!1]],["stairs",["\uE289",!1]],["stamp",["\uF5BF",!1]],["stapler",["\uE5AF",!1]],["star",["\uF005",!0]],["star-and-crescent",["\uF699",!1]],["star-half",["\uF089",!0]],["star-half-stroke",["\uF5C0",!0]],["star-of-david",["\uF69A",!1]],["star-of-life",["\uF621",!1]],["sterling-sign",["\uF154",!1]],["stethoscope",["\uF0F1",!1]],["stop",["\uF04D",!1]],["stopwatch",["\uF2F2",!1]],["stopwatch-20",["\uE06F",!1]],["store",["\uF54E",!1]],["store-slash",["\uE071",!1]],["street-view",["\uF21D",!1]],["strikethrough",["\uF0CC",!1]],["stroopwafel",["\uF551",!1]],["subscript",["\uF12C",!1]],["suitcase",["\uF0F2",!1]],["suitcase-medical",["\uF0FA",!1]],["suitcase-rolling",["\uF5C1",!1]],["sun",["\uF185",!0]],["sun-plant-wilt",["\uE57A",!1]],["superscript",["\uF12B",!1]],["swatchbook",["\uF5C3",!1]],["synagogue",["\uF69B",!1]],["syringe",["\uF48E",!1]],["t",["T",!1]],["table",["\uF0CE",!1]],["table-cells",["\uF00A",!1]],["table-cells-large",["\uF009",!1]],["table-columns",["\uF0DB",!1]],["table-list",["\uF00B",!1]],["table-tennis-paddle-ball",["\uF45D",!1]],["tablet",["\uF3FB",!1]],["tablet-button",["\uF10A",!1]],["tablet-screen-button",["\uF3FA",!1]],["tablets",["\uF490",!1]],["tachograph-digital",["\uF566",!1]],["tag",["\uF02B",!1]],["tags",["\uF02C",!1]],["tape",["\uF4DB",!1]],["tarp",["\uE57B",!1]],["tarp-droplet",["\uE57C",!1]],["taxi",["\uF1BA",!1]],["teeth",["\uF62E",!1]],["teeth-open",["\uF62F",!1]],["temperature-arrow-down",["\uE03F",!1]],["temperature-arrow-up",["\uE040",!1]],["temperature-empty",["\uF2CB",!1]],["temperature-full",["\uF2C7",!1]],["temperature-half",["\uF2C9",!1]],["temperature-high",["\uF769",!1]],["temperature-low",["\uF76B",!1]],["temperature-quarter",["\uF2CA",!1]],["temperature-three-quarters",["\uF2C8",!1]],["tenge-sign",["\uF7D7",!1]],["tent",["\uE57D",!1]],["tent-arrow-down-to-line",["\uE57E",!1]],["tent-arrow-left-right",["\uE57F",!1]],["tent-arrow-turn-left",["\uE580",!1]],["tent-arrows-down",["\uE581",!1]],["tents",["\uE582",!1]],["terminal",["\uF120",!1]],["text-height",["\uF034",!1]],["text-slash",["\uF87D",!1]],["text-width",["\uF035",!1]],["thermometer",["\uF491",!1]],["thumbs-down",["\uF165",!0]],["thumbs-up",["\uF164",!0]],["thumbtack",["\uF08D",!1]],["ticket",["\uF145",!1]],["ticket-simple",["\uF3FF",!1]],["timeline",["\uE29C",!1]],["toggle-off",["\uF204",!1]],["toggle-on",["\uF205",!1]],["toilet",["\uF7D8",!1]],["toilet-paper",["\uF71E",!1]],["toilet-paper-slash",["\uE072",!1]],["toilet-portable",["\uE583",!1]],["toilets-portable",["\uE584",!1]],["toolbox",["\uF552",!1]],["tooth",["\uF5C9",!1]],["torii-gate",["\uF6A1",!1]],["tornado",["\uF76F",!1]],["tower-broadcast",["\uF519",!1]],["tower-cell",["\uE585",!1]],["tower-observation",["\uE586",!1]],["tractor",["\uF722",!1]],["trademark",["\uF25C",!1]],["traffic-light",["\uF637",!1]],["trailer",["\uE041",!1]],["train",["\uF238",!1]],["train-subway",["\uF239",!1]],["train-tram",["\uE5B4",!1]],["transgender",["\uF225",!1]],["trash",["\uF1F8",!1]],["trash-arrow-up",["\uF829",!1]],["trash-can",["\uF2ED",!0]],["trash-can-arrow-up",["\uF82A",!1]],["tree",["\uF1BB",!1]],["tree-city",["\uE587",!1]],["triangle-exclamation",["\uF071",!1]],["trophy",["\uF091",!1]],["trowel",["\uE589",!1]],["trowel-bricks",["\uE58A",!1]],["truck",["\uF0D1",!1]],["truck-arrow-right",["\uE58B",!1]],["truck-droplet",["\uE58C",!1]],["truck-fast",["\uF48B",!1]],["truck-field",["\uE58D",!1]],["truck-field-un",["\uE58E",!1]],["truck-front",["\uE2B7",!1]],["truck-medical",["\uF0F9",!1]],["truck-monster",["\uF63B",!1]],["truck-moving",["\uF4DF",!1]],["truck-pickup",["\uF63C",!1]],["truck-plane",["\uE58F",!1]],["truck-ramp-box",["\uF4DE",!1]],["tty",["\uF1E4",!1]],["turkish-lira-sign",["\uE2BB",!1]],["turn-down",["\uF3BE",!1]],["turn-up",["\uF3BF",!1]],["tv",["\uF26C",!1]],["u",["U",!1]],["umbrella",["\uF0E9",!1]],["umbrella-beach",["\uF5CA",!1]],["underline",["\uF0CD",!1]],["universal-access",["\uF29A",!1]],["unlock",["\uF09C",!1]],["unlock-keyhole",["\uF13E",!1]],["up-down",["\uF338",!1]],["up-down-left-right",["\uF0B2",!1]],["up-long",["\uF30C",!1]],["up-right-and-down-left-from-center",["\uF424",!1]],["up-right-from-square",["\uF35D",!1]],["upload",["\uF093",!1]],["user",["\uF007",!0]],["user-astronaut",["\uF4FB",!1]],["user-check",["\uF4FC",!1]],["user-clock",["\uF4FD",!1]],["user-doctor",["\uF0F0",!1]],["user-gear",["\uF4FE",!1]],["user-graduate",["\uF501",!1]],["user-group",["\uF500",!1]],["user-injured",["\uF728",!1]],["user-large",["\uF406",!1]],["user-large-slash",["\uF4FA",!1]],["user-lock",["\uF502",!1]],["user-minus",["\uF503",!1]],["user-ninja",["\uF504",!1]],["user-nurse",["\uF82F",!1]],["user-pen",["\uF4FF",!1]],["user-plus",["\uF234",!1]],["user-secret",["\uF21B",!1]],["user-shield",["\uF505",!1]],["user-slash",["\uF506",!1]],["user-tag",["\uF507",!1]],["user-tie",["\uF508",!1]],["user-xmark",["\uF235",!1]],["users",["\uF0C0",!1]],["users-between-lines",["\uE591",!1]],["users-gear",["\uF509",!1]],["users-line",["\uE592",!1]],["users-rays",["\uE593",!1]],["users-rectangle",["\uE594",!1]],["users-slash",["\uE073",!1]],["users-viewfinder",["\uE595",!1]],["utensils",["\uF2E7",!1]],["v",["V",!1]],["van-shuttle",["\uF5B6",!1]],["vault",["\uE2C5",!1]],["vector-square",["\uF5CB",!1]],["venus",["\uF221",!1]],["venus-double",["\uF226",!1]],["venus-mars",["\uF228",!1]],["vest",["\uE085",!1]],["vest-patches",["\uE086",!1]],["vial",["\uF492",!1]],["vial-circle-check",["\uE596",!1]],["vial-virus",["\uE597",!1]],["vials",["\uF493",!1]],["video",["\uF03D",!1]],["video-slash",["\uF4E2",!1]],["vihara",["\uF6A7",!1]],["virus",["\uE074",!1]],["virus-covid",["\uE4A8",!1]],["virus-covid-slash",["\uE4A9",!1]],["virus-slash",["\uE075",!1]],["viruses",["\uE076",!1]],["voicemail",["\uF897",!1]],["volcano",["\uF770",!1]],["volleyball",["\uF45F",!1]],["volume-high",["\uF028",!1]],["volume-low",["\uF027",!1]],["volume-off",["\uF026",!1]],["volume-xmark",["\uF6A9",!1]],["vr-cardboard",["\uF729",!1]],["w",["W",!1]],["walkie-talkie",["\uF8EF",!1]],["wallet",["\uF555",!1]],["wand-magic",["\uF0D0",!1]],["wand-magic-sparkles",["\uE2CA",!1]],["wand-sparkles",["\uF72B",!1]],["warehouse",["\uF494",!1]],["water",["\uF773",!1]],["water-ladder",["\uF5C5",!1]],["wave-square",["\uF83E",!1]],["weight-hanging",["\uF5CD",!1]],["weight-scale",["\uF496",!1]],["wheat-awn",["\uE2CD",!1]],["wheat-awn-circle-exclamation",["\uE598",!1]],["wheelchair",["\uF193",!1]],["wheelchair-move",["\uE2CE",!1]],["whiskey-glass",["\uF7A0",!1]],["wifi",["\uF1EB",!1]],["wind",["\uF72E",!1]],["window-maximize",["\uF2D0",!0]],["window-minimize",["\uF2D1",!0]],["window-restore",["\uF2D2",!0]],["wine-bottle",["\uF72F",!1]],["wine-glass",["\uF4E3",!1]],["wine-glass-empty",["\uF5CE",!1]],["won-sign",["\uF159",!1]],["worm",["\uE599",!1]],["wrench",["\uF0AD",!1]],["x",["X",!1]],["x-ray",["\uF497",!1]],["xmark",["\uF00D",!1]],["xmarks-lines",["\uE59A",!1]],["y",["Y",!1]],["yen-sign",["\uF157",!1]],["yin-yang",["\uF6AD",!1]],["z",["Z",!1]]]);window.getFontAwesome6Metadata=()=>new Map(r),window.getFontAwesome6IconMetadata=l=>r.get(e.get(l)||l)})();(()=>{let e=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class r extends HTMLElement{root=void 0;svgStyle=document.createElement("style");connectedCallback(){this.validate();let u=this.getRoot(),t=document.createElement("slot");t.name="svg",u.append(t),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(this.size===0)throw new TypeError("Must provide an icon size.");if(!e.has(this.size))throw new TypeError("Must provide a valid icon size.")}getRoot(){return this.root===void 0&&(this.root=this.attachShadow({mode:"open"}),this.updateRenderSize(),this.root.append(this.svgStyle)),this.root}updateRenderSize(){let u=e.get(this.size);this.svgStyle.textContent=` ::slotted(svg) { fill: currentColor; - height: ${h}px; + height: ${u}px; shape-rendering: geometricprecision; } - `}get size(){let h=this.getAttribute("size");return h===null?0:parseInt(h)}set size(h){if(!e.has(h))throw new Error(`Refused to set the invalid icon size '${h}'.`);this.setAttribute("size",h.toString()),this.updateRenderSize()}}window.customElements.define("fa-brand",r)})();(()=>{let e;function r(){return e===void 0&&(e=!0,window.getComputedStyle(document.documentElement).getPropertyValue("--fa-font-family")==="Font Awesome 6 Pro"&&(e=!1)),e}let n=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class h extends HTMLElement{connectedCallback(){this.hasAttribute("size")||this.setAttribute("size","16"),this.validate(),this.setIcon(this.name,this.solid),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(!n.has(this.size))throw new TypeError("Must provide a valid icon size.");if(this.name==="")throw new TypeError("Must provide the name of the icon.");if(!this.isValidIconName(this.name))throw new TypeError(`The icon '${this.name}' is unknown or unsupported.`)}setIcon(a,l=!1){if(!this.isValidIconName(a))throw new TypeError(`The icon '${a}' is unknown or unsupported.`);!l&&!this.hasNonSolidStyle(a)&&(l=!0),!(a===this.name&&l===this.solid&&this.shadowRoot!==null)&&(l?this.setAttribute("solid",""):this.removeAttribute("solid"),this.setAttribute("name",a),this.updateIcon())}isValidIconName(a){return a!==null&&window.getFontAwesome6IconMetadata(a)!==void 0}hasNonSolidStyle(a){if(r()){let[,l]=window.getFontAwesome6IconMetadata(a);if(!l)return!1}return!0}getShadowRoot(){return this.shadowRoot===null?this.attachShadow({mode:"open"}):this.shadowRoot}updateIcon(){let a=this.getShadowRoot();if(a.childNodes[0]?.remove(),this.name==="spinner")a.append(this.createSpinner());else{let[l]=window.getFontAwesome6IconMetadata(this.name);a.append(l)}}createSpinner(){let a=document.createElement("div");a.innerHTML=` + `}get size(){let u=this.getAttribute("size");return u===null?0:parseInt(u)}set size(u){if(!e.has(u))throw new Error(`Refused to set the invalid icon size '${u}'.`);this.setAttribute("size",u.toString()),this.updateRenderSize()}}window.customElements.define("fa-brand",r)})();(()=>{let e;function r(){return e===void 0&&(e=!0,window.getComputedStyle(document.documentElement).getPropertyValue("--fa-font-family")==="Font Awesome 6 Pro"&&(e=!1)),e}let l=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class u extends HTMLElement{connectedCallback(){this.hasAttribute("size")||this.setAttribute("size","16"),this.validate(),this.setIcon(this.name,this.solid),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(!l.has(this.size))throw new TypeError("Must provide a valid icon size.");if(this.name==="")throw new TypeError("Must provide the name of the icon.");if(!this.isValidIconName(this.name))throw new TypeError(`The icon '${this.name}' is unknown or unsupported.`)}setIcon(a,i=!1){if(!this.isValidIconName(a))throw new TypeError(`The icon '${a}' is unknown or unsupported.`);!i&&!this.hasNonSolidStyle(a)&&(i=!0),!(a===this.name&&i===this.solid&&this.shadowRoot!==null)&&(i?this.setAttribute("solid",""):this.removeAttribute("solid"),this.setAttribute("name",a),this.updateIcon())}isValidIconName(a){return a!==null&&window.getFontAwesome6IconMetadata(a)!==void 0}hasNonSolidStyle(a){if(r()){let[,i]=window.getFontAwesome6IconMetadata(a);if(!i)return!1}return!0}getShadowRoot(){return this.shadowRoot===null?this.attachShadow({mode:"open"}):this.shadowRoot}updateIcon(){let a=this.getShadowRoot();if(a.childNodes[0]?.remove(),this.name==="spinner")a.append(this.createSpinner());else{let[i]=window.getFontAwesome6IconMetadata(this.name);a.append(i)}}createSpinner(){let a=document.createElement("div");a.innerHTML=` - `;let l=document.createElement("style");return l.textContent=` + `;let i=document.createElement("style");return i.textContent=` div, svg { height: var(--font-size); @@ -55,12 +55,12 @@ Expecting `+Z.join(", ")+", got '"+(this.terminals_[x]||x)+"'":ae="Parse error o stroke-dashoffset: -124; } } - `,a.append(l),a}get solid(){return this.hasAttribute("solid")}get name(){return this.getAttribute("name")||""}get size(){let a=this.getAttribute("size");return a===null?0:parseInt(a)}set size(a){if(!n.has(a))throw new Error(`Refused to set the invalid icon size '${a}'.`);this.setAttribute("size",a.toString())}}window.customElements.define("fa-icon",h)})();{let e=Date.now()-window.TIME_NOW*1e3,r=document.documentElement.lang,h=(()=>{let u="",g=document.querySelector('meta[name="timezone"]');if(g){u=g.content;try{Intl.DateTimeFormat(void 0,{timeZone:u})}catch{u=""}}return u||(u=Intl.DateTimeFormat().resolvedOptions().timeZone),u})(),t,a,l=()=>{let u=new Date,g=new Date(u.getFullYear(),u.getMonth(),u.getDate());t!==g.getTime()&&(t=g.getTime(),a=new Date(u.getFullYear(),u.getMonth(),u.getDate()-1).getTime())};l();let d;(p=>(p[p.Today=0]="Today",p[p.Yesterday=-1]="Yesterday"))(d||={});let b={Date:new Intl.DateTimeFormat(r,{dateStyle:"long",timeZone:h}),DateAndTime:new Intl.DateTimeFormat(r,{dateStyle:"long",timeStyle:"short",timeZone:h}),DayOfWeekAndTime:new Intl.DateTimeFormat(r,{weekday:"long",hour:"2-digit",minute:"2-digit",timeZone:h}),Minutes:new Intl.RelativeTimeFormat(r),TodayOrYesterday:new Intl.RelativeTimeFormat(r,{numeric:"auto"})},k={OneMinute:60,OneHour:3600,OneDay:86400,SixDays:86400*6};class A extends HTMLElement{#e;#a;get date(){if(this.#e===void 0){let g=this.getAttribute("date");if(!g)throw new Error("The 'date' attribute is missing.");this.#e=new Date(g)}return this.#e}set date(g){this.setAttribute("date",g.toISOString()),this.refresh(!0)}get static(){return this.hasAttribute("static")}set static(g){g===!0?this.setAttribute("static",""):this.removeAttribute("static")}connectedCallback(){this.refresh(!0)}refresh(g){let p=this.date,E=Math.trunc((Date.now()-p.getTime()-e)/1e3);if(this.#a===void 0){this.#a=document.createElement("time");let _=this.attachShadow({mode:"open"});_.append(this.#a);let C=document.createElement("style");C.textContent=` + `,a.append(i),a}get solid(){return this.hasAttribute("solid")}get name(){return this.getAttribute("name")||""}get size(){let a=this.getAttribute("size");return a===null?0:parseInt(a)}set size(a){if(!l.has(a))throw new Error(`Refused to set the invalid icon size '${a}'.`);this.setAttribute("size",a.toString())}}window.customElements.define("fa-icon",u)})();{let e=Date.now()-window.TIME_NOW*1e3,r=document.documentElement.lang,u=(()=>{let h="",g=document.querySelector('meta[name="timezone"]');if(g){h=g.content;try{Intl.DateTimeFormat(void 0,{timeZone:h})}catch{h=""}}return h||(h=Intl.DateTimeFormat().resolvedOptions().timeZone),h})(),t,a,i=()=>{let h=new Date,g=new Date(h.getFullYear(),h.getMonth(),h.getDate());t!==g.getTime()&&(t=g.getTime(),a=new Date(h.getFullYear(),h.getMonth(),h.getDate()-1).getTime())};i();let d;(p=>(p[p.Today=0]="Today",p[p.Yesterday=-1]="Yesterday"))(d||={});let b={Date:new Intl.DateTimeFormat(r,{dateStyle:"long",timeZone:u}),DateAndTime:new Intl.DateTimeFormat(r,{dateStyle:"long",timeStyle:"short",timeZone:u}),DayOfWeekAndTime:new Intl.DateTimeFormat(r,{weekday:"long",hour:"2-digit",minute:"2-digit",timeZone:u}),Minutes:new Intl.RelativeTimeFormat(r),TodayOrYesterday:new Intl.RelativeTimeFormat(r,{numeric:"auto"})},k={OneMinute:60,OneHour:3600,OneDay:86400,SixDays:86400*6};class q extends HTMLElement{#e;#a;get date(){if(this.#e===void 0){let g=this.getAttribute("date");if(!g)throw new Error("The 'date' attribute is missing.");this.#e=new Date(g)}return this.#e}set date(g){this.setAttribute("date",g.toISOString()),this.refresh(!0)}get static(){return this.hasAttribute("static")}set static(g){g===!0?this.setAttribute("static",""):this.removeAttribute("static")}connectedCallback(){this.refresh(!0)}refresh(g){let p=this.date,x=Math.trunc((Date.now()-p.getTime()-e)/1e3);if(this.#a===void 0){this.#a=document.createElement("time");let L=this.attachShadow({mode:"open"});L.append(this.#a);let C=document.createElement("style");C.textContent=` @media print { time::after { content: " (" attr(title) ")"; } - }`,_.append(C)}g&&(this.#a.dateTime=p.toISOString(),this.#a.title=b.DateAndTime.format(p));let y;if(this.static)y=this.#a.title;else if(Et?y=this.#t(_,0):p.getTime()>a?y=this.#t(_,-1):y=_.map(W=>W.value).join(""):y=b.DateAndTime.format(p)}else y=b.Date.format(p);y=y.charAt(0).toUpperCase()+y.slice(1),this.#a.textContent=y}#t(g,p){return g.map(y=>y.type==="weekday"?b.TodayOrYesterday.format(p,"day"):y.value).join("")}}window.customElements.define("woltlab-core-date-time",A);let S=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(u=>u.refresh(!1))},z,P=()=>{z=window.setInterval(()=>{l(),S()},6e4)};document.addEventListener("DOMContentLoaded",()=>P(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(z):(S(),P())})}{let r=[24,48,96];class n extends HTMLElement{#e;#a;connectedCallback(){this.#e===void 0&&this.#t()}attributeChangedCallback(t,a,l){if(t==="size"){let d=parseInt(l||"");if(!r.includes(d)){let b=parseInt(a||"");r.includes(b)||(b=24),this.setAttribute(t,b.toString())}}}#t(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size",24 .toString()),this.#e=document.createElement("fa-icon"),this.#e.size=this.size,this.#e.setIcon("spinner"),this.#a=document.createElement("span"),this.#a.classList.add("loading-indicator__text"),this.#a.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#a.hidden=this.hideText;let t=document.createElement("div");t.classList.add("loading-indicator__wrapper"),t.append(this.#e,this.#a),this.append(t)}get size(){return parseInt(this.getAttribute("size"))}set size(t){if(!r.includes(t))throw new TypeError(`The size ${t} is unrecognized, permitted values are ${r.join(", ")}.`);this.setAttribute("size",t.toString()),this.#e&&(this.#e.size=t)}get hideText(){return this.hasAttribute("hide-text")}set hideText(t){t?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#a&&(this.#a.hidden=t)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",n)}{let e,r=()=>(e===void 0&&(e=window.matchMedia("(max-width: 544px)")),e);class n extends HTMLElement{#e="pagination";connectedCallback(){this.#a(),r().addEventListener("change",()=>this.#a())}#a(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#e}__wrapper`);let t=this.#t();this.append(t);let a=this.#n();a&&t.append(a);let l=document.createElement("ul");l.classList.add(`${this.#e}__list`),t.append(l),l.append(this.#r(1)),this.page>this.thresholdForEllipsis+1&&l.append(this.#l()),this.#f().forEach(b=>{l.append(b)}),this.count-this.page>this.thresholdForEllipsis&&l.append(this.#l()),l.append(this.#r(this.count));let d=this.#o();d&&t.append(d)}#t(){let t=document.createElement("nav");return t.setAttribute("role","navigation"),t.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),t.classList.add(this.#e),t}#n(){if(this.page===1)return;let t=document.createElement("div");t.classList.add(`${this.#e}__prev`);let a=this.#s(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),t.append(a);let l=document.createElement("fa-icon");return l.setIcon("arrow-left"),a.append(l),t}#o(){if(this.page===this.count)return;let t=document.createElement("div");t.classList.add(`${this.#e}__next`);let a=this.#s(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),t.append(a);let l=document.createElement("fa-icon");return l.setIcon("arrow-right"),a.append(l),t}#s(t){let a,l=this.getLinkUrl(t);return l?(a=document.createElement("a"),a.href=l):(a=document.createElement("button"),a.type="button",this.page===t?a.disabled=!0:a.addEventListener("click",()=>{this.#i(t)})),a.classList.add(`${this.#e}__link`),a}#r(t){let a=document.createElement("li");a.classList.add(`${this.#e}__item`);let l=this.#s(t);return l.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:t})),t===this.page&&(l.setAttribute("aria-current","page"),l.classList.add(`${this.#e}__link--current`)),l.textContent=t.toLocaleString(document.documentElement.lang),a.append(l),a}#f(){let t=[],a,l;r().matches?(a=this.page,l=this.page):(a=this.page-1,a===3&&a--,l=this.page+1,l===this.count-2&&l++);for(let d=a;d<=l;d++)d<=1||d>=this.count||t.push(this.#r(d));return t}#l(){let t=document.createElement("li");t.classList.add(`${this.#e}__item`,`${this.#e}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),t.append(a),t}get thresholdForEllipsis(){return r().matches?1:3}getLinkUrl(t){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",t.toString()]]).toString(),a.toString()}jumpToPage(t){let a=this.getLinkUrl(t);a?window.location.href=a:this.#i(t)}#i(t){let a=new CustomEvent("switchPage",{cancelable:!0,detail:t});this.dispatchEvent(a),a.defaultPrevented||(this.page=t)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(t){this.setAttribute("count",t.toString()),this.#a()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(t){this.setAttribute("page",t.toString()),this.#a()}get url(){return this.getAttribute("url")}set url(t){this.setAttribute("url",t),this.#a()}}window.customElements.define("woltlab-core-pagination",n)}{class e extends HTMLElement{connectedCallback(){this.setData(this.#a(),this.#t())}setData(n,h){this.#e(n,h)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#e(n,h){if(this.innerHTML="",!n.size)return;let t=document.createElement("button");t.classList.add("reactionSummary","jsTooltip"),t.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),t.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(t),n.forEach((a,l)=>{let d=document.createElement("span");d.classList.add("reactionCountButton"),l===h&&d.classList.add("selected");let b=document.createElement("span");b.innerHTML=window.REACTION_TYPES[l].renderedIcon,d.append(b);let k=document.createElement("span");k.classList.add("reactionCount"),k.textContent=a.toString(),d.append(k),t.append(d)})}#a(){let n=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(n)}#t(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",e)}window.WoltLabLanguage=ne;window.WoltLabTemplate=V;window.HTMLParsedElement=pe;})(); + }`,L.append(C)}g&&(this.#a.dateTime=p.toISOString(),this.#a.title=b.DateAndTime.format(p));let y;if(this.static)y=this.#a.title;else if(xt?y=this.#t(L,0):p.getTime()>a?y=this.#t(L,-1):y=L.map(W=>W.value).join(""):y=b.DateAndTime.format(p)}else y=b.Date.format(p);y=y.charAt(0).toUpperCase()+y.slice(1),this.#a.textContent=y}#t(g,p){return g.map(y=>y.type==="weekday"?b.TodayOrYesterday.format(p,"day"):y.value).join("")}}window.customElements.define("woltlab-core-date-time",q);let S=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(h=>h.refresh(!1))},z,P=()=>{z=window.setInterval(()=>{i(),S()},6e4)};document.addEventListener("DOMContentLoaded",()=>P(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(z):(S(),P())})}{class e extends HTMLElement{#e;#a=new Map;constructor(){super(),this.#e=document.createElement("button")}connectedCallback(){if(this.hasAttribute("labels")&&(this.#a=new Map(JSON.parse(this.getAttribute("labels"))),this.removeAttribute("labels")),this.#a.size===0)throw new Error("Expected a non empty list of labels.");this.#e.classList.add("dropdownToggle"),this.#e.innerHTML=`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`,this.#e.addEventListener("click",u=>{u.preventDefault();let t=new CustomEvent("showPicker");this.dispatchEvent(t)}),this.append(this.#e);let l=document.createElement("ul");l.classList.add("dropdownMenu");for(let[u,t]of this.#a){let a=document.createElement("button");a.dataset.labelId=u.toString(),a.innerHTML=t,a.addEventListener("click",()=>{this.selected=u});let i=document.createElement("li");i.append(a),l.append(i)}this.append(l),this.classList.add("dropdown")}set selected(l){this.setAttribute("selected",l.toString()),this.#e.innerHTML=this.#a.get(l)}get selected(){let l=parseInt(this.getAttribute("selected"));if(!Number.isNaN(l))return l}set disabled(l){l?this.setAttribute("disabled",""):this.removeAttribute("disabled")}get disabled(){return this.hasAttribute("disabled")}set required(l){l?this.setAttribute("required",""):this.removeAttribute("required")}get required(){return this.hasAttribute("required")}get labels(){return new Map(this.#a)}}window.customElements.define("woltlab-core-label-picker",e)}{let r=[24,48,96];class l extends HTMLElement{#e;#a;connectedCallback(){this.#e===void 0&&this.#t()}attributeChangedCallback(t,a,i){if(t==="size"){let d=parseInt(i||"");if(!r.includes(d)){let b=parseInt(a||"");r.includes(b)||(b=24),this.setAttribute(t,b.toString())}}}#t(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size",24 .toString()),this.#e=document.createElement("fa-icon"),this.#e.size=this.size,this.#e.setIcon("spinner"),this.#a=document.createElement("span"),this.#a.classList.add("loading-indicator__text"),this.#a.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#a.hidden=this.hideText;let t=document.createElement("div");t.classList.add("loading-indicator__wrapper"),t.append(this.#e,this.#a),this.append(t)}get size(){return parseInt(this.getAttribute("size"))}set size(t){if(!r.includes(t))throw new TypeError(`The size ${t} is unrecognized, permitted values are ${r.join(", ")}.`);this.setAttribute("size",t.toString()),this.#e&&(this.#e.size=t)}get hideText(){return this.hasAttribute("hide-text")}set hideText(t){t?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#a&&(this.#a.hidden=t)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",l)}{let e,r=()=>(e===void 0&&(e=window.matchMedia("(max-width: 544px)")),e);class l extends HTMLElement{#e="pagination";connectedCallback(){this.#a(),r().addEventListener("change",()=>this.#a())}#a(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#e}__wrapper`);let t=this.#t();this.append(t);let a=this.#n();a&&t.append(a);let i=document.createElement("ul");i.classList.add(`${this.#e}__list`),t.append(i),i.append(this.#r(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#l()),this.#f().forEach(b=>{i.append(b)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#l()),i.append(this.#r(this.count));let d=this.#o();d&&t.append(d)}#t(){let t=document.createElement("nav");return t.setAttribute("role","navigation"),t.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),t.classList.add(this.#e),t}#n(){if(this.page===1)return;let t=document.createElement("div");t.classList.add(`${this.#e}__prev`);let a=this.#s(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),t}#o(){if(this.page===this.count)return;let t=document.createElement("div");t.classList.add(`${this.#e}__next`);let a=this.#s(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),t}#s(t){let a,i=this.getLinkUrl(t);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===t?a.disabled=!0:a.addEventListener("click",()=>{this.#i(t)})),a.classList.add(`${this.#e}__link`),a}#r(t){let a=document.createElement("li");a.classList.add(`${this.#e}__item`);let i=this.#s(t);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:t})),t===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#e}__link--current`)),i.textContent=t.toLocaleString(document.documentElement.lang),a.append(i),a}#f(){let t=[],a,i;r().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let d=a;d<=i;d++)d<=1||d>=this.count||t.push(this.#r(d));return t}#l(){let t=document.createElement("li");t.classList.add(`${this.#e}__item`,`${this.#e}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),t.append(a),t}get thresholdForEllipsis(){return r().matches?1:3}getLinkUrl(t){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",t.toString()]]).toString(),a.toString()}jumpToPage(t){let a=this.getLinkUrl(t);a?window.location.href=a:this.#i(t)}#i(t){let a=new CustomEvent("switchPage",{cancelable:!0,detail:t});this.dispatchEvent(a),a.defaultPrevented||(this.page=t)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(t){this.setAttribute("count",t.toString()),this.#a()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(t){this.setAttribute("page",t.toString()),this.#a()}get url(){return this.getAttribute("url")}set url(t){this.setAttribute("url",t),this.#a()}}window.customElements.define("woltlab-core-pagination",l)}{class e extends HTMLElement{connectedCallback(){this.setData(this.#a(),this.#t())}setData(l,u){this.#e(l,u)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#e(l,u){if(this.innerHTML="",!l.size)return;let t=document.createElement("button");t.classList.add("reactionSummary","jsTooltip"),t.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),t.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(t),l.forEach((a,i)=>{let d=document.createElement("span");d.classList.add("reactionCountButton"),i===u&&d.classList.add("selected");let b=document.createElement("span");b.innerHTML=window.REACTION_TYPES[i].renderedIcon,d.append(b);let k=document.createElement("span");k.classList.add("reactionCount"),k.textContent=a.toString(),d.append(k),t.append(d)})}#a(){let l=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(l)}#t(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",e)}window.WoltLabLanguage=ne;window.WoltLabTemplate=V;window.HTMLParsedElement=pe;})(); /** * Handles the low level management of language items. * diff --git a/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php b/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php index 948274a9846..6b385e6d001 100644 --- a/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php @@ -17,6 +17,7 @@ use wcf\system\cache\builder\ArticleCategoryLabelCacheBuilder; use wcf\system\exception\UserInputException; use wcf\system\html\input\HtmlInputProcessor; +use wcf\system\label\LabelPicker; use wcf\system\label\object\ArticleLabelObjectHandler; use wcf\system\language\LanguageFactory; use wcf\system\request\LinkHandler; @@ -192,6 +193,12 @@ class ArticleAddForm extends AbstractForm */ public $labelGroups; + /** + * @var LabelPicker[] + * @since 6.1 + */ + public array $labelPickers = []; + /** * list of label ids * @var int[] @@ -592,6 +599,7 @@ public function readData() $this->labelGroupsToCategories = ArticleCategoryLabelCacheBuilder::getInstance()->getData(); $this->labelGroups = ArticleCategory::getAccessibleLabelGroups(); + $this->labelPickers = ArticleCategory::getLabelPickers(); if (empty($_POST)) { $this->setDefaultValues(); @@ -663,6 +671,7 @@ public function assignVariables() 'labelIDs' => $this->labelIDs, 'labelGroups' => $this->labelGroups, 'labelGroupsToCategories' => $this->labelGroupsToCategories, + 'labelPickers' => $this->labelPickers, 'attachmentHandler' => $this->attachmentHandler, 'attachmentObjectID' => $this->attachmentObjectID, 'attachmentObjectType' => $this->attachmentObjectType, diff --git a/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php b/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php index b203c54f719..1268d6fecbc 100644 --- a/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php +++ b/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php @@ -195,6 +195,24 @@ public function getLabelGroups(string $permission = 'canSetLabel'): array return []; } + public static function getLabelPickers(): array + { + $labelGroupsToCategories = ArticleCategoryLabelCacheBuilder::getInstance()->getData(); + $accessibleCategoryIDs = self::getAccessibleCategoryIDs(); + + $groupIDs = []; + foreach ($labelGroupsToCategories as $categoryID => $__groupIDs) { + if (\in_array($categoryID, $accessibleCategoryIDs)) { + $groupIDs = \array_merge($groupIDs, $__groupIDs); + } + } + if (empty($groupIDs)) { + return []; + } + + return LabelHandler::getInstance()->getLabelPickers(\array_unique($groupIDs)); + } + /** * Returns all userIDs which have subscribed this category. * diff --git a/wcfsetup/install/files/lib/data/label/Label.class.php b/wcfsetup/install/files/lib/data/label/Label.class.php index 5821711d332..3957ed52dd6 100644 --- a/wcfsetup/install/files/lib/data/label/Label.class.php +++ b/wcfsetup/install/files/lib/data/label/Label.class.php @@ -70,9 +70,8 @@ public function render($additionalClasses = ''): string $classNames .= " {$additionalClasses}"; } return \sprintf( - '%s', + '%s', $classNames, - $this->labelID, StringUtil::encodeHTML($this->getTitle()), ); } diff --git a/wcfsetup/install/files/lib/data/label/group/ViewableLabelGroup.class.php b/wcfsetup/install/files/lib/data/label/group/ViewableLabelGroup.class.php index 9583bda8035..2d42c3182c9 100644 --- a/wcfsetup/install/files/lib/data/label/group/ViewableLabelGroup.class.php +++ b/wcfsetup/install/files/lib/data/label/group/ViewableLabelGroup.class.php @@ -8,6 +8,8 @@ use wcf\data\user\User; use wcf\system\exception\SystemException; use wcf\system\WCF; +use wcf\util\JSON; +use wcf\util\StringUtil; /** * Represents a viewable label group. @@ -269,4 +271,21 @@ public function hasPermissions() { return !empty($this->permissions['group']) || !empty($this->permissions['user']); } + + public function renderPicker(): string + { + $labels = []; + foreach ($this->labels as $label) { + $labels[] = [ + $label->labelID, + $label->render(), + ]; + } + + return \sprintf( + '', + $this->groupID, + StringUtil::encodeHTML(JSON::encode($labels)), + ); + } } diff --git a/wcfsetup/install/files/lib/system/label/LabelHandler.class.php b/wcfsetup/install/files/lib/system/label/LabelHandler.class.php index 41de59be724..7be01a71708 100644 --- a/wcfsetup/install/files/lib/system/label/LabelHandler.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelHandler.class.php @@ -425,4 +425,18 @@ public function removeLabels($objectTypeID, array $objectIDs) $statement = WCF::getDB()->prepareStatement($sql); $statement->execute($conditions->getParameters()); } + + public function getLabelPickers(array $groupIDs): array + { + $labelGroups = \array_filter( + $this->labelGroups['groups'], + fn (int $groupID) => \in_array($groupID, $groupIDs), + \ARRAY_FILTER_USE_KEY + ); + + return \array_map( + fn (ViewableLabelGroup $viewableLabelGroup) => new LabelPicker($viewableLabelGroup), + $labelGroups + ); + } } diff --git a/wcfsetup/install/files/lib/system/label/LabelPicker.class.php b/wcfsetup/install/files/lib/system/label/LabelPicker.class.php new file mode 100644 index 00000000000..f063233470c --- /dev/null +++ b/wcfsetup/install/files/lib/system/label/LabelPicker.class.php @@ -0,0 +1,32 @@ +labelGroup as $label) { + \assert($label instanceof Label); + + $labels[] = [$label->labelID, $label->render()]; + } + + return \sprintf( + '', + $this->labelGroup->groupID, + $this->labelGroup->getTitle(), + StringUtil::encodeHTML(JSON::encode($labels)), + ); + } +} From 7cbeabc6813b27569b5e6dd39a79e449416f1b63 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Fri, 22 Sep 2023 14:58:27 +0200 Subject: [PATCH 03/18] Add support for form elements and disabling the picker --- ts/WoltLabSuite/Core/Ui/Dropdown/Simple.ts | 7 ++- .../WebComponent/woltlab-core-label-picker.ts | 61 +++++++++++++++---- .../WoltLabSuite/Core/Ui/Dropdown/Simple.js | 6 +- .../files/js/WoltLabSuite/WebComponent.min.js | 18 +++--- ...PreloadPhrasesCollectingListener.class.php | 2 + wcfsetup/install/files/style/ui/dropdown.scss | 2 +- 6 files changed, 71 insertions(+), 25 deletions(-) diff --git a/ts/WoltLabSuite/Core/Ui/Dropdown/Simple.ts b/ts/WoltLabSuite/Core/Ui/Dropdown/Simple.ts index f35975303bd..7b48ff9ced2 100644 --- a/ts/WoltLabSuite/Core/Ui/Dropdown/Simple.ts +++ b/ts/WoltLabSuite/Core/Ui/Dropdown/Simple.ts @@ -378,8 +378,11 @@ const UiDropdownSimple = { init(button: HTMLElement, isLazyInitialization?: boolean | MouseEvent): boolean { UiDropdownSimple.setup(); - button.setAttribute("role", "button"); - button.tabIndex = 0; + if (!(button instanceof HTMLButtonElement)) { + button.setAttribute("role", "button"); + button.tabIndex = 0; + } + button.setAttribute("aria-haspopup", "true"); button.setAttribute("aria-expanded", "false"); diff --git a/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts b/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts index a9bea72a2a7..7cdd6147fb1 100644 --- a/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts +++ b/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts @@ -1,6 +1,7 @@ { class WoltlabCoreLabelPickerElement extends HTMLElement { readonly #button: HTMLButtonElement; + #formValue: HTMLInputElement | undefined; #labels = new Map(); constructor() { @@ -19,8 +20,11 @@ throw new Error("Expected a non empty list of labels."); } + const emptyLabel = `${window.WoltLabLanguage.getPhrase("wcf.label.none")}`; + + this.#button.type = "button"; this.#button.classList.add("dropdownToggle"); - this.#button.innerHTML = `${window.WoltLabLanguage.getPhrase("wcf.label.none")}`; + this.#button.innerHTML = emptyLabel; this.#button.addEventListener("click", (event) => { event.preventDefault(); @@ -33,28 +37,58 @@ const dropdownMenu = document.createElement("ul"); dropdownMenu.classList.add("dropdownMenu"); for (const [labelId, html] of this.#labels) { - const button = document.createElement("button"); - button.dataset.labelId = labelId.toString(); - button.innerHTML = html; - button.addEventListener("click", () => { - this.selected = labelId; - }); + dropdownMenu.append(this.#createLabelItem(labelId, html)); + } - const listItem = document.createElement("li"); - listItem.append(button); + if (!this.required) { + const divider = document.createElement("li"); + divider.classList.add("dropdownDivider"); - dropdownMenu.append(listItem); + dropdownMenu.append(divider, this.#createLabelItem(0, emptyLabel)); } this.append(dropdownMenu); this.classList.add("dropdown"); + + if (this.closest("form") !== null) { + if (this.#formValue === undefined) { + this.#formValue = document.createElement("input"); + this.#formValue.type = "hidden"; + this.#formValue.name = "labelIDs[]"; + this.append(this.#formValue); + } + + this.#formValue.value = (this.selected || 0).toString(); + } else { + this.#formValue?.remove(); + } + } + + #createLabelItem(labelId: number, html: string): HTMLLIElement { + const button = document.createElement("button"); + button.type = "button"; + button.dataset.labelId = labelId.toString(); + button.innerHTML = html; + button.addEventListener("click", () => { + this.selected = labelId; + }); + + const listItem = document.createElement("li"); + listItem.append(button); + + return listItem; } set selected(selected: number) { this.setAttribute("selected", selected.toString()); - this.#button.innerHTML = this.#labels.get(selected)!; + this.#button.innerHTML = + this.#labels.get(selected) || + `${window.WoltLabLanguage.getPhrase("wcf.label.none")}`; + if (this.#formValue !== undefined) { + this.#formValue.value = selected.toString(); + } } get selected(): number | undefined { @@ -72,6 +106,11 @@ } else { this.removeAttribute("disabled"); } + + this.#button.disabled = disabled; + if (this.#formValue) { + this.#formValue.disabled = disabled; + } } get disabled(): boolean { diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Ui/Dropdown/Simple.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Ui/Dropdown/Simple.js index 0fd036a4ddd..0a7ecf0d75e 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Ui/Dropdown/Simple.js +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Ui/Dropdown/Simple.js @@ -319,8 +319,10 @@ define(["require", "exports", "tslib", "../../CallbackList", "../../Core", "../. */ init(button, isLazyInitialization) { UiDropdownSimple.setup(); - button.setAttribute("role", "button"); - button.tabIndex = 0; + if (!(button instanceof HTMLButtonElement)) { + button.setAttribute("role", "button"); + button.tabIndex = 0; + } button.setAttribute("aria-haspopup", "true"); button.setAttribute("aria-expanded", "false"); if (button.classList.contains("jsDropdownEnabled") || button.dataset.target) { diff --git a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js index ffab9ce576b..4ba25c3bf80 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js +++ b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js @@ -1,20 +1,20 @@ -"use strict";(()=>{var ke=Object.create;var te=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var Ee=Object.getPrototypeOf,xe=Object.prototype.hasOwnProperty;var se=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,l)=>(typeof require<"u"?require:r)[l]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Le=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),fe=(e,r)=>{for(var l in r)te(e,l,{get:r[l],enumerable:!0})},_e=(e,r,l,u)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of ve(r))!xe.call(e,t)&&t!==l&&te(e,t,{get:()=>r[t],enumerable:!(u=ye(r,t))||u.enumerable});return e};var Te=(e,r,l)=>(l=e!=null?ke(Ee(e)):{},_e(r||!e||!e.__esModule?te(l,"default",{value:e,enumerable:!0}):l,e));var ce=Le((N,re)=>{"use strict";var Q=function(){var e=function(R,o,f,c){for(f=f||{},c=R.length;c--;f[R[c]]=o);return f},r=[2,44],l=[5,9,11,12,13,18,19,21,22,23,25,26,28,29,30,32,33,34,35,37,39,41],u=[1,25],t=[1,27],a=[1,33],i=[1,31],d=[1,32],b=[1,28],k=[1,29],q=[1,26],S=[1,35],z=[1,41],P=[1,40],h=[11,12,15,42,43,47,49,51,52,54,55],g=[9,11,12,13,18,19,21,23,26,28,30,32,33,34,35,37,39],p=[11,12,15,42,43,46,47,48,49,51,52,54,55],x=[1,64],y=[1,65],L=[18,37,39],C=[12,15],W={trace:function(){},yy:{},symbols_:{error:2,TEMPLATE:3,CHUNK_STAR:4,EOF:5,CHUNK_STAR_repetition0:6,CHUNK:7,PLAIN_ANY:8,T_LITERAL:9,COMMAND:10,T_ANY:11,T_WS:12,"{if":13,COMMAND_PARAMETERS:14,"}":15,COMMAND_repetition0:16,COMMAND_option0:17,"{/if}":18,"{include":19,COMMAND_PARAMETER_LIST:20,"{implode":21,"{/implode}":22,"{foreach":23,COMMAND_option1:24,"{/foreach}":25,"{plural":26,PLURAL_PARAMETER_LIST:27,"{lang}":28,"{/lang}":29,"{":30,VARIABLE:31,"{#":32,"{@":33,"{ldelim}":34,"{rdelim}":35,ELSE:36,"{else}":37,ELSE_IF:38,"{elseif":39,FOREACH_ELSE:40,"{foreachelse}":41,T_VARIABLE:42,T_VARIABLE_NAME:43,VARIABLE_repetition0:44,VARIABLE_SUFFIX:45,"[":46,"]":47,".":48,"(":49,VARIABLE_SUFFIX_option0:50,")":51,"=":52,COMMAND_PARAMETER_VALUE:53,T_QUOTED_STRING:54,T_DIGITS:55,COMMAND_PARAMETERS_repetition_plus0:56,COMMAND_PARAMETER:57,T_PLURAL_PARAMETER_NAME:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",9:"T_LITERAL",11:"T_ANY",12:"T_WS",13:"{if",15:"}",18:"{/if}",19:"{include",21:"{implode",22:"{/implode}",23:"{foreach",25:"{/foreach}",26:"{plural",28:"{lang}",29:"{/lang}",30:"{",32:"{#",33:"{@",34:"{ldelim}",35:"{rdelim}",37:"{else}",39:"{elseif",41:"{foreachelse}",42:"T_VARIABLE",43:"T_VARIABLE_NAME",46:"[",47:"]",48:".",49:"(",51:")",52:"=",54:"T_QUOTED_STRING",55:"T_DIGITS"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[8,1],[8,1],[10,7],[10,3],[10,5],[10,6],[10,3],[10,3],[10,3],[10,3],[10,3],[10,1],[10,1],[36,2],[38,4],[40,2],[31,3],[45,3],[45,2],[45,3],[20,5],[20,3],[53,1],[53,1],[53,1],[14,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,3],[27,5],[27,3],[58,1],[58,1],[6,0],[6,2],[16,0],[16,2],[17,0],[17,1],[24,0],[24,1],[44,0],[44,2],[50,0],[50,1],[56,1],[56,2]],performAction:function(o,f,c,w,m,s,U){var n=s.length-1;switch(m){case 1:return s[n-1]+";";case 2:var D=s[n].reduce(function(_,T){return T.encode&&!_[1]?_[0]+=" + '"+T.value:T.encode&&_[1]?_[0]+=T.value:!T.encode&&_[1]?_[0]+="' + "+T.value:!T.encode&&!_[1]&&(_[0]+=" + "+T.value),_[1]=T.encode,_},["''",!1]);D[1]&&(D[0]+="'"),this.$=D[0];break;case 3:case 4:this.$={encode:!0,value:s[n].replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\r\n|\n|\r)/g,"\\n")};break;case 5:this.$={encode:!1,value:s[n]};break;case 8:this.$="(function() { if ("+s[n-5]+") { return "+s[n-3]+"; } "+s[n-2].join(" ")+" "+(s[n-1]||"")+" return ''; })()";break;case 9:if(!s[n-1].file)throw new Error("Missing parameter file");this.$=s[n-1].file+".fetch(v)";break;case 10:if(!s[n-3].from)throw new Error("Missing parameter from");if(!s[n-3].item)throw new Error("Missing parameter item");s[n-3].glue||(s[n-3].glue="', '"),this.$="(function() { return "+s[n-3].from+".map(function(item) { v["+s[n-3].item+"] = item; return "+s[n-1]+"; }).join("+s[n-3].glue+"); })()";break;case 11:if(!s[n-4].from)throw new Error("Missing parameter from");if(!s[n-4].item)throw new Error("Missing parameter item");this.$="(function() {var looped = false, result = '';if ("+s[n-4].from+" instanceof Array) {for (var i = 0; i < "+s[n-4].from+".length; i++) { looped = true;v["+s[n-4].key+"] = i;v["+s[n-4].item+"] = "+s[n-4].from+"[i];result += "+s[n-2]+";}} else {for (var key in "+s[n-4].from+") {if (!"+s[n-4].from+".hasOwnProperty(key)) continue;looped = true;v["+s[n-4].key+"] = key;v["+s[n-4].item+"] = "+s[n-4].from+"[key];result += "+s[n-2]+";}}return (looped ? result : "+(s[n-1]||"''")+"); })()";break;case 12:this.$="h.selectPlural({";var B=!1;for(var O in s[n-1])objOwns(s[n-1],O)&&(this.$+=(B?",":"")+O+": "+s[n-1][O],B=!0);this.$+="})";break;case 13:this.$="Language.get("+s[n-1]+", v)";break;case 14:this.$="h.escapeHTML("+s[n-1]+")";break;case 15:this.$="h.formatNumeric("+s[n-1]+")";break;case 16:this.$=s[n-1];break;case 17:this.$="'{'";break;case 18:this.$="'}'";break;case 19:this.$="else { return "+s[n]+"; }";break;case 20:this.$="else if ("+s[n-2]+") { return "+s[n]+"; }";break;case 21:this.$=s[n];break;case 22:this.$="v['"+s[n-1]+"']"+s[n].join("");break;case 23:this.$=s[n-2]+s[n-1]+s[n];break;case 24:this.$="['"+s[n]+"']";break;case 25:case 39:this.$=s[n-2]+(s[n-1]||"")+s[n];break;case 26:case 40:this.$=s[n],this.$[s[n-4]]=s[n-2];break;case 27:case 41:this.$={},this.$[s[n-2]]=s[n];break;case 31:this.$=s[n].join("");break;case 44:case 46:case 52:this.$=[];break;case 45:case 47:case 53:case 57:s[n-1].push(s[n]);break;case 56:this.$=[s[n]];break}},table:[e([5,9,11,12,13,19,21,23,26,28,30,32,33,34,35],r,{3:1,4:2,6:3}),{1:[3]},{5:[1,4]},e([5,18,22,25,29,37,39,41],[2,2],{7:5,8:6,10:8,9:[1,7],11:[1,9],12:[1,10],13:[1,11],19:[1,12],21:[1,13],23:[1,14],26:[1,15],28:[1,16],30:[1,17],32:[1,18],33:[1,19],34:[1,20],35:[1,21]}),{1:[2,1]},e(l,[2,45]),e(l,[2,3]),e(l,[2,4]),e(l,[2,5]),e(l,[2,6]),e(l,[2,7]),{11:u,12:t,14:22,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{20:34,43:S},{20:36,43:S},{20:37,43:S},{27:38,43:z,55:P,58:39},e([9,11,12,13,19,21,23,26,28,29,30,32,33,34,35],r,{6:3,4:42}),{31:43,42:a},{31:44,42:a},{31:45,42:a},e(l,[2,17]),e(l,[2,18]),{15:[1,46]},e([15,47,51],[2,31],{31:30,57:47,11:u,12:t,42:a,43:i,49:d,52:b,54:k,55:q}),e(h,[2,56]),e(h,[2,32]),e(h,[2,33]),e(h,[2,34]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{11:u,12:t,14:48,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{43:[1,49]},{15:[1,50]},{52:[1,51]},{15:[1,52]},{15:[1,53]},{15:[1,54]},{52:[1,55]},{52:[2,42]},{52:[2,43]},{29:[1,56]},{15:[1,57]},{15:[1,58]},{15:[1,59]},e(g,r,{6:3,4:60}),e(h,[2,57]),{51:[1,61]},e(p,[2,52],{44:62}),e(l,[2,9]),{31:66,42:a,53:63,54:x,55:y},e([9,11,12,13,19,21,22,23,26,28,30,32,33,34,35],r,{6:3,4:67}),e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35,41],r,{6:3,4:68}),e(l,[2,12]),{31:66,42:a,53:69,54:x,55:y},e(l,[2,13]),e(l,[2,14]),e(l,[2,15]),e(l,[2,16]),e(L,[2,46],{16:70}),e(h,[2,39]),e([11,12,15,42,43,47,51,52,54,55],[2,22],{45:71,46:[1,72],48:[1,73],49:[1,74]}),{12:[1,75],15:[2,27]},e(C,[2,28]),e(C,[2,29]),e(C,[2,30]),{22:[1,76]},{24:77,25:[2,50],40:78,41:[1,79]},{12:[1,80],15:[2,41]},{17:81,18:[2,48],36:83,37:[1,85],38:82,39:[1,84]},e(p,[2,53]),{11:u,12:t,14:86,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{43:[1,87]},{11:u,12:t,14:89,31:30,42:a,43:i,49:d,50:88,51:[2,54],52:b,54:k,55:q,56:23,57:24},{20:90,43:S},e(l,[2,10]),{25:[1,91]},{25:[2,51]},e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35],r,{6:3,4:92}),{27:93,43:z,55:P,58:39},{18:[1,94]},e(L,[2,47]),{18:[2,49]},{11:u,12:t,14:95,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},e([9,11,12,13,18,19,21,23,26,28,30,32,33,34,35],r,{6:3,4:96}),{47:[1,97]},e(p,[2,24]),{51:[1,98]},{51:[2,55]},{15:[2,26]},e(l,[2,11]),{25:[2,21]},{15:[2,40]},e(l,[2,8]),{15:[1,99]},{18:[2,19]},e(p,[2,23]),e(p,[2,25]),e(g,r,{6:3,4:100}),e(L,[2,20])],defaultActions:{4:[2,1],40:[2,42],41:[2,43],78:[2,51],83:[2,49],89:[2,55],90:[2,26],92:[2,21],93:[2,40],96:[2,19]},parseError:function(o,f){if(f.recoverable)this.trace(o);else{var c=new Error(o);throw c.hash=f,c}},parse:function(o){var f=this,c=[0],w=[],m=[null],s=[],U=this.table,n="",D=0,B=0,O=0,_=2,T=1,me=s.slice.call(arguments,1),v=Object.create(this.lexer),j={yy:{}};for(var X in this.yy)Object.prototype.hasOwnProperty.call(this.yy,X)&&(j.yy[X]=this.yy[X]);v.setInput(o,j.yy),j.yy.lexer=v,j.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var J=v.yylloc;s.push(J);var be=v.options&&v.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Re(M){c.length=c.length-2*M,m.length=m.length-M,s.length=s.length-M}for(var we=function(){var M;return M=v.lex()||T,typeof M!="number"&&(M=f.symbols_[M]||M),M},E,$,H,A,De,ee,F={},Y,I,oe,Z;;){if(H=c[c.length-1],this.defaultActions[H]?A=this.defaultActions[H]:((E===null||typeof E>"u")&&(E=we()),A=U[H]&&U[H][E]),typeof A>"u"||!A.length||!A[0]){var ae="";Z=[];for(Y in U[H])this.terminals_[Y]&&Y>_&&Z.push("'"+this.terminals_[Y]+"'");v.showPosition?ae="Parse error on line "+(D+1)+`: +"use strict";(()=>{var ke=Object.create;var te=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var Ee=Object.getPrototypeOf,xe=Object.prototype.hasOwnProperty;var se=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,l)=>(typeof require<"u"?require:r)[l]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Le=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),fe=(e,r)=>{for(var l in r)te(e,l,{get:r[l],enumerable:!0})},_e=(e,r,l,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of ve(r))!xe.call(e,t)&&t!==l&&te(e,t,{get:()=>r[t],enumerable:!(c=ye(r,t))||c.enumerable});return e};var Te=(e,r,l)=>(l=e!=null?ke(Ee(e)):{},_e(r||!e||!e.__esModule?te(l,"default",{value:e,enumerable:!0}):l,e));var ce=Le((N,re)=>{"use strict";var Q=function(){var e=function(R,o,f,u){for(f=f||{},u=R.length;u--;f[R[u]]=o);return f},r=[2,44],l=[5,9,11,12,13,18,19,21,22,23,25,26,28,29,30,32,33,34,35,37,39,41],c=[1,25],t=[1,27],a=[1,33],i=[1,31],d=[1,32],b=[1,28],k=[1,29],q=[1,26],S=[1,35],z=[1,41],P=[1,40],h=[11,12,15,42,43,47,49,51,52,54,55],g=[9,11,12,13,18,19,21,23,26,28,30,32,33,34,35,37,39],p=[11,12,15,42,43,46,47,48,49,51,52,54,55],x=[1,64],y=[1,65],L=[18,37,39],C=[12,15],W={trace:function(){},yy:{},symbols_:{error:2,TEMPLATE:3,CHUNK_STAR:4,EOF:5,CHUNK_STAR_repetition0:6,CHUNK:7,PLAIN_ANY:8,T_LITERAL:9,COMMAND:10,T_ANY:11,T_WS:12,"{if":13,COMMAND_PARAMETERS:14,"}":15,COMMAND_repetition0:16,COMMAND_option0:17,"{/if}":18,"{include":19,COMMAND_PARAMETER_LIST:20,"{implode":21,"{/implode}":22,"{foreach":23,COMMAND_option1:24,"{/foreach}":25,"{plural":26,PLURAL_PARAMETER_LIST:27,"{lang}":28,"{/lang}":29,"{":30,VARIABLE:31,"{#":32,"{@":33,"{ldelim}":34,"{rdelim}":35,ELSE:36,"{else}":37,ELSE_IF:38,"{elseif":39,FOREACH_ELSE:40,"{foreachelse}":41,T_VARIABLE:42,T_VARIABLE_NAME:43,VARIABLE_repetition0:44,VARIABLE_SUFFIX:45,"[":46,"]":47,".":48,"(":49,VARIABLE_SUFFIX_option0:50,")":51,"=":52,COMMAND_PARAMETER_VALUE:53,T_QUOTED_STRING:54,T_DIGITS:55,COMMAND_PARAMETERS_repetition_plus0:56,COMMAND_PARAMETER:57,T_PLURAL_PARAMETER_NAME:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",9:"T_LITERAL",11:"T_ANY",12:"T_WS",13:"{if",15:"}",18:"{/if}",19:"{include",21:"{implode",22:"{/implode}",23:"{foreach",25:"{/foreach}",26:"{plural",28:"{lang}",29:"{/lang}",30:"{",32:"{#",33:"{@",34:"{ldelim}",35:"{rdelim}",37:"{else}",39:"{elseif",41:"{foreachelse}",42:"T_VARIABLE",43:"T_VARIABLE_NAME",46:"[",47:"]",48:".",49:"(",51:")",52:"=",54:"T_QUOTED_STRING",55:"T_DIGITS"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[8,1],[8,1],[10,7],[10,3],[10,5],[10,6],[10,3],[10,3],[10,3],[10,3],[10,3],[10,1],[10,1],[36,2],[38,4],[40,2],[31,3],[45,3],[45,2],[45,3],[20,5],[20,3],[53,1],[53,1],[53,1],[14,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,3],[27,5],[27,3],[58,1],[58,1],[6,0],[6,2],[16,0],[16,2],[17,0],[17,1],[24,0],[24,1],[44,0],[44,2],[50,0],[50,1],[56,1],[56,2]],performAction:function(o,f,u,w,m,s,U){var n=s.length-1;switch(m){case 1:return s[n-1]+";";case 2:var D=s[n].reduce(function(_,T){return T.encode&&!_[1]?_[0]+=" + '"+T.value:T.encode&&_[1]?_[0]+=T.value:!T.encode&&_[1]?_[0]+="' + "+T.value:!T.encode&&!_[1]&&(_[0]+=" + "+T.value),_[1]=T.encode,_},["''",!1]);D[1]&&(D[0]+="'"),this.$=D[0];break;case 3:case 4:this.$={encode:!0,value:s[n].replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\r\n|\n|\r)/g,"\\n")};break;case 5:this.$={encode:!1,value:s[n]};break;case 8:this.$="(function() { if ("+s[n-5]+") { return "+s[n-3]+"; } "+s[n-2].join(" ")+" "+(s[n-1]||"")+" return ''; })()";break;case 9:if(!s[n-1].file)throw new Error("Missing parameter file");this.$=s[n-1].file+".fetch(v)";break;case 10:if(!s[n-3].from)throw new Error("Missing parameter from");if(!s[n-3].item)throw new Error("Missing parameter item");s[n-3].glue||(s[n-3].glue="', '"),this.$="(function() { return "+s[n-3].from+".map(function(item) { v["+s[n-3].item+"] = item; return "+s[n-1]+"; }).join("+s[n-3].glue+"); })()";break;case 11:if(!s[n-4].from)throw new Error("Missing parameter from");if(!s[n-4].item)throw new Error("Missing parameter item");this.$="(function() {var looped = false, result = '';if ("+s[n-4].from+" instanceof Array) {for (var i = 0; i < "+s[n-4].from+".length; i++) { looped = true;v["+s[n-4].key+"] = i;v["+s[n-4].item+"] = "+s[n-4].from+"[i];result += "+s[n-2]+";}} else {for (var key in "+s[n-4].from+") {if (!"+s[n-4].from+".hasOwnProperty(key)) continue;looped = true;v["+s[n-4].key+"] = key;v["+s[n-4].item+"] = "+s[n-4].from+"[key];result += "+s[n-2]+";}}return (looped ? result : "+(s[n-1]||"''")+"); })()";break;case 12:this.$="h.selectPlural({";var B=!1;for(var O in s[n-1])objOwns(s[n-1],O)&&(this.$+=(B?",":"")+O+": "+s[n-1][O],B=!0);this.$+="})";break;case 13:this.$="Language.get("+s[n-1]+", v)";break;case 14:this.$="h.escapeHTML("+s[n-1]+")";break;case 15:this.$="h.formatNumeric("+s[n-1]+")";break;case 16:this.$=s[n-1];break;case 17:this.$="'{'";break;case 18:this.$="'}'";break;case 19:this.$="else { return "+s[n]+"; }";break;case 20:this.$="else if ("+s[n-2]+") { return "+s[n]+"; }";break;case 21:this.$=s[n];break;case 22:this.$="v['"+s[n-1]+"']"+s[n].join("");break;case 23:this.$=s[n-2]+s[n-1]+s[n];break;case 24:this.$="['"+s[n]+"']";break;case 25:case 39:this.$=s[n-2]+(s[n-1]||"")+s[n];break;case 26:case 40:this.$=s[n],this.$[s[n-4]]=s[n-2];break;case 27:case 41:this.$={},this.$[s[n-2]]=s[n];break;case 31:this.$=s[n].join("");break;case 44:case 46:case 52:this.$=[];break;case 45:case 47:case 53:case 57:s[n-1].push(s[n]);break;case 56:this.$=[s[n]];break}},table:[e([5,9,11,12,13,19,21,23,26,28,30,32,33,34,35],r,{3:1,4:2,6:3}),{1:[3]},{5:[1,4]},e([5,18,22,25,29,37,39,41],[2,2],{7:5,8:6,10:8,9:[1,7],11:[1,9],12:[1,10],13:[1,11],19:[1,12],21:[1,13],23:[1,14],26:[1,15],28:[1,16],30:[1,17],32:[1,18],33:[1,19],34:[1,20],35:[1,21]}),{1:[2,1]},e(l,[2,45]),e(l,[2,3]),e(l,[2,4]),e(l,[2,5]),e(l,[2,6]),e(l,[2,7]),{11:c,12:t,14:22,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{20:34,43:S},{20:36,43:S},{20:37,43:S},{27:38,43:z,55:P,58:39},e([9,11,12,13,19,21,23,26,28,29,30,32,33,34,35],r,{6:3,4:42}),{31:43,42:a},{31:44,42:a},{31:45,42:a},e(l,[2,17]),e(l,[2,18]),{15:[1,46]},e([15,47,51],[2,31],{31:30,57:47,11:c,12:t,42:a,43:i,49:d,52:b,54:k,55:q}),e(h,[2,56]),e(h,[2,32]),e(h,[2,33]),e(h,[2,34]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{11:c,12:t,14:48,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{43:[1,49]},{15:[1,50]},{52:[1,51]},{15:[1,52]},{15:[1,53]},{15:[1,54]},{52:[1,55]},{52:[2,42]},{52:[2,43]},{29:[1,56]},{15:[1,57]},{15:[1,58]},{15:[1,59]},e(g,r,{6:3,4:60}),e(h,[2,57]),{51:[1,61]},e(p,[2,52],{44:62}),e(l,[2,9]),{31:66,42:a,53:63,54:x,55:y},e([9,11,12,13,19,21,22,23,26,28,30,32,33,34,35],r,{6:3,4:67}),e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35,41],r,{6:3,4:68}),e(l,[2,12]),{31:66,42:a,53:69,54:x,55:y},e(l,[2,13]),e(l,[2,14]),e(l,[2,15]),e(l,[2,16]),e(L,[2,46],{16:70}),e(h,[2,39]),e([11,12,15,42,43,47,51,52,54,55],[2,22],{45:71,46:[1,72],48:[1,73],49:[1,74]}),{12:[1,75],15:[2,27]},e(C,[2,28]),e(C,[2,29]),e(C,[2,30]),{22:[1,76]},{24:77,25:[2,50],40:78,41:[1,79]},{12:[1,80],15:[2,41]},{17:81,18:[2,48],36:83,37:[1,85],38:82,39:[1,84]},e(p,[2,53]),{11:c,12:t,14:86,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{43:[1,87]},{11:c,12:t,14:89,31:30,42:a,43:i,49:d,50:88,51:[2,54],52:b,54:k,55:q,56:23,57:24},{20:90,43:S},e(l,[2,10]),{25:[1,91]},{25:[2,51]},e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35],r,{6:3,4:92}),{27:93,43:z,55:P,58:39},{18:[1,94]},e(L,[2,47]),{18:[2,49]},{11:c,12:t,14:95,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},e([9,11,12,13,18,19,21,23,26,28,30,32,33,34,35],r,{6:3,4:96}),{47:[1,97]},e(p,[2,24]),{51:[1,98]},{51:[2,55]},{15:[2,26]},e(l,[2,11]),{25:[2,21]},{15:[2,40]},e(l,[2,8]),{15:[1,99]},{18:[2,19]},e(p,[2,23]),e(p,[2,25]),e(g,r,{6:3,4:100}),e(L,[2,20])],defaultActions:{4:[2,1],40:[2,42],41:[2,43],78:[2,51],83:[2,49],89:[2,55],90:[2,26],92:[2,21],93:[2,40],96:[2,19]},parseError:function(o,f){if(f.recoverable)this.trace(o);else{var u=new Error(o);throw u.hash=f,u}},parse:function(o){var f=this,u=[0],w=[],m=[null],s=[],U=this.table,n="",D=0,B=0,O=0,_=2,T=1,me=s.slice.call(arguments,1),v=Object.create(this.lexer),j={yy:{}};for(var X in this.yy)Object.prototype.hasOwnProperty.call(this.yy,X)&&(j.yy[X]=this.yy[X]);v.setInput(o,j.yy),j.yy.lexer=v,j.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var J=v.yylloc;s.push(J);var be=v.options&&v.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Re(M){u.length=u.length-2*M,m.length=m.length-M,s.length=s.length-M}for(var we=function(){var M;return M=v.lex()||T,typeof M!="number"&&(M=f.symbols_[M]||M),M},E,$,H,A,De,ee,F={},Y,I,oe,Z;;){if(H=u[u.length-1],this.defaultActions[H]?A=this.defaultActions[H]:((E===null||typeof E>"u")&&(E=we()),A=U[H]&&U[H][E]),typeof A>"u"||!A.length||!A[0]){var ae="";Z=[];for(Y in U[H])this.terminals_[Y]&&Y>_&&Z.push("'"+this.terminals_[Y]+"'");v.showPosition?ae="Parse error on line "+(D+1)+`: `+v.showPosition()+` -Expecting `+Z.join(", ")+", got '"+(this.terminals_[E]||E)+"'":ae="Parse error on line "+(D+1)+": Unexpected "+(E==T?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(ae,{text:v.match,token:this.terminals_[E]||E,line:v.yylineno,loc:J,expected:Z})}if(A[0]instanceof Array&&A.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+E);switch(A[0]){case 1:c.push(E),m.push(v.yytext),s.push(v.yylloc),c.push(A[1]),E=null,$?(E=$,$=null):(B=v.yyleng,n=v.yytext,D=v.yylineno,J=v.yylloc,O>0&&O--);break;case 2:if(I=this.productions_[A[1]][1],F.$=m[m.length-I],F._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column},be&&(F._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]]),ee=this.performAction.apply(F,[n,B,D,j.yy,A[1],m,s].concat(me)),typeof ee<"u")return ee;I&&(c=c.slice(0,-1*I*2),m=m.slice(0,-1*I),s=s.slice(0,-1*I)),c.push(this.productions_[A[1]][0]),m.push(F.$),s.push(F._$),oe=U[c[c.length-2]][c[c.length-1]],c.push(oe);break;case 3:return!0}}return!0}},ge=function(){var R={EOF:1,parseError:function(f,c){if(this.yy.parser)this.yy.parser.parseError(f,c);else throw new Error(f)},setInput:function(o,f){return this.yy=f||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var f=o.match(/(?:\r\n?|\n).*/g);return f?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var f=o.length,c=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-f),this.offset-=f;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var m=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===w.length?this.yylloc.first_column:0)+w[w.length-c.length].length-c[0].length:this.yylloc.first_column-f},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-f]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +Expecting `+Z.join(", ")+", got '"+(this.terminals_[E]||E)+"'":ae="Parse error on line "+(D+1)+": Unexpected "+(E==T?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(ae,{text:v.match,token:this.terminals_[E]||E,line:v.yylineno,loc:J,expected:Z})}if(A[0]instanceof Array&&A.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+E);switch(A[0]){case 1:u.push(E),m.push(v.yytext),s.push(v.yylloc),u.push(A[1]),E=null,$?(E=$,$=null):(B=v.yyleng,n=v.yytext,D=v.yylineno,J=v.yylloc,O>0&&O--);break;case 2:if(I=this.productions_[A[1]][1],F.$=m[m.length-I],F._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column},be&&(F._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]]),ee=this.performAction.apply(F,[n,B,D,j.yy,A[1],m,s].concat(me)),typeof ee<"u")return ee;I&&(u=u.slice(0,-1*I*2),m=m.slice(0,-1*I),s=s.slice(0,-1*I)),u.push(this.productions_[A[1]][0]),m.push(F.$),s.push(F._$),oe=U[u[u.length-2]][u[u.length-1]],u.push(oe);break;case 3:return!0}}return!0}},ge=function(){var R={EOF:1,parseError:function(f,u){if(this.yy.parser)this.yy.parser.parseError(f,u);else throw new Error(f)},setInput:function(o,f){return this.yy=f||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var f=o.match(/(?:\r\n?|\n).*/g);return f?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var f=o.length,u=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-f),this.offset-=f;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var m=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===w.length?this.yylloc.first_column:0)+w[w.length-u.length].length-u[0].length:this.yylloc.first_column-f},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-f]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),f=new Array(o.length+1).join("-");return o+this.upcomingInput()+` -`+f+"^"},test_match:function(o,f){var c,w,m;if(this.options.backtrack_lexer&&(m={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(m.yylloc.range=this.yylloc.range.slice(0))),w=o[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],c=this.performAction.call(this,this.yy,this,f,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var s in m)this[s]=m[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,f,c,w;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),s=0;sf[0].length)){if(f=c,w=s,this.options.backtrack_lexer){if(o=this.test_match(c,m[s]),o!==!1)return o;if(this._backtrack){f=!1;continue}else return!1}else if(!this.options.flex)break}return f?(o=this.test_match(f,m[w]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var f=this.next();return f||this.lex()},begin:function(f){this.conditionStack.push(f)},popState:function(){var f=this.conditionStack.length-1;return f>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(f){return f=this.conditionStack.length-1-Math.abs(f||0),f>=0?this.conditionStack[f]:"INITIAL"},pushState:function(f){this.begin(f)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(f,c,w,m){var s=m;switch(w){case 0:break;case 1:return c.yytext=c.yytext.substring(9,c.yytext.length-10),9;break;case 2:return 54;case 3:return 54;case 4:return 42;case 5:return 55;case 6:return 43;case 7:return 48;case 8:return 46;case 9:return 47;case 10:return 49;case 11:return 51;case 12:return 52;case 13:return 34;case 14:return 35;case 15:return this.begin("command"),32;break;case 16:return this.begin("command"),33;break;case 17:return this.begin("command"),13;break;case 18:return this.begin("command"),39;break;case 19:return this.begin("command"),39;break;case 20:return 37;case 21:return 18;case 22:return 28;case 23:return 29;case 24:return this.begin("command"),19;break;case 25:return this.begin("command"),21;break;case 26:return this.begin("command"),26;break;case 27:return 22;case 28:return this.begin("command"),23;break;case 29:return 41;case 30:return 25;case 31:return this.begin("command"),30;break;case 32:return this.popState(),15;break;case 33:return 12;case 34:return 5;case 35:return 11}},rules:[/^(?:\{\*[\s\S]*?\*\})/,/^(?:\{literal\}[\s\S]*?\{\/literal\})/,/^(?:"([^"]|\\\.)*")/,/^(?:'([^']|\\\.)*')/,/^(?:\$)/,/^(?:[0-9]+)/,/^(?:[_a-zA-Z][_a-zA-Z0-9]*)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:\()/,/^(?:\))/,/^(?:=)/,/^(?:\{ldelim\})/,/^(?:\{rdelim\})/,/^(?:\{#)/,/^(?:\{@)/,/^(?:\{if )/,/^(?:\{else if )/,/^(?:\{elseif )/,/^(?:\{else\})/,/^(?:\{\/if\})/,/^(?:\{lang\})/,/^(?:\{\/lang\})/,/^(?:\{include )/,/^(?:\{implode )/,/^(?:\{plural )/,/^(?:\{\/implode\})/,/^(?:\{foreach )/,/^(?:\{foreachelse\})/,/^(?:\{\/foreach\})/,/^(?:\{(?!\s))/,/^(?:\})/,/^(?:\s+)/,/^(?:$)/,/^(?:[^{])/],conditions:{command:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],inclusive:!0},INITIAL:{rules:[0,1,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35],inclusive:!0}}};return R}();W.lexer=ge;function K(){this.yy={}}return K.prototype=W,W.Parser=K,new K}();typeof se<"u"&&typeof N<"u"&&(N.parser=Q,N.Parser=Q.Parser,N.parse=function(){return Q.parse.apply(Q,arguments)},N.main=!0,typeof re<"u"&&se.main===re&&N.main(process.argv.slice(1)))});var ne={};fe(ne,{getPhrase:()=>le,registerPhrase:()=>Ie});var he=Te(ce());var ie={};fe(ie,{add:()=>G,get:()=>le});var ue=new Map;function le(e,r={}){let l=ue.get(e);return l===void 0?e:l(r)}function G(e,r){ue.set(e,r)}function Ae(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function de(e){return Number(e).toLocaleString(document.documentElement.lang,{maximumFractionDigits:2}).replace("-","\u2212")}var qe=new Intl.PluralRules(document.documentElement.lang);function Se(e){if(!Object.hasOwn(e,"value"))throw new Error("Missing parameter value");if(!e.other)throw new Error("Missing parameter other");let r=e.value;Array.isArray(r)&&(r=r.length);let l=Object.keys(e).find(a=>a.toString()===parseInt(a).toString()&&a.toString()===r.toString());if(l)return l;let u=qe.select(r);e[u]===void 0&&(u="other");let t=e[u];return t.includes("#")?t.replace("#",de(r)):t}function Me(e){let r=`var tmp = {}; +`+f+"^"},test_match:function(o,f){var u,w,m;if(this.options.backtrack_lexer&&(m={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(m.yylloc.range=this.yylloc.range.slice(0))),w=o[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],u=this.performAction.call(this,this.yy,this,f,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u)return u;if(this._backtrack){for(var s in m)this[s]=m[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,f,u,w;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),s=0;sf[0].length)){if(f=u,w=s,this.options.backtrack_lexer){if(o=this.test_match(u,m[s]),o!==!1)return o;if(this._backtrack){f=!1;continue}else return!1}else if(!this.options.flex)break}return f?(o=this.test_match(f,m[w]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var f=this.next();return f||this.lex()},begin:function(f){this.conditionStack.push(f)},popState:function(){var f=this.conditionStack.length-1;return f>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(f){return f=this.conditionStack.length-1-Math.abs(f||0),f>=0?this.conditionStack[f]:"INITIAL"},pushState:function(f){this.begin(f)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(f,u,w,m){var s=m;switch(w){case 0:break;case 1:return u.yytext=u.yytext.substring(9,u.yytext.length-10),9;break;case 2:return 54;case 3:return 54;case 4:return 42;case 5:return 55;case 6:return 43;case 7:return 48;case 8:return 46;case 9:return 47;case 10:return 49;case 11:return 51;case 12:return 52;case 13:return 34;case 14:return 35;case 15:return this.begin("command"),32;break;case 16:return this.begin("command"),33;break;case 17:return this.begin("command"),13;break;case 18:return this.begin("command"),39;break;case 19:return this.begin("command"),39;break;case 20:return 37;case 21:return 18;case 22:return 28;case 23:return 29;case 24:return this.begin("command"),19;break;case 25:return this.begin("command"),21;break;case 26:return this.begin("command"),26;break;case 27:return 22;case 28:return this.begin("command"),23;break;case 29:return 41;case 30:return 25;case 31:return this.begin("command"),30;break;case 32:return this.popState(),15;break;case 33:return 12;case 34:return 5;case 35:return 11}},rules:[/^(?:\{\*[\s\S]*?\*\})/,/^(?:\{literal\}[\s\S]*?\{\/literal\})/,/^(?:"([^"]|\\\.)*")/,/^(?:'([^']|\\\.)*')/,/^(?:\$)/,/^(?:[0-9]+)/,/^(?:[_a-zA-Z][_a-zA-Z0-9]*)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:\()/,/^(?:\))/,/^(?:=)/,/^(?:\{ldelim\})/,/^(?:\{rdelim\})/,/^(?:\{#)/,/^(?:\{@)/,/^(?:\{if )/,/^(?:\{else if )/,/^(?:\{elseif )/,/^(?:\{else\})/,/^(?:\{\/if\})/,/^(?:\{lang\})/,/^(?:\{\/lang\})/,/^(?:\{include )/,/^(?:\{implode )/,/^(?:\{plural )/,/^(?:\{\/implode\})/,/^(?:\{foreach )/,/^(?:\{foreachelse\})/,/^(?:\{\/foreach\})/,/^(?:\{(?!\s))/,/^(?:\})/,/^(?:\s+)/,/^(?:$)/,/^(?:[^{])/],conditions:{command:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],inclusive:!0},INITIAL:{rules:[0,1,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35],inclusive:!0}}};return R}();W.lexer=ge;function K(){this.yy={}}return K.prototype=W,W.Parser=K,new K}();typeof se<"u"&&typeof N<"u"&&(N.parser=Q,N.Parser=Q.Parser,N.parse=function(){return Q.parse.apply(Q,arguments)},N.main=!0,typeof re<"u"&&se.main===re&&N.main(process.argv.slice(1)))});var ne={};fe(ne,{getPhrase:()=>le,registerPhrase:()=>Ie});var he=Te(ce());var ie={};fe(ie,{add:()=>G,get:()=>le});var ue=new Map;function le(e,r={}){let l=ue.get(e);return l===void 0?e:l(r)}function G(e,r){ue.set(e,r)}function Ae(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function de(e){return Number(e).toLocaleString(document.documentElement.lang,{maximumFractionDigits:2}).replace("-","\u2212")}var qe=new Intl.PluralRules(document.documentElement.lang);function Se(e){if(!Object.hasOwn(e,"value"))throw new Error("Missing parameter value");if(!e.other)throw new Error("Missing parameter other");let r=e.value;Array.isArray(r)&&(r=r.length);let l=Object.keys(e).find(a=>a.toString()===parseInt(a).toString()&&a.toString()===r.toString());if(l)return l;let c=qe.select(r);e[c]===void 0&&(c="other");let t=e[c];return t.includes("#")?t.replace("#",de(r)):t}function Me(e){let r=`var tmp = {}; for (var key in v) tmp[key] = v[key]; v = tmp; v.__wcf = window.WCF; v.__window = window; return ${he.parse(e)} - `;return new Function("Language","h","v",r)}var V=class{compiled;constructor(r){try{this.compiled=Me(r)}catch(l){throw l instanceof Error&&console.debug(l.message),l}}fetch(r){return this.compiled(ie,{selectPlural:Se,escapeHTML:Ae,formatNumeric:de},r)}};function Ie(e,r){typeof r=="string"?G(e,ze(r)):G(e,function(){return r})}function ze(e){if(!e.includes("{"))return function(){return e};try{let r=new V(e);return r.fetch.bind(r)}catch{return function(){return e}}}var Pe=(()=>{let e="DOMContentLoaded",r=new WeakMap,l=[],u=i=>{do if(i.nextSibling)return!0;while(i=i.parentNode);return!1},t=()=>{l.splice(0).forEach(i=>{r.get(i[0])!==!0&&(r.set(i[0],!0),i[0][i[1]]())})};document.addEventListener(e,t);class a extends HTMLElement{static withParsedCallback(d,b="parsed"){let{prototype:k}=d,{connectedCallback:q}=k,S=b+"Callback",z=(h,g,p,x)=>{g.disconnect(),p.removeEventListener(e,x),P(h)},P=h=>{l.length||requestAnimationFrame(t),l.push([h,S])};return Object.defineProperties(k,{connectedCallback:{configurable:!0,writable:!0,value(){if(q&&q.apply(this,arguments),S in this&&!r.has(this)){let h=this,{ownerDocument:g}=h;if(r.set(h,!1),g.readyState==="complete"||u(h))P(h);else{let p=()=>z(h,x,g,p);g.addEventListener(e,p);let x=new MutationObserver(()=>{u(h)&&z(h,x,g,p)});x.observe(h.parentNode,{childList:!0,subtree:!0})}}}},[b]:{configurable:!0,get(){return r.get(this)===!0}}}),d}}return a.withParsedCallback(a)})(),pe=Pe;(()=>{let e=new Map([["contact-book","address-book"],["contact-card","address-card"],["vcard","address-card"],["angle-double-down","angles-down"],["angle-double-left","angles-left"],["angle-double-right","angles-right"],["angle-double-up","angles-up"],["apple-alt","apple-whole"],["sort-numeric-asc","arrow-down-1-9"],["sort-numeric-down","arrow-down-1-9"],["sort-numeric-desc","arrow-down-9-1"],["sort-numeric-down-alt","arrow-down-9-1"],["sort-alpha-asc","arrow-down-a-z"],["sort-alpha-down","arrow-down-a-z"],["long-arrow-down","arrow-down-long"],["sort-amount-desc","arrow-down-short-wide"],["sort-amount-down-alt","arrow-down-short-wide"],["sort-amount-asc","arrow-down-wide-short"],["sort-amount-down","arrow-down-wide-short"],["sort-alpha-desc","arrow-down-z-a"],["sort-alpha-down-alt","arrow-down-z-a"],["long-arrow-left","arrow-left-long"],["mouse-pointer","arrow-pointer"],["exchange","arrow-right-arrow-left"],["sign-out","arrow-right-from-bracket"],["long-arrow-right","arrow-right-long"],["sign-in","arrow-right-to-bracket"],["arrow-left-rotate","arrow-rotate-left"],["arrow-rotate-back","arrow-rotate-left"],["arrow-rotate-backward","arrow-rotate-left"],["undo","arrow-rotate-left"],["arrow-right-rotate","arrow-rotate-right"],["arrow-rotate-forward","arrow-rotate-right"],["redo","arrow-rotate-right"],["level-down","arrow-turn-down"],["level-up","arrow-turn-up"],["sort-numeric-up","arrow-up-1-9"],["sort-numeric-up-alt","arrow-up-9-1"],["sort-alpha-up","arrow-up-a-z"],["long-arrow-up","arrow-up-long"],["external-link","arrow-up-right-from-square"],["sort-amount-up-alt","arrow-up-short-wide"],["sort-amount-up","arrow-up-wide-short"],["sort-alpha-up-alt","arrow-up-z-a"],["arrows-h","arrows-left-right"],["refresh","arrows-rotate"],["sync","arrows-rotate"],["arrows-v","arrows-up-down"],["arrows","arrows-up-down-left-right"],["carriage-baby","baby-carriage"],["fast-backward","backward-fast"],["step-backward","backward-step"],["shopping-bag","bag-shopping"],["haykal","bahai"],["cancel","ban"],["smoking-ban","ban-smoking"],["band-aid","bandage"],["navicon","bars"],["tasks-alt","bars-progress"],["reorder","bars-staggered"],["stream","bars-staggered"],["baseball-ball","baseball"],["shopping-basket","basket-shopping"],["basketball-ball","basketball"],["bathtub","bath"],["battery-0","battery-empty"],["battery","battery-full"],["battery-5","battery-full"],["battery-3","battery-half"],["battery-2","battery-quarter"],["battery-4","battery-three-quarters"],["procedures","bed-pulse"],["beer","beer-mug-empty"],["concierge-bell","bell-concierge"],["zap","bolt"],["atlas","book-atlas"],["bible","book-bible"],["journal-whills","book-journal-whills"],["book-reader","book-open-reader"],["quran","book-quran"],["book-dead","book-skull"],["tanakh","book-tanakh"],["border-style","border-top-left"],["archive","box-archive"],["boxes","boxes-stacked"],["boxes-alt","boxes-stacked"],["quidditch","broom-ball"],["quidditch-broom-ball","broom-ball"],["bank","building-columns"],["institution","building-columns"],["museum","building-columns"],["university","building-columns"],["hamburger","burger"],["bus-alt","bus-simple"],["briefcase-clock","business-time"],["tram","cable-car"],["birthday-cake","cake-candles"],["cake","cake-candles"],["calendar-alt","calendar-days"],["calendar-times","calendar-xmark"],["camera-alt","camera"],["automobile","car"],["battery-car","car-battery"],["car-crash","car-burst"],["car-alt","car-rear"],["dolly-flatbed","cart-flatbed"],["luggage-cart","cart-flatbed-suitcase"],["shopping-cart","cart-shopping"],["blackboard","chalkboard"],["chalkboard-teacher","chalkboard-user"],["glass-cheers","champagne-glasses"],["area-chart","chart-area"],["bar-chart","chart-bar"],["line-chart","chart-line"],["pie-chart","chart-pie"],["vote-yea","check-to-slot"],["child-rifle","child-combatant"],["arrow-circle-down","circle-arrow-down"],["arrow-circle-left","circle-arrow-left"],["arrow-circle-right","circle-arrow-right"],["arrow-circle-up","circle-arrow-up"],["check-circle","circle-check"],["chevron-circle-down","circle-chevron-down"],["chevron-circle-left","circle-chevron-left"],["chevron-circle-right","circle-chevron-right"],["chevron-circle-up","circle-chevron-up"],["donate","circle-dollar-to-slot"],["dot-circle","circle-dot"],["arrow-alt-circle-down","circle-down"],["exclamation-circle","circle-exclamation"],["hospital-symbol","circle-h"],["adjust","circle-half-stroke"],["info-circle","circle-info"],["arrow-alt-circle-left","circle-left"],["minus-circle","circle-minus"],["pause-circle","circle-pause"],["play-circle","circle-play"],["plus-circle","circle-plus"],["question-circle","circle-question"],["radiation-alt","circle-radiation"],["arrow-alt-circle-right","circle-right"],["stop-circle","circle-stop"],["arrow-alt-circle-up","circle-up"],["user-circle","circle-user"],["times-circle","circle-xmark"],["xmark-circle","circle-xmark"],["clock-four","clock"],["history","clock-rotate-left"],["cloud-download","cloud-arrow-down"],["cloud-download-alt","cloud-arrow-down"],["cloud-upload","cloud-arrow-up"],["cloud-upload-alt","cloud-arrow-up"],["thunderstorm","cloud-bolt"],["commenting","comment-dots"],["sms","comment-sms"],["drafting-compass","compass-drafting"],["mouse","computer-mouse"],["credit-card-alt","credit-card"],["crop-alt","crop-simple"],["backspace","delete-left"],["desktop-alt","desktop"],["project-diagram","diagram-project"],["directions","diamond-turn-right"],["dollar","dollar-sign"],["usd","dollar-sign"],["dolly-box","dolly"],["compress-alt","down-left-and-up-right-to-center"],["long-arrow-alt-down","down-long"],["tint","droplet"],["tint-slash","droplet-slash"],["deaf","ear-deaf"],["deafness","ear-deaf"],["hard-of-hearing","ear-deaf"],["assistive-listening-systems","ear-listen"],["globe-africa","earth-africa"],["earth","earth-americas"],["earth-america","earth-americas"],["globe-americas","earth-americas"],["globe-asia","earth-asia"],["globe-europe","earth-europe"],["globe-oceania","earth-oceania"],["ellipsis-h","ellipsis"],["ellipsis-v","ellipsis-vertical"],["mail-bulk","envelopes-bulk"],["eur","euro-sign"],["euro","euro-sign"],["eye-dropper-empty","eye-dropper"],["eyedropper","eye-dropper"],["low-vision","eye-low-vision"],["angry","face-angry"],["dizzy","face-dizzy"],["flushed","face-flushed"],["frown","face-frown"],["frown-open","face-frown-open"],["grimace","face-grimace"],["grin","face-grin"],["grin-beam","face-grin-beam"],["grin-beam-sweat","face-grin-beam-sweat"],["grin-hearts","face-grin-hearts"],["grin-squint","face-grin-squint"],["grin-squint-tears","face-grin-squint-tears"],["grin-stars","face-grin-stars"],["grin-tears","face-grin-tears"],["grin-tongue","face-grin-tongue"],["grin-tongue-squint","face-grin-tongue-squint"],["grin-tongue-wink","face-grin-tongue-wink"],["grin-alt","face-grin-wide"],["grin-wink","face-grin-wink"],["kiss","face-kiss"],["kiss-beam","face-kiss-beam"],["kiss-wink-heart","face-kiss-wink-heart"],["laugh","face-laugh"],["laugh-beam","face-laugh-beam"],["laugh-squint","face-laugh-squint"],["laugh-wink","face-laugh-wink"],["meh","face-meh"],["meh-blank","face-meh-blank"],["meh-rolling-eyes","face-rolling-eyes"],["sad-cry","face-sad-cry"],["sad-tear","face-sad-tear"],["smile","face-smile"],["smile-beam","face-smile-beam"],["smile-wink","face-smile-wink"],["surprise","face-surprise"],["tired","face-tired"],["feather-alt","feather-pointed"],["file-download","file-arrow-down"],["file-upload","file-arrow-up"],["arrow-right-from-file","file-export"],["arrow-right-to-file","file-import"],["file-alt","file-lines"],["file-text","file-lines"],["file-edit","file-pen"],["file-medical-alt","file-waveform"],["file-archive","file-zipper"],["funnel-dollar","filter-circle-dollar"],["fire-alt","fire-flame-curved"],["burn","fire-flame-simple"],["save","floppy-disk"],["folder-blank","folder"],["football-ball","football"],["fast-forward","forward-fast"],["step-forward","forward-step"],["futbol-ball","futbol"],["soccer-ball","futbol"],["dashboard","gauge"],["gauge-med","gauge"],["tachometer-alt-average","gauge"],["tachometer-alt","gauge-high"],["tachometer-alt-fast","gauge-high"],["gauge-simple-med","gauge-simple"],["tachometer-average","gauge-simple"],["tachometer","gauge-simple-high"],["tachometer-fast","gauge-simple-high"],["legal","gavel"],["cog","gear"],["cogs","gears"],["golf-ball","golf-ball-tee"],["mortar-board","graduation-cap"],["grip-horizontal","grip"],["hand-paper","hand"],["hand-rock","hand-back-fist"],["allergies","hand-dots"],["fist-raised","hand-fist"],["hand-holding-usd","hand-holding-dollar"],["hand-holding-water","hand-holding-droplet"],["sign-language","hands"],["signing","hands"],["american-sign-language-interpreting","hands-asl-interpreting"],["asl-interpreting","hands-asl-interpreting"],["hands-american-sign-language-interpreting","hands-asl-interpreting"],["hands-wash","hands-bubbles"],["praying-hands","hands-praying"],["hands-helping","handshake-angle"],["handshake-alt","handshake-simple"],["handshake-alt-slash","handshake-simple-slash"],["hdd","hard-drive"],["header","heading"],["headphones-alt","headphones-simple"],["heart-broken","heart-crack"],["heartbeat","heart-pulse"],["hard-hat","helmet-safety"],["hat-hard","helmet-safety"],["hospital-alt","hospital"],["hospital-wide","hospital"],["hot-tub","hot-tub-person"],["hourglass-empty","hourglass"],["hourglass-3","hourglass-end"],["hourglass-2","hourglass-half"],["hourglass-1","hourglass-start"],["home","house"],["home-alt","house"],["home-lg-alt","house"],["home-lg","house-chimney"],["house-damage","house-chimney-crack"],["clinic-medical","house-chimney-medical"],["laptop-house","house-laptop"],["home-user","house-user"],["hryvnia","hryvnia-sign"],["heart-music-camera-bolt","icons"],["drivers-license","id-card"],["id-card-alt","id-card-clip"],["portrait","image-portrait"],["indian-rupee","indian-rupee-sign"],["inr","indian-rupee-sign"],["fighter-jet","jet-fighter"],["first-aid","kit-medical"],["landmark-alt","landmark-dome"],["long-arrow-alt-left","left-long"],["arrows-alt-h","left-right"],["chain","link"],["chain-broken","link-slash"],["chain-slash","link-slash"],["unlink","link-slash"],["list-squares","list"],["tasks","list-check"],["list-1-2","list-ol"],["list-numeric","list-ol"],["list-dots","list-ul"],["location","location-crosshairs"],["map-marker-alt","location-dot"],["map-marker","location-pin"],["search","magnifying-glass"],["search-dollar","magnifying-glass-dollar"],["search-location","magnifying-glass-location"],["search-minus","magnifying-glass-minus"],["search-plus","magnifying-glass-plus"],["map-marked","map-location"],["map-marked-alt","map-location-dot"],["mars-stroke-h","mars-stroke-right"],["mars-stroke-v","mars-stroke-up"],["glass-martini-alt","martini-glass"],["cocktail","martini-glass-citrus"],["glass-martini","martini-glass-empty"],["theater-masks","masks-theater"],["expand-arrows-alt","maximize"],["comment-alt","message"],["microphone-alt","microphone-lines"],["microphone-alt-slash","microphone-lines-slash"],["compress-arrows-alt","minimize"],["subtract","minus"],["mobile-android","mobile"],["mobile-phone","mobile"],["mobile-android-alt","mobile-screen"],["mobile-alt","mobile-screen-button"],["money-bill-alt","money-bill-1"],["money-bill-wave-alt","money-bill-1-wave"],["money-check-alt","money-check-dollar"],["coffee","mug-saucer"],["sticky-note","note-sticky"],["dedent","outdent"],["paint-brush","paintbrush"],["file-clipboard","paste"],["pen-alt","pen-clip"],["pencil-ruler","pen-ruler"],["edit","pen-to-square"],["pencil-alt","pencil"],["people-arrows-left-right","people-arrows"],["people-carry","people-carry-box"],["percentage","percent"],["male","person"],["biking","person-biking"],["digging","person-digging"],["diagnoses","person-dots-from-line"],["female","person-dress"],["hiking","person-hiking"],["pray","person-praying"],["running","person-running"],["skating","person-skating"],["skiing","person-skiing"],["skiing-nordic","person-skiing-nordic"],["snowboarding","person-snowboarding"],["swimmer","person-swimming"],["walking","person-walking"],["blind","person-walking-with-cane"],["phone-alt","phone-flip"],["volume-control-phone","phone-volume"],["photo-video","photo-film"],["add","plus"],["poo-bolt","poo-storm"],["prescription-bottle-alt","prescription-bottle-medical"],["quote-left-alt","quote-left"],["quote-right-alt","quote-right"],["ad","rectangle-ad"],["list-alt","rectangle-list"],["rectangle-times","rectangle-xmark"],["times-rectangle","rectangle-xmark"],["window-close","rectangle-xmark"],["mail-reply","reply"],["mail-reply-all","reply-all"],["sign-out-alt","right-from-bracket"],["exchange-alt","right-left"],["long-arrow-alt-right","right-long"],["sign-in-alt","right-to-bracket"],["sync-alt","rotate"],["rotate-back","rotate-left"],["rotate-backward","rotate-left"],["undo-alt","rotate-left"],["redo-alt","rotate-right"],["rotate-forward","rotate-right"],["feed","rss"],["rouble","ruble-sign"],["rub","ruble-sign"],["ruble","ruble-sign"],["rupee","rupee-sign"],["balance-scale","scale-balanced"],["balance-scale-left","scale-unbalanced"],["balance-scale-right","scale-unbalanced-flip"],["cut","scissors"],["tools","screwdriver-wrench"],["torah","scroll-torah"],["sprout","seedling"],["triangle-circle-square","shapes"],["arrow-turn-right","share"],["mail-forward","share"],["share-square","share-from-square"],["share-alt","share-nodes"],["ils","shekel-sign"],["shekel","shekel-sign"],["sheqel","shekel-sign"],["sheqel-sign","shekel-sign"],["shield-blank","shield"],["shield-alt","shield-halved"],["t-shirt","shirt"],["tshirt","shirt"],["store-alt","shop"],["store-alt-slash","shop-slash"],["random","shuffle"],["space-shuttle","shuttle-space"],["sign","sign-hanging"],["signal-5","signal"],["signal-perfect","signal"],["map-signs","signs-post"],["sliders-h","sliders"],["unsorted","sort"],["sort-desc","sort-down"],["sort-asc","sort-up"],["pastafarianism","spaghetti-monster-flying"],["utensil-spoon","spoon"],["air-freshener","spray-can-sparkles"],["external-link-square","square-arrow-up-right"],["caret-square-down","square-caret-down"],["caret-square-left","square-caret-left"],["caret-square-right","square-caret-right"],["caret-square-up","square-caret-up"],["check-square","square-check"],["envelope-square","square-envelope"],["h-square","square-h"],["minus-square","square-minus"],["parking","square-parking"],["pen-square","square-pen"],["pencil-square","square-pen"],["phone-square","square-phone"],["phone-square-alt","square-phone-flip"],["plus-square","square-plus"],["poll-h","square-poll-horizontal"],["poll","square-poll-vertical"],["square-root-alt","square-root-variable"],["rss-square","square-rss"],["share-alt-square","square-share-nodes"],["external-link-square-alt","square-up-right"],["times-square","square-xmark"],["xmark-square","square-xmark"],["rod-asclepius","staff-snake"],["rod-snake","staff-snake"],["staff-aesculapius","staff-snake"],["star-half-alt","star-half-stroke"],["gbp","sterling-sign"],["pound-sign","sterling-sign"],["medkit","suitcase-medical"],["th","table-cells"],["th-large","table-cells-large"],["columns","table-columns"],["th-list","table-list"],["ping-pong-paddle-ball","table-tennis-paddle-ball"],["table-tennis","table-tennis-paddle-ball"],["tablet-android","tablet"],["tablet-alt","tablet-screen-button"],["digital-tachograph","tachograph-digital"],["cab","taxi"],["temperature-down","temperature-arrow-down"],["temperature-up","temperature-arrow-up"],["temperature-0","temperature-empty"],["thermometer-0","temperature-empty"],["thermometer-empty","temperature-empty"],["temperature-4","temperature-full"],["thermometer-4","temperature-full"],["thermometer-full","temperature-full"],["temperature-2","temperature-half"],["thermometer-2","temperature-half"],["thermometer-half","temperature-half"],["temperature-1","temperature-quarter"],["thermometer-1","temperature-quarter"],["thermometer-quarter","temperature-quarter"],["temperature-3","temperature-three-quarters"],["thermometer-3","temperature-three-quarters"],["thermometer-three-quarters","temperature-three-quarters"],["tenge","tenge-sign"],["remove-format","text-slash"],["thumb-tack","thumbtack"],["ticket-alt","ticket-simple"],["broadcast-tower","tower-broadcast"],["subway","train-subway"],["transgender-alt","transgender"],["trash-restore","trash-arrow-up"],["trash-alt","trash-can"],["trash-restore-alt","trash-can-arrow-up"],["exclamation-triangle","triangle-exclamation"],["warning","triangle-exclamation"],["shipping-fast","truck-fast"],["ambulance","truck-medical"],["truck-loading","truck-ramp-box"],["teletype","tty"],["try","turkish-lira-sign"],["turkish-lira","turkish-lira-sign"],["level-down-alt","turn-down"],["level-up-alt","turn-up"],["television","tv"],["tv-alt","tv"],["unlock-alt","unlock-keyhole"],["arrows-alt-v","up-down"],["arrows-alt","up-down-left-right"],["long-arrow-alt-up","up-long"],["expand-alt","up-right-and-down-left-from-center"],["external-link-alt","up-right-from-square"],["user-md","user-doctor"],["user-cog","user-gear"],["user-friends","user-group"],["user-alt","user-large"],["user-alt-slash","user-large-slash"],["user-edit","user-pen"],["user-times","user-xmark"],["users-cog","users-gear"],["cutlery","utensils"],["shuttle-van","van-shuttle"],["video-camera","video"],["volleyball-ball","volleyball"],["volume-up","volume-high"],["volume-down","volume-low"],["volume-mute","volume-xmark"],["volume-times","volume-xmark"],["magic","wand-magic"],["magic-wand-sparkles","wand-magic-sparkles"],["ladder-water","water-ladder"],["swimming-pool","water-ladder"],["weight","weight-scale"],["wheat-alt","wheat-awn"],["wheelchair-alt","wheelchair-move"],["glass-whiskey","whiskey-glass"],["wifi-3","wifi"],["wifi-strong","wifi"],["wine-glass-alt","wine-glass-empty"],["krw","won-sign"],["won","won-sign"],["close","xmark"],["multiply","xmark"],["remove","xmark"],["times","xmark"],["cny","yen-sign"],["jpy","yen-sign"],["rmb","yen-sign"],["yen","yen-sign"]]),r=new Map([["0",["0",!1]],["1",["1",!1]],["2",["2",!1]],["3",["3",!1]],["4",["4",!1]],["5",["5",!1]],["6",["6",!1]],["7",["7",!1]],["8",["8",!1]],["9",["9",!1]],["a",["A",!1]],["address-book",["\uF2B9",!0]],["address-card",["\uF2BB",!0]],["align-center",["\uF037",!1]],["align-justify",["\uF039",!1]],["align-left",["\uF036",!1]],["align-right",["\uF038",!1]],["anchor",["\uF13D",!1]],["anchor-circle-check",["\uE4AA",!1]],["anchor-circle-exclamation",["\uE4AB",!1]],["anchor-circle-xmark",["\uE4AC",!1]],["anchor-lock",["\uE4AD",!1]],["angle-down",["\uF107",!1]],["angle-left",["\uF104",!1]],["angle-right",["\uF105",!1]],["angle-up",["\uF106",!1]],["angles-down",["\uF103",!1]],["angles-left",["\uF100",!1]],["angles-right",["\uF101",!1]],["angles-up",["\uF102",!1]],["ankh",["\uF644",!1]],["apple-whole",["\uF5D1",!1]],["archway",["\uF557",!1]],["arrow-down",["\uF063",!1]],["arrow-down-1-9",["\uF162",!1]],["arrow-down-9-1",["\uF886",!1]],["arrow-down-a-z",["\uF15D",!1]],["arrow-down-long",["\uF175",!1]],["arrow-down-short-wide",["\uF884",!1]],["arrow-down-up-across-line",["\uE4AF",!1]],["arrow-down-up-lock",["\uE4B0",!1]],["arrow-down-wide-short",["\uF160",!1]],["arrow-down-z-a",["\uF881",!1]],["arrow-left",["\uF060",!1]],["arrow-left-long",["\uF177",!1]],["arrow-pointer",["\uF245",!1]],["arrow-right",["\uF061",!1]],["arrow-right-arrow-left",["\uF0EC",!1]],["arrow-right-from-bracket",["\uF08B",!1]],["arrow-right-long",["\uF178",!1]],["arrow-right-to-bracket",["\uF090",!1]],["arrow-right-to-city",["\uE4B3",!1]],["arrow-rotate-left",["\uF0E2",!1]],["arrow-rotate-right",["\uF01E",!1]],["arrow-trend-down",["\uE097",!1]],["arrow-trend-up",["\uE098",!1]],["arrow-turn-down",["\uF149",!1]],["arrow-turn-up",["\uF148",!1]],["arrow-up",["\uF062",!1]],["arrow-up-1-9",["\uF163",!1]],["arrow-up-9-1",["\uF887",!1]],["arrow-up-a-z",["\uF15E",!1]],["arrow-up-from-bracket",["\uE09A",!1]],["arrow-up-from-ground-water",["\uE4B5",!1]],["arrow-up-from-water-pump",["\uE4B6",!1]],["arrow-up-long",["\uF176",!1]],["arrow-up-right-dots",["\uE4B7",!1]],["arrow-up-right-from-square",["\uF08E",!1]],["arrow-up-short-wide",["\uF885",!1]],["arrow-up-wide-short",["\uF161",!1]],["arrow-up-z-a",["\uF882",!1]],["arrows-down-to-line",["\uE4B8",!1]],["arrows-down-to-people",["\uE4B9",!1]],["arrows-left-right",["\uF07E",!1]],["arrows-left-right-to-line",["\uE4BA",!1]],["arrows-rotate",["\uF021",!1]],["arrows-spin",["\uE4BB",!1]],["arrows-split-up-and-left",["\uE4BC",!1]],["arrows-to-circle",["\uE4BD",!1]],["arrows-to-dot",["\uE4BE",!1]],["arrows-to-eye",["\uE4BF",!1]],["arrows-turn-right",["\uE4C0",!1]],["arrows-turn-to-dots",["\uE4C1",!1]],["arrows-up-down",["\uF07D",!1]],["arrows-up-down-left-right",["\uF047",!1]],["arrows-up-to-line",["\uE4C2",!1]],["asterisk",["*",!1]],["at",["@",!1]],["atom",["\uF5D2",!1]],["audio-description",["\uF29E",!1]],["austral-sign",["\uE0A9",!1]],["award",["\uF559",!1]],["b",["B",!1]],["baby",["\uF77C",!1]],["baby-carriage",["\uF77D",!1]],["backward",["\uF04A",!1]],["backward-fast",["\uF049",!1]],["backward-step",["\uF048",!1]],["bacon",["\uF7E5",!1]],["bacteria",["\uE059",!1]],["bacterium",["\uE05A",!1]],["bag-shopping",["\uF290",!1]],["bahai",["\uF666",!1]],["baht-sign",["\uE0AC",!1]],["ban",["\uF05E",!1]],["ban-smoking",["\uF54D",!1]],["bandage",["\uF462",!1]],["bangladeshi-taka-sign",["\uE2E6",!1]],["barcode",["\uF02A",!1]],["bars",["\uF0C9",!1]],["bars-progress",["\uF828",!1]],["bars-staggered",["\uF550",!1]],["baseball",["\uF433",!1]],["baseball-bat-ball",["\uF432",!1]],["basket-shopping",["\uF291",!1]],["basketball",["\uF434",!1]],["bath",["\uF2CD",!1]],["battery-empty",["\uF244",!1]],["battery-full",["\uF240",!1]],["battery-half",["\uF242",!1]],["battery-quarter",["\uF243",!1]],["battery-three-quarters",["\uF241",!1]],["bed",["\uF236",!1]],["bed-pulse",["\uF487",!1]],["beer-mug-empty",["\uF0FC",!1]],["bell",["\uF0F3",!0]],["bell-concierge",["\uF562",!1]],["bell-slash",["\uF1F6",!0]],["bezier-curve",["\uF55B",!1]],["bicycle",["\uF206",!1]],["binoculars",["\uF1E5",!1]],["biohazard",["\uF780",!1]],["bitcoin-sign",["\uE0B4",!1]],["blender",["\uF517",!1]],["blender-phone",["\uF6B6",!1]],["blog",["\uF781",!1]],["bold",["\uF032",!1]],["bolt",["\uF0E7",!1]],["bolt-lightning",["\uE0B7",!1]],["bomb",["\uF1E2",!1]],["bone",["\uF5D7",!1]],["bong",["\uF55C",!1]],["book",["\uF02D",!1]],["book-atlas",["\uF558",!1]],["book-bible",["\uF647",!1]],["book-bookmark",["\uE0BB",!1]],["book-journal-whills",["\uF66A",!1]],["book-medical",["\uF7E6",!1]],["book-open",["\uF518",!1]],["book-open-reader",["\uF5DA",!1]],["book-quran",["\uF687",!1]],["book-skull",["\uF6B7",!1]],["book-tanakh",["\uF827",!1]],["bookmark",["\uF02E",!0]],["border-all",["\uF84C",!1]],["border-none",["\uF850",!1]],["border-top-left",["\uF853",!1]],["bore-hole",["\uE4C3",!1]],["bottle-droplet",["\uE4C4",!1]],["bottle-water",["\uE4C5",!1]],["bowl-food",["\uE4C6",!1]],["bowl-rice",["\uE2EB",!1]],["bowling-ball",["\uF436",!1]],["box",["\uF466",!1]],["box-archive",["\uF187",!1]],["box-open",["\uF49E",!1]],["box-tissue",["\uE05B",!1]],["boxes-packing",["\uE4C7",!1]],["boxes-stacked",["\uF468",!1]],["braille",["\uF2A1",!1]],["brain",["\uF5DC",!1]],["brazilian-real-sign",["\uE46C",!1]],["bread-slice",["\uF7EC",!1]],["bridge",["\uE4C8",!1]],["bridge-circle-check",["\uE4C9",!1]],["bridge-circle-exclamation",["\uE4CA",!1]],["bridge-circle-xmark",["\uE4CB",!1]],["bridge-lock",["\uE4CC",!1]],["bridge-water",["\uE4CE",!1]],["briefcase",["\uF0B1",!1]],["briefcase-medical",["\uF469",!1]],["broom",["\uF51A",!1]],["broom-ball",["\uF458",!1]],["brush",["\uF55D",!1]],["bucket",["\uE4CF",!1]],["bug",["\uF188",!1]],["bug-slash",["\uE490",!1]],["bugs",["\uE4D0",!1]],["building",["\uF1AD",!0]],["building-circle-arrow-right",["\uE4D1",!1]],["building-circle-check",["\uE4D2",!1]],["building-circle-exclamation",["\uE4D3",!1]],["building-circle-xmark",["\uE4D4",!1]],["building-columns",["\uF19C",!1]],["building-flag",["\uE4D5",!1]],["building-lock",["\uE4D6",!1]],["building-ngo",["\uE4D7",!1]],["building-shield",["\uE4D8",!1]],["building-un",["\uE4D9",!1]],["building-user",["\uE4DA",!1]],["building-wheat",["\uE4DB",!1]],["bullhorn",["\uF0A1",!1]],["bullseye",["\uF140",!1]],["burger",["\uF805",!1]],["burst",["\uE4DC",!1]],["bus",["\uF207",!1]],["bus-simple",["\uF55E",!1]],["business-time",["\uF64A",!1]],["c",["C",!1]],["cable-car",["\uF7DA",!1]],["cake-candles",["\uF1FD",!1]],["calculator",["\uF1EC",!1]],["calendar",["\uF133",!0]],["calendar-check",["\uF274",!0]],["calendar-day",["\uF783",!1]],["calendar-days",["\uF073",!0]],["calendar-minus",["\uF272",!0]],["calendar-plus",["\uF271",!0]],["calendar-week",["\uF784",!1]],["calendar-xmark",["\uF273",!0]],["camera",["\uF030",!1]],["camera-retro",["\uF083",!1]],["camera-rotate",["\uE0D8",!1]],["campground",["\uF6BB",!1]],["candy-cane",["\uF786",!1]],["cannabis",["\uF55F",!1]],["capsules",["\uF46B",!1]],["car",["\uF1B9",!1]],["car-battery",["\uF5DF",!1]],["car-burst",["\uF5E1",!1]],["car-on",["\uE4DD",!1]],["car-rear",["\uF5DE",!1]],["car-side",["\uF5E4",!1]],["car-tunnel",["\uE4DE",!1]],["caravan",["\uF8FF",!1]],["caret-down",["\uF0D7",!1]],["caret-left",["\uF0D9",!1]],["caret-right",["\uF0DA",!1]],["caret-up",["\uF0D8",!1]],["carrot",["\uF787",!1]],["cart-arrow-down",["\uF218",!1]],["cart-flatbed",["\uF474",!1]],["cart-flatbed-suitcase",["\uF59D",!1]],["cart-plus",["\uF217",!1]],["cart-shopping",["\uF07A",!1]],["cash-register",["\uF788",!1]],["cat",["\uF6BE",!1]],["cedi-sign",["\uE0DF",!1]],["cent-sign",["\uE3F5",!1]],["certificate",["\uF0A3",!1]],["chair",["\uF6C0",!1]],["chalkboard",["\uF51B",!1]],["chalkboard-user",["\uF51C",!1]],["champagne-glasses",["\uF79F",!1]],["charging-station",["\uF5E7",!1]],["chart-area",["\uF1FE",!1]],["chart-bar",["\uF080",!0]],["chart-column",["\uE0E3",!1]],["chart-gantt",["\uE0E4",!1]],["chart-line",["\uF201",!1]],["chart-pie",["\uF200",!1]],["chart-simple",["\uE473",!1]],["check",["\uF00C",!1]],["check-double",["\uF560",!1]],["check-to-slot",["\uF772",!1]],["cheese",["\uF7EF",!1]],["chess",["\uF439",!1]],["chess-bishop",["\uF43A",!0]],["chess-board",["\uF43C",!1]],["chess-king",["\uF43F",!0]],["chess-knight",["\uF441",!0]],["chess-pawn",["\uF443",!0]],["chess-queen",["\uF445",!0]],["chess-rook",["\uF447",!0]],["chevron-down",["\uF078",!1]],["chevron-left",["\uF053",!1]],["chevron-right",["\uF054",!1]],["chevron-up",["\uF077",!1]],["child",["\uF1AE",!1]],["child-combatant",["\uE4E0",!1]],["child-dress",["\uE59C",!1]],["child-reaching",["\uE59D",!1]],["children",["\uE4E1",!1]],["church",["\uF51D",!1]],["circle",["\uF111",!0]],["circle-arrow-down",["\uF0AB",!1]],["circle-arrow-left",["\uF0A8",!1]],["circle-arrow-right",["\uF0A9",!1]],["circle-arrow-up",["\uF0AA",!1]],["circle-check",["\uF058",!0]],["circle-chevron-down",["\uF13A",!1]],["circle-chevron-left",["\uF137",!1]],["circle-chevron-right",["\uF138",!1]],["circle-chevron-up",["\uF139",!1]],["circle-dollar-to-slot",["\uF4B9",!1]],["circle-dot",["\uF192",!0]],["circle-down",["\uF358",!0]],["circle-exclamation",["\uF06A",!1]],["circle-h",["\uF47E",!1]],["circle-half-stroke",["\uF042",!1]],["circle-info",["\uF05A",!1]],["circle-left",["\uF359",!0]],["circle-minus",["\uF056",!1]],["circle-nodes",["\uE4E2",!1]],["circle-notch",["\uF1CE",!1]],["circle-pause",["\uF28B",!0]],["circle-play",["\uF144",!0]],["circle-plus",["\uF055",!1]],["circle-question",["\uF059",!0]],["circle-radiation",["\uF7BA",!1]],["circle-right",["\uF35A",!0]],["circle-stop",["\uF28D",!0]],["circle-up",["\uF35B",!0]],["circle-user",["\uF2BD",!0]],["circle-xmark",["\uF057",!0]],["city",["\uF64F",!1]],["clapperboard",["\uE131",!1]],["clipboard",["\uF328",!0]],["clipboard-check",["\uF46C",!1]],["clipboard-list",["\uF46D",!1]],["clipboard-question",["\uE4E3",!1]],["clipboard-user",["\uF7F3",!1]],["clock",["\uF017",!0]],["clock-rotate-left",["\uF1DA",!1]],["clone",["\uF24D",!0]],["closed-captioning",["\uF20A",!0]],["cloud",["\uF0C2",!1]],["cloud-arrow-down",["\uF0ED",!1]],["cloud-arrow-up",["\uF0EE",!1]],["cloud-bolt",["\uF76C",!1]],["cloud-meatball",["\uF73B",!1]],["cloud-moon",["\uF6C3",!1]],["cloud-moon-rain",["\uF73C",!1]],["cloud-rain",["\uF73D",!1]],["cloud-showers-heavy",["\uF740",!1]],["cloud-showers-water",["\uE4E4",!1]],["cloud-sun",["\uF6C4",!1]],["cloud-sun-rain",["\uF743",!1]],["clover",["\uE139",!1]],["code",["\uF121",!1]],["code-branch",["\uF126",!1]],["code-commit",["\uF386",!1]],["code-compare",["\uE13A",!1]],["code-fork",["\uE13B",!1]],["code-merge",["\uF387",!1]],["code-pull-request",["\uE13C",!1]],["coins",["\uF51E",!1]],["colon-sign",["\uE140",!1]],["comment",["\uF075",!0]],["comment-dollar",["\uF651",!1]],["comment-dots",["\uF4AD",!0]],["comment-medical",["\uF7F5",!1]],["comment-slash",["\uF4B3",!1]],["comment-sms",["\uF7CD",!1]],["comments",["\uF086",!0]],["comments-dollar",["\uF653",!1]],["compact-disc",["\uF51F",!1]],["compass",["\uF14E",!0]],["compass-drafting",["\uF568",!1]],["compress",["\uF066",!1]],["computer",["\uE4E5",!1]],["computer-mouse",["\uF8CC",!1]],["cookie",["\uF563",!1]],["cookie-bite",["\uF564",!1]],["copy",["\uF0C5",!0]],["copyright",["\uF1F9",!0]],["couch",["\uF4B8",!1]],["cow",["\uF6C8",!1]],["credit-card",["\uF09D",!0]],["crop",["\uF125",!1]],["crop-simple",["\uF565",!1]],["cross",["\uF654",!1]],["crosshairs",["\uF05B",!1]],["crow",["\uF520",!1]],["crown",["\uF521",!1]],["crutch",["\uF7F7",!1]],["cruzeiro-sign",["\uE152",!1]],["cube",["\uF1B2",!1]],["cubes",["\uF1B3",!1]],["cubes-stacked",["\uE4E6",!1]],["d",["D",!1]],["database",["\uF1C0",!1]],["delete-left",["\uF55A",!1]],["democrat",["\uF747",!1]],["desktop",["\uF390",!1]],["dharmachakra",["\uF655",!1]],["diagram-next",["\uE476",!1]],["diagram-predecessor",["\uE477",!1]],["diagram-project",["\uF542",!1]],["diagram-successor",["\uE47A",!1]],["diamond",["\uF219",!1]],["diamond-turn-right",["\uF5EB",!1]],["dice",["\uF522",!1]],["dice-d20",["\uF6CF",!1]],["dice-d6",["\uF6D1",!1]],["dice-five",["\uF523",!1]],["dice-four",["\uF524",!1]],["dice-one",["\uF525",!1]],["dice-six",["\uF526",!1]],["dice-three",["\uF527",!1]],["dice-two",["\uF528",!1]],["disease",["\uF7FA",!1]],["display",["\uE163",!1]],["divide",["\uF529",!1]],["dna",["\uF471",!1]],["dog",["\uF6D3",!1]],["dollar-sign",["$",!1]],["dolly",["\uF472",!1]],["dong-sign",["\uE169",!1]],["door-closed",["\uF52A",!1]],["door-open",["\uF52B",!1]],["dove",["\uF4BA",!1]],["down-left-and-up-right-to-center",["\uF422",!1]],["down-long",["\uF309",!1]],["download",["\uF019",!1]],["dragon",["\uF6D5",!1]],["draw-polygon",["\uF5EE",!1]],["droplet",["\uF043",!1]],["droplet-slash",["\uF5C7",!1]],["drum",["\uF569",!1]],["drum-steelpan",["\uF56A",!1]],["drumstick-bite",["\uF6D7",!1]],["dumbbell",["\uF44B",!1]],["dumpster",["\uF793",!1]],["dumpster-fire",["\uF794",!1]],["dungeon",["\uF6D9",!1]],["e",["E",!1]],["ear-deaf",["\uF2A4",!1]],["ear-listen",["\uF2A2",!1]],["earth-africa",["\uF57C",!1]],["earth-americas",["\uF57D",!1]],["earth-asia",["\uF57E",!1]],["earth-europe",["\uF7A2",!1]],["earth-oceania",["\uE47B",!1]],["egg",["\uF7FB",!1]],["eject",["\uF052",!1]],["elevator",["\uE16D",!1]],["ellipsis",["\uF141",!1]],["ellipsis-vertical",["\uF142",!1]],["envelope",["\uF0E0",!0]],["envelope-circle-check",["\uE4E8",!1]],["envelope-open",["\uF2B6",!0]],["envelope-open-text",["\uF658",!1]],["envelopes-bulk",["\uF674",!1]],["equals",["=",!1]],["eraser",["\uF12D",!1]],["ethernet",["\uF796",!1]],["euro-sign",["\uF153",!1]],["exclamation",["!",!1]],["expand",["\uF065",!1]],["explosion",["\uE4E9",!1]],["eye",["\uF06E",!0]],["eye-dropper",["\uF1FB",!1]],["eye-low-vision",["\uF2A8",!1]],["eye-slash",["\uF070",!0]],["f",["F",!1]],["face-angry",["\uF556",!0]],["face-dizzy",["\uF567",!0]],["face-flushed",["\uF579",!0]],["face-frown",["\uF119",!0]],["face-frown-open",["\uF57A",!0]],["face-grimace",["\uF57F",!0]],["face-grin",["\uF580",!0]],["face-grin-beam",["\uF582",!0]],["face-grin-beam-sweat",["\uF583",!0]],["face-grin-hearts",["\uF584",!0]],["face-grin-squint",["\uF585",!0]],["face-grin-squint-tears",["\uF586",!0]],["face-grin-stars",["\uF587",!0]],["face-grin-tears",["\uF588",!0]],["face-grin-tongue",["\uF589",!0]],["face-grin-tongue-squint",["\uF58A",!0]],["face-grin-tongue-wink",["\uF58B",!0]],["face-grin-wide",["\uF581",!0]],["face-grin-wink",["\uF58C",!0]],["face-kiss",["\uF596",!0]],["face-kiss-beam",["\uF597",!0]],["face-kiss-wink-heart",["\uF598",!0]],["face-laugh",["\uF599",!0]],["face-laugh-beam",["\uF59A",!0]],["face-laugh-squint",["\uF59B",!0]],["face-laugh-wink",["\uF59C",!0]],["face-meh",["\uF11A",!0]],["face-meh-blank",["\uF5A4",!0]],["face-rolling-eyes",["\uF5A5",!0]],["face-sad-cry",["\uF5B3",!0]],["face-sad-tear",["\uF5B4",!0]],["face-smile",["\uF118",!0]],["face-smile-beam",["\uF5B8",!0]],["face-smile-wink",["\uF4DA",!0]],["face-surprise",["\uF5C2",!0]],["face-tired",["\uF5C8",!0]],["fan",["\uF863",!1]],["faucet",["\uE005",!1]],["faucet-drip",["\uE006",!1]],["fax",["\uF1AC",!1]],["feather",["\uF52D",!1]],["feather-pointed",["\uF56B",!1]],["ferry",["\uE4EA",!1]],["file",["\uF15B",!0]],["file-arrow-down",["\uF56D",!1]],["file-arrow-up",["\uF574",!1]],["file-audio",["\uF1C7",!0]],["file-circle-check",["\uE5A0",!1]],["file-circle-exclamation",["\uE4EB",!1]],["file-circle-minus",["\uE4ED",!1]],["file-circle-plus",["\uE494",!1]],["file-circle-question",["\uE4EF",!1]],["file-circle-xmark",["\uE5A1",!1]],["file-code",["\uF1C9",!0]],["file-contract",["\uF56C",!1]],["file-csv",["\uF6DD",!1]],["file-excel",["\uF1C3",!0]],["file-export",["\uF56E",!1]],["file-image",["\uF1C5",!0]],["file-import",["\uF56F",!1]],["file-invoice",["\uF570",!1]],["file-invoice-dollar",["\uF571",!1]],["file-lines",["\uF15C",!0]],["file-medical",["\uF477",!1]],["file-pdf",["\uF1C1",!0]],["file-pen",["\uF31C",!1]],["file-powerpoint",["\uF1C4",!0]],["file-prescription",["\uF572",!1]],["file-shield",["\uE4F0",!1]],["file-signature",["\uF573",!1]],["file-video",["\uF1C8",!0]],["file-waveform",["\uF478",!1]],["file-word",["\uF1C2",!0]],["file-zipper",["\uF1C6",!0]],["fill",["\uF575",!1]],["fill-drip",["\uF576",!1]],["film",["\uF008",!1]],["filter",["\uF0B0",!1]],["filter-circle-dollar",["\uF662",!1]],["filter-circle-xmark",["\uE17B",!1]],["fingerprint",["\uF577",!1]],["fire",["\uF06D",!1]],["fire-burner",["\uE4F1",!1]],["fire-extinguisher",["\uF134",!1]],["fire-flame-curved",["\uF7E4",!1]],["fire-flame-simple",["\uF46A",!1]],["fish",["\uF578",!1]],["fish-fins",["\uE4F2",!1]],["flag",["\uF024",!0]],["flag-checkered",["\uF11E",!1]],["flag-usa",["\uF74D",!1]],["flask",["\uF0C3",!1]],["flask-vial",["\uE4F3",!1]],["floppy-disk",["\uF0C7",!0]],["florin-sign",["\uE184",!1]],["folder",["\uF07B",!0]],["folder-closed",["\uE185",!0]],["folder-minus",["\uF65D",!1]],["folder-open",["\uF07C",!0]],["folder-plus",["\uF65E",!1]],["folder-tree",["\uF802",!1]],["font",["\uF031",!1]],["football",["\uF44E",!1]],["forward",["\uF04E",!1]],["forward-fast",["\uF050",!1]],["forward-step",["\uF051",!1]],["franc-sign",["\uE18F",!1]],["frog",["\uF52E",!1]],["futbol",["\uF1E3",!0]],["g",["G",!1]],["gamepad",["\uF11B",!1]],["gas-pump",["\uF52F",!1]],["gauge",["\uF624",!1]],["gauge-high",["\uF625",!1]],["gauge-simple",["\uF629",!1]],["gauge-simple-high",["\uF62A",!1]],["gavel",["\uF0E3",!1]],["gear",["\uF013",!1]],["gears",["\uF085",!1]],["gem",["\uF3A5",!0]],["genderless",["\uF22D",!1]],["ghost",["\uF6E2",!1]],["gift",["\uF06B",!1]],["gifts",["\uF79C",!1]],["glass-water",["\uE4F4",!1]],["glass-water-droplet",["\uE4F5",!1]],["glasses",["\uF530",!1]],["globe",["\uF0AC",!1]],["golf-ball-tee",["\uF450",!1]],["gopuram",["\uF664",!1]],["graduation-cap",["\uF19D",!1]],["greater-than",[">",!1]],["greater-than-equal",["\uF532",!1]],["grip",["\uF58D",!1]],["grip-lines",["\uF7A4",!1]],["grip-lines-vertical",["\uF7A5",!1]],["grip-vertical",["\uF58E",!1]],["group-arrows-rotate",["\uE4F6",!1]],["guarani-sign",["\uE19A",!1]],["guitar",["\uF7A6",!1]],["gun",["\uE19B",!1]],["h",["H",!1]],["hammer",["\uF6E3",!1]],["hamsa",["\uF665",!1]],["hand",["\uF256",!0]],["hand-back-fist",["\uF255",!0]],["hand-dots",["\uF461",!1]],["hand-fist",["\uF6DE",!1]],["hand-holding",["\uF4BD",!1]],["hand-holding-dollar",["\uF4C0",!1]],["hand-holding-droplet",["\uF4C1",!1]],["hand-holding-hand",["\uE4F7",!1]],["hand-holding-heart",["\uF4BE",!1]],["hand-holding-medical",["\uE05C",!1]],["hand-lizard",["\uF258",!0]],["hand-middle-finger",["\uF806",!1]],["hand-peace",["\uF25B",!0]],["hand-point-down",["\uF0A7",!0]],["hand-point-left",["\uF0A5",!0]],["hand-point-right",["\uF0A4",!0]],["hand-point-up",["\uF0A6",!0]],["hand-pointer",["\uF25A",!0]],["hand-scissors",["\uF257",!0]],["hand-sparkles",["\uE05D",!1]],["hand-spock",["\uF259",!0]],["handcuffs",["\uE4F8",!1]],["hands",["\uF2A7",!1]],["hands-asl-interpreting",["\uF2A3",!1]],["hands-bound",["\uE4F9",!1]],["hands-bubbles",["\uE05E",!1]],["hands-clapping",["\uE1A8",!1]],["hands-holding",["\uF4C2",!1]],["hands-holding-child",["\uE4FA",!1]],["hands-holding-circle",["\uE4FB",!1]],["hands-praying",["\uF684",!1]],["handshake",["\uF2B5",!0]],["handshake-angle",["\uF4C4",!1]],["handshake-simple",["\uF4C6",!1]],["handshake-simple-slash",["\uE05F",!1]],["handshake-slash",["\uE060",!1]],["hanukiah",["\uF6E6",!1]],["hard-drive",["\uF0A0",!0]],["hashtag",["#",!1]],["hat-cowboy",["\uF8C0",!1]],["hat-cowboy-side",["\uF8C1",!1]],["hat-wizard",["\uF6E8",!1]],["head-side-cough",["\uE061",!1]],["head-side-cough-slash",["\uE062",!1]],["head-side-mask",["\uE063",!1]],["head-side-virus",["\uE064",!1]],["heading",["\uF1DC",!1]],["headphones",["\uF025",!1]],["headphones-simple",["\uF58F",!1]],["headset",["\uF590",!1]],["heart",["\uF004",!0]],["heart-circle-bolt",["\uE4FC",!1]],["heart-circle-check",["\uE4FD",!1]],["heart-circle-exclamation",["\uE4FE",!1]],["heart-circle-minus",["\uE4FF",!1]],["heart-circle-plus",["\uE500",!1]],["heart-circle-xmark",["\uE501",!1]],["heart-crack",["\uF7A9",!1]],["heart-pulse",["\uF21E",!1]],["helicopter",["\uF533",!1]],["helicopter-symbol",["\uE502",!1]],["helmet-safety",["\uF807",!1]],["helmet-un",["\uE503",!1]],["highlighter",["\uF591",!1]],["hill-avalanche",["\uE507",!1]],["hill-rockslide",["\uE508",!1]],["hippo",["\uF6ED",!1]],["hockey-puck",["\uF453",!1]],["holly-berry",["\uF7AA",!1]],["horse",["\uF6F0",!1]],["horse-head",["\uF7AB",!1]],["hospital",["\uF0F8",!0]],["hospital-user",["\uF80D",!1]],["hot-tub-person",["\uF593",!1]],["hotdog",["\uF80F",!1]],["hotel",["\uF594",!1]],["hourglass",["\uF254",!0]],["hourglass-end",["\uF253",!1]],["hourglass-half",["\uF252",!0]],["hourglass-start",["\uF251",!1]],["house",["\uF015",!1]],["house-chimney",["\uE3AF",!1]],["house-chimney-crack",["\uF6F1",!1]],["house-chimney-medical",["\uF7F2",!1]],["house-chimney-user",["\uE065",!1]],["house-chimney-window",["\uE00D",!1]],["house-circle-check",["\uE509",!1]],["house-circle-exclamation",["\uE50A",!1]],["house-circle-xmark",["\uE50B",!1]],["house-crack",["\uE3B1",!1]],["house-fire",["\uE50C",!1]],["house-flag",["\uE50D",!1]],["house-flood-water",["\uE50E",!1]],["house-flood-water-circle-arrow-right",["\uE50F",!1]],["house-laptop",["\uE066",!1]],["house-lock",["\uE510",!1]],["house-medical",["\uE3B2",!1]],["house-medical-circle-check",["\uE511",!1]],["house-medical-circle-exclamation",["\uE512",!1]],["house-medical-circle-xmark",["\uE513",!1]],["house-medical-flag",["\uE514",!1]],["house-signal",["\uE012",!1]],["house-tsunami",["\uE515",!1]],["house-user",["\uE1B0",!1]],["hryvnia-sign",["\uF6F2",!1]],["hurricane",["\uF751",!1]],["i",["I",!1]],["i-cursor",["\uF246",!1]],["ice-cream",["\uF810",!1]],["icicles",["\uF7AD",!1]],["icons",["\uF86D",!1]],["id-badge",["\uF2C1",!0]],["id-card",["\uF2C2",!0]],["id-card-clip",["\uF47F",!1]],["igloo",["\uF7AE",!1]],["image",["\uF03E",!0]],["image-portrait",["\uF3E0",!1]],["images",["\uF302",!0]],["inbox",["\uF01C",!1]],["indent",["\uF03C",!1]],["indian-rupee-sign",["\uE1BC",!1]],["industry",["\uF275",!1]],["infinity",["\uF534",!1]],["info",["\uF129",!1]],["italic",["\uF033",!1]],["j",["J",!1]],["jar",["\uE516",!1]],["jar-wheat",["\uE517",!1]],["jedi",["\uF669",!1]],["jet-fighter",["\uF0FB",!1]],["jet-fighter-up",["\uE518",!1]],["joint",["\uF595",!1]],["jug-detergent",["\uE519",!1]],["k",["K",!1]],["kaaba",["\uF66B",!1]],["key",["\uF084",!1]],["keyboard",["\uF11C",!0]],["khanda",["\uF66D",!1]],["kip-sign",["\uE1C4",!1]],["kit-medical",["\uF479",!1]],["kitchen-set",["\uE51A",!1]],["kiwi-bird",["\uF535",!1]],["l",["L",!1]],["land-mine-on",["\uE51B",!1]],["landmark",["\uF66F",!1]],["landmark-dome",["\uF752",!1]],["landmark-flag",["\uE51C",!1]],["language",["\uF1AB",!1]],["laptop",["\uF109",!1]],["laptop-code",["\uF5FC",!1]],["laptop-file",["\uE51D",!1]],["laptop-medical",["\uF812",!1]],["lari-sign",["\uE1C8",!1]],["layer-group",["\uF5FD",!1]],["leaf",["\uF06C",!1]],["left-long",["\uF30A",!1]],["left-right",["\uF337",!1]],["lemon",["\uF094",!0]],["less-than",["<",!1]],["less-than-equal",["\uF537",!1]],["life-ring",["\uF1CD",!0]],["lightbulb",["\uF0EB",!0]],["lines-leaning",["\uE51E",!1]],["link",["\uF0C1",!1]],["link-slash",["\uF127",!1]],["lira-sign",["\uF195",!1]],["list",["\uF03A",!1]],["list-check",["\uF0AE",!1]],["list-ol",["\uF0CB",!1]],["list-ul",["\uF0CA",!1]],["litecoin-sign",["\uE1D3",!1]],["location-arrow",["\uF124",!1]],["location-crosshairs",["\uF601",!1]],["location-dot",["\uF3C5",!1]],["location-pin",["\uF041",!1]],["location-pin-lock",["\uE51F",!1]],["lock",["\uF023",!1]],["lock-open",["\uF3C1",!1]],["locust",["\uE520",!1]],["lungs",["\uF604",!1]],["lungs-virus",["\uE067",!1]],["m",["M",!1]],["magnet",["\uF076",!1]],["magnifying-glass",["\uF002",!1]],["magnifying-glass-arrow-right",["\uE521",!1]],["magnifying-glass-chart",["\uE522",!1]],["magnifying-glass-dollar",["\uF688",!1]],["magnifying-glass-location",["\uF689",!1]],["magnifying-glass-minus",["\uF010",!1]],["magnifying-glass-plus",["\uF00E",!1]],["manat-sign",["\uE1D5",!1]],["map",["\uF279",!0]],["map-location",["\uF59F",!1]],["map-location-dot",["\uF5A0",!1]],["map-pin",["\uF276",!1]],["marker",["\uF5A1",!1]],["mars",["\uF222",!1]],["mars-and-venus",["\uF224",!1]],["mars-and-venus-burst",["\uE523",!1]],["mars-double",["\uF227",!1]],["mars-stroke",["\uF229",!1]],["mars-stroke-right",["\uF22B",!1]],["mars-stroke-up",["\uF22A",!1]],["martini-glass",["\uF57B",!1]],["martini-glass-citrus",["\uF561",!1]],["martini-glass-empty",["\uF000",!1]],["mask",["\uF6FA",!1]],["mask-face",["\uE1D7",!1]],["mask-ventilator",["\uE524",!1]],["masks-theater",["\uF630",!1]],["mattress-pillow",["\uE525",!1]],["maximize",["\uF31E",!1]],["medal",["\uF5A2",!1]],["memory",["\uF538",!1]],["menorah",["\uF676",!1]],["mercury",["\uF223",!1]],["message",["\uF27A",!0]],["meteor",["\uF753",!1]],["microchip",["\uF2DB",!1]],["microphone",["\uF130",!1]],["microphone-lines",["\uF3C9",!1]],["microphone-lines-slash",["\uF539",!1]],["microphone-slash",["\uF131",!1]],["microscope",["\uF610",!1]],["mill-sign",["\uE1ED",!1]],["minimize",["\uF78C",!1]],["minus",["\uF068",!1]],["mitten",["\uF7B5",!1]],["mobile",["\uF3CE",!1]],["mobile-button",["\uF10B",!1]],["mobile-retro",["\uE527",!1]],["mobile-screen",["\uF3CF",!1]],["mobile-screen-button",["\uF3CD",!1]],["money-bill",["\uF0D6",!1]],["money-bill-1",["\uF3D1",!0]],["money-bill-1-wave",["\uF53B",!1]],["money-bill-transfer",["\uE528",!1]],["money-bill-trend-up",["\uE529",!1]],["money-bill-wave",["\uF53A",!1]],["money-bill-wheat",["\uE52A",!1]],["money-bills",["\uE1F3",!1]],["money-check",["\uF53C",!1]],["money-check-dollar",["\uF53D",!1]],["monument",["\uF5A6",!1]],["moon",["\uF186",!0]],["mortar-pestle",["\uF5A7",!1]],["mosque",["\uF678",!1]],["mosquito",["\uE52B",!1]],["mosquito-net",["\uE52C",!1]],["motorcycle",["\uF21C",!1]],["mound",["\uE52D",!1]],["mountain",["\uF6FC",!1]],["mountain-city",["\uE52E",!1]],["mountain-sun",["\uE52F",!1]],["mug-hot",["\uF7B6",!1]],["mug-saucer",["\uF0F4",!1]],["music",["\uF001",!1]],["n",["N",!1]],["naira-sign",["\uE1F6",!1]],["network-wired",["\uF6FF",!1]],["neuter",["\uF22C",!1]],["newspaper",["\uF1EA",!0]],["not-equal",["\uF53E",!1]],["notdef",["\uE1FE",!1]],["note-sticky",["\uF249",!0]],["notes-medical",["\uF481",!1]],["o",["O",!1]],["object-group",["\uF247",!0]],["object-ungroup",["\uF248",!0]],["oil-can",["\uF613",!1]],["oil-well",["\uE532",!1]],["om",["\uF679",!1]],["otter",["\uF700",!1]],["outdent",["\uF03B",!1]],["p",["P",!1]],["pager",["\uF815",!1]],["paint-roller",["\uF5AA",!1]],["paintbrush",["\uF1FC",!1]],["palette",["\uF53F",!1]],["pallet",["\uF482",!1]],["panorama",["\uE209",!1]],["paper-plane",["\uF1D8",!0]],["paperclip",["\uF0C6",!1]],["parachute-box",["\uF4CD",!1]],["paragraph",["\uF1DD",!1]],["passport",["\uF5AB",!1]],["paste",["\uF0EA",!0]],["pause",["\uF04C",!1]],["paw",["\uF1B0",!1]],["peace",["\uF67C",!1]],["pen",["\uF304",!1]],["pen-clip",["\uF305",!1]],["pen-fancy",["\uF5AC",!1]],["pen-nib",["\uF5AD",!1]],["pen-ruler",["\uF5AE",!1]],["pen-to-square",["\uF044",!0]],["pencil",["\uF303",!1]],["people-arrows",["\uE068",!1]],["people-carry-box",["\uF4CE",!1]],["people-group",["\uE533",!1]],["people-line",["\uE534",!1]],["people-pulling",["\uE535",!1]],["people-robbery",["\uE536",!1]],["people-roof",["\uE537",!1]],["pepper-hot",["\uF816",!1]],["percent",["%",!1]],["person",["\uF183",!1]],["person-arrow-down-to-line",["\uE538",!1]],["person-arrow-up-from-line",["\uE539",!1]],["person-biking",["\uF84A",!1]],["person-booth",["\uF756",!1]],["person-breastfeeding",["\uE53A",!1]],["person-burst",["\uE53B",!1]],["person-cane",["\uE53C",!1]],["person-chalkboard",["\uE53D",!1]],["person-circle-check",["\uE53E",!1]],["person-circle-exclamation",["\uE53F",!1]],["person-circle-minus",["\uE540",!1]],["person-circle-plus",["\uE541",!1]],["person-circle-question",["\uE542",!1]],["person-circle-xmark",["\uE543",!1]],["person-digging",["\uF85E",!1]],["person-dots-from-line",["\uF470",!1]],["person-dress",["\uF182",!1]],["person-dress-burst",["\uE544",!1]],["person-drowning",["\uE545",!1]],["person-falling",["\uE546",!1]],["person-falling-burst",["\uE547",!1]],["person-half-dress",["\uE548",!1]],["person-harassing",["\uE549",!1]],["person-hiking",["\uF6EC",!1]],["person-military-pointing",["\uE54A",!1]],["person-military-rifle",["\uE54B",!1]],["person-military-to-person",["\uE54C",!1]],["person-praying",["\uF683",!1]],["person-pregnant",["\uE31E",!1]],["person-rays",["\uE54D",!1]],["person-rifle",["\uE54E",!1]],["person-running",["\uF70C",!1]],["person-shelter",["\uE54F",!1]],["person-skating",["\uF7C5",!1]],["person-skiing",["\uF7C9",!1]],["person-skiing-nordic",["\uF7CA",!1]],["person-snowboarding",["\uF7CE",!1]],["person-swimming",["\uF5C4",!1]],["person-through-window",["\uE5A9",!1]],["person-walking",["\uF554",!1]],["person-walking-arrow-loop-left",["\uE551",!1]],["person-walking-arrow-right",["\uE552",!1]],["person-walking-dashed-line-arrow-right",["\uE553",!1]],["person-walking-luggage",["\uE554",!1]],["person-walking-with-cane",["\uF29D",!1]],["peseta-sign",["\uE221",!1]],["peso-sign",["\uE222",!1]],["phone",["\uF095",!1]],["phone-flip",["\uF879",!1]],["phone-slash",["\uF3DD",!1]],["phone-volume",["\uF2A0",!1]],["photo-film",["\uF87C",!1]],["piggy-bank",["\uF4D3",!1]],["pills",["\uF484",!1]],["pizza-slice",["\uF818",!1]],["place-of-worship",["\uF67F",!1]],["plane",["\uF072",!1]],["plane-arrival",["\uF5AF",!1]],["plane-circle-check",["\uE555",!1]],["plane-circle-exclamation",["\uE556",!1]],["plane-circle-xmark",["\uE557",!1]],["plane-departure",["\uF5B0",!1]],["plane-lock",["\uE558",!1]],["plane-slash",["\uE069",!1]],["plane-up",["\uE22D",!1]],["plant-wilt",["\uE5AA",!1]],["plate-wheat",["\uE55A",!1]],["play",["\uF04B",!1]],["plug",["\uF1E6",!1]],["plug-circle-bolt",["\uE55B",!1]],["plug-circle-check",["\uE55C",!1]],["plug-circle-exclamation",["\uE55D",!1]],["plug-circle-minus",["\uE55E",!1]],["plug-circle-plus",["\uE55F",!1]],["plug-circle-xmark",["\uE560",!1]],["plus",["+",!1]],["plus-minus",["\uE43C",!1]],["podcast",["\uF2CE",!1]],["poo",["\uF2FE",!1]],["poo-storm",["\uF75A",!1]],["poop",["\uF619",!1]],["power-off",["\uF011",!1]],["prescription",["\uF5B1",!1]],["prescription-bottle",["\uF485",!1]],["prescription-bottle-medical",["\uF486",!1]],["print",["\uF02F",!1]],["pump-medical",["\uE06A",!1]],["pump-soap",["\uE06B",!1]],["puzzle-piece",["\uF12E",!1]],["q",["Q",!1]],["qrcode",["\uF029",!1]],["question",["?",!1]],["quote-left",["\uF10D",!1]],["quote-right",["\uF10E",!1]],["r",["R",!1]],["radiation",["\uF7B9",!1]],["radio",["\uF8D7",!1]],["rainbow",["\uF75B",!1]],["ranking-star",["\uE561",!1]],["receipt",["\uF543",!1]],["record-vinyl",["\uF8D9",!1]],["rectangle-ad",["\uF641",!1]],["rectangle-list",["\uF022",!0]],["rectangle-xmark",["\uF410",!0]],["recycle",["\uF1B8",!1]],["registered",["\uF25D",!0]],["repeat",["\uF363",!1]],["reply",["\uF3E5",!1]],["reply-all",["\uF122",!1]],["republican",["\uF75E",!1]],["restroom",["\uF7BD",!1]],["retweet",["\uF079",!1]],["ribbon",["\uF4D6",!1]],["right-from-bracket",["\uF2F5",!1]],["right-left",["\uF362",!1]],["right-long",["\uF30B",!1]],["right-to-bracket",["\uF2F6",!1]],["ring",["\uF70B",!1]],["road",["\uF018",!1]],["road-barrier",["\uE562",!1]],["road-bridge",["\uE563",!1]],["road-circle-check",["\uE564",!1]],["road-circle-exclamation",["\uE565",!1]],["road-circle-xmark",["\uE566",!1]],["road-lock",["\uE567",!1]],["road-spikes",["\uE568",!1]],["robot",["\uF544",!1]],["rocket",["\uF135",!1]],["rotate",["\uF2F1",!1]],["rotate-left",["\uF2EA",!1]],["rotate-right",["\uF2F9",!1]],["route",["\uF4D7",!1]],["rss",["\uF09E",!1]],["ruble-sign",["\uF158",!1]],["rug",["\uE569",!1]],["ruler",["\uF545",!1]],["ruler-combined",["\uF546",!1]],["ruler-horizontal",["\uF547",!1]],["ruler-vertical",["\uF548",!1]],["rupee-sign",["\uF156",!1]],["rupiah-sign",["\uE23D",!1]],["s",["S",!1]],["sack-dollar",["\uF81D",!1]],["sack-xmark",["\uE56A",!1]],["sailboat",["\uE445",!1]],["satellite",["\uF7BF",!1]],["satellite-dish",["\uF7C0",!1]],["scale-balanced",["\uF24E",!1]],["scale-unbalanced",["\uF515",!1]],["scale-unbalanced-flip",["\uF516",!1]],["school",["\uF549",!1]],["school-circle-check",["\uE56B",!1]],["school-circle-exclamation",["\uE56C",!1]],["school-circle-xmark",["\uE56D",!1]],["school-flag",["\uE56E",!1]],["school-lock",["\uE56F",!1]],["scissors",["\uF0C4",!1]],["screwdriver",["\uF54A",!1]],["screwdriver-wrench",["\uF7D9",!1]],["scroll",["\uF70E",!1]],["scroll-torah",["\uF6A0",!1]],["sd-card",["\uF7C2",!1]],["section",["\uE447",!1]],["seedling",["\uF4D8",!1]],["server",["\uF233",!1]],["shapes",["\uF61F",!1]],["share",["\uF064",!1]],["share-from-square",["\uF14D",!0]],["share-nodes",["\uF1E0",!1]],["sheet-plastic",["\uE571",!1]],["shekel-sign",["\uF20B",!1]],["shield",["\uF132",!1]],["shield-cat",["\uE572",!1]],["shield-dog",["\uE573",!1]],["shield-halved",["\uF3ED",!1]],["shield-heart",["\uE574",!1]],["shield-virus",["\uE06C",!1]],["ship",["\uF21A",!1]],["shirt",["\uF553",!1]],["shoe-prints",["\uF54B",!1]],["shop",["\uF54F",!1]],["shop-lock",["\uE4A5",!1]],["shop-slash",["\uE070",!1]],["shower",["\uF2CC",!1]],["shrimp",["\uE448",!1]],["shuffle",["\uF074",!1]],["shuttle-space",["\uF197",!1]],["sign-hanging",["\uF4D9",!1]],["signal",["\uF012",!1]],["signature",["\uF5B7",!1]],["signs-post",["\uF277",!1]],["sim-card",["\uF7C4",!1]],["sink",["\uE06D",!1]],["sitemap",["\uF0E8",!1]],["skull",["\uF54C",!1]],["skull-crossbones",["\uF714",!1]],["slash",["\uF715",!1]],["sleigh",["\uF7CC",!1]],["sliders",["\uF1DE",!1]],["smog",["\uF75F",!1]],["smoking",["\uF48D",!1]],["snowflake",["\uF2DC",!0]],["snowman",["\uF7D0",!1]],["snowplow",["\uF7D2",!1]],["soap",["\uE06E",!1]],["socks",["\uF696",!1]],["solar-panel",["\uF5BA",!1]],["sort",["\uF0DC",!1]],["sort-down",["\uF0DD",!1]],["sort-up",["\uF0DE",!1]],["spa",["\uF5BB",!1]],["spaghetti-monster-flying",["\uF67B",!1]],["spell-check",["\uF891",!1]],["spider",["\uF717",!1]],["spinner",["\uF110",!1]],["splotch",["\uF5BC",!1]],["spoon",["\uF2E5",!1]],["spray-can",["\uF5BD",!1]],["spray-can-sparkles",["\uF5D0",!1]],["square",["\uF0C8",!0]],["square-arrow-up-right",["\uF14C",!1]],["square-caret-down",["\uF150",!0]],["square-caret-left",["\uF191",!0]],["square-caret-right",["\uF152",!0]],["square-caret-up",["\uF151",!0]],["square-check",["\uF14A",!0]],["square-envelope",["\uF199",!1]],["square-full",["\uF45C",!0]],["square-h",["\uF0FD",!1]],["square-minus",["\uF146",!0]],["square-nfi",["\uE576",!1]],["square-parking",["\uF540",!1]],["square-pen",["\uF14B",!1]],["square-person-confined",["\uE577",!1]],["square-phone",["\uF098",!1]],["square-phone-flip",["\uF87B",!1]],["square-plus",["\uF0FE",!0]],["square-poll-horizontal",["\uF682",!1]],["square-poll-vertical",["\uF681",!1]],["square-root-variable",["\uF698",!1]],["square-rss",["\uF143",!1]],["square-share-nodes",["\uF1E1",!1]],["square-up-right",["\uF360",!1]],["square-virus",["\uE578",!1]],["square-xmark",["\uF2D3",!1]],["staff-snake",["\uE579",!1]],["stairs",["\uE289",!1]],["stamp",["\uF5BF",!1]],["stapler",["\uE5AF",!1]],["star",["\uF005",!0]],["star-and-crescent",["\uF699",!1]],["star-half",["\uF089",!0]],["star-half-stroke",["\uF5C0",!0]],["star-of-david",["\uF69A",!1]],["star-of-life",["\uF621",!1]],["sterling-sign",["\uF154",!1]],["stethoscope",["\uF0F1",!1]],["stop",["\uF04D",!1]],["stopwatch",["\uF2F2",!1]],["stopwatch-20",["\uE06F",!1]],["store",["\uF54E",!1]],["store-slash",["\uE071",!1]],["street-view",["\uF21D",!1]],["strikethrough",["\uF0CC",!1]],["stroopwafel",["\uF551",!1]],["subscript",["\uF12C",!1]],["suitcase",["\uF0F2",!1]],["suitcase-medical",["\uF0FA",!1]],["suitcase-rolling",["\uF5C1",!1]],["sun",["\uF185",!0]],["sun-plant-wilt",["\uE57A",!1]],["superscript",["\uF12B",!1]],["swatchbook",["\uF5C3",!1]],["synagogue",["\uF69B",!1]],["syringe",["\uF48E",!1]],["t",["T",!1]],["table",["\uF0CE",!1]],["table-cells",["\uF00A",!1]],["table-cells-large",["\uF009",!1]],["table-columns",["\uF0DB",!1]],["table-list",["\uF00B",!1]],["table-tennis-paddle-ball",["\uF45D",!1]],["tablet",["\uF3FB",!1]],["tablet-button",["\uF10A",!1]],["tablet-screen-button",["\uF3FA",!1]],["tablets",["\uF490",!1]],["tachograph-digital",["\uF566",!1]],["tag",["\uF02B",!1]],["tags",["\uF02C",!1]],["tape",["\uF4DB",!1]],["tarp",["\uE57B",!1]],["tarp-droplet",["\uE57C",!1]],["taxi",["\uF1BA",!1]],["teeth",["\uF62E",!1]],["teeth-open",["\uF62F",!1]],["temperature-arrow-down",["\uE03F",!1]],["temperature-arrow-up",["\uE040",!1]],["temperature-empty",["\uF2CB",!1]],["temperature-full",["\uF2C7",!1]],["temperature-half",["\uF2C9",!1]],["temperature-high",["\uF769",!1]],["temperature-low",["\uF76B",!1]],["temperature-quarter",["\uF2CA",!1]],["temperature-three-quarters",["\uF2C8",!1]],["tenge-sign",["\uF7D7",!1]],["tent",["\uE57D",!1]],["tent-arrow-down-to-line",["\uE57E",!1]],["tent-arrow-left-right",["\uE57F",!1]],["tent-arrow-turn-left",["\uE580",!1]],["tent-arrows-down",["\uE581",!1]],["tents",["\uE582",!1]],["terminal",["\uF120",!1]],["text-height",["\uF034",!1]],["text-slash",["\uF87D",!1]],["text-width",["\uF035",!1]],["thermometer",["\uF491",!1]],["thumbs-down",["\uF165",!0]],["thumbs-up",["\uF164",!0]],["thumbtack",["\uF08D",!1]],["ticket",["\uF145",!1]],["ticket-simple",["\uF3FF",!1]],["timeline",["\uE29C",!1]],["toggle-off",["\uF204",!1]],["toggle-on",["\uF205",!1]],["toilet",["\uF7D8",!1]],["toilet-paper",["\uF71E",!1]],["toilet-paper-slash",["\uE072",!1]],["toilet-portable",["\uE583",!1]],["toilets-portable",["\uE584",!1]],["toolbox",["\uF552",!1]],["tooth",["\uF5C9",!1]],["torii-gate",["\uF6A1",!1]],["tornado",["\uF76F",!1]],["tower-broadcast",["\uF519",!1]],["tower-cell",["\uE585",!1]],["tower-observation",["\uE586",!1]],["tractor",["\uF722",!1]],["trademark",["\uF25C",!1]],["traffic-light",["\uF637",!1]],["trailer",["\uE041",!1]],["train",["\uF238",!1]],["train-subway",["\uF239",!1]],["train-tram",["\uE5B4",!1]],["transgender",["\uF225",!1]],["trash",["\uF1F8",!1]],["trash-arrow-up",["\uF829",!1]],["trash-can",["\uF2ED",!0]],["trash-can-arrow-up",["\uF82A",!1]],["tree",["\uF1BB",!1]],["tree-city",["\uE587",!1]],["triangle-exclamation",["\uF071",!1]],["trophy",["\uF091",!1]],["trowel",["\uE589",!1]],["trowel-bricks",["\uE58A",!1]],["truck",["\uF0D1",!1]],["truck-arrow-right",["\uE58B",!1]],["truck-droplet",["\uE58C",!1]],["truck-fast",["\uF48B",!1]],["truck-field",["\uE58D",!1]],["truck-field-un",["\uE58E",!1]],["truck-front",["\uE2B7",!1]],["truck-medical",["\uF0F9",!1]],["truck-monster",["\uF63B",!1]],["truck-moving",["\uF4DF",!1]],["truck-pickup",["\uF63C",!1]],["truck-plane",["\uE58F",!1]],["truck-ramp-box",["\uF4DE",!1]],["tty",["\uF1E4",!1]],["turkish-lira-sign",["\uE2BB",!1]],["turn-down",["\uF3BE",!1]],["turn-up",["\uF3BF",!1]],["tv",["\uF26C",!1]],["u",["U",!1]],["umbrella",["\uF0E9",!1]],["umbrella-beach",["\uF5CA",!1]],["underline",["\uF0CD",!1]],["universal-access",["\uF29A",!1]],["unlock",["\uF09C",!1]],["unlock-keyhole",["\uF13E",!1]],["up-down",["\uF338",!1]],["up-down-left-right",["\uF0B2",!1]],["up-long",["\uF30C",!1]],["up-right-and-down-left-from-center",["\uF424",!1]],["up-right-from-square",["\uF35D",!1]],["upload",["\uF093",!1]],["user",["\uF007",!0]],["user-astronaut",["\uF4FB",!1]],["user-check",["\uF4FC",!1]],["user-clock",["\uF4FD",!1]],["user-doctor",["\uF0F0",!1]],["user-gear",["\uF4FE",!1]],["user-graduate",["\uF501",!1]],["user-group",["\uF500",!1]],["user-injured",["\uF728",!1]],["user-large",["\uF406",!1]],["user-large-slash",["\uF4FA",!1]],["user-lock",["\uF502",!1]],["user-minus",["\uF503",!1]],["user-ninja",["\uF504",!1]],["user-nurse",["\uF82F",!1]],["user-pen",["\uF4FF",!1]],["user-plus",["\uF234",!1]],["user-secret",["\uF21B",!1]],["user-shield",["\uF505",!1]],["user-slash",["\uF506",!1]],["user-tag",["\uF507",!1]],["user-tie",["\uF508",!1]],["user-xmark",["\uF235",!1]],["users",["\uF0C0",!1]],["users-between-lines",["\uE591",!1]],["users-gear",["\uF509",!1]],["users-line",["\uE592",!1]],["users-rays",["\uE593",!1]],["users-rectangle",["\uE594",!1]],["users-slash",["\uE073",!1]],["users-viewfinder",["\uE595",!1]],["utensils",["\uF2E7",!1]],["v",["V",!1]],["van-shuttle",["\uF5B6",!1]],["vault",["\uE2C5",!1]],["vector-square",["\uF5CB",!1]],["venus",["\uF221",!1]],["venus-double",["\uF226",!1]],["venus-mars",["\uF228",!1]],["vest",["\uE085",!1]],["vest-patches",["\uE086",!1]],["vial",["\uF492",!1]],["vial-circle-check",["\uE596",!1]],["vial-virus",["\uE597",!1]],["vials",["\uF493",!1]],["video",["\uF03D",!1]],["video-slash",["\uF4E2",!1]],["vihara",["\uF6A7",!1]],["virus",["\uE074",!1]],["virus-covid",["\uE4A8",!1]],["virus-covid-slash",["\uE4A9",!1]],["virus-slash",["\uE075",!1]],["viruses",["\uE076",!1]],["voicemail",["\uF897",!1]],["volcano",["\uF770",!1]],["volleyball",["\uF45F",!1]],["volume-high",["\uF028",!1]],["volume-low",["\uF027",!1]],["volume-off",["\uF026",!1]],["volume-xmark",["\uF6A9",!1]],["vr-cardboard",["\uF729",!1]],["w",["W",!1]],["walkie-talkie",["\uF8EF",!1]],["wallet",["\uF555",!1]],["wand-magic",["\uF0D0",!1]],["wand-magic-sparkles",["\uE2CA",!1]],["wand-sparkles",["\uF72B",!1]],["warehouse",["\uF494",!1]],["water",["\uF773",!1]],["water-ladder",["\uF5C5",!1]],["wave-square",["\uF83E",!1]],["weight-hanging",["\uF5CD",!1]],["weight-scale",["\uF496",!1]],["wheat-awn",["\uE2CD",!1]],["wheat-awn-circle-exclamation",["\uE598",!1]],["wheelchair",["\uF193",!1]],["wheelchair-move",["\uE2CE",!1]],["whiskey-glass",["\uF7A0",!1]],["wifi",["\uF1EB",!1]],["wind",["\uF72E",!1]],["window-maximize",["\uF2D0",!0]],["window-minimize",["\uF2D1",!0]],["window-restore",["\uF2D2",!0]],["wine-bottle",["\uF72F",!1]],["wine-glass",["\uF4E3",!1]],["wine-glass-empty",["\uF5CE",!1]],["won-sign",["\uF159",!1]],["worm",["\uE599",!1]],["wrench",["\uF0AD",!1]],["x",["X",!1]],["x-ray",["\uF497",!1]],["xmark",["\uF00D",!1]],["xmarks-lines",["\uE59A",!1]],["y",["Y",!1]],["yen-sign",["\uF157",!1]],["yin-yang",["\uF6AD",!1]],["z",["Z",!1]]]);window.getFontAwesome6Metadata=()=>new Map(r),window.getFontAwesome6IconMetadata=l=>r.get(e.get(l)||l)})();(()=>{let e=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class r extends HTMLElement{root=void 0;svgStyle=document.createElement("style");connectedCallback(){this.validate();let u=this.getRoot(),t=document.createElement("slot");t.name="svg",u.append(t),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(this.size===0)throw new TypeError("Must provide an icon size.");if(!e.has(this.size))throw new TypeError("Must provide a valid icon size.")}getRoot(){return this.root===void 0&&(this.root=this.attachShadow({mode:"open"}),this.updateRenderSize(),this.root.append(this.svgStyle)),this.root}updateRenderSize(){let u=e.get(this.size);this.svgStyle.textContent=` + `;return new Function("Language","h","v",r)}var V=class{compiled;constructor(r){try{this.compiled=Me(r)}catch(l){throw l instanceof Error&&console.debug(l.message),l}}fetch(r){return this.compiled(ie,{selectPlural:Se,escapeHTML:Ae,formatNumeric:de},r)}};function Ie(e,r){typeof r=="string"?G(e,ze(r)):G(e,function(){return r})}function ze(e){if(!e.includes("{"))return function(){return e};try{let r=new V(e);return r.fetch.bind(r)}catch{return function(){return e}}}var Pe=(()=>{let e="DOMContentLoaded",r=new WeakMap,l=[],c=i=>{do if(i.nextSibling)return!0;while(i=i.parentNode);return!1},t=()=>{l.splice(0).forEach(i=>{r.get(i[0])!==!0&&(r.set(i[0],!0),i[0][i[1]]())})};document.addEventListener(e,t);class a extends HTMLElement{static withParsedCallback(d,b="parsed"){let{prototype:k}=d,{connectedCallback:q}=k,S=b+"Callback",z=(h,g,p,x)=>{g.disconnect(),p.removeEventListener(e,x),P(h)},P=h=>{l.length||requestAnimationFrame(t),l.push([h,S])};return Object.defineProperties(k,{connectedCallback:{configurable:!0,writable:!0,value(){if(q&&q.apply(this,arguments),S in this&&!r.has(this)){let h=this,{ownerDocument:g}=h;if(r.set(h,!1),g.readyState==="complete"||c(h))P(h);else{let p=()=>z(h,x,g,p);g.addEventListener(e,p);let x=new MutationObserver(()=>{c(h)&&z(h,x,g,p)});x.observe(h.parentNode,{childList:!0,subtree:!0})}}}},[b]:{configurable:!0,get(){return r.get(this)===!0}}}),d}}return a.withParsedCallback(a)})(),pe=Pe;(()=>{let e=new Map([["contact-book","address-book"],["contact-card","address-card"],["vcard","address-card"],["angle-double-down","angles-down"],["angle-double-left","angles-left"],["angle-double-right","angles-right"],["angle-double-up","angles-up"],["apple-alt","apple-whole"],["sort-numeric-asc","arrow-down-1-9"],["sort-numeric-down","arrow-down-1-9"],["sort-numeric-desc","arrow-down-9-1"],["sort-numeric-down-alt","arrow-down-9-1"],["sort-alpha-asc","arrow-down-a-z"],["sort-alpha-down","arrow-down-a-z"],["long-arrow-down","arrow-down-long"],["sort-amount-desc","arrow-down-short-wide"],["sort-amount-down-alt","arrow-down-short-wide"],["sort-amount-asc","arrow-down-wide-short"],["sort-amount-down","arrow-down-wide-short"],["sort-alpha-desc","arrow-down-z-a"],["sort-alpha-down-alt","arrow-down-z-a"],["long-arrow-left","arrow-left-long"],["mouse-pointer","arrow-pointer"],["exchange","arrow-right-arrow-left"],["sign-out","arrow-right-from-bracket"],["long-arrow-right","arrow-right-long"],["sign-in","arrow-right-to-bracket"],["arrow-left-rotate","arrow-rotate-left"],["arrow-rotate-back","arrow-rotate-left"],["arrow-rotate-backward","arrow-rotate-left"],["undo","arrow-rotate-left"],["arrow-right-rotate","arrow-rotate-right"],["arrow-rotate-forward","arrow-rotate-right"],["redo","arrow-rotate-right"],["level-down","arrow-turn-down"],["level-up","arrow-turn-up"],["sort-numeric-up","arrow-up-1-9"],["sort-numeric-up-alt","arrow-up-9-1"],["sort-alpha-up","arrow-up-a-z"],["long-arrow-up","arrow-up-long"],["external-link","arrow-up-right-from-square"],["sort-amount-up-alt","arrow-up-short-wide"],["sort-amount-up","arrow-up-wide-short"],["sort-alpha-up-alt","arrow-up-z-a"],["arrows-h","arrows-left-right"],["refresh","arrows-rotate"],["sync","arrows-rotate"],["arrows-v","arrows-up-down"],["arrows","arrows-up-down-left-right"],["carriage-baby","baby-carriage"],["fast-backward","backward-fast"],["step-backward","backward-step"],["shopping-bag","bag-shopping"],["haykal","bahai"],["cancel","ban"],["smoking-ban","ban-smoking"],["band-aid","bandage"],["navicon","bars"],["tasks-alt","bars-progress"],["reorder","bars-staggered"],["stream","bars-staggered"],["baseball-ball","baseball"],["shopping-basket","basket-shopping"],["basketball-ball","basketball"],["bathtub","bath"],["battery-0","battery-empty"],["battery","battery-full"],["battery-5","battery-full"],["battery-3","battery-half"],["battery-2","battery-quarter"],["battery-4","battery-three-quarters"],["procedures","bed-pulse"],["beer","beer-mug-empty"],["concierge-bell","bell-concierge"],["zap","bolt"],["atlas","book-atlas"],["bible","book-bible"],["journal-whills","book-journal-whills"],["book-reader","book-open-reader"],["quran","book-quran"],["book-dead","book-skull"],["tanakh","book-tanakh"],["border-style","border-top-left"],["archive","box-archive"],["boxes","boxes-stacked"],["boxes-alt","boxes-stacked"],["quidditch","broom-ball"],["quidditch-broom-ball","broom-ball"],["bank","building-columns"],["institution","building-columns"],["museum","building-columns"],["university","building-columns"],["hamburger","burger"],["bus-alt","bus-simple"],["briefcase-clock","business-time"],["tram","cable-car"],["birthday-cake","cake-candles"],["cake","cake-candles"],["calendar-alt","calendar-days"],["calendar-times","calendar-xmark"],["camera-alt","camera"],["automobile","car"],["battery-car","car-battery"],["car-crash","car-burst"],["car-alt","car-rear"],["dolly-flatbed","cart-flatbed"],["luggage-cart","cart-flatbed-suitcase"],["shopping-cart","cart-shopping"],["blackboard","chalkboard"],["chalkboard-teacher","chalkboard-user"],["glass-cheers","champagne-glasses"],["area-chart","chart-area"],["bar-chart","chart-bar"],["line-chart","chart-line"],["pie-chart","chart-pie"],["vote-yea","check-to-slot"],["child-rifle","child-combatant"],["arrow-circle-down","circle-arrow-down"],["arrow-circle-left","circle-arrow-left"],["arrow-circle-right","circle-arrow-right"],["arrow-circle-up","circle-arrow-up"],["check-circle","circle-check"],["chevron-circle-down","circle-chevron-down"],["chevron-circle-left","circle-chevron-left"],["chevron-circle-right","circle-chevron-right"],["chevron-circle-up","circle-chevron-up"],["donate","circle-dollar-to-slot"],["dot-circle","circle-dot"],["arrow-alt-circle-down","circle-down"],["exclamation-circle","circle-exclamation"],["hospital-symbol","circle-h"],["adjust","circle-half-stroke"],["info-circle","circle-info"],["arrow-alt-circle-left","circle-left"],["minus-circle","circle-minus"],["pause-circle","circle-pause"],["play-circle","circle-play"],["plus-circle","circle-plus"],["question-circle","circle-question"],["radiation-alt","circle-radiation"],["arrow-alt-circle-right","circle-right"],["stop-circle","circle-stop"],["arrow-alt-circle-up","circle-up"],["user-circle","circle-user"],["times-circle","circle-xmark"],["xmark-circle","circle-xmark"],["clock-four","clock"],["history","clock-rotate-left"],["cloud-download","cloud-arrow-down"],["cloud-download-alt","cloud-arrow-down"],["cloud-upload","cloud-arrow-up"],["cloud-upload-alt","cloud-arrow-up"],["thunderstorm","cloud-bolt"],["commenting","comment-dots"],["sms","comment-sms"],["drafting-compass","compass-drafting"],["mouse","computer-mouse"],["credit-card-alt","credit-card"],["crop-alt","crop-simple"],["backspace","delete-left"],["desktop-alt","desktop"],["project-diagram","diagram-project"],["directions","diamond-turn-right"],["dollar","dollar-sign"],["usd","dollar-sign"],["dolly-box","dolly"],["compress-alt","down-left-and-up-right-to-center"],["long-arrow-alt-down","down-long"],["tint","droplet"],["tint-slash","droplet-slash"],["deaf","ear-deaf"],["deafness","ear-deaf"],["hard-of-hearing","ear-deaf"],["assistive-listening-systems","ear-listen"],["globe-africa","earth-africa"],["earth","earth-americas"],["earth-america","earth-americas"],["globe-americas","earth-americas"],["globe-asia","earth-asia"],["globe-europe","earth-europe"],["globe-oceania","earth-oceania"],["ellipsis-h","ellipsis"],["ellipsis-v","ellipsis-vertical"],["mail-bulk","envelopes-bulk"],["eur","euro-sign"],["euro","euro-sign"],["eye-dropper-empty","eye-dropper"],["eyedropper","eye-dropper"],["low-vision","eye-low-vision"],["angry","face-angry"],["dizzy","face-dizzy"],["flushed","face-flushed"],["frown","face-frown"],["frown-open","face-frown-open"],["grimace","face-grimace"],["grin","face-grin"],["grin-beam","face-grin-beam"],["grin-beam-sweat","face-grin-beam-sweat"],["grin-hearts","face-grin-hearts"],["grin-squint","face-grin-squint"],["grin-squint-tears","face-grin-squint-tears"],["grin-stars","face-grin-stars"],["grin-tears","face-grin-tears"],["grin-tongue","face-grin-tongue"],["grin-tongue-squint","face-grin-tongue-squint"],["grin-tongue-wink","face-grin-tongue-wink"],["grin-alt","face-grin-wide"],["grin-wink","face-grin-wink"],["kiss","face-kiss"],["kiss-beam","face-kiss-beam"],["kiss-wink-heart","face-kiss-wink-heart"],["laugh","face-laugh"],["laugh-beam","face-laugh-beam"],["laugh-squint","face-laugh-squint"],["laugh-wink","face-laugh-wink"],["meh","face-meh"],["meh-blank","face-meh-blank"],["meh-rolling-eyes","face-rolling-eyes"],["sad-cry","face-sad-cry"],["sad-tear","face-sad-tear"],["smile","face-smile"],["smile-beam","face-smile-beam"],["smile-wink","face-smile-wink"],["surprise","face-surprise"],["tired","face-tired"],["feather-alt","feather-pointed"],["file-download","file-arrow-down"],["file-upload","file-arrow-up"],["arrow-right-from-file","file-export"],["arrow-right-to-file","file-import"],["file-alt","file-lines"],["file-text","file-lines"],["file-edit","file-pen"],["file-medical-alt","file-waveform"],["file-archive","file-zipper"],["funnel-dollar","filter-circle-dollar"],["fire-alt","fire-flame-curved"],["burn","fire-flame-simple"],["save","floppy-disk"],["folder-blank","folder"],["football-ball","football"],["fast-forward","forward-fast"],["step-forward","forward-step"],["futbol-ball","futbol"],["soccer-ball","futbol"],["dashboard","gauge"],["gauge-med","gauge"],["tachometer-alt-average","gauge"],["tachometer-alt","gauge-high"],["tachometer-alt-fast","gauge-high"],["gauge-simple-med","gauge-simple"],["tachometer-average","gauge-simple"],["tachometer","gauge-simple-high"],["tachometer-fast","gauge-simple-high"],["legal","gavel"],["cog","gear"],["cogs","gears"],["golf-ball","golf-ball-tee"],["mortar-board","graduation-cap"],["grip-horizontal","grip"],["hand-paper","hand"],["hand-rock","hand-back-fist"],["allergies","hand-dots"],["fist-raised","hand-fist"],["hand-holding-usd","hand-holding-dollar"],["hand-holding-water","hand-holding-droplet"],["sign-language","hands"],["signing","hands"],["american-sign-language-interpreting","hands-asl-interpreting"],["asl-interpreting","hands-asl-interpreting"],["hands-american-sign-language-interpreting","hands-asl-interpreting"],["hands-wash","hands-bubbles"],["praying-hands","hands-praying"],["hands-helping","handshake-angle"],["handshake-alt","handshake-simple"],["handshake-alt-slash","handshake-simple-slash"],["hdd","hard-drive"],["header","heading"],["headphones-alt","headphones-simple"],["heart-broken","heart-crack"],["heartbeat","heart-pulse"],["hard-hat","helmet-safety"],["hat-hard","helmet-safety"],["hospital-alt","hospital"],["hospital-wide","hospital"],["hot-tub","hot-tub-person"],["hourglass-empty","hourglass"],["hourglass-3","hourglass-end"],["hourglass-2","hourglass-half"],["hourglass-1","hourglass-start"],["home","house"],["home-alt","house"],["home-lg-alt","house"],["home-lg","house-chimney"],["house-damage","house-chimney-crack"],["clinic-medical","house-chimney-medical"],["laptop-house","house-laptop"],["home-user","house-user"],["hryvnia","hryvnia-sign"],["heart-music-camera-bolt","icons"],["drivers-license","id-card"],["id-card-alt","id-card-clip"],["portrait","image-portrait"],["indian-rupee","indian-rupee-sign"],["inr","indian-rupee-sign"],["fighter-jet","jet-fighter"],["first-aid","kit-medical"],["landmark-alt","landmark-dome"],["long-arrow-alt-left","left-long"],["arrows-alt-h","left-right"],["chain","link"],["chain-broken","link-slash"],["chain-slash","link-slash"],["unlink","link-slash"],["list-squares","list"],["tasks","list-check"],["list-1-2","list-ol"],["list-numeric","list-ol"],["list-dots","list-ul"],["location","location-crosshairs"],["map-marker-alt","location-dot"],["map-marker","location-pin"],["search","magnifying-glass"],["search-dollar","magnifying-glass-dollar"],["search-location","magnifying-glass-location"],["search-minus","magnifying-glass-minus"],["search-plus","magnifying-glass-plus"],["map-marked","map-location"],["map-marked-alt","map-location-dot"],["mars-stroke-h","mars-stroke-right"],["mars-stroke-v","mars-stroke-up"],["glass-martini-alt","martini-glass"],["cocktail","martini-glass-citrus"],["glass-martini","martini-glass-empty"],["theater-masks","masks-theater"],["expand-arrows-alt","maximize"],["comment-alt","message"],["microphone-alt","microphone-lines"],["microphone-alt-slash","microphone-lines-slash"],["compress-arrows-alt","minimize"],["subtract","minus"],["mobile-android","mobile"],["mobile-phone","mobile"],["mobile-android-alt","mobile-screen"],["mobile-alt","mobile-screen-button"],["money-bill-alt","money-bill-1"],["money-bill-wave-alt","money-bill-1-wave"],["money-check-alt","money-check-dollar"],["coffee","mug-saucer"],["sticky-note","note-sticky"],["dedent","outdent"],["paint-brush","paintbrush"],["file-clipboard","paste"],["pen-alt","pen-clip"],["pencil-ruler","pen-ruler"],["edit","pen-to-square"],["pencil-alt","pencil"],["people-arrows-left-right","people-arrows"],["people-carry","people-carry-box"],["percentage","percent"],["male","person"],["biking","person-biking"],["digging","person-digging"],["diagnoses","person-dots-from-line"],["female","person-dress"],["hiking","person-hiking"],["pray","person-praying"],["running","person-running"],["skating","person-skating"],["skiing","person-skiing"],["skiing-nordic","person-skiing-nordic"],["snowboarding","person-snowboarding"],["swimmer","person-swimming"],["walking","person-walking"],["blind","person-walking-with-cane"],["phone-alt","phone-flip"],["volume-control-phone","phone-volume"],["photo-video","photo-film"],["add","plus"],["poo-bolt","poo-storm"],["prescription-bottle-alt","prescription-bottle-medical"],["quote-left-alt","quote-left"],["quote-right-alt","quote-right"],["ad","rectangle-ad"],["list-alt","rectangle-list"],["rectangle-times","rectangle-xmark"],["times-rectangle","rectangle-xmark"],["window-close","rectangle-xmark"],["mail-reply","reply"],["mail-reply-all","reply-all"],["sign-out-alt","right-from-bracket"],["exchange-alt","right-left"],["long-arrow-alt-right","right-long"],["sign-in-alt","right-to-bracket"],["sync-alt","rotate"],["rotate-back","rotate-left"],["rotate-backward","rotate-left"],["undo-alt","rotate-left"],["redo-alt","rotate-right"],["rotate-forward","rotate-right"],["feed","rss"],["rouble","ruble-sign"],["rub","ruble-sign"],["ruble","ruble-sign"],["rupee","rupee-sign"],["balance-scale","scale-balanced"],["balance-scale-left","scale-unbalanced"],["balance-scale-right","scale-unbalanced-flip"],["cut","scissors"],["tools","screwdriver-wrench"],["torah","scroll-torah"],["sprout","seedling"],["triangle-circle-square","shapes"],["arrow-turn-right","share"],["mail-forward","share"],["share-square","share-from-square"],["share-alt","share-nodes"],["ils","shekel-sign"],["shekel","shekel-sign"],["sheqel","shekel-sign"],["sheqel-sign","shekel-sign"],["shield-blank","shield"],["shield-alt","shield-halved"],["t-shirt","shirt"],["tshirt","shirt"],["store-alt","shop"],["store-alt-slash","shop-slash"],["random","shuffle"],["space-shuttle","shuttle-space"],["sign","sign-hanging"],["signal-5","signal"],["signal-perfect","signal"],["map-signs","signs-post"],["sliders-h","sliders"],["unsorted","sort"],["sort-desc","sort-down"],["sort-asc","sort-up"],["pastafarianism","spaghetti-monster-flying"],["utensil-spoon","spoon"],["air-freshener","spray-can-sparkles"],["external-link-square","square-arrow-up-right"],["caret-square-down","square-caret-down"],["caret-square-left","square-caret-left"],["caret-square-right","square-caret-right"],["caret-square-up","square-caret-up"],["check-square","square-check"],["envelope-square","square-envelope"],["h-square","square-h"],["minus-square","square-minus"],["parking","square-parking"],["pen-square","square-pen"],["pencil-square","square-pen"],["phone-square","square-phone"],["phone-square-alt","square-phone-flip"],["plus-square","square-plus"],["poll-h","square-poll-horizontal"],["poll","square-poll-vertical"],["square-root-alt","square-root-variable"],["rss-square","square-rss"],["share-alt-square","square-share-nodes"],["external-link-square-alt","square-up-right"],["times-square","square-xmark"],["xmark-square","square-xmark"],["rod-asclepius","staff-snake"],["rod-snake","staff-snake"],["staff-aesculapius","staff-snake"],["star-half-alt","star-half-stroke"],["gbp","sterling-sign"],["pound-sign","sterling-sign"],["medkit","suitcase-medical"],["th","table-cells"],["th-large","table-cells-large"],["columns","table-columns"],["th-list","table-list"],["ping-pong-paddle-ball","table-tennis-paddle-ball"],["table-tennis","table-tennis-paddle-ball"],["tablet-android","tablet"],["tablet-alt","tablet-screen-button"],["digital-tachograph","tachograph-digital"],["cab","taxi"],["temperature-down","temperature-arrow-down"],["temperature-up","temperature-arrow-up"],["temperature-0","temperature-empty"],["thermometer-0","temperature-empty"],["thermometer-empty","temperature-empty"],["temperature-4","temperature-full"],["thermometer-4","temperature-full"],["thermometer-full","temperature-full"],["temperature-2","temperature-half"],["thermometer-2","temperature-half"],["thermometer-half","temperature-half"],["temperature-1","temperature-quarter"],["thermometer-1","temperature-quarter"],["thermometer-quarter","temperature-quarter"],["temperature-3","temperature-three-quarters"],["thermometer-3","temperature-three-quarters"],["thermometer-three-quarters","temperature-three-quarters"],["tenge","tenge-sign"],["remove-format","text-slash"],["thumb-tack","thumbtack"],["ticket-alt","ticket-simple"],["broadcast-tower","tower-broadcast"],["subway","train-subway"],["transgender-alt","transgender"],["trash-restore","trash-arrow-up"],["trash-alt","trash-can"],["trash-restore-alt","trash-can-arrow-up"],["exclamation-triangle","triangle-exclamation"],["warning","triangle-exclamation"],["shipping-fast","truck-fast"],["ambulance","truck-medical"],["truck-loading","truck-ramp-box"],["teletype","tty"],["try","turkish-lira-sign"],["turkish-lira","turkish-lira-sign"],["level-down-alt","turn-down"],["level-up-alt","turn-up"],["television","tv"],["tv-alt","tv"],["unlock-alt","unlock-keyhole"],["arrows-alt-v","up-down"],["arrows-alt","up-down-left-right"],["long-arrow-alt-up","up-long"],["expand-alt","up-right-and-down-left-from-center"],["external-link-alt","up-right-from-square"],["user-md","user-doctor"],["user-cog","user-gear"],["user-friends","user-group"],["user-alt","user-large"],["user-alt-slash","user-large-slash"],["user-edit","user-pen"],["user-times","user-xmark"],["users-cog","users-gear"],["cutlery","utensils"],["shuttle-van","van-shuttle"],["video-camera","video"],["volleyball-ball","volleyball"],["volume-up","volume-high"],["volume-down","volume-low"],["volume-mute","volume-xmark"],["volume-times","volume-xmark"],["magic","wand-magic"],["magic-wand-sparkles","wand-magic-sparkles"],["ladder-water","water-ladder"],["swimming-pool","water-ladder"],["weight","weight-scale"],["wheat-alt","wheat-awn"],["wheelchair-alt","wheelchair-move"],["glass-whiskey","whiskey-glass"],["wifi-3","wifi"],["wifi-strong","wifi"],["wine-glass-alt","wine-glass-empty"],["krw","won-sign"],["won","won-sign"],["close","xmark"],["multiply","xmark"],["remove","xmark"],["times","xmark"],["cny","yen-sign"],["jpy","yen-sign"],["rmb","yen-sign"],["yen","yen-sign"]]),r=new Map([["0",["0",!1]],["1",["1",!1]],["2",["2",!1]],["3",["3",!1]],["4",["4",!1]],["5",["5",!1]],["6",["6",!1]],["7",["7",!1]],["8",["8",!1]],["9",["9",!1]],["a",["A",!1]],["address-book",["\uF2B9",!0]],["address-card",["\uF2BB",!0]],["align-center",["\uF037",!1]],["align-justify",["\uF039",!1]],["align-left",["\uF036",!1]],["align-right",["\uF038",!1]],["anchor",["\uF13D",!1]],["anchor-circle-check",["\uE4AA",!1]],["anchor-circle-exclamation",["\uE4AB",!1]],["anchor-circle-xmark",["\uE4AC",!1]],["anchor-lock",["\uE4AD",!1]],["angle-down",["\uF107",!1]],["angle-left",["\uF104",!1]],["angle-right",["\uF105",!1]],["angle-up",["\uF106",!1]],["angles-down",["\uF103",!1]],["angles-left",["\uF100",!1]],["angles-right",["\uF101",!1]],["angles-up",["\uF102",!1]],["ankh",["\uF644",!1]],["apple-whole",["\uF5D1",!1]],["archway",["\uF557",!1]],["arrow-down",["\uF063",!1]],["arrow-down-1-9",["\uF162",!1]],["arrow-down-9-1",["\uF886",!1]],["arrow-down-a-z",["\uF15D",!1]],["arrow-down-long",["\uF175",!1]],["arrow-down-short-wide",["\uF884",!1]],["arrow-down-up-across-line",["\uE4AF",!1]],["arrow-down-up-lock",["\uE4B0",!1]],["arrow-down-wide-short",["\uF160",!1]],["arrow-down-z-a",["\uF881",!1]],["arrow-left",["\uF060",!1]],["arrow-left-long",["\uF177",!1]],["arrow-pointer",["\uF245",!1]],["arrow-right",["\uF061",!1]],["arrow-right-arrow-left",["\uF0EC",!1]],["arrow-right-from-bracket",["\uF08B",!1]],["arrow-right-long",["\uF178",!1]],["arrow-right-to-bracket",["\uF090",!1]],["arrow-right-to-city",["\uE4B3",!1]],["arrow-rotate-left",["\uF0E2",!1]],["arrow-rotate-right",["\uF01E",!1]],["arrow-trend-down",["\uE097",!1]],["arrow-trend-up",["\uE098",!1]],["arrow-turn-down",["\uF149",!1]],["arrow-turn-up",["\uF148",!1]],["arrow-up",["\uF062",!1]],["arrow-up-1-9",["\uF163",!1]],["arrow-up-9-1",["\uF887",!1]],["arrow-up-a-z",["\uF15E",!1]],["arrow-up-from-bracket",["\uE09A",!1]],["arrow-up-from-ground-water",["\uE4B5",!1]],["arrow-up-from-water-pump",["\uE4B6",!1]],["arrow-up-long",["\uF176",!1]],["arrow-up-right-dots",["\uE4B7",!1]],["arrow-up-right-from-square",["\uF08E",!1]],["arrow-up-short-wide",["\uF885",!1]],["arrow-up-wide-short",["\uF161",!1]],["arrow-up-z-a",["\uF882",!1]],["arrows-down-to-line",["\uE4B8",!1]],["arrows-down-to-people",["\uE4B9",!1]],["arrows-left-right",["\uF07E",!1]],["arrows-left-right-to-line",["\uE4BA",!1]],["arrows-rotate",["\uF021",!1]],["arrows-spin",["\uE4BB",!1]],["arrows-split-up-and-left",["\uE4BC",!1]],["arrows-to-circle",["\uE4BD",!1]],["arrows-to-dot",["\uE4BE",!1]],["arrows-to-eye",["\uE4BF",!1]],["arrows-turn-right",["\uE4C0",!1]],["arrows-turn-to-dots",["\uE4C1",!1]],["arrows-up-down",["\uF07D",!1]],["arrows-up-down-left-right",["\uF047",!1]],["arrows-up-to-line",["\uE4C2",!1]],["asterisk",["*",!1]],["at",["@",!1]],["atom",["\uF5D2",!1]],["audio-description",["\uF29E",!1]],["austral-sign",["\uE0A9",!1]],["award",["\uF559",!1]],["b",["B",!1]],["baby",["\uF77C",!1]],["baby-carriage",["\uF77D",!1]],["backward",["\uF04A",!1]],["backward-fast",["\uF049",!1]],["backward-step",["\uF048",!1]],["bacon",["\uF7E5",!1]],["bacteria",["\uE059",!1]],["bacterium",["\uE05A",!1]],["bag-shopping",["\uF290",!1]],["bahai",["\uF666",!1]],["baht-sign",["\uE0AC",!1]],["ban",["\uF05E",!1]],["ban-smoking",["\uF54D",!1]],["bandage",["\uF462",!1]],["bangladeshi-taka-sign",["\uE2E6",!1]],["barcode",["\uF02A",!1]],["bars",["\uF0C9",!1]],["bars-progress",["\uF828",!1]],["bars-staggered",["\uF550",!1]],["baseball",["\uF433",!1]],["baseball-bat-ball",["\uF432",!1]],["basket-shopping",["\uF291",!1]],["basketball",["\uF434",!1]],["bath",["\uF2CD",!1]],["battery-empty",["\uF244",!1]],["battery-full",["\uF240",!1]],["battery-half",["\uF242",!1]],["battery-quarter",["\uF243",!1]],["battery-three-quarters",["\uF241",!1]],["bed",["\uF236",!1]],["bed-pulse",["\uF487",!1]],["beer-mug-empty",["\uF0FC",!1]],["bell",["\uF0F3",!0]],["bell-concierge",["\uF562",!1]],["bell-slash",["\uF1F6",!0]],["bezier-curve",["\uF55B",!1]],["bicycle",["\uF206",!1]],["binoculars",["\uF1E5",!1]],["biohazard",["\uF780",!1]],["bitcoin-sign",["\uE0B4",!1]],["blender",["\uF517",!1]],["blender-phone",["\uF6B6",!1]],["blog",["\uF781",!1]],["bold",["\uF032",!1]],["bolt",["\uF0E7",!1]],["bolt-lightning",["\uE0B7",!1]],["bomb",["\uF1E2",!1]],["bone",["\uF5D7",!1]],["bong",["\uF55C",!1]],["book",["\uF02D",!1]],["book-atlas",["\uF558",!1]],["book-bible",["\uF647",!1]],["book-bookmark",["\uE0BB",!1]],["book-journal-whills",["\uF66A",!1]],["book-medical",["\uF7E6",!1]],["book-open",["\uF518",!1]],["book-open-reader",["\uF5DA",!1]],["book-quran",["\uF687",!1]],["book-skull",["\uF6B7",!1]],["book-tanakh",["\uF827",!1]],["bookmark",["\uF02E",!0]],["border-all",["\uF84C",!1]],["border-none",["\uF850",!1]],["border-top-left",["\uF853",!1]],["bore-hole",["\uE4C3",!1]],["bottle-droplet",["\uE4C4",!1]],["bottle-water",["\uE4C5",!1]],["bowl-food",["\uE4C6",!1]],["bowl-rice",["\uE2EB",!1]],["bowling-ball",["\uF436",!1]],["box",["\uF466",!1]],["box-archive",["\uF187",!1]],["box-open",["\uF49E",!1]],["box-tissue",["\uE05B",!1]],["boxes-packing",["\uE4C7",!1]],["boxes-stacked",["\uF468",!1]],["braille",["\uF2A1",!1]],["brain",["\uF5DC",!1]],["brazilian-real-sign",["\uE46C",!1]],["bread-slice",["\uF7EC",!1]],["bridge",["\uE4C8",!1]],["bridge-circle-check",["\uE4C9",!1]],["bridge-circle-exclamation",["\uE4CA",!1]],["bridge-circle-xmark",["\uE4CB",!1]],["bridge-lock",["\uE4CC",!1]],["bridge-water",["\uE4CE",!1]],["briefcase",["\uF0B1",!1]],["briefcase-medical",["\uF469",!1]],["broom",["\uF51A",!1]],["broom-ball",["\uF458",!1]],["brush",["\uF55D",!1]],["bucket",["\uE4CF",!1]],["bug",["\uF188",!1]],["bug-slash",["\uE490",!1]],["bugs",["\uE4D0",!1]],["building",["\uF1AD",!0]],["building-circle-arrow-right",["\uE4D1",!1]],["building-circle-check",["\uE4D2",!1]],["building-circle-exclamation",["\uE4D3",!1]],["building-circle-xmark",["\uE4D4",!1]],["building-columns",["\uF19C",!1]],["building-flag",["\uE4D5",!1]],["building-lock",["\uE4D6",!1]],["building-ngo",["\uE4D7",!1]],["building-shield",["\uE4D8",!1]],["building-un",["\uE4D9",!1]],["building-user",["\uE4DA",!1]],["building-wheat",["\uE4DB",!1]],["bullhorn",["\uF0A1",!1]],["bullseye",["\uF140",!1]],["burger",["\uF805",!1]],["burst",["\uE4DC",!1]],["bus",["\uF207",!1]],["bus-simple",["\uF55E",!1]],["business-time",["\uF64A",!1]],["c",["C",!1]],["cable-car",["\uF7DA",!1]],["cake-candles",["\uF1FD",!1]],["calculator",["\uF1EC",!1]],["calendar",["\uF133",!0]],["calendar-check",["\uF274",!0]],["calendar-day",["\uF783",!1]],["calendar-days",["\uF073",!0]],["calendar-minus",["\uF272",!0]],["calendar-plus",["\uF271",!0]],["calendar-week",["\uF784",!1]],["calendar-xmark",["\uF273",!0]],["camera",["\uF030",!1]],["camera-retro",["\uF083",!1]],["camera-rotate",["\uE0D8",!1]],["campground",["\uF6BB",!1]],["candy-cane",["\uF786",!1]],["cannabis",["\uF55F",!1]],["capsules",["\uF46B",!1]],["car",["\uF1B9",!1]],["car-battery",["\uF5DF",!1]],["car-burst",["\uF5E1",!1]],["car-on",["\uE4DD",!1]],["car-rear",["\uF5DE",!1]],["car-side",["\uF5E4",!1]],["car-tunnel",["\uE4DE",!1]],["caravan",["\uF8FF",!1]],["caret-down",["\uF0D7",!1]],["caret-left",["\uF0D9",!1]],["caret-right",["\uF0DA",!1]],["caret-up",["\uF0D8",!1]],["carrot",["\uF787",!1]],["cart-arrow-down",["\uF218",!1]],["cart-flatbed",["\uF474",!1]],["cart-flatbed-suitcase",["\uF59D",!1]],["cart-plus",["\uF217",!1]],["cart-shopping",["\uF07A",!1]],["cash-register",["\uF788",!1]],["cat",["\uF6BE",!1]],["cedi-sign",["\uE0DF",!1]],["cent-sign",["\uE3F5",!1]],["certificate",["\uF0A3",!1]],["chair",["\uF6C0",!1]],["chalkboard",["\uF51B",!1]],["chalkboard-user",["\uF51C",!1]],["champagne-glasses",["\uF79F",!1]],["charging-station",["\uF5E7",!1]],["chart-area",["\uF1FE",!1]],["chart-bar",["\uF080",!0]],["chart-column",["\uE0E3",!1]],["chart-gantt",["\uE0E4",!1]],["chart-line",["\uF201",!1]],["chart-pie",["\uF200",!1]],["chart-simple",["\uE473",!1]],["check",["\uF00C",!1]],["check-double",["\uF560",!1]],["check-to-slot",["\uF772",!1]],["cheese",["\uF7EF",!1]],["chess",["\uF439",!1]],["chess-bishop",["\uF43A",!0]],["chess-board",["\uF43C",!1]],["chess-king",["\uF43F",!0]],["chess-knight",["\uF441",!0]],["chess-pawn",["\uF443",!0]],["chess-queen",["\uF445",!0]],["chess-rook",["\uF447",!0]],["chevron-down",["\uF078",!1]],["chevron-left",["\uF053",!1]],["chevron-right",["\uF054",!1]],["chevron-up",["\uF077",!1]],["child",["\uF1AE",!1]],["child-combatant",["\uE4E0",!1]],["child-dress",["\uE59C",!1]],["child-reaching",["\uE59D",!1]],["children",["\uE4E1",!1]],["church",["\uF51D",!1]],["circle",["\uF111",!0]],["circle-arrow-down",["\uF0AB",!1]],["circle-arrow-left",["\uF0A8",!1]],["circle-arrow-right",["\uF0A9",!1]],["circle-arrow-up",["\uF0AA",!1]],["circle-check",["\uF058",!0]],["circle-chevron-down",["\uF13A",!1]],["circle-chevron-left",["\uF137",!1]],["circle-chevron-right",["\uF138",!1]],["circle-chevron-up",["\uF139",!1]],["circle-dollar-to-slot",["\uF4B9",!1]],["circle-dot",["\uF192",!0]],["circle-down",["\uF358",!0]],["circle-exclamation",["\uF06A",!1]],["circle-h",["\uF47E",!1]],["circle-half-stroke",["\uF042",!1]],["circle-info",["\uF05A",!1]],["circle-left",["\uF359",!0]],["circle-minus",["\uF056",!1]],["circle-nodes",["\uE4E2",!1]],["circle-notch",["\uF1CE",!1]],["circle-pause",["\uF28B",!0]],["circle-play",["\uF144",!0]],["circle-plus",["\uF055",!1]],["circle-question",["\uF059",!0]],["circle-radiation",["\uF7BA",!1]],["circle-right",["\uF35A",!0]],["circle-stop",["\uF28D",!0]],["circle-up",["\uF35B",!0]],["circle-user",["\uF2BD",!0]],["circle-xmark",["\uF057",!0]],["city",["\uF64F",!1]],["clapperboard",["\uE131",!1]],["clipboard",["\uF328",!0]],["clipboard-check",["\uF46C",!1]],["clipboard-list",["\uF46D",!1]],["clipboard-question",["\uE4E3",!1]],["clipboard-user",["\uF7F3",!1]],["clock",["\uF017",!0]],["clock-rotate-left",["\uF1DA",!1]],["clone",["\uF24D",!0]],["closed-captioning",["\uF20A",!0]],["cloud",["\uF0C2",!1]],["cloud-arrow-down",["\uF0ED",!1]],["cloud-arrow-up",["\uF0EE",!1]],["cloud-bolt",["\uF76C",!1]],["cloud-meatball",["\uF73B",!1]],["cloud-moon",["\uF6C3",!1]],["cloud-moon-rain",["\uF73C",!1]],["cloud-rain",["\uF73D",!1]],["cloud-showers-heavy",["\uF740",!1]],["cloud-showers-water",["\uE4E4",!1]],["cloud-sun",["\uF6C4",!1]],["cloud-sun-rain",["\uF743",!1]],["clover",["\uE139",!1]],["code",["\uF121",!1]],["code-branch",["\uF126",!1]],["code-commit",["\uF386",!1]],["code-compare",["\uE13A",!1]],["code-fork",["\uE13B",!1]],["code-merge",["\uF387",!1]],["code-pull-request",["\uE13C",!1]],["coins",["\uF51E",!1]],["colon-sign",["\uE140",!1]],["comment",["\uF075",!0]],["comment-dollar",["\uF651",!1]],["comment-dots",["\uF4AD",!0]],["comment-medical",["\uF7F5",!1]],["comment-slash",["\uF4B3",!1]],["comment-sms",["\uF7CD",!1]],["comments",["\uF086",!0]],["comments-dollar",["\uF653",!1]],["compact-disc",["\uF51F",!1]],["compass",["\uF14E",!0]],["compass-drafting",["\uF568",!1]],["compress",["\uF066",!1]],["computer",["\uE4E5",!1]],["computer-mouse",["\uF8CC",!1]],["cookie",["\uF563",!1]],["cookie-bite",["\uF564",!1]],["copy",["\uF0C5",!0]],["copyright",["\uF1F9",!0]],["couch",["\uF4B8",!1]],["cow",["\uF6C8",!1]],["credit-card",["\uF09D",!0]],["crop",["\uF125",!1]],["crop-simple",["\uF565",!1]],["cross",["\uF654",!1]],["crosshairs",["\uF05B",!1]],["crow",["\uF520",!1]],["crown",["\uF521",!1]],["crutch",["\uF7F7",!1]],["cruzeiro-sign",["\uE152",!1]],["cube",["\uF1B2",!1]],["cubes",["\uF1B3",!1]],["cubes-stacked",["\uE4E6",!1]],["d",["D",!1]],["database",["\uF1C0",!1]],["delete-left",["\uF55A",!1]],["democrat",["\uF747",!1]],["desktop",["\uF390",!1]],["dharmachakra",["\uF655",!1]],["diagram-next",["\uE476",!1]],["diagram-predecessor",["\uE477",!1]],["diagram-project",["\uF542",!1]],["diagram-successor",["\uE47A",!1]],["diamond",["\uF219",!1]],["diamond-turn-right",["\uF5EB",!1]],["dice",["\uF522",!1]],["dice-d20",["\uF6CF",!1]],["dice-d6",["\uF6D1",!1]],["dice-five",["\uF523",!1]],["dice-four",["\uF524",!1]],["dice-one",["\uF525",!1]],["dice-six",["\uF526",!1]],["dice-three",["\uF527",!1]],["dice-two",["\uF528",!1]],["disease",["\uF7FA",!1]],["display",["\uE163",!1]],["divide",["\uF529",!1]],["dna",["\uF471",!1]],["dog",["\uF6D3",!1]],["dollar-sign",["$",!1]],["dolly",["\uF472",!1]],["dong-sign",["\uE169",!1]],["door-closed",["\uF52A",!1]],["door-open",["\uF52B",!1]],["dove",["\uF4BA",!1]],["down-left-and-up-right-to-center",["\uF422",!1]],["down-long",["\uF309",!1]],["download",["\uF019",!1]],["dragon",["\uF6D5",!1]],["draw-polygon",["\uF5EE",!1]],["droplet",["\uF043",!1]],["droplet-slash",["\uF5C7",!1]],["drum",["\uF569",!1]],["drum-steelpan",["\uF56A",!1]],["drumstick-bite",["\uF6D7",!1]],["dumbbell",["\uF44B",!1]],["dumpster",["\uF793",!1]],["dumpster-fire",["\uF794",!1]],["dungeon",["\uF6D9",!1]],["e",["E",!1]],["ear-deaf",["\uF2A4",!1]],["ear-listen",["\uF2A2",!1]],["earth-africa",["\uF57C",!1]],["earth-americas",["\uF57D",!1]],["earth-asia",["\uF57E",!1]],["earth-europe",["\uF7A2",!1]],["earth-oceania",["\uE47B",!1]],["egg",["\uF7FB",!1]],["eject",["\uF052",!1]],["elevator",["\uE16D",!1]],["ellipsis",["\uF141",!1]],["ellipsis-vertical",["\uF142",!1]],["envelope",["\uF0E0",!0]],["envelope-circle-check",["\uE4E8",!1]],["envelope-open",["\uF2B6",!0]],["envelope-open-text",["\uF658",!1]],["envelopes-bulk",["\uF674",!1]],["equals",["=",!1]],["eraser",["\uF12D",!1]],["ethernet",["\uF796",!1]],["euro-sign",["\uF153",!1]],["exclamation",["!",!1]],["expand",["\uF065",!1]],["explosion",["\uE4E9",!1]],["eye",["\uF06E",!0]],["eye-dropper",["\uF1FB",!1]],["eye-low-vision",["\uF2A8",!1]],["eye-slash",["\uF070",!0]],["f",["F",!1]],["face-angry",["\uF556",!0]],["face-dizzy",["\uF567",!0]],["face-flushed",["\uF579",!0]],["face-frown",["\uF119",!0]],["face-frown-open",["\uF57A",!0]],["face-grimace",["\uF57F",!0]],["face-grin",["\uF580",!0]],["face-grin-beam",["\uF582",!0]],["face-grin-beam-sweat",["\uF583",!0]],["face-grin-hearts",["\uF584",!0]],["face-grin-squint",["\uF585",!0]],["face-grin-squint-tears",["\uF586",!0]],["face-grin-stars",["\uF587",!0]],["face-grin-tears",["\uF588",!0]],["face-grin-tongue",["\uF589",!0]],["face-grin-tongue-squint",["\uF58A",!0]],["face-grin-tongue-wink",["\uF58B",!0]],["face-grin-wide",["\uF581",!0]],["face-grin-wink",["\uF58C",!0]],["face-kiss",["\uF596",!0]],["face-kiss-beam",["\uF597",!0]],["face-kiss-wink-heart",["\uF598",!0]],["face-laugh",["\uF599",!0]],["face-laugh-beam",["\uF59A",!0]],["face-laugh-squint",["\uF59B",!0]],["face-laugh-wink",["\uF59C",!0]],["face-meh",["\uF11A",!0]],["face-meh-blank",["\uF5A4",!0]],["face-rolling-eyes",["\uF5A5",!0]],["face-sad-cry",["\uF5B3",!0]],["face-sad-tear",["\uF5B4",!0]],["face-smile",["\uF118",!0]],["face-smile-beam",["\uF5B8",!0]],["face-smile-wink",["\uF4DA",!0]],["face-surprise",["\uF5C2",!0]],["face-tired",["\uF5C8",!0]],["fan",["\uF863",!1]],["faucet",["\uE005",!1]],["faucet-drip",["\uE006",!1]],["fax",["\uF1AC",!1]],["feather",["\uF52D",!1]],["feather-pointed",["\uF56B",!1]],["ferry",["\uE4EA",!1]],["file",["\uF15B",!0]],["file-arrow-down",["\uF56D",!1]],["file-arrow-up",["\uF574",!1]],["file-audio",["\uF1C7",!0]],["file-circle-check",["\uE5A0",!1]],["file-circle-exclamation",["\uE4EB",!1]],["file-circle-minus",["\uE4ED",!1]],["file-circle-plus",["\uE494",!1]],["file-circle-question",["\uE4EF",!1]],["file-circle-xmark",["\uE5A1",!1]],["file-code",["\uF1C9",!0]],["file-contract",["\uF56C",!1]],["file-csv",["\uF6DD",!1]],["file-excel",["\uF1C3",!0]],["file-export",["\uF56E",!1]],["file-image",["\uF1C5",!0]],["file-import",["\uF56F",!1]],["file-invoice",["\uF570",!1]],["file-invoice-dollar",["\uF571",!1]],["file-lines",["\uF15C",!0]],["file-medical",["\uF477",!1]],["file-pdf",["\uF1C1",!0]],["file-pen",["\uF31C",!1]],["file-powerpoint",["\uF1C4",!0]],["file-prescription",["\uF572",!1]],["file-shield",["\uE4F0",!1]],["file-signature",["\uF573",!1]],["file-video",["\uF1C8",!0]],["file-waveform",["\uF478",!1]],["file-word",["\uF1C2",!0]],["file-zipper",["\uF1C6",!0]],["fill",["\uF575",!1]],["fill-drip",["\uF576",!1]],["film",["\uF008",!1]],["filter",["\uF0B0",!1]],["filter-circle-dollar",["\uF662",!1]],["filter-circle-xmark",["\uE17B",!1]],["fingerprint",["\uF577",!1]],["fire",["\uF06D",!1]],["fire-burner",["\uE4F1",!1]],["fire-extinguisher",["\uF134",!1]],["fire-flame-curved",["\uF7E4",!1]],["fire-flame-simple",["\uF46A",!1]],["fish",["\uF578",!1]],["fish-fins",["\uE4F2",!1]],["flag",["\uF024",!0]],["flag-checkered",["\uF11E",!1]],["flag-usa",["\uF74D",!1]],["flask",["\uF0C3",!1]],["flask-vial",["\uE4F3",!1]],["floppy-disk",["\uF0C7",!0]],["florin-sign",["\uE184",!1]],["folder",["\uF07B",!0]],["folder-closed",["\uE185",!0]],["folder-minus",["\uF65D",!1]],["folder-open",["\uF07C",!0]],["folder-plus",["\uF65E",!1]],["folder-tree",["\uF802",!1]],["font",["\uF031",!1]],["football",["\uF44E",!1]],["forward",["\uF04E",!1]],["forward-fast",["\uF050",!1]],["forward-step",["\uF051",!1]],["franc-sign",["\uE18F",!1]],["frog",["\uF52E",!1]],["futbol",["\uF1E3",!0]],["g",["G",!1]],["gamepad",["\uF11B",!1]],["gas-pump",["\uF52F",!1]],["gauge",["\uF624",!1]],["gauge-high",["\uF625",!1]],["gauge-simple",["\uF629",!1]],["gauge-simple-high",["\uF62A",!1]],["gavel",["\uF0E3",!1]],["gear",["\uF013",!1]],["gears",["\uF085",!1]],["gem",["\uF3A5",!0]],["genderless",["\uF22D",!1]],["ghost",["\uF6E2",!1]],["gift",["\uF06B",!1]],["gifts",["\uF79C",!1]],["glass-water",["\uE4F4",!1]],["glass-water-droplet",["\uE4F5",!1]],["glasses",["\uF530",!1]],["globe",["\uF0AC",!1]],["golf-ball-tee",["\uF450",!1]],["gopuram",["\uF664",!1]],["graduation-cap",["\uF19D",!1]],["greater-than",[">",!1]],["greater-than-equal",["\uF532",!1]],["grip",["\uF58D",!1]],["grip-lines",["\uF7A4",!1]],["grip-lines-vertical",["\uF7A5",!1]],["grip-vertical",["\uF58E",!1]],["group-arrows-rotate",["\uE4F6",!1]],["guarani-sign",["\uE19A",!1]],["guitar",["\uF7A6",!1]],["gun",["\uE19B",!1]],["h",["H",!1]],["hammer",["\uF6E3",!1]],["hamsa",["\uF665",!1]],["hand",["\uF256",!0]],["hand-back-fist",["\uF255",!0]],["hand-dots",["\uF461",!1]],["hand-fist",["\uF6DE",!1]],["hand-holding",["\uF4BD",!1]],["hand-holding-dollar",["\uF4C0",!1]],["hand-holding-droplet",["\uF4C1",!1]],["hand-holding-hand",["\uE4F7",!1]],["hand-holding-heart",["\uF4BE",!1]],["hand-holding-medical",["\uE05C",!1]],["hand-lizard",["\uF258",!0]],["hand-middle-finger",["\uF806",!1]],["hand-peace",["\uF25B",!0]],["hand-point-down",["\uF0A7",!0]],["hand-point-left",["\uF0A5",!0]],["hand-point-right",["\uF0A4",!0]],["hand-point-up",["\uF0A6",!0]],["hand-pointer",["\uF25A",!0]],["hand-scissors",["\uF257",!0]],["hand-sparkles",["\uE05D",!1]],["hand-spock",["\uF259",!0]],["handcuffs",["\uE4F8",!1]],["hands",["\uF2A7",!1]],["hands-asl-interpreting",["\uF2A3",!1]],["hands-bound",["\uE4F9",!1]],["hands-bubbles",["\uE05E",!1]],["hands-clapping",["\uE1A8",!1]],["hands-holding",["\uF4C2",!1]],["hands-holding-child",["\uE4FA",!1]],["hands-holding-circle",["\uE4FB",!1]],["hands-praying",["\uF684",!1]],["handshake",["\uF2B5",!0]],["handshake-angle",["\uF4C4",!1]],["handshake-simple",["\uF4C6",!1]],["handshake-simple-slash",["\uE05F",!1]],["handshake-slash",["\uE060",!1]],["hanukiah",["\uF6E6",!1]],["hard-drive",["\uF0A0",!0]],["hashtag",["#",!1]],["hat-cowboy",["\uF8C0",!1]],["hat-cowboy-side",["\uF8C1",!1]],["hat-wizard",["\uF6E8",!1]],["head-side-cough",["\uE061",!1]],["head-side-cough-slash",["\uE062",!1]],["head-side-mask",["\uE063",!1]],["head-side-virus",["\uE064",!1]],["heading",["\uF1DC",!1]],["headphones",["\uF025",!1]],["headphones-simple",["\uF58F",!1]],["headset",["\uF590",!1]],["heart",["\uF004",!0]],["heart-circle-bolt",["\uE4FC",!1]],["heart-circle-check",["\uE4FD",!1]],["heart-circle-exclamation",["\uE4FE",!1]],["heart-circle-minus",["\uE4FF",!1]],["heart-circle-plus",["\uE500",!1]],["heart-circle-xmark",["\uE501",!1]],["heart-crack",["\uF7A9",!1]],["heart-pulse",["\uF21E",!1]],["helicopter",["\uF533",!1]],["helicopter-symbol",["\uE502",!1]],["helmet-safety",["\uF807",!1]],["helmet-un",["\uE503",!1]],["highlighter",["\uF591",!1]],["hill-avalanche",["\uE507",!1]],["hill-rockslide",["\uE508",!1]],["hippo",["\uF6ED",!1]],["hockey-puck",["\uF453",!1]],["holly-berry",["\uF7AA",!1]],["horse",["\uF6F0",!1]],["horse-head",["\uF7AB",!1]],["hospital",["\uF0F8",!0]],["hospital-user",["\uF80D",!1]],["hot-tub-person",["\uF593",!1]],["hotdog",["\uF80F",!1]],["hotel",["\uF594",!1]],["hourglass",["\uF254",!0]],["hourglass-end",["\uF253",!1]],["hourglass-half",["\uF252",!0]],["hourglass-start",["\uF251",!1]],["house",["\uF015",!1]],["house-chimney",["\uE3AF",!1]],["house-chimney-crack",["\uF6F1",!1]],["house-chimney-medical",["\uF7F2",!1]],["house-chimney-user",["\uE065",!1]],["house-chimney-window",["\uE00D",!1]],["house-circle-check",["\uE509",!1]],["house-circle-exclamation",["\uE50A",!1]],["house-circle-xmark",["\uE50B",!1]],["house-crack",["\uE3B1",!1]],["house-fire",["\uE50C",!1]],["house-flag",["\uE50D",!1]],["house-flood-water",["\uE50E",!1]],["house-flood-water-circle-arrow-right",["\uE50F",!1]],["house-laptop",["\uE066",!1]],["house-lock",["\uE510",!1]],["house-medical",["\uE3B2",!1]],["house-medical-circle-check",["\uE511",!1]],["house-medical-circle-exclamation",["\uE512",!1]],["house-medical-circle-xmark",["\uE513",!1]],["house-medical-flag",["\uE514",!1]],["house-signal",["\uE012",!1]],["house-tsunami",["\uE515",!1]],["house-user",["\uE1B0",!1]],["hryvnia-sign",["\uF6F2",!1]],["hurricane",["\uF751",!1]],["i",["I",!1]],["i-cursor",["\uF246",!1]],["ice-cream",["\uF810",!1]],["icicles",["\uF7AD",!1]],["icons",["\uF86D",!1]],["id-badge",["\uF2C1",!0]],["id-card",["\uF2C2",!0]],["id-card-clip",["\uF47F",!1]],["igloo",["\uF7AE",!1]],["image",["\uF03E",!0]],["image-portrait",["\uF3E0",!1]],["images",["\uF302",!0]],["inbox",["\uF01C",!1]],["indent",["\uF03C",!1]],["indian-rupee-sign",["\uE1BC",!1]],["industry",["\uF275",!1]],["infinity",["\uF534",!1]],["info",["\uF129",!1]],["italic",["\uF033",!1]],["j",["J",!1]],["jar",["\uE516",!1]],["jar-wheat",["\uE517",!1]],["jedi",["\uF669",!1]],["jet-fighter",["\uF0FB",!1]],["jet-fighter-up",["\uE518",!1]],["joint",["\uF595",!1]],["jug-detergent",["\uE519",!1]],["k",["K",!1]],["kaaba",["\uF66B",!1]],["key",["\uF084",!1]],["keyboard",["\uF11C",!0]],["khanda",["\uF66D",!1]],["kip-sign",["\uE1C4",!1]],["kit-medical",["\uF479",!1]],["kitchen-set",["\uE51A",!1]],["kiwi-bird",["\uF535",!1]],["l",["L",!1]],["land-mine-on",["\uE51B",!1]],["landmark",["\uF66F",!1]],["landmark-dome",["\uF752",!1]],["landmark-flag",["\uE51C",!1]],["language",["\uF1AB",!1]],["laptop",["\uF109",!1]],["laptop-code",["\uF5FC",!1]],["laptop-file",["\uE51D",!1]],["laptop-medical",["\uF812",!1]],["lari-sign",["\uE1C8",!1]],["layer-group",["\uF5FD",!1]],["leaf",["\uF06C",!1]],["left-long",["\uF30A",!1]],["left-right",["\uF337",!1]],["lemon",["\uF094",!0]],["less-than",["<",!1]],["less-than-equal",["\uF537",!1]],["life-ring",["\uF1CD",!0]],["lightbulb",["\uF0EB",!0]],["lines-leaning",["\uE51E",!1]],["link",["\uF0C1",!1]],["link-slash",["\uF127",!1]],["lira-sign",["\uF195",!1]],["list",["\uF03A",!1]],["list-check",["\uF0AE",!1]],["list-ol",["\uF0CB",!1]],["list-ul",["\uF0CA",!1]],["litecoin-sign",["\uE1D3",!1]],["location-arrow",["\uF124",!1]],["location-crosshairs",["\uF601",!1]],["location-dot",["\uF3C5",!1]],["location-pin",["\uF041",!1]],["location-pin-lock",["\uE51F",!1]],["lock",["\uF023",!1]],["lock-open",["\uF3C1",!1]],["locust",["\uE520",!1]],["lungs",["\uF604",!1]],["lungs-virus",["\uE067",!1]],["m",["M",!1]],["magnet",["\uF076",!1]],["magnifying-glass",["\uF002",!1]],["magnifying-glass-arrow-right",["\uE521",!1]],["magnifying-glass-chart",["\uE522",!1]],["magnifying-glass-dollar",["\uF688",!1]],["magnifying-glass-location",["\uF689",!1]],["magnifying-glass-minus",["\uF010",!1]],["magnifying-glass-plus",["\uF00E",!1]],["manat-sign",["\uE1D5",!1]],["map",["\uF279",!0]],["map-location",["\uF59F",!1]],["map-location-dot",["\uF5A0",!1]],["map-pin",["\uF276",!1]],["marker",["\uF5A1",!1]],["mars",["\uF222",!1]],["mars-and-venus",["\uF224",!1]],["mars-and-venus-burst",["\uE523",!1]],["mars-double",["\uF227",!1]],["mars-stroke",["\uF229",!1]],["mars-stroke-right",["\uF22B",!1]],["mars-stroke-up",["\uF22A",!1]],["martini-glass",["\uF57B",!1]],["martini-glass-citrus",["\uF561",!1]],["martini-glass-empty",["\uF000",!1]],["mask",["\uF6FA",!1]],["mask-face",["\uE1D7",!1]],["mask-ventilator",["\uE524",!1]],["masks-theater",["\uF630",!1]],["mattress-pillow",["\uE525",!1]],["maximize",["\uF31E",!1]],["medal",["\uF5A2",!1]],["memory",["\uF538",!1]],["menorah",["\uF676",!1]],["mercury",["\uF223",!1]],["message",["\uF27A",!0]],["meteor",["\uF753",!1]],["microchip",["\uF2DB",!1]],["microphone",["\uF130",!1]],["microphone-lines",["\uF3C9",!1]],["microphone-lines-slash",["\uF539",!1]],["microphone-slash",["\uF131",!1]],["microscope",["\uF610",!1]],["mill-sign",["\uE1ED",!1]],["minimize",["\uF78C",!1]],["minus",["\uF068",!1]],["mitten",["\uF7B5",!1]],["mobile",["\uF3CE",!1]],["mobile-button",["\uF10B",!1]],["mobile-retro",["\uE527",!1]],["mobile-screen",["\uF3CF",!1]],["mobile-screen-button",["\uF3CD",!1]],["money-bill",["\uF0D6",!1]],["money-bill-1",["\uF3D1",!0]],["money-bill-1-wave",["\uF53B",!1]],["money-bill-transfer",["\uE528",!1]],["money-bill-trend-up",["\uE529",!1]],["money-bill-wave",["\uF53A",!1]],["money-bill-wheat",["\uE52A",!1]],["money-bills",["\uE1F3",!1]],["money-check",["\uF53C",!1]],["money-check-dollar",["\uF53D",!1]],["monument",["\uF5A6",!1]],["moon",["\uF186",!0]],["mortar-pestle",["\uF5A7",!1]],["mosque",["\uF678",!1]],["mosquito",["\uE52B",!1]],["mosquito-net",["\uE52C",!1]],["motorcycle",["\uF21C",!1]],["mound",["\uE52D",!1]],["mountain",["\uF6FC",!1]],["mountain-city",["\uE52E",!1]],["mountain-sun",["\uE52F",!1]],["mug-hot",["\uF7B6",!1]],["mug-saucer",["\uF0F4",!1]],["music",["\uF001",!1]],["n",["N",!1]],["naira-sign",["\uE1F6",!1]],["network-wired",["\uF6FF",!1]],["neuter",["\uF22C",!1]],["newspaper",["\uF1EA",!0]],["not-equal",["\uF53E",!1]],["notdef",["\uE1FE",!1]],["note-sticky",["\uF249",!0]],["notes-medical",["\uF481",!1]],["o",["O",!1]],["object-group",["\uF247",!0]],["object-ungroup",["\uF248",!0]],["oil-can",["\uF613",!1]],["oil-well",["\uE532",!1]],["om",["\uF679",!1]],["otter",["\uF700",!1]],["outdent",["\uF03B",!1]],["p",["P",!1]],["pager",["\uF815",!1]],["paint-roller",["\uF5AA",!1]],["paintbrush",["\uF1FC",!1]],["palette",["\uF53F",!1]],["pallet",["\uF482",!1]],["panorama",["\uE209",!1]],["paper-plane",["\uF1D8",!0]],["paperclip",["\uF0C6",!1]],["parachute-box",["\uF4CD",!1]],["paragraph",["\uF1DD",!1]],["passport",["\uF5AB",!1]],["paste",["\uF0EA",!0]],["pause",["\uF04C",!1]],["paw",["\uF1B0",!1]],["peace",["\uF67C",!1]],["pen",["\uF304",!1]],["pen-clip",["\uF305",!1]],["pen-fancy",["\uF5AC",!1]],["pen-nib",["\uF5AD",!1]],["pen-ruler",["\uF5AE",!1]],["pen-to-square",["\uF044",!0]],["pencil",["\uF303",!1]],["people-arrows",["\uE068",!1]],["people-carry-box",["\uF4CE",!1]],["people-group",["\uE533",!1]],["people-line",["\uE534",!1]],["people-pulling",["\uE535",!1]],["people-robbery",["\uE536",!1]],["people-roof",["\uE537",!1]],["pepper-hot",["\uF816",!1]],["percent",["%",!1]],["person",["\uF183",!1]],["person-arrow-down-to-line",["\uE538",!1]],["person-arrow-up-from-line",["\uE539",!1]],["person-biking",["\uF84A",!1]],["person-booth",["\uF756",!1]],["person-breastfeeding",["\uE53A",!1]],["person-burst",["\uE53B",!1]],["person-cane",["\uE53C",!1]],["person-chalkboard",["\uE53D",!1]],["person-circle-check",["\uE53E",!1]],["person-circle-exclamation",["\uE53F",!1]],["person-circle-minus",["\uE540",!1]],["person-circle-plus",["\uE541",!1]],["person-circle-question",["\uE542",!1]],["person-circle-xmark",["\uE543",!1]],["person-digging",["\uF85E",!1]],["person-dots-from-line",["\uF470",!1]],["person-dress",["\uF182",!1]],["person-dress-burst",["\uE544",!1]],["person-drowning",["\uE545",!1]],["person-falling",["\uE546",!1]],["person-falling-burst",["\uE547",!1]],["person-half-dress",["\uE548",!1]],["person-harassing",["\uE549",!1]],["person-hiking",["\uF6EC",!1]],["person-military-pointing",["\uE54A",!1]],["person-military-rifle",["\uE54B",!1]],["person-military-to-person",["\uE54C",!1]],["person-praying",["\uF683",!1]],["person-pregnant",["\uE31E",!1]],["person-rays",["\uE54D",!1]],["person-rifle",["\uE54E",!1]],["person-running",["\uF70C",!1]],["person-shelter",["\uE54F",!1]],["person-skating",["\uF7C5",!1]],["person-skiing",["\uF7C9",!1]],["person-skiing-nordic",["\uF7CA",!1]],["person-snowboarding",["\uF7CE",!1]],["person-swimming",["\uF5C4",!1]],["person-through-window",["\uE5A9",!1]],["person-walking",["\uF554",!1]],["person-walking-arrow-loop-left",["\uE551",!1]],["person-walking-arrow-right",["\uE552",!1]],["person-walking-dashed-line-arrow-right",["\uE553",!1]],["person-walking-luggage",["\uE554",!1]],["person-walking-with-cane",["\uF29D",!1]],["peseta-sign",["\uE221",!1]],["peso-sign",["\uE222",!1]],["phone",["\uF095",!1]],["phone-flip",["\uF879",!1]],["phone-slash",["\uF3DD",!1]],["phone-volume",["\uF2A0",!1]],["photo-film",["\uF87C",!1]],["piggy-bank",["\uF4D3",!1]],["pills",["\uF484",!1]],["pizza-slice",["\uF818",!1]],["place-of-worship",["\uF67F",!1]],["plane",["\uF072",!1]],["plane-arrival",["\uF5AF",!1]],["plane-circle-check",["\uE555",!1]],["plane-circle-exclamation",["\uE556",!1]],["plane-circle-xmark",["\uE557",!1]],["plane-departure",["\uF5B0",!1]],["plane-lock",["\uE558",!1]],["plane-slash",["\uE069",!1]],["plane-up",["\uE22D",!1]],["plant-wilt",["\uE5AA",!1]],["plate-wheat",["\uE55A",!1]],["play",["\uF04B",!1]],["plug",["\uF1E6",!1]],["plug-circle-bolt",["\uE55B",!1]],["plug-circle-check",["\uE55C",!1]],["plug-circle-exclamation",["\uE55D",!1]],["plug-circle-minus",["\uE55E",!1]],["plug-circle-plus",["\uE55F",!1]],["plug-circle-xmark",["\uE560",!1]],["plus",["+",!1]],["plus-minus",["\uE43C",!1]],["podcast",["\uF2CE",!1]],["poo",["\uF2FE",!1]],["poo-storm",["\uF75A",!1]],["poop",["\uF619",!1]],["power-off",["\uF011",!1]],["prescription",["\uF5B1",!1]],["prescription-bottle",["\uF485",!1]],["prescription-bottle-medical",["\uF486",!1]],["print",["\uF02F",!1]],["pump-medical",["\uE06A",!1]],["pump-soap",["\uE06B",!1]],["puzzle-piece",["\uF12E",!1]],["q",["Q",!1]],["qrcode",["\uF029",!1]],["question",["?",!1]],["quote-left",["\uF10D",!1]],["quote-right",["\uF10E",!1]],["r",["R",!1]],["radiation",["\uF7B9",!1]],["radio",["\uF8D7",!1]],["rainbow",["\uF75B",!1]],["ranking-star",["\uE561",!1]],["receipt",["\uF543",!1]],["record-vinyl",["\uF8D9",!1]],["rectangle-ad",["\uF641",!1]],["rectangle-list",["\uF022",!0]],["rectangle-xmark",["\uF410",!0]],["recycle",["\uF1B8",!1]],["registered",["\uF25D",!0]],["repeat",["\uF363",!1]],["reply",["\uF3E5",!1]],["reply-all",["\uF122",!1]],["republican",["\uF75E",!1]],["restroom",["\uF7BD",!1]],["retweet",["\uF079",!1]],["ribbon",["\uF4D6",!1]],["right-from-bracket",["\uF2F5",!1]],["right-left",["\uF362",!1]],["right-long",["\uF30B",!1]],["right-to-bracket",["\uF2F6",!1]],["ring",["\uF70B",!1]],["road",["\uF018",!1]],["road-barrier",["\uE562",!1]],["road-bridge",["\uE563",!1]],["road-circle-check",["\uE564",!1]],["road-circle-exclamation",["\uE565",!1]],["road-circle-xmark",["\uE566",!1]],["road-lock",["\uE567",!1]],["road-spikes",["\uE568",!1]],["robot",["\uF544",!1]],["rocket",["\uF135",!1]],["rotate",["\uF2F1",!1]],["rotate-left",["\uF2EA",!1]],["rotate-right",["\uF2F9",!1]],["route",["\uF4D7",!1]],["rss",["\uF09E",!1]],["ruble-sign",["\uF158",!1]],["rug",["\uE569",!1]],["ruler",["\uF545",!1]],["ruler-combined",["\uF546",!1]],["ruler-horizontal",["\uF547",!1]],["ruler-vertical",["\uF548",!1]],["rupee-sign",["\uF156",!1]],["rupiah-sign",["\uE23D",!1]],["s",["S",!1]],["sack-dollar",["\uF81D",!1]],["sack-xmark",["\uE56A",!1]],["sailboat",["\uE445",!1]],["satellite",["\uF7BF",!1]],["satellite-dish",["\uF7C0",!1]],["scale-balanced",["\uF24E",!1]],["scale-unbalanced",["\uF515",!1]],["scale-unbalanced-flip",["\uF516",!1]],["school",["\uF549",!1]],["school-circle-check",["\uE56B",!1]],["school-circle-exclamation",["\uE56C",!1]],["school-circle-xmark",["\uE56D",!1]],["school-flag",["\uE56E",!1]],["school-lock",["\uE56F",!1]],["scissors",["\uF0C4",!1]],["screwdriver",["\uF54A",!1]],["screwdriver-wrench",["\uF7D9",!1]],["scroll",["\uF70E",!1]],["scroll-torah",["\uF6A0",!1]],["sd-card",["\uF7C2",!1]],["section",["\uE447",!1]],["seedling",["\uF4D8",!1]],["server",["\uF233",!1]],["shapes",["\uF61F",!1]],["share",["\uF064",!1]],["share-from-square",["\uF14D",!0]],["share-nodes",["\uF1E0",!1]],["sheet-plastic",["\uE571",!1]],["shekel-sign",["\uF20B",!1]],["shield",["\uF132",!1]],["shield-cat",["\uE572",!1]],["shield-dog",["\uE573",!1]],["shield-halved",["\uF3ED",!1]],["shield-heart",["\uE574",!1]],["shield-virus",["\uE06C",!1]],["ship",["\uF21A",!1]],["shirt",["\uF553",!1]],["shoe-prints",["\uF54B",!1]],["shop",["\uF54F",!1]],["shop-lock",["\uE4A5",!1]],["shop-slash",["\uE070",!1]],["shower",["\uF2CC",!1]],["shrimp",["\uE448",!1]],["shuffle",["\uF074",!1]],["shuttle-space",["\uF197",!1]],["sign-hanging",["\uF4D9",!1]],["signal",["\uF012",!1]],["signature",["\uF5B7",!1]],["signs-post",["\uF277",!1]],["sim-card",["\uF7C4",!1]],["sink",["\uE06D",!1]],["sitemap",["\uF0E8",!1]],["skull",["\uF54C",!1]],["skull-crossbones",["\uF714",!1]],["slash",["\uF715",!1]],["sleigh",["\uF7CC",!1]],["sliders",["\uF1DE",!1]],["smog",["\uF75F",!1]],["smoking",["\uF48D",!1]],["snowflake",["\uF2DC",!0]],["snowman",["\uF7D0",!1]],["snowplow",["\uF7D2",!1]],["soap",["\uE06E",!1]],["socks",["\uF696",!1]],["solar-panel",["\uF5BA",!1]],["sort",["\uF0DC",!1]],["sort-down",["\uF0DD",!1]],["sort-up",["\uF0DE",!1]],["spa",["\uF5BB",!1]],["spaghetti-monster-flying",["\uF67B",!1]],["spell-check",["\uF891",!1]],["spider",["\uF717",!1]],["spinner",["\uF110",!1]],["splotch",["\uF5BC",!1]],["spoon",["\uF2E5",!1]],["spray-can",["\uF5BD",!1]],["spray-can-sparkles",["\uF5D0",!1]],["square",["\uF0C8",!0]],["square-arrow-up-right",["\uF14C",!1]],["square-caret-down",["\uF150",!0]],["square-caret-left",["\uF191",!0]],["square-caret-right",["\uF152",!0]],["square-caret-up",["\uF151",!0]],["square-check",["\uF14A",!0]],["square-envelope",["\uF199",!1]],["square-full",["\uF45C",!0]],["square-h",["\uF0FD",!1]],["square-minus",["\uF146",!0]],["square-nfi",["\uE576",!1]],["square-parking",["\uF540",!1]],["square-pen",["\uF14B",!1]],["square-person-confined",["\uE577",!1]],["square-phone",["\uF098",!1]],["square-phone-flip",["\uF87B",!1]],["square-plus",["\uF0FE",!0]],["square-poll-horizontal",["\uF682",!1]],["square-poll-vertical",["\uF681",!1]],["square-root-variable",["\uF698",!1]],["square-rss",["\uF143",!1]],["square-share-nodes",["\uF1E1",!1]],["square-up-right",["\uF360",!1]],["square-virus",["\uE578",!1]],["square-xmark",["\uF2D3",!1]],["staff-snake",["\uE579",!1]],["stairs",["\uE289",!1]],["stamp",["\uF5BF",!1]],["stapler",["\uE5AF",!1]],["star",["\uF005",!0]],["star-and-crescent",["\uF699",!1]],["star-half",["\uF089",!0]],["star-half-stroke",["\uF5C0",!0]],["star-of-david",["\uF69A",!1]],["star-of-life",["\uF621",!1]],["sterling-sign",["\uF154",!1]],["stethoscope",["\uF0F1",!1]],["stop",["\uF04D",!1]],["stopwatch",["\uF2F2",!1]],["stopwatch-20",["\uE06F",!1]],["store",["\uF54E",!1]],["store-slash",["\uE071",!1]],["street-view",["\uF21D",!1]],["strikethrough",["\uF0CC",!1]],["stroopwafel",["\uF551",!1]],["subscript",["\uF12C",!1]],["suitcase",["\uF0F2",!1]],["suitcase-medical",["\uF0FA",!1]],["suitcase-rolling",["\uF5C1",!1]],["sun",["\uF185",!0]],["sun-plant-wilt",["\uE57A",!1]],["superscript",["\uF12B",!1]],["swatchbook",["\uF5C3",!1]],["synagogue",["\uF69B",!1]],["syringe",["\uF48E",!1]],["t",["T",!1]],["table",["\uF0CE",!1]],["table-cells",["\uF00A",!1]],["table-cells-large",["\uF009",!1]],["table-columns",["\uF0DB",!1]],["table-list",["\uF00B",!1]],["table-tennis-paddle-ball",["\uF45D",!1]],["tablet",["\uF3FB",!1]],["tablet-button",["\uF10A",!1]],["tablet-screen-button",["\uF3FA",!1]],["tablets",["\uF490",!1]],["tachograph-digital",["\uF566",!1]],["tag",["\uF02B",!1]],["tags",["\uF02C",!1]],["tape",["\uF4DB",!1]],["tarp",["\uE57B",!1]],["tarp-droplet",["\uE57C",!1]],["taxi",["\uF1BA",!1]],["teeth",["\uF62E",!1]],["teeth-open",["\uF62F",!1]],["temperature-arrow-down",["\uE03F",!1]],["temperature-arrow-up",["\uE040",!1]],["temperature-empty",["\uF2CB",!1]],["temperature-full",["\uF2C7",!1]],["temperature-half",["\uF2C9",!1]],["temperature-high",["\uF769",!1]],["temperature-low",["\uF76B",!1]],["temperature-quarter",["\uF2CA",!1]],["temperature-three-quarters",["\uF2C8",!1]],["tenge-sign",["\uF7D7",!1]],["tent",["\uE57D",!1]],["tent-arrow-down-to-line",["\uE57E",!1]],["tent-arrow-left-right",["\uE57F",!1]],["tent-arrow-turn-left",["\uE580",!1]],["tent-arrows-down",["\uE581",!1]],["tents",["\uE582",!1]],["terminal",["\uF120",!1]],["text-height",["\uF034",!1]],["text-slash",["\uF87D",!1]],["text-width",["\uF035",!1]],["thermometer",["\uF491",!1]],["thumbs-down",["\uF165",!0]],["thumbs-up",["\uF164",!0]],["thumbtack",["\uF08D",!1]],["ticket",["\uF145",!1]],["ticket-simple",["\uF3FF",!1]],["timeline",["\uE29C",!1]],["toggle-off",["\uF204",!1]],["toggle-on",["\uF205",!1]],["toilet",["\uF7D8",!1]],["toilet-paper",["\uF71E",!1]],["toilet-paper-slash",["\uE072",!1]],["toilet-portable",["\uE583",!1]],["toilets-portable",["\uE584",!1]],["toolbox",["\uF552",!1]],["tooth",["\uF5C9",!1]],["torii-gate",["\uF6A1",!1]],["tornado",["\uF76F",!1]],["tower-broadcast",["\uF519",!1]],["tower-cell",["\uE585",!1]],["tower-observation",["\uE586",!1]],["tractor",["\uF722",!1]],["trademark",["\uF25C",!1]],["traffic-light",["\uF637",!1]],["trailer",["\uE041",!1]],["train",["\uF238",!1]],["train-subway",["\uF239",!1]],["train-tram",["\uE5B4",!1]],["transgender",["\uF225",!1]],["trash",["\uF1F8",!1]],["trash-arrow-up",["\uF829",!1]],["trash-can",["\uF2ED",!0]],["trash-can-arrow-up",["\uF82A",!1]],["tree",["\uF1BB",!1]],["tree-city",["\uE587",!1]],["triangle-exclamation",["\uF071",!1]],["trophy",["\uF091",!1]],["trowel",["\uE589",!1]],["trowel-bricks",["\uE58A",!1]],["truck",["\uF0D1",!1]],["truck-arrow-right",["\uE58B",!1]],["truck-droplet",["\uE58C",!1]],["truck-fast",["\uF48B",!1]],["truck-field",["\uE58D",!1]],["truck-field-un",["\uE58E",!1]],["truck-front",["\uE2B7",!1]],["truck-medical",["\uF0F9",!1]],["truck-monster",["\uF63B",!1]],["truck-moving",["\uF4DF",!1]],["truck-pickup",["\uF63C",!1]],["truck-plane",["\uE58F",!1]],["truck-ramp-box",["\uF4DE",!1]],["tty",["\uF1E4",!1]],["turkish-lira-sign",["\uE2BB",!1]],["turn-down",["\uF3BE",!1]],["turn-up",["\uF3BF",!1]],["tv",["\uF26C",!1]],["u",["U",!1]],["umbrella",["\uF0E9",!1]],["umbrella-beach",["\uF5CA",!1]],["underline",["\uF0CD",!1]],["universal-access",["\uF29A",!1]],["unlock",["\uF09C",!1]],["unlock-keyhole",["\uF13E",!1]],["up-down",["\uF338",!1]],["up-down-left-right",["\uF0B2",!1]],["up-long",["\uF30C",!1]],["up-right-and-down-left-from-center",["\uF424",!1]],["up-right-from-square",["\uF35D",!1]],["upload",["\uF093",!1]],["user",["\uF007",!0]],["user-astronaut",["\uF4FB",!1]],["user-check",["\uF4FC",!1]],["user-clock",["\uF4FD",!1]],["user-doctor",["\uF0F0",!1]],["user-gear",["\uF4FE",!1]],["user-graduate",["\uF501",!1]],["user-group",["\uF500",!1]],["user-injured",["\uF728",!1]],["user-large",["\uF406",!1]],["user-large-slash",["\uF4FA",!1]],["user-lock",["\uF502",!1]],["user-minus",["\uF503",!1]],["user-ninja",["\uF504",!1]],["user-nurse",["\uF82F",!1]],["user-pen",["\uF4FF",!1]],["user-plus",["\uF234",!1]],["user-secret",["\uF21B",!1]],["user-shield",["\uF505",!1]],["user-slash",["\uF506",!1]],["user-tag",["\uF507",!1]],["user-tie",["\uF508",!1]],["user-xmark",["\uF235",!1]],["users",["\uF0C0",!1]],["users-between-lines",["\uE591",!1]],["users-gear",["\uF509",!1]],["users-line",["\uE592",!1]],["users-rays",["\uE593",!1]],["users-rectangle",["\uE594",!1]],["users-slash",["\uE073",!1]],["users-viewfinder",["\uE595",!1]],["utensils",["\uF2E7",!1]],["v",["V",!1]],["van-shuttle",["\uF5B6",!1]],["vault",["\uE2C5",!1]],["vector-square",["\uF5CB",!1]],["venus",["\uF221",!1]],["venus-double",["\uF226",!1]],["venus-mars",["\uF228",!1]],["vest",["\uE085",!1]],["vest-patches",["\uE086",!1]],["vial",["\uF492",!1]],["vial-circle-check",["\uE596",!1]],["vial-virus",["\uE597",!1]],["vials",["\uF493",!1]],["video",["\uF03D",!1]],["video-slash",["\uF4E2",!1]],["vihara",["\uF6A7",!1]],["virus",["\uE074",!1]],["virus-covid",["\uE4A8",!1]],["virus-covid-slash",["\uE4A9",!1]],["virus-slash",["\uE075",!1]],["viruses",["\uE076",!1]],["voicemail",["\uF897",!1]],["volcano",["\uF770",!1]],["volleyball",["\uF45F",!1]],["volume-high",["\uF028",!1]],["volume-low",["\uF027",!1]],["volume-off",["\uF026",!1]],["volume-xmark",["\uF6A9",!1]],["vr-cardboard",["\uF729",!1]],["w",["W",!1]],["walkie-talkie",["\uF8EF",!1]],["wallet",["\uF555",!1]],["wand-magic",["\uF0D0",!1]],["wand-magic-sparkles",["\uE2CA",!1]],["wand-sparkles",["\uF72B",!1]],["warehouse",["\uF494",!1]],["water",["\uF773",!1]],["water-ladder",["\uF5C5",!1]],["wave-square",["\uF83E",!1]],["weight-hanging",["\uF5CD",!1]],["weight-scale",["\uF496",!1]],["wheat-awn",["\uE2CD",!1]],["wheat-awn-circle-exclamation",["\uE598",!1]],["wheelchair",["\uF193",!1]],["wheelchair-move",["\uE2CE",!1]],["whiskey-glass",["\uF7A0",!1]],["wifi",["\uF1EB",!1]],["wind",["\uF72E",!1]],["window-maximize",["\uF2D0",!0]],["window-minimize",["\uF2D1",!0]],["window-restore",["\uF2D2",!0]],["wine-bottle",["\uF72F",!1]],["wine-glass",["\uF4E3",!1]],["wine-glass-empty",["\uF5CE",!1]],["won-sign",["\uF159",!1]],["worm",["\uE599",!1]],["wrench",["\uF0AD",!1]],["x",["X",!1]],["x-ray",["\uF497",!1]],["xmark",["\uF00D",!1]],["xmarks-lines",["\uE59A",!1]],["y",["Y",!1]],["yen-sign",["\uF157",!1]],["yin-yang",["\uF6AD",!1]],["z",["Z",!1]]]);window.getFontAwesome6Metadata=()=>new Map(r),window.getFontAwesome6IconMetadata=l=>r.get(e.get(l)||l)})();(()=>{let e=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class r extends HTMLElement{root=void 0;svgStyle=document.createElement("style");connectedCallback(){this.validate();let c=this.getRoot(),t=document.createElement("slot");t.name="svg",c.append(t),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(this.size===0)throw new TypeError("Must provide an icon size.");if(!e.has(this.size))throw new TypeError("Must provide a valid icon size.")}getRoot(){return this.root===void 0&&(this.root=this.attachShadow({mode:"open"}),this.updateRenderSize(),this.root.append(this.svgStyle)),this.root}updateRenderSize(){let c=e.get(this.size);this.svgStyle.textContent=` ::slotted(svg) { fill: currentColor; - height: ${u}px; + height: ${c}px; shape-rendering: geometricprecision; } - `}get size(){let u=this.getAttribute("size");return u===null?0:parseInt(u)}set size(u){if(!e.has(u))throw new Error(`Refused to set the invalid icon size '${u}'.`);this.setAttribute("size",u.toString()),this.updateRenderSize()}}window.customElements.define("fa-brand",r)})();(()=>{let e;function r(){return e===void 0&&(e=!0,window.getComputedStyle(document.documentElement).getPropertyValue("--fa-font-family")==="Font Awesome 6 Pro"&&(e=!1)),e}let l=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class u extends HTMLElement{connectedCallback(){this.hasAttribute("size")||this.setAttribute("size","16"),this.validate(),this.setIcon(this.name,this.solid),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(!l.has(this.size))throw new TypeError("Must provide a valid icon size.");if(this.name==="")throw new TypeError("Must provide the name of the icon.");if(!this.isValidIconName(this.name))throw new TypeError(`The icon '${this.name}' is unknown or unsupported.`)}setIcon(a,i=!1){if(!this.isValidIconName(a))throw new TypeError(`The icon '${a}' is unknown or unsupported.`);!i&&!this.hasNonSolidStyle(a)&&(i=!0),!(a===this.name&&i===this.solid&&this.shadowRoot!==null)&&(i?this.setAttribute("solid",""):this.removeAttribute("solid"),this.setAttribute("name",a),this.updateIcon())}isValidIconName(a){return a!==null&&window.getFontAwesome6IconMetadata(a)!==void 0}hasNonSolidStyle(a){if(r()){let[,i]=window.getFontAwesome6IconMetadata(a);if(!i)return!1}return!0}getShadowRoot(){return this.shadowRoot===null?this.attachShadow({mode:"open"}):this.shadowRoot}updateIcon(){let a=this.getShadowRoot();if(a.childNodes[0]?.remove(),this.name==="spinner")a.append(this.createSpinner());else{let[i]=window.getFontAwesome6IconMetadata(this.name);a.append(i)}}createSpinner(){let a=document.createElement("div");a.innerHTML=` + `}get size(){let c=this.getAttribute("size");return c===null?0:parseInt(c)}set size(c){if(!e.has(c))throw new Error(`Refused to set the invalid icon size '${c}'.`);this.setAttribute("size",c.toString()),this.updateRenderSize()}}window.customElements.define("fa-brand",r)})();(()=>{let e;function r(){return e===void 0&&(e=!0,window.getComputedStyle(document.documentElement).getPropertyValue("--fa-font-family")==="Font Awesome 6 Pro"&&(e=!1)),e}let l=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class c extends HTMLElement{connectedCallback(){this.hasAttribute("size")||this.setAttribute("size","16"),this.validate(),this.setIcon(this.name,this.solid),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(!l.has(this.size))throw new TypeError("Must provide a valid icon size.");if(this.name==="")throw new TypeError("Must provide the name of the icon.");if(!this.isValidIconName(this.name))throw new TypeError(`The icon '${this.name}' is unknown or unsupported.`)}setIcon(a,i=!1){if(!this.isValidIconName(a))throw new TypeError(`The icon '${a}' is unknown or unsupported.`);!i&&!this.hasNonSolidStyle(a)&&(i=!0),!(a===this.name&&i===this.solid&&this.shadowRoot!==null)&&(i?this.setAttribute("solid",""):this.removeAttribute("solid"),this.setAttribute("name",a),this.updateIcon())}isValidIconName(a){return a!==null&&window.getFontAwesome6IconMetadata(a)!==void 0}hasNonSolidStyle(a){if(r()){let[,i]=window.getFontAwesome6IconMetadata(a);if(!i)return!1}return!0}getShadowRoot(){return this.shadowRoot===null?this.attachShadow({mode:"open"}):this.shadowRoot}updateIcon(){let a=this.getShadowRoot();if(a.childNodes[0]?.remove(),this.name==="spinner")a.append(this.createSpinner());else{let[i]=window.getFontAwesome6IconMetadata(this.name);a.append(i)}}createSpinner(){let a=document.createElement("div");a.innerHTML=` @@ -55,12 +55,12 @@ Expecting `+Z.join(", ")+", got '"+(this.terminals_[E]||E)+"'":ae="Parse error o stroke-dashoffset: -124; } } - `,a.append(i),a}get solid(){return this.hasAttribute("solid")}get name(){return this.getAttribute("name")||""}get size(){let a=this.getAttribute("size");return a===null?0:parseInt(a)}set size(a){if(!l.has(a))throw new Error(`Refused to set the invalid icon size '${a}'.`);this.setAttribute("size",a.toString())}}window.customElements.define("fa-icon",u)})();{let e=Date.now()-window.TIME_NOW*1e3,r=document.documentElement.lang,u=(()=>{let h="",g=document.querySelector('meta[name="timezone"]');if(g){h=g.content;try{Intl.DateTimeFormat(void 0,{timeZone:h})}catch{h=""}}return h||(h=Intl.DateTimeFormat().resolvedOptions().timeZone),h})(),t,a,i=()=>{let h=new Date,g=new Date(h.getFullYear(),h.getMonth(),h.getDate());t!==g.getTime()&&(t=g.getTime(),a=new Date(h.getFullYear(),h.getMonth(),h.getDate()-1).getTime())};i();let d;(p=>(p[p.Today=0]="Today",p[p.Yesterday=-1]="Yesterday"))(d||={});let b={Date:new Intl.DateTimeFormat(r,{dateStyle:"long",timeZone:u}),DateAndTime:new Intl.DateTimeFormat(r,{dateStyle:"long",timeStyle:"short",timeZone:u}),DayOfWeekAndTime:new Intl.DateTimeFormat(r,{weekday:"long",hour:"2-digit",minute:"2-digit",timeZone:u}),Minutes:new Intl.RelativeTimeFormat(r),TodayOrYesterday:new Intl.RelativeTimeFormat(r,{numeric:"auto"})},k={OneMinute:60,OneHour:3600,OneDay:86400,SixDays:86400*6};class q extends HTMLElement{#e;#a;get date(){if(this.#e===void 0){let g=this.getAttribute("date");if(!g)throw new Error("The 'date' attribute is missing.");this.#e=new Date(g)}return this.#e}set date(g){this.setAttribute("date",g.toISOString()),this.refresh(!0)}get static(){return this.hasAttribute("static")}set static(g){g===!0?this.setAttribute("static",""):this.removeAttribute("static")}connectedCallback(){this.refresh(!0)}refresh(g){let p=this.date,x=Math.trunc((Date.now()-p.getTime()-e)/1e3);if(this.#a===void 0){this.#a=document.createElement("time");let L=this.attachShadow({mode:"open"});L.append(this.#a);let C=document.createElement("style");C.textContent=` + `,a.append(i),a}get solid(){return this.hasAttribute("solid")}get name(){return this.getAttribute("name")||""}get size(){let a=this.getAttribute("size");return a===null?0:parseInt(a)}set size(a){if(!l.has(a))throw new Error(`Refused to set the invalid icon size '${a}'.`);this.setAttribute("size",a.toString())}}window.customElements.define("fa-icon",c)})();{let e=Date.now()-window.TIME_NOW*1e3,r=document.documentElement.lang,c=(()=>{let h="",g=document.querySelector('meta[name="timezone"]');if(g){h=g.content;try{Intl.DateTimeFormat(void 0,{timeZone:h})}catch{h=""}}return h||(h=Intl.DateTimeFormat().resolvedOptions().timeZone),h})(),t,a,i=()=>{let h=new Date,g=new Date(h.getFullYear(),h.getMonth(),h.getDate());t!==g.getTime()&&(t=g.getTime(),a=new Date(h.getFullYear(),h.getMonth(),h.getDate()-1).getTime())};i();let d;(p=>(p[p.Today=0]="Today",p[p.Yesterday=-1]="Yesterday"))(d||={});let b={Date:new Intl.DateTimeFormat(r,{dateStyle:"long",timeZone:c}),DateAndTime:new Intl.DateTimeFormat(r,{dateStyle:"long",timeStyle:"short",timeZone:c}),DayOfWeekAndTime:new Intl.DateTimeFormat(r,{weekday:"long",hour:"2-digit",minute:"2-digit",timeZone:c}),Minutes:new Intl.RelativeTimeFormat(r),TodayOrYesterday:new Intl.RelativeTimeFormat(r,{numeric:"auto"})},k={OneMinute:60,OneHour:3600,OneDay:86400,SixDays:86400*6};class q extends HTMLElement{#a;#e;get date(){if(this.#a===void 0){let g=this.getAttribute("date");if(!g)throw new Error("The 'date' attribute is missing.");this.#a=new Date(g)}return this.#a}set date(g){this.setAttribute("date",g.toISOString()),this.refresh(!0)}get static(){return this.hasAttribute("static")}set static(g){g===!0?this.setAttribute("static",""):this.removeAttribute("static")}connectedCallback(){this.refresh(!0)}refresh(g){let p=this.date,x=Math.trunc((Date.now()-p.getTime()-e)/1e3);if(this.#e===void 0){this.#e=document.createElement("time");let L=this.attachShadow({mode:"open"});L.append(this.#e);let C=document.createElement("style");C.textContent=` @media print { time::after { content: " (" attr(title) ")"; } - }`,L.append(C)}g&&(this.#a.dateTime=p.toISOString(),this.#a.title=b.DateAndTime.format(p));let y;if(this.static)y=this.#a.title;else if(xt?y=this.#t(L,0):p.getTime()>a?y=this.#t(L,-1):y=L.map(W=>W.value).join(""):y=b.DateAndTime.format(p)}else y=b.Date.format(p);y=y.charAt(0).toUpperCase()+y.slice(1),this.#a.textContent=y}#t(g,p){return g.map(y=>y.type==="weekday"?b.TodayOrYesterday.format(p,"day"):y.value).join("")}}window.customElements.define("woltlab-core-date-time",q);let S=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(h=>h.refresh(!1))},z,P=()=>{z=window.setInterval(()=>{i(),S()},6e4)};document.addEventListener("DOMContentLoaded",()=>P(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(z):(S(),P())})}{class e extends HTMLElement{#e;#a=new Map;constructor(){super(),this.#e=document.createElement("button")}connectedCallback(){if(this.hasAttribute("labels")&&(this.#a=new Map(JSON.parse(this.getAttribute("labels"))),this.removeAttribute("labels")),this.#a.size===0)throw new Error("Expected a non empty list of labels.");this.#e.classList.add("dropdownToggle"),this.#e.innerHTML=`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`,this.#e.addEventListener("click",u=>{u.preventDefault();let t=new CustomEvent("showPicker");this.dispatchEvent(t)}),this.append(this.#e);let l=document.createElement("ul");l.classList.add("dropdownMenu");for(let[u,t]of this.#a){let a=document.createElement("button");a.dataset.labelId=u.toString(),a.innerHTML=t,a.addEventListener("click",()=>{this.selected=u});let i=document.createElement("li");i.append(a),l.append(i)}this.append(l),this.classList.add("dropdown")}set selected(l){this.setAttribute("selected",l.toString()),this.#e.innerHTML=this.#a.get(l)}get selected(){let l=parseInt(this.getAttribute("selected"));if(!Number.isNaN(l))return l}set disabled(l){l?this.setAttribute("disabled",""):this.removeAttribute("disabled")}get disabled(){return this.hasAttribute("disabled")}set required(l){l?this.setAttribute("required",""):this.removeAttribute("required")}get required(){return this.hasAttribute("required")}get labels(){return new Map(this.#a)}}window.customElements.define("woltlab-core-label-picker",e)}{let r=[24,48,96];class l extends HTMLElement{#e;#a;connectedCallback(){this.#e===void 0&&this.#t()}attributeChangedCallback(t,a,i){if(t==="size"){let d=parseInt(i||"");if(!r.includes(d)){let b=parseInt(a||"");r.includes(b)||(b=24),this.setAttribute(t,b.toString())}}}#t(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size",24 .toString()),this.#e=document.createElement("fa-icon"),this.#e.size=this.size,this.#e.setIcon("spinner"),this.#a=document.createElement("span"),this.#a.classList.add("loading-indicator__text"),this.#a.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#a.hidden=this.hideText;let t=document.createElement("div");t.classList.add("loading-indicator__wrapper"),t.append(this.#e,this.#a),this.append(t)}get size(){return parseInt(this.getAttribute("size"))}set size(t){if(!r.includes(t))throw new TypeError(`The size ${t} is unrecognized, permitted values are ${r.join(", ")}.`);this.setAttribute("size",t.toString()),this.#e&&(this.#e.size=t)}get hideText(){return this.hasAttribute("hide-text")}set hideText(t){t?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#a&&(this.#a.hidden=t)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",l)}{let e,r=()=>(e===void 0&&(e=window.matchMedia("(max-width: 544px)")),e);class l extends HTMLElement{#e="pagination";connectedCallback(){this.#a(),r().addEventListener("change",()=>this.#a())}#a(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#e}__wrapper`);let t=this.#t();this.append(t);let a=this.#n();a&&t.append(a);let i=document.createElement("ul");i.classList.add(`${this.#e}__list`),t.append(i),i.append(this.#r(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#l()),this.#f().forEach(b=>{i.append(b)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#l()),i.append(this.#r(this.count));let d=this.#o();d&&t.append(d)}#t(){let t=document.createElement("nav");return t.setAttribute("role","navigation"),t.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),t.classList.add(this.#e),t}#n(){if(this.page===1)return;let t=document.createElement("div");t.classList.add(`${this.#e}__prev`);let a=this.#s(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),t}#o(){if(this.page===this.count)return;let t=document.createElement("div");t.classList.add(`${this.#e}__next`);let a=this.#s(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),t}#s(t){let a,i=this.getLinkUrl(t);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===t?a.disabled=!0:a.addEventListener("click",()=>{this.#i(t)})),a.classList.add(`${this.#e}__link`),a}#r(t){let a=document.createElement("li");a.classList.add(`${this.#e}__item`);let i=this.#s(t);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:t})),t===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#e}__link--current`)),i.textContent=t.toLocaleString(document.documentElement.lang),a.append(i),a}#f(){let t=[],a,i;r().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let d=a;d<=i;d++)d<=1||d>=this.count||t.push(this.#r(d));return t}#l(){let t=document.createElement("li");t.classList.add(`${this.#e}__item`,`${this.#e}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),t.append(a),t}get thresholdForEllipsis(){return r().matches?1:3}getLinkUrl(t){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",t.toString()]]).toString(),a.toString()}jumpToPage(t){let a=this.getLinkUrl(t);a?window.location.href=a:this.#i(t)}#i(t){let a=new CustomEvent("switchPage",{cancelable:!0,detail:t});this.dispatchEvent(a),a.defaultPrevented||(this.page=t)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(t){this.setAttribute("count",t.toString()),this.#a()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(t){this.setAttribute("page",t.toString()),this.#a()}get url(){return this.getAttribute("url")}set url(t){this.setAttribute("url",t),this.#a()}}window.customElements.define("woltlab-core-pagination",l)}{class e extends HTMLElement{connectedCallback(){this.setData(this.#a(),this.#t())}setData(l,u){this.#e(l,u)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#e(l,u){if(this.innerHTML="",!l.size)return;let t=document.createElement("button");t.classList.add("reactionSummary","jsTooltip"),t.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),t.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(t),l.forEach((a,i)=>{let d=document.createElement("span");d.classList.add("reactionCountButton"),i===u&&d.classList.add("selected");let b=document.createElement("span");b.innerHTML=window.REACTION_TYPES[i].renderedIcon,d.append(b);let k=document.createElement("span");k.classList.add("reactionCount"),k.textContent=a.toString(),d.append(k),t.append(d)})}#a(){let l=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(l)}#t(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",e)}window.WoltLabLanguage=ne;window.WoltLabTemplate=V;window.HTMLParsedElement=pe;})(); + }`,L.append(C)}g&&(this.#e.dateTime=p.toISOString(),this.#e.title=b.DateAndTime.format(p));let y;if(this.static)y=this.#e.title;else if(xt?y=this.#t(L,0):p.getTime()>a?y=this.#t(L,-1):y=L.map(W=>W.value).join(""):y=b.DateAndTime.format(p)}else y=b.Date.format(p);y=y.charAt(0).toUpperCase()+y.slice(1),this.#e.textContent=y}#t(g,p){return g.map(y=>y.type==="weekday"?b.TodayOrYesterday.format(p,"day"):y.value).join("")}}window.customElements.define("woltlab-core-date-time",q);let S=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(h=>h.refresh(!1))},z,P=()=>{z=window.setInterval(()=>{i(),S()},6e4)};document.addEventListener("DOMContentLoaded",()=>P(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(z):(S(),P())})}{class e extends HTMLElement{#a;#e;#t=new Map;constructor(){super(),this.#a=document.createElement("button")}connectedCallback(){if(this.hasAttribute("labels")&&(this.#t=new Map(JSON.parse(this.getAttribute("labels"))),this.removeAttribute("labels")),this.#t.size===0)throw new Error("Expected a non empty list of labels.");let l=`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`;this.#a.type="button",this.#a.classList.add("dropdownToggle"),this.#a.innerHTML=l,this.#a.addEventListener("click",t=>{t.preventDefault();let a=new CustomEvent("showPicker");this.dispatchEvent(a)}),this.append(this.#a);let c=document.createElement("ul");c.classList.add("dropdownMenu");for(let[t,a]of this.#t)c.append(this.#s(t,a));if(!this.required){let t=document.createElement("li");t.classList.add("dropdownDivider"),c.append(t,this.#s(0,l))}this.append(c),this.classList.add("dropdown"),this.closest("form")!==null?(this.#e===void 0&&(this.#e=document.createElement("input"),this.#e.type="hidden",this.#e.name="labelIDs[]",this.append(this.#e)),this.#e.value=(this.selected||0).toString()):this.#e?.remove()}#s(l,c){let t=document.createElement("button");t.type="button",t.dataset.labelId=l.toString(),t.innerHTML=c,t.addEventListener("click",()=>{this.selected=l});let a=document.createElement("li");return a.append(t),a}set selected(l){this.setAttribute("selected",l.toString()),this.#a.innerHTML=this.#t.get(l)||`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`,this.#e!==void 0&&(this.#e.value=l.toString())}get selected(){let l=parseInt(this.getAttribute("selected"));if(!Number.isNaN(l))return l}set disabled(l){l?this.setAttribute("disabled",""):this.removeAttribute("disabled"),this.#a.disabled=l,this.#e&&(this.#e.disabled=l)}get disabled(){return this.hasAttribute("disabled")}set required(l){l?this.setAttribute("required",""):this.removeAttribute("required")}get required(){return this.hasAttribute("required")}get labels(){return new Map(this.#t)}}window.customElements.define("woltlab-core-label-picker",e)}{let r=[24,48,96];class l extends HTMLElement{#a;#e;connectedCallback(){this.#a===void 0&&this.#t()}attributeChangedCallback(t,a,i){if(t==="size"){let d=parseInt(i||"");if(!r.includes(d)){let b=parseInt(a||"");r.includes(b)||(b=24),this.setAttribute(t,b.toString())}}}#t(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size",24 .toString()),this.#a=document.createElement("fa-icon"),this.#a.size=this.size,this.#a.setIcon("spinner"),this.#e=document.createElement("span"),this.#e.classList.add("loading-indicator__text"),this.#e.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#e.hidden=this.hideText;let t=document.createElement("div");t.classList.add("loading-indicator__wrapper"),t.append(this.#a,this.#e),this.append(t)}get size(){return parseInt(this.getAttribute("size"))}set size(t){if(!r.includes(t))throw new TypeError(`The size ${t} is unrecognized, permitted values are ${r.join(", ")}.`);this.setAttribute("size",t.toString()),this.#a&&(this.#a.size=t)}get hideText(){return this.hasAttribute("hide-text")}set hideText(t){t?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#e&&(this.#e.hidden=t)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",l)}{let e,r=()=>(e===void 0&&(e=window.matchMedia("(max-width: 544px)")),e);class l extends HTMLElement{#a="pagination";connectedCallback(){this.#e(),r().addEventListener("change",()=>this.#e())}#e(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#a}__wrapper`);let t=this.#t();this.append(t);let a=this.#s();a&&t.append(a);let i=document.createElement("ul");i.classList.add(`${this.#a}__list`),t.append(i),i.append(this.#l(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#i()),this.#f().forEach(b=>{i.append(b)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#i()),i.append(this.#l(this.count));let d=this.#o();d&&t.append(d)}#t(){let t=document.createElement("nav");return t.setAttribute("role","navigation"),t.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),t.classList.add(this.#a),t}#s(){if(this.page===1)return;let t=document.createElement("div");t.classList.add(`${this.#a}__prev`);let a=this.#r(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),t}#o(){if(this.page===this.count)return;let t=document.createElement("div");t.classList.add(`${this.#a}__next`);let a=this.#r(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),t}#r(t){let a,i=this.getLinkUrl(t);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===t?a.disabled=!0:a.addEventListener("click",()=>{this.#n(t)})),a.classList.add(`${this.#a}__link`),a}#l(t){let a=document.createElement("li");a.classList.add(`${this.#a}__item`);let i=this.#r(t);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:t})),t===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#a}__link--current`)),i.textContent=t.toLocaleString(document.documentElement.lang),a.append(i),a}#f(){let t=[],a,i;r().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let d=a;d<=i;d++)d<=1||d>=this.count||t.push(this.#l(d));return t}#i(){let t=document.createElement("li");t.classList.add(`${this.#a}__item`,`${this.#a}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),t.append(a),t}get thresholdForEllipsis(){return r().matches?1:3}getLinkUrl(t){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",t.toString()]]).toString(),a.toString()}jumpToPage(t){let a=this.getLinkUrl(t);a?window.location.href=a:this.#n(t)}#n(t){let a=new CustomEvent("switchPage",{cancelable:!0,detail:t});this.dispatchEvent(a),a.defaultPrevented||(this.page=t)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(t){this.setAttribute("count",t.toString()),this.#e()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(t){this.setAttribute("page",t.toString()),this.#e()}get url(){return this.getAttribute("url")}set url(t){this.setAttribute("url",t),this.#e()}}window.customElements.define("woltlab-core-pagination",l)}{class e extends HTMLElement{connectedCallback(){this.setData(this.#e(),this.#t())}setData(l,c){this.#a(l,c)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#a(l,c){if(this.innerHTML="",!l.size)return;let t=document.createElement("button");t.classList.add("reactionSummary","jsTooltip"),t.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),t.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(t),l.forEach((a,i)=>{let d=document.createElement("span");d.classList.add("reactionCountButton"),i===c&&d.classList.add("selected");let b=document.createElement("span");b.innerHTML=window.REACTION_TYPES[i].renderedIcon,d.append(b);let k=document.createElement("span");k.classList.add("reactionCount"),k.textContent=a.toString(),d.append(k),t.append(d)})}#e(){let l=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(l)}#t(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",e)}window.WoltLabLanguage=ne;window.WoltLabTemplate=V;window.HTMLParsedElement=pe;})(); /** * Handles the low level management of language items. * diff --git a/wcfsetup/install/files/lib/system/event/listener/PreloadPhrasesCollectingListener.class.php b/wcfsetup/install/files/lib/system/event/listener/PreloadPhrasesCollectingListener.class.php index d32a33fd4ad..bf7001fbaea 100644 --- a/wcfsetup/install/files/lib/system/event/listener/PreloadPhrasesCollectingListener.class.php +++ b/wcfsetup/install/files/lib/system/event/listener/PreloadPhrasesCollectingListener.class.php @@ -114,6 +114,8 @@ public function __invoke(PreloadPhrasesCollecting $event): void $event->preload('wcf.global.rss.withoutAccessToken'); $event->preload('wcf.global.rss.withAccessToken'); + $event->preload('wcf.label.none'); + $event->preload('wcf.like.button.dislike'); $event->preload('wcf.like.button.like'); $event->preload('wcf.like.details'); diff --git a/wcfsetup/install/files/style/ui/dropdown.scss b/wcfsetup/install/files/style/ui/dropdown.scss index 53d370fac9f..cefa4d62130 100644 --- a/wcfsetup/install/files/style/ui/dropdown.scss +++ b/wcfsetup/install/files/style/ui/dropdown.scss @@ -38,7 +38,7 @@ } } - .dropdownToggle { + .dropdownToggle:not([disabled]) { cursor: pointer; } } From 1e6263c8791d42700ab382a6157ed281cc44adf5 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Sat, 23 Sep 2023 19:28:31 +0200 Subject: [PATCH 04/18] Assign the selected label to the picker --- com.woltlab.wcf/templates/articleAdd.tpl | 57 +++++-------------- .../WebComponent/woltlab-core-label-picker.ts | 24 ++++++-- .../files/js/WoltLabSuite/WebComponent.min.js | 2 +- .../lib/acp/form/ArticleAddForm.class.php | 10 +++- .../lib/acp/form/ArticleEditForm.class.php | 7 ++- .../lib/system/label/LabelPicker.class.php | 21 ++++++- 6 files changed, 68 insertions(+), 53 deletions(-) diff --git a/com.woltlab.wcf/templates/articleAdd.tpl b/com.woltlab.wcf/templates/articleAdd.tpl index 367d7a518e8..5450ad8a7ca 100644 --- a/com.woltlab.wcf/templates/articleAdd.tpl +++ b/com.woltlab.wcf/templates/articleAdd.tpl @@ -164,51 +164,22 @@ {foreach from=$labelPickers item=labelPicker}
-
{$labelPicker->labelGroup->getTitle()}
-
{@$labelPicker->toHtml()}
+
+
+ {@$labelPicker->toHtml()} + {if $errorField == 'label' && $errorType[$labelPicker->labelGroup->groupID]|isset} + + {if $errorType[$labelPicker->labelGroup->groupID] == 'missing'} + {lang}wcf.label.error.missing{/lang} + {else} + {lang}wcf.label.error.invalid{/lang} + {/if} + + {/if} +
{/foreach} - {if $labelGroups|count} - {foreach from=$labelGroups item=labelGroup} - {if $labelGroup|count} - groupID]|isset} class="formError"{/if}> -
-
-
    - -
- - {if $errorField == 'label' && $errorType[$labelGroup->groupID]|isset} - - {if $errorType[$labelGroup->groupID] == 'missing'} - {lang}wcf.label.error.missing{/lang} - {else} - {lang}wcf.label.error.invalid{/lang} - {/if} - - {/if} -
- - {/if} - {/foreach} - {/if} -
@@ -625,7 +596,7 @@ }); {if !$labelGroups|empty} - new WCF.Label.ArticleLabelChooser({ {implode from=$labelGroupsToCategories key=__labelCategoryID item=labelGroupIDs}{@$__labelCategoryID}: [ {implode from=$labelGroupIDs item=labelGroupID}{@$labelGroupID}{/implode} ] {/implode} }, { {implode from=$labelIDs key=groupID item=labelID}{@$groupID}: {@$labelID}{/implode} }, '.articleAddForm'); + //new WCF.Label.ArticleLabelChooser({ {implode from=$labelGroupsToCategories key=__labelCategoryID item=labelGroupIDs}{@$__labelCategoryID}: [ {implode from=$labelGroupIDs item=labelGroupID}{@$labelGroupID}{/implode} ] {/implode} }, { {implode from=$labelIDs key=groupID item=labelID}{@$groupID}: {@$labelID}{/implode} }, '.articleAddForm'); {/if} new WCF.Message.I18nPreview({ diff --git a/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts b/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts index 7cdd6147fb1..d1edfabbf8d 100644 --- a/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts +++ b/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts @@ -20,6 +20,7 @@ throw new Error("Expected a non empty list of labels."); } + // TODO: This HTML is duplicated in `set selected()` const emptyLabel = `${window.WoltLabLanguage.getPhrase("wcf.label.none")}`; this.#button.type = "button"; @@ -32,21 +33,29 @@ this.dispatchEvent(evt); }); + // Moving the ID to the button allows clicks on the label to be forwarded. + this.#button.id = this.id; + this.removeAttribute("id"); + this.append(this.#button); - const dropdownMenu = document.createElement("ul"); - dropdownMenu.classList.add("dropdownMenu"); + const scrollableDropdownMenu = document.createElement("ul"); + scrollableDropdownMenu.classList.add("scrollableDropdownMenu"); for (const [labelId, html] of this.#labels) { - dropdownMenu.append(this.#createLabelItem(labelId, html)); + scrollableDropdownMenu.append(this.#createLabelItem(labelId, html)); } if (!this.required) { const divider = document.createElement("li"); divider.classList.add("dropdownDivider"); - dropdownMenu.append(divider, this.#createLabelItem(0, emptyLabel)); + scrollableDropdownMenu.append(divider, this.#createLabelItem(0, emptyLabel)); } + const dropdownMenu = document.createElement("ul"); + dropdownMenu.classList.add("dropdownMenu"); + dropdownMenu.append(scrollableDropdownMenu); + this.append(dropdownMenu); this.classList.add("dropdown"); @@ -55,7 +64,7 @@ if (this.#formValue === undefined) { this.#formValue = document.createElement("input"); this.#formValue.type = "hidden"; - this.#formValue.name = "labelIDs[]"; + this.#formValue.name = `labelIDs[${this.dataset.groupId}]`; this.append(this.#formValue); } @@ -63,6 +72,11 @@ } else { this.#formValue?.remove(); } + + if (this.selected) { + // TODO: This is _slightly_ awkward. + this.selected = this.selected!; + } } #createLabelItem(labelId: number, html: string): HTMLLIElement { diff --git a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js index 4ba25c3bf80..32f63413ea7 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js +++ b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js @@ -60,7 +60,7 @@ Expecting `+Z.join(", ")+", got '"+(this.terminals_[E]||E)+"'":ae="Parse error o time::after { content: " (" attr(title) ")"; } - }`,L.append(C)}g&&(this.#e.dateTime=p.toISOString(),this.#e.title=b.DateAndTime.format(p));let y;if(this.static)y=this.#e.title;else if(xt?y=this.#t(L,0):p.getTime()>a?y=this.#t(L,-1):y=L.map(W=>W.value).join(""):y=b.DateAndTime.format(p)}else y=b.Date.format(p);y=y.charAt(0).toUpperCase()+y.slice(1),this.#e.textContent=y}#t(g,p){return g.map(y=>y.type==="weekday"?b.TodayOrYesterday.format(p,"day"):y.value).join("")}}window.customElements.define("woltlab-core-date-time",q);let S=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(h=>h.refresh(!1))},z,P=()=>{z=window.setInterval(()=>{i(),S()},6e4)};document.addEventListener("DOMContentLoaded",()=>P(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(z):(S(),P())})}{class e extends HTMLElement{#a;#e;#t=new Map;constructor(){super(),this.#a=document.createElement("button")}connectedCallback(){if(this.hasAttribute("labels")&&(this.#t=new Map(JSON.parse(this.getAttribute("labels"))),this.removeAttribute("labels")),this.#t.size===0)throw new Error("Expected a non empty list of labels.");let l=`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`;this.#a.type="button",this.#a.classList.add("dropdownToggle"),this.#a.innerHTML=l,this.#a.addEventListener("click",t=>{t.preventDefault();let a=new CustomEvent("showPicker");this.dispatchEvent(a)}),this.append(this.#a);let c=document.createElement("ul");c.classList.add("dropdownMenu");for(let[t,a]of this.#t)c.append(this.#s(t,a));if(!this.required){let t=document.createElement("li");t.classList.add("dropdownDivider"),c.append(t,this.#s(0,l))}this.append(c),this.classList.add("dropdown"),this.closest("form")!==null?(this.#e===void 0&&(this.#e=document.createElement("input"),this.#e.type="hidden",this.#e.name="labelIDs[]",this.append(this.#e)),this.#e.value=(this.selected||0).toString()):this.#e?.remove()}#s(l,c){let t=document.createElement("button");t.type="button",t.dataset.labelId=l.toString(),t.innerHTML=c,t.addEventListener("click",()=>{this.selected=l});let a=document.createElement("li");return a.append(t),a}set selected(l){this.setAttribute("selected",l.toString()),this.#a.innerHTML=this.#t.get(l)||`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`,this.#e!==void 0&&(this.#e.value=l.toString())}get selected(){let l=parseInt(this.getAttribute("selected"));if(!Number.isNaN(l))return l}set disabled(l){l?this.setAttribute("disabled",""):this.removeAttribute("disabled"),this.#a.disabled=l,this.#e&&(this.#e.disabled=l)}get disabled(){return this.hasAttribute("disabled")}set required(l){l?this.setAttribute("required",""):this.removeAttribute("required")}get required(){return this.hasAttribute("required")}get labels(){return new Map(this.#t)}}window.customElements.define("woltlab-core-label-picker",e)}{let r=[24,48,96];class l extends HTMLElement{#a;#e;connectedCallback(){this.#a===void 0&&this.#t()}attributeChangedCallback(t,a,i){if(t==="size"){let d=parseInt(i||"");if(!r.includes(d)){let b=parseInt(a||"");r.includes(b)||(b=24),this.setAttribute(t,b.toString())}}}#t(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size",24 .toString()),this.#a=document.createElement("fa-icon"),this.#a.size=this.size,this.#a.setIcon("spinner"),this.#e=document.createElement("span"),this.#e.classList.add("loading-indicator__text"),this.#e.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#e.hidden=this.hideText;let t=document.createElement("div");t.classList.add("loading-indicator__wrapper"),t.append(this.#a,this.#e),this.append(t)}get size(){return parseInt(this.getAttribute("size"))}set size(t){if(!r.includes(t))throw new TypeError(`The size ${t} is unrecognized, permitted values are ${r.join(", ")}.`);this.setAttribute("size",t.toString()),this.#a&&(this.#a.size=t)}get hideText(){return this.hasAttribute("hide-text")}set hideText(t){t?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#e&&(this.#e.hidden=t)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",l)}{let e,r=()=>(e===void 0&&(e=window.matchMedia("(max-width: 544px)")),e);class l extends HTMLElement{#a="pagination";connectedCallback(){this.#e(),r().addEventListener("change",()=>this.#e())}#e(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#a}__wrapper`);let t=this.#t();this.append(t);let a=this.#s();a&&t.append(a);let i=document.createElement("ul");i.classList.add(`${this.#a}__list`),t.append(i),i.append(this.#l(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#i()),this.#f().forEach(b=>{i.append(b)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#i()),i.append(this.#l(this.count));let d=this.#o();d&&t.append(d)}#t(){let t=document.createElement("nav");return t.setAttribute("role","navigation"),t.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),t.classList.add(this.#a),t}#s(){if(this.page===1)return;let t=document.createElement("div");t.classList.add(`${this.#a}__prev`);let a=this.#r(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),t}#o(){if(this.page===this.count)return;let t=document.createElement("div");t.classList.add(`${this.#a}__next`);let a=this.#r(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),t}#r(t){let a,i=this.getLinkUrl(t);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===t?a.disabled=!0:a.addEventListener("click",()=>{this.#n(t)})),a.classList.add(`${this.#a}__link`),a}#l(t){let a=document.createElement("li");a.classList.add(`${this.#a}__item`);let i=this.#r(t);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:t})),t===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#a}__link--current`)),i.textContent=t.toLocaleString(document.documentElement.lang),a.append(i),a}#f(){let t=[],a,i;r().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let d=a;d<=i;d++)d<=1||d>=this.count||t.push(this.#l(d));return t}#i(){let t=document.createElement("li");t.classList.add(`${this.#a}__item`,`${this.#a}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),t.append(a),t}get thresholdForEllipsis(){return r().matches?1:3}getLinkUrl(t){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",t.toString()]]).toString(),a.toString()}jumpToPage(t){let a=this.getLinkUrl(t);a?window.location.href=a:this.#n(t)}#n(t){let a=new CustomEvent("switchPage",{cancelable:!0,detail:t});this.dispatchEvent(a),a.defaultPrevented||(this.page=t)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(t){this.setAttribute("count",t.toString()),this.#e()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(t){this.setAttribute("page",t.toString()),this.#e()}get url(){return this.getAttribute("url")}set url(t){this.setAttribute("url",t),this.#e()}}window.customElements.define("woltlab-core-pagination",l)}{class e extends HTMLElement{connectedCallback(){this.setData(this.#e(),this.#t())}setData(l,c){this.#a(l,c)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#a(l,c){if(this.innerHTML="",!l.size)return;let t=document.createElement("button");t.classList.add("reactionSummary","jsTooltip"),t.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),t.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(t),l.forEach((a,i)=>{let d=document.createElement("span");d.classList.add("reactionCountButton"),i===c&&d.classList.add("selected");let b=document.createElement("span");b.innerHTML=window.REACTION_TYPES[i].renderedIcon,d.append(b);let k=document.createElement("span");k.classList.add("reactionCount"),k.textContent=a.toString(),d.append(k),t.append(d)})}#e(){let l=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(l)}#t(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",e)}window.WoltLabLanguage=ne;window.WoltLabTemplate=V;window.HTMLParsedElement=pe;})(); + }`,L.append(C)}g&&(this.#e.dateTime=p.toISOString(),this.#e.title=b.DateAndTime.format(p));let y;if(this.static)y=this.#e.title;else if(xt?y=this.#t(L,0):p.getTime()>a?y=this.#t(L,-1):y=L.map(W=>W.value).join(""):y=b.DateAndTime.format(p)}else y=b.Date.format(p);y=y.charAt(0).toUpperCase()+y.slice(1),this.#e.textContent=y}#t(g,p){return g.map(y=>y.type==="weekday"?b.TodayOrYesterday.format(p,"day"):y.value).join("")}}window.customElements.define("woltlab-core-date-time",q);let S=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(h=>h.refresh(!1))},z,P=()=>{z=window.setInterval(()=>{i(),S()},6e4)};document.addEventListener("DOMContentLoaded",()=>P(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(z):(S(),P())})}{class e extends HTMLElement{#a;#e;#t=new Map;constructor(){super(),this.#a=document.createElement("button")}connectedCallback(){if(this.hasAttribute("labels")&&(this.#t=new Map(JSON.parse(this.getAttribute("labels"))),this.removeAttribute("labels")),this.#t.size===0)throw new Error("Expected a non empty list of labels.");let l=`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`;this.#a.type="button",this.#a.classList.add("dropdownToggle"),this.#a.innerHTML=l,this.#a.addEventListener("click",a=>{a.preventDefault();let i=new CustomEvent("showPicker");this.dispatchEvent(i)}),this.#a.id=this.id,this.removeAttribute("id"),this.append(this.#a);let c=document.createElement("ul");c.classList.add("scrollableDropdownMenu");for(let[a,i]of this.#t)c.append(this.#s(a,i));if(!this.required){let a=document.createElement("li");a.classList.add("dropdownDivider"),c.append(a,this.#s(0,l))}let t=document.createElement("ul");t.classList.add("dropdownMenu"),t.append(c),this.append(t),this.classList.add("dropdown"),this.closest("form")!==null?(this.#e===void 0&&(this.#e=document.createElement("input"),this.#e.type="hidden",this.#e.name=`labelIDs[${this.dataset.groupId}]`,this.append(this.#e)),this.#e.value=(this.selected||0).toString()):this.#e?.remove(),this.selected&&(this.selected=this.selected)}#s(l,c){let t=document.createElement("button");t.type="button",t.dataset.labelId=l.toString(),t.innerHTML=c,t.addEventListener("click",()=>{this.selected=l});let a=document.createElement("li");return a.append(t),a}set selected(l){this.setAttribute("selected",l.toString()),this.#a.innerHTML=this.#t.get(l)||`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`,this.#e!==void 0&&(this.#e.value=l.toString())}get selected(){let l=parseInt(this.getAttribute("selected"));if(!Number.isNaN(l))return l}set disabled(l){l?this.setAttribute("disabled",""):this.removeAttribute("disabled"),this.#a.disabled=l,this.#e&&(this.#e.disabled=l)}get disabled(){return this.hasAttribute("disabled")}set required(l){l?this.setAttribute("required",""):this.removeAttribute("required")}get required(){return this.hasAttribute("required")}get labels(){return new Map(this.#t)}}window.customElements.define("woltlab-core-label-picker",e)}{let r=[24,48,96];class l extends HTMLElement{#a;#e;connectedCallback(){this.#a===void 0&&this.#t()}attributeChangedCallback(t,a,i){if(t==="size"){let d=parseInt(i||"");if(!r.includes(d)){let b=parseInt(a||"");r.includes(b)||(b=24),this.setAttribute(t,b.toString())}}}#t(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size",24 .toString()),this.#a=document.createElement("fa-icon"),this.#a.size=this.size,this.#a.setIcon("spinner"),this.#e=document.createElement("span"),this.#e.classList.add("loading-indicator__text"),this.#e.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#e.hidden=this.hideText;let t=document.createElement("div");t.classList.add("loading-indicator__wrapper"),t.append(this.#a,this.#e),this.append(t)}get size(){return parseInt(this.getAttribute("size"))}set size(t){if(!r.includes(t))throw new TypeError(`The size ${t} is unrecognized, permitted values are ${r.join(", ")}.`);this.setAttribute("size",t.toString()),this.#a&&(this.#a.size=t)}get hideText(){return this.hasAttribute("hide-text")}set hideText(t){t?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#e&&(this.#e.hidden=t)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",l)}{let e,r=()=>(e===void 0&&(e=window.matchMedia("(max-width: 544px)")),e);class l extends HTMLElement{#a="pagination";connectedCallback(){this.#e(),r().addEventListener("change",()=>this.#e())}#e(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#a}__wrapper`);let t=this.#t();this.append(t);let a=this.#s();a&&t.append(a);let i=document.createElement("ul");i.classList.add(`${this.#a}__list`),t.append(i),i.append(this.#l(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#i()),this.#f().forEach(b=>{i.append(b)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#i()),i.append(this.#l(this.count));let d=this.#o();d&&t.append(d)}#t(){let t=document.createElement("nav");return t.setAttribute("role","navigation"),t.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),t.classList.add(this.#a),t}#s(){if(this.page===1)return;let t=document.createElement("div");t.classList.add(`${this.#a}__prev`);let a=this.#r(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),t}#o(){if(this.page===this.count)return;let t=document.createElement("div");t.classList.add(`${this.#a}__next`);let a=this.#r(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),t}#r(t){let a,i=this.getLinkUrl(t);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===t?a.disabled=!0:a.addEventListener("click",()=>{this.#n(t)})),a.classList.add(`${this.#a}__link`),a}#l(t){let a=document.createElement("li");a.classList.add(`${this.#a}__item`);let i=this.#r(t);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:t})),t===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#a}__link--current`)),i.textContent=t.toLocaleString(document.documentElement.lang),a.append(i),a}#f(){let t=[],a,i;r().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let d=a;d<=i;d++)d<=1||d>=this.count||t.push(this.#l(d));return t}#i(){let t=document.createElement("li");t.classList.add(`${this.#a}__item`,`${this.#a}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),t.append(a),t}get thresholdForEllipsis(){return r().matches?1:3}getLinkUrl(t){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",t.toString()]]).toString(),a.toString()}jumpToPage(t){let a=this.getLinkUrl(t);a?window.location.href=a:this.#n(t)}#n(t){let a=new CustomEvent("switchPage",{cancelable:!0,detail:t});this.dispatchEvent(a),a.defaultPrevented||(this.page=t)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(t){this.setAttribute("count",t.toString()),this.#e()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(t){this.setAttribute("page",t.toString()),this.#e()}get url(){return this.getAttribute("url")}set url(t){this.setAttribute("url",t),this.#e()}}window.customElements.define("woltlab-core-pagination",l)}{class e extends HTMLElement{connectedCallback(){this.setData(this.#e(),this.#t())}setData(l,c){this.#a(l,c)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#a(l,c){if(this.innerHTML="",!l.size)return;let t=document.createElement("button");t.classList.add("reactionSummary","jsTooltip"),t.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),t.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(t),l.forEach((a,i)=>{let d=document.createElement("span");d.classList.add("reactionCountButton"),i===c&&d.classList.add("selected");let b=document.createElement("span");b.innerHTML=window.REACTION_TYPES[i].renderedIcon,d.append(b);let k=document.createElement("span");k.classList.add("reactionCount"),k.textContent=a.toString(),d.append(k),t.append(d)})}#e(){let l=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(l)}#t(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",e)}window.WoltLabLanguage=ne;window.WoltLabTemplate=V;window.HTMLParsedElement=pe;})(); /** * Handles the low level management of language items. * diff --git a/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php b/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php index 6b385e6d001..787d3758928 100644 --- a/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php @@ -249,6 +249,7 @@ public function readParameters() // labels ArticleLabelObjectHandler::getInstance()->setCategoryIDs(ArticleCategory::getAccessibleCategoryIDs()); + $this->labelPickers = ArticleCategory::getLabelPickers(); if (isset($_REQUEST['tmpHash'])) { $this->tmpHash = $_REQUEST['tmpHash']; @@ -490,6 +491,14 @@ protected function validateLabelIDs() if (!empty($validationResult)) { throw new UserInputException('label', $validationResult); } + + foreach ($this->labelIDs as $groupID => $labelID) { + foreach ($this->labelPickers as $labelPicker) { + if ($labelPicker->labelGroup->groupID == $groupID) { + $labelPicker->selected = $labelID; + } + } + } } /** @@ -599,7 +608,6 @@ public function readData() $this->labelGroupsToCategories = ArticleCategoryLabelCacheBuilder::getInstance()->getData(); $this->labelGroups = ArticleCategory::getAccessibleLabelGroups(); - $this->labelPickers = ArticleCategory::getLabelPickers(); if (empty($_POST)) { $this->setDefaultValues(); diff --git a/wcfsetup/install/files/lib/acp/form/ArticleEditForm.class.php b/wcfsetup/install/files/lib/acp/form/ArticleEditForm.class.php index 417e0f07e32..901b60eaac9 100644 --- a/wcfsetup/install/files/lib/acp/form/ArticleEditForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ArticleEditForm.class.php @@ -206,7 +206,12 @@ public function readData() ); if (isset($assignedLabels[$this->article->articleID])) { foreach ($assignedLabels[$this->article->articleID] as $label) { - $this->labelIDs[$label->groupID] = $label->labelID; + foreach ($this->labelPickers as $labelPicker) { + if ($labelPicker->labelGroup->groupID === $label->groupID) { + $labelPicker->selected = $label->labelID; + break; + } + } } } } diff --git a/wcfsetup/install/files/lib/system/label/LabelPicker.class.php b/wcfsetup/install/files/lib/system/label/LabelPicker.class.php index f063233470c..75ebcfc1975 100644 --- a/wcfsetup/install/files/lib/system/label/LabelPicker.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelPicker.class.php @@ -9,6 +9,8 @@ final class LabelPicker { + public int $selected = 0; + public function __construct(public readonly ViewableLabelGroup $labelGroup) { } @@ -23,10 +25,25 @@ public function toHtml(): string } return \sprintf( - '', - $this->labelGroup->groupID, + <<<'EOT' + + EOT, + $this->selected, + $this->getId(), $this->labelGroup->getTitle(), StringUtil::encodeHTML(JSON::encode($labels)), + $this->labelGroup->groupID, ); } + + public function getId(): string + { + return "labelGroup{$this->labelGroup->groupID}"; + } } From 1da30c15027e45db34dd47a43632d44b0ec88019 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Sat, 23 Sep 2023 19:49:35 +0200 Subject: [PATCH 05/18] Replace the legacy category binding of label groups --- com.woltlab.wcf/templates/articleAdd.tpl | 13 ++-- .../Core/Component/Article/LabelPicker.ts | 38 ++++++++++ .../files/acp/templates/articleAdd.tpl | 67 ++++++----------- wcfsetup/install/files/js/WCF.Label.js | 71 ------------------- .../Core/Component/Article/LabelPicker.js | 37 ++++++++++ .../lib/acp/form/ArticleAddForm.class.php | 9 --- 6 files changed, 105 insertions(+), 130 deletions(-) create mode 100644 ts/WoltLabSuite/Core/Component/Article/LabelPicker.ts create mode 100644 wcfsetup/install/files/js/WoltLabSuite/Core/Component/Article/LabelPicker.js diff --git a/com.woltlab.wcf/templates/articleAdd.tpl b/com.woltlab.wcf/templates/articleAdd.tpl index 5450ad8a7ca..25396a07896 100644 --- a/com.woltlab.wcf/templates/articleAdd.tpl +++ b/com.woltlab.wcf/templates/articleAdd.tpl @@ -87,7 +87,7 @@ {/if} @@ -591,14 +597,9 @@ @@ -163,45 +169,23 @@ {event name='categoryFields'} - {if $labelGroups|count} - {foreach from=$labelGroups item=labelGroup} - {if $labelGroup|count} - groupID]|isset} class="formError"{/if}> -
-
-
    - -
- - {if $errorField == 'label' && $errorType[$labelGroup->groupID]|isset} - - {if $errorType[$labelGroup->groupID] == 'missing'} - {lang}wcf.label.error.missing{/lang} - {else} - {lang}wcf.label.error.invalid{/lang} - {/if} - + {foreach from=$labelPickers item=labelPicker} +
+
+
+ {@$labelPicker->toHtml()} + {if $errorField == 'label' && $errorType[$labelPicker->labelGroup->groupID]|isset} + + {if $errorType[$labelPicker->labelGroup->groupID] == 'missing'} + {lang}wcf.label.error.missing{/lang} + {else} + {lang}wcf.label.error.invalid{/lang} {/if} -
-
- {/if} - {/foreach} - {/if} + + {/if} +
+ + {/foreach}
@@ -614,14 +598,9 @@ {/if} {/capture} diff --git a/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts b/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts index ca397fb914d..916de3453b7 100644 --- a/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts +++ b/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts @@ -58,7 +58,14 @@ const divider = document.createElement("li"); divider.classList.add("dropdownDivider"); - scrollableDropdownMenu.append(divider, this.#createLabelItem(0, emptyLabel)); + scrollableDropdownMenu.append(divider); + + if (this.invertible) { + const invertSelection = this.#createLabelItem(-1, this.#getHtmlForInvertedSelection()); + scrollableDropdownMenu.append(invertSelection); + } + + scrollableDropdownMenu.append(this.#createLabelItem(0, emptyLabel)); } const dropdownMenu = document.createElement("ul"); @@ -146,12 +153,27 @@ return this.hasAttribute("required"); } + get invertible(): boolean { + return this.hasAttribute("invertible"); + } + #getHtmlForNoneLabel(): string { return `${window.WoltLabLanguage.getPhrase("wcf.label.none")}`; } + #getHtmlForInvertedSelection(): string { + return `${window.WoltLabLanguage.getPhrase("wcf.label.withoutSelection")}`; + } + #updateValue(labelId: number): void { - this.#button.innerHTML = this.#labels.get(labelId) || this.#getHtmlForNoneLabel(); + let html = ""; + if (this.#labels.has(labelId)) { + html = this.#labels.get(labelId)!; + } else if (labelId === -1 && this.invertible) { + html = this.#getHtmlForInvertedSelection(); + } + + this.#button.innerHTML = html || this.#getHtmlForNoneLabel(); if (this.#formValue !== undefined) { this.#formValue.value = labelId.toString(); } diff --git a/wcfsetup/install/files/acp/templates/articleAdd.tpl b/wcfsetup/install/files/acp/templates/articleAdd.tpl index d9e999885ee..bc9ee08cea7 100644 --- a/wcfsetup/install/files/acp/templates/articleAdd.tpl +++ b/wcfsetup/install/files/acp/templates/articleAdd.tpl @@ -169,7 +169,7 @@ {event name='categoryFields'} - {foreach from=$labelPickers item=labelPicker} + {foreach from=$labelPickerGroup item=labelPicker}
diff --git a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js index 9a749265045..ec6d87726db 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js +++ b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js @@ -1,20 +1,20 @@ -"use strict";(()=>{var ke=Object.create;var te=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var Ee=Object.getPrototypeOf,xe=Object.prototype.hasOwnProperty;var se=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,l)=>(typeof require<"u"?require:r)[l]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Le=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),fe=(e,r)=>{for(var l in r)te(e,l,{get:r[l],enumerable:!0})},_e=(e,r,l,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of ve(r))!xe.call(e,t)&&t!==l&&te(e,t,{get:()=>r[t],enumerable:!(c=ye(r,t))||c.enumerable});return e};var Te=(e,r,l)=>(l=e!=null?ke(Ee(e)):{},_e(r||!e||!e.__esModule?te(l,"default",{value:e,enumerable:!0}):l,e));var ce=Le((N,re)=>{"use strict";var Q=function(){var e=function(R,o,f,u){for(f=f||{},u=R.length;u--;f[R[u]]=o);return f},r=[2,44],l=[5,9,11,12,13,18,19,21,22,23,25,26,28,29,30,32,33,34,35,37,39,41],c=[1,25],t=[1,27],a=[1,33],i=[1,31],d=[1,32],b=[1,28],k=[1,29],q=[1,26],S=[1,35],z=[1,41],P=[1,40],h=[11,12,15,42,43,47,49,51,52,54,55],g=[9,11,12,13,18,19,21,23,26,28,30,32,33,34,35,37,39],p=[11,12,15,42,43,46,47,48,49,51,52,54,55],x=[1,64],y=[1,65],L=[18,37,39],C=[12,15],W={trace:function(){},yy:{},symbols_:{error:2,TEMPLATE:3,CHUNK_STAR:4,EOF:5,CHUNK_STAR_repetition0:6,CHUNK:7,PLAIN_ANY:8,T_LITERAL:9,COMMAND:10,T_ANY:11,T_WS:12,"{if":13,COMMAND_PARAMETERS:14,"}":15,COMMAND_repetition0:16,COMMAND_option0:17,"{/if}":18,"{include":19,COMMAND_PARAMETER_LIST:20,"{implode":21,"{/implode}":22,"{foreach":23,COMMAND_option1:24,"{/foreach}":25,"{plural":26,PLURAL_PARAMETER_LIST:27,"{lang}":28,"{/lang}":29,"{":30,VARIABLE:31,"{#":32,"{@":33,"{ldelim}":34,"{rdelim}":35,ELSE:36,"{else}":37,ELSE_IF:38,"{elseif":39,FOREACH_ELSE:40,"{foreachelse}":41,T_VARIABLE:42,T_VARIABLE_NAME:43,VARIABLE_repetition0:44,VARIABLE_SUFFIX:45,"[":46,"]":47,".":48,"(":49,VARIABLE_SUFFIX_option0:50,")":51,"=":52,COMMAND_PARAMETER_VALUE:53,T_QUOTED_STRING:54,T_DIGITS:55,COMMAND_PARAMETERS_repetition_plus0:56,COMMAND_PARAMETER:57,T_PLURAL_PARAMETER_NAME:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",9:"T_LITERAL",11:"T_ANY",12:"T_WS",13:"{if",15:"}",18:"{/if}",19:"{include",21:"{implode",22:"{/implode}",23:"{foreach",25:"{/foreach}",26:"{plural",28:"{lang}",29:"{/lang}",30:"{",32:"{#",33:"{@",34:"{ldelim}",35:"{rdelim}",37:"{else}",39:"{elseif",41:"{foreachelse}",42:"T_VARIABLE",43:"T_VARIABLE_NAME",46:"[",47:"]",48:".",49:"(",51:")",52:"=",54:"T_QUOTED_STRING",55:"T_DIGITS"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[8,1],[8,1],[10,7],[10,3],[10,5],[10,6],[10,3],[10,3],[10,3],[10,3],[10,3],[10,1],[10,1],[36,2],[38,4],[40,2],[31,3],[45,3],[45,2],[45,3],[20,5],[20,3],[53,1],[53,1],[53,1],[14,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,3],[27,5],[27,3],[58,1],[58,1],[6,0],[6,2],[16,0],[16,2],[17,0],[17,1],[24,0],[24,1],[44,0],[44,2],[50,0],[50,1],[56,1],[56,2]],performAction:function(o,f,u,w,m,s,U){var n=s.length-1;switch(m){case 1:return s[n-1]+";";case 2:var D=s[n].reduce(function(_,T){return T.encode&&!_[1]?_[0]+=" + '"+T.value:T.encode&&_[1]?_[0]+=T.value:!T.encode&&_[1]?_[0]+="' + "+T.value:!T.encode&&!_[1]&&(_[0]+=" + "+T.value),_[1]=T.encode,_},["''",!1]);D[1]&&(D[0]+="'"),this.$=D[0];break;case 3:case 4:this.$={encode:!0,value:s[n].replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\r\n|\n|\r)/g,"\\n")};break;case 5:this.$={encode:!1,value:s[n]};break;case 8:this.$="(function() { if ("+s[n-5]+") { return "+s[n-3]+"; } "+s[n-2].join(" ")+" "+(s[n-1]||"")+" return ''; })()";break;case 9:if(!s[n-1].file)throw new Error("Missing parameter file");this.$=s[n-1].file+".fetch(v)";break;case 10:if(!s[n-3].from)throw new Error("Missing parameter from");if(!s[n-3].item)throw new Error("Missing parameter item");s[n-3].glue||(s[n-3].glue="', '"),this.$="(function() { return "+s[n-3].from+".map(function(item) { v["+s[n-3].item+"] = item; return "+s[n-1]+"; }).join("+s[n-3].glue+"); })()";break;case 11:if(!s[n-4].from)throw new Error("Missing parameter from");if(!s[n-4].item)throw new Error("Missing parameter item");this.$="(function() {var looped = false, result = '';if ("+s[n-4].from+" instanceof Array) {for (var i = 0; i < "+s[n-4].from+".length; i++) { looped = true;v["+s[n-4].key+"] = i;v["+s[n-4].item+"] = "+s[n-4].from+"[i];result += "+s[n-2]+";}} else {for (var key in "+s[n-4].from+") {if (!"+s[n-4].from+".hasOwnProperty(key)) continue;looped = true;v["+s[n-4].key+"] = key;v["+s[n-4].item+"] = "+s[n-4].from+"[key];result += "+s[n-2]+";}}return (looped ? result : "+(s[n-1]||"''")+"); })()";break;case 12:this.$="h.selectPlural({";var B=!1;for(var O in s[n-1])objOwns(s[n-1],O)&&(this.$+=(B?",":"")+O+": "+s[n-1][O],B=!0);this.$+="})";break;case 13:this.$="Language.get("+s[n-1]+", v)";break;case 14:this.$="h.escapeHTML("+s[n-1]+")";break;case 15:this.$="h.formatNumeric("+s[n-1]+")";break;case 16:this.$=s[n-1];break;case 17:this.$="'{'";break;case 18:this.$="'}'";break;case 19:this.$="else { return "+s[n]+"; }";break;case 20:this.$="else if ("+s[n-2]+") { return "+s[n]+"; }";break;case 21:this.$=s[n];break;case 22:this.$="v['"+s[n-1]+"']"+s[n].join("");break;case 23:this.$=s[n-2]+s[n-1]+s[n];break;case 24:this.$="['"+s[n]+"']";break;case 25:case 39:this.$=s[n-2]+(s[n-1]||"")+s[n];break;case 26:case 40:this.$=s[n],this.$[s[n-4]]=s[n-2];break;case 27:case 41:this.$={},this.$[s[n-2]]=s[n];break;case 31:this.$=s[n].join("");break;case 44:case 46:case 52:this.$=[];break;case 45:case 47:case 53:case 57:s[n-1].push(s[n]);break;case 56:this.$=[s[n]];break}},table:[e([5,9,11,12,13,19,21,23,26,28,30,32,33,34,35],r,{3:1,4:2,6:3}),{1:[3]},{5:[1,4]},e([5,18,22,25,29,37,39,41],[2,2],{7:5,8:6,10:8,9:[1,7],11:[1,9],12:[1,10],13:[1,11],19:[1,12],21:[1,13],23:[1,14],26:[1,15],28:[1,16],30:[1,17],32:[1,18],33:[1,19],34:[1,20],35:[1,21]}),{1:[2,1]},e(l,[2,45]),e(l,[2,3]),e(l,[2,4]),e(l,[2,5]),e(l,[2,6]),e(l,[2,7]),{11:c,12:t,14:22,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{20:34,43:S},{20:36,43:S},{20:37,43:S},{27:38,43:z,55:P,58:39},e([9,11,12,13,19,21,23,26,28,29,30,32,33,34,35],r,{6:3,4:42}),{31:43,42:a},{31:44,42:a},{31:45,42:a},e(l,[2,17]),e(l,[2,18]),{15:[1,46]},e([15,47,51],[2,31],{31:30,57:47,11:c,12:t,42:a,43:i,49:d,52:b,54:k,55:q}),e(h,[2,56]),e(h,[2,32]),e(h,[2,33]),e(h,[2,34]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{11:c,12:t,14:48,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{43:[1,49]},{15:[1,50]},{52:[1,51]},{15:[1,52]},{15:[1,53]},{15:[1,54]},{52:[1,55]},{52:[2,42]},{52:[2,43]},{29:[1,56]},{15:[1,57]},{15:[1,58]},{15:[1,59]},e(g,r,{6:3,4:60}),e(h,[2,57]),{51:[1,61]},e(p,[2,52],{44:62}),e(l,[2,9]),{31:66,42:a,53:63,54:x,55:y},e([9,11,12,13,19,21,22,23,26,28,30,32,33,34,35],r,{6:3,4:67}),e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35,41],r,{6:3,4:68}),e(l,[2,12]),{31:66,42:a,53:69,54:x,55:y},e(l,[2,13]),e(l,[2,14]),e(l,[2,15]),e(l,[2,16]),e(L,[2,46],{16:70}),e(h,[2,39]),e([11,12,15,42,43,47,51,52,54,55],[2,22],{45:71,46:[1,72],48:[1,73],49:[1,74]}),{12:[1,75],15:[2,27]},e(C,[2,28]),e(C,[2,29]),e(C,[2,30]),{22:[1,76]},{24:77,25:[2,50],40:78,41:[1,79]},{12:[1,80],15:[2,41]},{17:81,18:[2,48],36:83,37:[1,85],38:82,39:[1,84]},e(p,[2,53]),{11:c,12:t,14:86,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{43:[1,87]},{11:c,12:t,14:89,31:30,42:a,43:i,49:d,50:88,51:[2,54],52:b,54:k,55:q,56:23,57:24},{20:90,43:S},e(l,[2,10]),{25:[1,91]},{25:[2,51]},e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35],r,{6:3,4:92}),{27:93,43:z,55:P,58:39},{18:[1,94]},e(L,[2,47]),{18:[2,49]},{11:c,12:t,14:95,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},e([9,11,12,13,18,19,21,23,26,28,30,32,33,34,35],r,{6:3,4:96}),{47:[1,97]},e(p,[2,24]),{51:[1,98]},{51:[2,55]},{15:[2,26]},e(l,[2,11]),{25:[2,21]},{15:[2,40]},e(l,[2,8]),{15:[1,99]},{18:[2,19]},e(p,[2,23]),e(p,[2,25]),e(g,r,{6:3,4:100}),e(L,[2,20])],defaultActions:{4:[2,1],40:[2,42],41:[2,43],78:[2,51],83:[2,49],89:[2,55],90:[2,26],92:[2,21],93:[2,40],96:[2,19]},parseError:function(o,f){if(f.recoverable)this.trace(o);else{var u=new Error(o);throw u.hash=f,u}},parse:function(o){var f=this,u=[0],w=[],m=[null],s=[],U=this.table,n="",D=0,B=0,O=0,_=2,T=1,me=s.slice.call(arguments,1),v=Object.create(this.lexer),j={yy:{}};for(var X in this.yy)Object.prototype.hasOwnProperty.call(this.yy,X)&&(j.yy[X]=this.yy[X]);v.setInput(o,j.yy),j.yy.lexer=v,j.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var J=v.yylloc;s.push(J);var be=v.options&&v.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Re(M){u.length=u.length-2*M,m.length=m.length-M,s.length=s.length-M}for(var we=function(){var M;return M=v.lex()||T,typeof M!="number"&&(M=f.symbols_[M]||M),M},E,$,H,A,De,ee,F={},Y,I,oe,Z;;){if(H=u[u.length-1],this.defaultActions[H]?A=this.defaultActions[H]:((E===null||typeof E>"u")&&(E=we()),A=U[H]&&U[H][E]),typeof A>"u"||!A.length||!A[0]){var ae="";Z=[];for(Y in U[H])this.terminals_[Y]&&Y>_&&Z.push("'"+this.terminals_[Y]+"'");v.showPosition?ae="Parse error on line "+(D+1)+`: +"use strict";(()=>{var ke=Object.create;var te=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var Ee=Object.getPrototypeOf,xe=Object.prototype.hasOwnProperty;var se=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(l,r)=>(typeof require<"u"?require:l)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Le=(e,l)=>()=>(l||e((l={exports:{}}).exports,l),l.exports),fe=(e,l)=>{for(var r in l)te(e,r,{get:l[r],enumerable:!0})},_e=(e,l,r,f)=>{if(l&&typeof l=="object"||typeof l=="function")for(let t of ve(l))!xe.call(e,t)&&t!==r&&te(e,t,{get:()=>l[t],enumerable:!(f=ye(l,t))||f.enumerable});return e};var Te=(e,l,r)=>(r=e!=null?ke(Ee(e)):{},_e(l||!e||!e.__esModule?te(r,"default",{value:e,enumerable:!0}):r,e));var ce=Le((N,re)=>{"use strict";var Q=function(){var e=function(R,o,c,u){for(c=c||{},u=R.length;u--;c[R[u]]=o);return c},l=[2,44],r=[5,9,11,12,13,18,19,21,22,23,25,26,28,29,30,32,33,34,35,37,39,41],f=[1,25],t=[1,27],a=[1,33],i=[1,31],d=[1,32],b=[1,28],k=[1,29],q=[1,26],S=[1,35],z=[1,41],P=[1,40],h=[11,12,15,42,43,47,49,51,52,54,55],g=[9,11,12,13,18,19,21,23,26,28,30,32,33,34,35,37,39],p=[11,12,15,42,43,46,47,48,49,51,52,54,55],x=[1,64],y=[1,65],L=[18,37,39],C=[12,15],W={trace:function(){},yy:{},symbols_:{error:2,TEMPLATE:3,CHUNK_STAR:4,EOF:5,CHUNK_STAR_repetition0:6,CHUNK:7,PLAIN_ANY:8,T_LITERAL:9,COMMAND:10,T_ANY:11,T_WS:12,"{if":13,COMMAND_PARAMETERS:14,"}":15,COMMAND_repetition0:16,COMMAND_option0:17,"{/if}":18,"{include":19,COMMAND_PARAMETER_LIST:20,"{implode":21,"{/implode}":22,"{foreach":23,COMMAND_option1:24,"{/foreach}":25,"{plural":26,PLURAL_PARAMETER_LIST:27,"{lang}":28,"{/lang}":29,"{":30,VARIABLE:31,"{#":32,"{@":33,"{ldelim}":34,"{rdelim}":35,ELSE:36,"{else}":37,ELSE_IF:38,"{elseif":39,FOREACH_ELSE:40,"{foreachelse}":41,T_VARIABLE:42,T_VARIABLE_NAME:43,VARIABLE_repetition0:44,VARIABLE_SUFFIX:45,"[":46,"]":47,".":48,"(":49,VARIABLE_SUFFIX_option0:50,")":51,"=":52,COMMAND_PARAMETER_VALUE:53,T_QUOTED_STRING:54,T_DIGITS:55,COMMAND_PARAMETERS_repetition_plus0:56,COMMAND_PARAMETER:57,T_PLURAL_PARAMETER_NAME:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",9:"T_LITERAL",11:"T_ANY",12:"T_WS",13:"{if",15:"}",18:"{/if}",19:"{include",21:"{implode",22:"{/implode}",23:"{foreach",25:"{/foreach}",26:"{plural",28:"{lang}",29:"{/lang}",30:"{",32:"{#",33:"{@",34:"{ldelim}",35:"{rdelim}",37:"{else}",39:"{elseif",41:"{foreachelse}",42:"T_VARIABLE",43:"T_VARIABLE_NAME",46:"[",47:"]",48:".",49:"(",51:")",52:"=",54:"T_QUOTED_STRING",55:"T_DIGITS"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[8,1],[8,1],[10,7],[10,3],[10,5],[10,6],[10,3],[10,3],[10,3],[10,3],[10,3],[10,1],[10,1],[36,2],[38,4],[40,2],[31,3],[45,3],[45,2],[45,3],[20,5],[20,3],[53,1],[53,1],[53,1],[14,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,3],[27,5],[27,3],[58,1],[58,1],[6,0],[6,2],[16,0],[16,2],[17,0],[17,1],[24,0],[24,1],[44,0],[44,2],[50,0],[50,1],[56,1],[56,2]],performAction:function(o,c,u,w,m,s,U){var n=s.length-1;switch(m){case 1:return s[n-1]+";";case 2:var D=s[n].reduce(function(_,T){return T.encode&&!_[1]?_[0]+=" + '"+T.value:T.encode&&_[1]?_[0]+=T.value:!T.encode&&_[1]?_[0]+="' + "+T.value:!T.encode&&!_[1]&&(_[0]+=" + "+T.value),_[1]=T.encode,_},["''",!1]);D[1]&&(D[0]+="'"),this.$=D[0];break;case 3:case 4:this.$={encode:!0,value:s[n].replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\r\n|\n|\r)/g,"\\n")};break;case 5:this.$={encode:!1,value:s[n]};break;case 8:this.$="(function() { if ("+s[n-5]+") { return "+s[n-3]+"; } "+s[n-2].join(" ")+" "+(s[n-1]||"")+" return ''; })()";break;case 9:if(!s[n-1].file)throw new Error("Missing parameter file");this.$=s[n-1].file+".fetch(v)";break;case 10:if(!s[n-3].from)throw new Error("Missing parameter from");if(!s[n-3].item)throw new Error("Missing parameter item");s[n-3].glue||(s[n-3].glue="', '"),this.$="(function() { return "+s[n-3].from+".map(function(item) { v["+s[n-3].item+"] = item; return "+s[n-1]+"; }).join("+s[n-3].glue+"); })()";break;case 11:if(!s[n-4].from)throw new Error("Missing parameter from");if(!s[n-4].item)throw new Error("Missing parameter item");this.$="(function() {var looped = false, result = '';if ("+s[n-4].from+" instanceof Array) {for (var i = 0; i < "+s[n-4].from+".length; i++) { looped = true;v["+s[n-4].key+"] = i;v["+s[n-4].item+"] = "+s[n-4].from+"[i];result += "+s[n-2]+";}} else {for (var key in "+s[n-4].from+") {if (!"+s[n-4].from+".hasOwnProperty(key)) continue;looped = true;v["+s[n-4].key+"] = key;v["+s[n-4].item+"] = "+s[n-4].from+"[key];result += "+s[n-2]+";}}return (looped ? result : "+(s[n-1]||"''")+"); })()";break;case 12:this.$="h.selectPlural({";var B=!1;for(var O in s[n-1])objOwns(s[n-1],O)&&(this.$+=(B?",":"")+O+": "+s[n-1][O],B=!0);this.$+="})";break;case 13:this.$="Language.get("+s[n-1]+", v)";break;case 14:this.$="h.escapeHTML("+s[n-1]+")";break;case 15:this.$="h.formatNumeric("+s[n-1]+")";break;case 16:this.$=s[n-1];break;case 17:this.$="'{'";break;case 18:this.$="'}'";break;case 19:this.$="else { return "+s[n]+"; }";break;case 20:this.$="else if ("+s[n-2]+") { return "+s[n]+"; }";break;case 21:this.$=s[n];break;case 22:this.$="v['"+s[n-1]+"']"+s[n].join("");break;case 23:this.$=s[n-2]+s[n-1]+s[n];break;case 24:this.$="['"+s[n]+"']";break;case 25:case 39:this.$=s[n-2]+(s[n-1]||"")+s[n];break;case 26:case 40:this.$=s[n],this.$[s[n-4]]=s[n-2];break;case 27:case 41:this.$={},this.$[s[n-2]]=s[n];break;case 31:this.$=s[n].join("");break;case 44:case 46:case 52:this.$=[];break;case 45:case 47:case 53:case 57:s[n-1].push(s[n]);break;case 56:this.$=[s[n]];break}},table:[e([5,9,11,12,13,19,21,23,26,28,30,32,33,34,35],l,{3:1,4:2,6:3}),{1:[3]},{5:[1,4]},e([5,18,22,25,29,37,39,41],[2,2],{7:5,8:6,10:8,9:[1,7],11:[1,9],12:[1,10],13:[1,11],19:[1,12],21:[1,13],23:[1,14],26:[1,15],28:[1,16],30:[1,17],32:[1,18],33:[1,19],34:[1,20],35:[1,21]}),{1:[2,1]},e(r,[2,45]),e(r,[2,3]),e(r,[2,4]),e(r,[2,5]),e(r,[2,6]),e(r,[2,7]),{11:f,12:t,14:22,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{20:34,43:S},{20:36,43:S},{20:37,43:S},{27:38,43:z,55:P,58:39},e([9,11,12,13,19,21,23,26,28,29,30,32,33,34,35],l,{6:3,4:42}),{31:43,42:a},{31:44,42:a},{31:45,42:a},e(r,[2,17]),e(r,[2,18]),{15:[1,46]},e([15,47,51],[2,31],{31:30,57:47,11:f,12:t,42:a,43:i,49:d,52:b,54:k,55:q}),e(h,[2,56]),e(h,[2,32]),e(h,[2,33]),e(h,[2,34]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{11:f,12:t,14:48,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{43:[1,49]},{15:[1,50]},{52:[1,51]},{15:[1,52]},{15:[1,53]},{15:[1,54]},{52:[1,55]},{52:[2,42]},{52:[2,43]},{29:[1,56]},{15:[1,57]},{15:[1,58]},{15:[1,59]},e(g,l,{6:3,4:60}),e(h,[2,57]),{51:[1,61]},e(p,[2,52],{44:62}),e(r,[2,9]),{31:66,42:a,53:63,54:x,55:y},e([9,11,12,13,19,21,22,23,26,28,30,32,33,34,35],l,{6:3,4:67}),e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35,41],l,{6:3,4:68}),e(r,[2,12]),{31:66,42:a,53:69,54:x,55:y},e(r,[2,13]),e(r,[2,14]),e(r,[2,15]),e(r,[2,16]),e(L,[2,46],{16:70}),e(h,[2,39]),e([11,12,15,42,43,47,51,52,54,55],[2,22],{45:71,46:[1,72],48:[1,73],49:[1,74]}),{12:[1,75],15:[2,27]},e(C,[2,28]),e(C,[2,29]),e(C,[2,30]),{22:[1,76]},{24:77,25:[2,50],40:78,41:[1,79]},{12:[1,80],15:[2,41]},{17:81,18:[2,48],36:83,37:[1,85],38:82,39:[1,84]},e(p,[2,53]),{11:f,12:t,14:86,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},{43:[1,87]},{11:f,12:t,14:89,31:30,42:a,43:i,49:d,50:88,51:[2,54],52:b,54:k,55:q,56:23,57:24},{20:90,43:S},e(r,[2,10]),{25:[1,91]},{25:[2,51]},e([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35],l,{6:3,4:92}),{27:93,43:z,55:P,58:39},{18:[1,94]},e(L,[2,47]),{18:[2,49]},{11:f,12:t,14:95,31:30,42:a,43:i,49:d,52:b,54:k,55:q,56:23,57:24},e([9,11,12,13,18,19,21,23,26,28,30,32,33,34,35],l,{6:3,4:96}),{47:[1,97]},e(p,[2,24]),{51:[1,98]},{51:[2,55]},{15:[2,26]},e(r,[2,11]),{25:[2,21]},{15:[2,40]},e(r,[2,8]),{15:[1,99]},{18:[2,19]},e(p,[2,23]),e(p,[2,25]),e(g,l,{6:3,4:100}),e(L,[2,20])],defaultActions:{4:[2,1],40:[2,42],41:[2,43],78:[2,51],83:[2,49],89:[2,55],90:[2,26],92:[2,21],93:[2,40],96:[2,19]},parseError:function(o,c){if(c.recoverable)this.trace(o);else{var u=new Error(o);throw u.hash=c,u}},parse:function(o){var c=this,u=[0],w=[],m=[null],s=[],U=this.table,n="",D=0,B=0,O=0,_=2,T=1,me=s.slice.call(arguments,1),v=Object.create(this.lexer),j={yy:{}};for(var X in this.yy)Object.prototype.hasOwnProperty.call(this.yy,X)&&(j.yy[X]=this.yy[X]);v.setInput(o,j.yy),j.yy.lexer=v,j.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var J=v.yylloc;s.push(J);var be=v.options&&v.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Re(M){u.length=u.length-2*M,m.length=m.length-M,s.length=s.length-M}for(var we=function(){var M;return M=v.lex()||T,typeof M!="number"&&(M=c.symbols_[M]||M),M},E,$,H,A,De,ee,F={},Y,I,oe,Z;;){if(H=u[u.length-1],this.defaultActions[H]?A=this.defaultActions[H]:((E===null||typeof E>"u")&&(E=we()),A=U[H]&&U[H][E]),typeof A>"u"||!A.length||!A[0]){var ae="";Z=[];for(Y in U[H])this.terminals_[Y]&&Y>_&&Z.push("'"+this.terminals_[Y]+"'");v.showPosition?ae="Parse error on line "+(D+1)+`: `+v.showPosition()+` -Expecting `+Z.join(", ")+", got '"+(this.terminals_[E]||E)+"'":ae="Parse error on line "+(D+1)+": Unexpected "+(E==T?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(ae,{text:v.match,token:this.terminals_[E]||E,line:v.yylineno,loc:J,expected:Z})}if(A[0]instanceof Array&&A.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+E);switch(A[0]){case 1:u.push(E),m.push(v.yytext),s.push(v.yylloc),u.push(A[1]),E=null,$?(E=$,$=null):(B=v.yyleng,n=v.yytext,D=v.yylineno,J=v.yylloc,O>0&&O--);break;case 2:if(I=this.productions_[A[1]][1],F.$=m[m.length-I],F._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column},be&&(F._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]]),ee=this.performAction.apply(F,[n,B,D,j.yy,A[1],m,s].concat(me)),typeof ee<"u")return ee;I&&(u=u.slice(0,-1*I*2),m=m.slice(0,-1*I),s=s.slice(0,-1*I)),u.push(this.productions_[A[1]][0]),m.push(F.$),s.push(F._$),oe=U[u[u.length-2]][u[u.length-1]],u.push(oe);break;case 3:return!0}}return!0}},ge=function(){var R={EOF:1,parseError:function(f,u){if(this.yy.parser)this.yy.parser.parseError(f,u);else throw new Error(f)},setInput:function(o,f){return this.yy=f||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var f=o.match(/(?:\r\n?|\n).*/g);return f?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var f=o.length,u=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-f),this.offset-=f;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var m=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===w.length?this.yylloc.first_column:0)+w[w.length-u.length].length-u[0].length:this.yylloc.first_column-f},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-f]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),f=new Array(o.length+1).join("-");return o+this.upcomingInput()+` -`+f+"^"},test_match:function(o,f){var u,w,m;if(this.options.backtrack_lexer&&(m={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(m.yylloc.range=this.yylloc.range.slice(0))),w=o[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],u=this.performAction.call(this,this.yy,this,f,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u)return u;if(this._backtrack){for(var s in m)this[s]=m[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,f,u,w;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),s=0;sf[0].length)){if(f=u,w=s,this.options.backtrack_lexer){if(o=this.test_match(u,m[s]),o!==!1)return o;if(this._backtrack){f=!1;continue}else return!1}else if(!this.options.flex)break}return f?(o=this.test_match(f,m[w]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var f=this.next();return f||this.lex()},begin:function(f){this.conditionStack.push(f)},popState:function(){var f=this.conditionStack.length-1;return f>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(f){return f=this.conditionStack.length-1-Math.abs(f||0),f>=0?this.conditionStack[f]:"INITIAL"},pushState:function(f){this.begin(f)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(f,u,w,m){var s=m;switch(w){case 0:break;case 1:return u.yytext=u.yytext.substring(9,u.yytext.length-10),9;break;case 2:return 54;case 3:return 54;case 4:return 42;case 5:return 55;case 6:return 43;case 7:return 48;case 8:return 46;case 9:return 47;case 10:return 49;case 11:return 51;case 12:return 52;case 13:return 34;case 14:return 35;case 15:return this.begin("command"),32;break;case 16:return this.begin("command"),33;break;case 17:return this.begin("command"),13;break;case 18:return this.begin("command"),39;break;case 19:return this.begin("command"),39;break;case 20:return 37;case 21:return 18;case 22:return 28;case 23:return 29;case 24:return this.begin("command"),19;break;case 25:return this.begin("command"),21;break;case 26:return this.begin("command"),26;break;case 27:return 22;case 28:return this.begin("command"),23;break;case 29:return 41;case 30:return 25;case 31:return this.begin("command"),30;break;case 32:return this.popState(),15;break;case 33:return 12;case 34:return 5;case 35:return 11}},rules:[/^(?:\{\*[\s\S]*?\*\})/,/^(?:\{literal\}[\s\S]*?\{\/literal\})/,/^(?:"([^"]|\\\.)*")/,/^(?:'([^']|\\\.)*')/,/^(?:\$)/,/^(?:[0-9]+)/,/^(?:[_a-zA-Z][_a-zA-Z0-9]*)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:\()/,/^(?:\))/,/^(?:=)/,/^(?:\{ldelim\})/,/^(?:\{rdelim\})/,/^(?:\{#)/,/^(?:\{@)/,/^(?:\{if )/,/^(?:\{else if )/,/^(?:\{elseif )/,/^(?:\{else\})/,/^(?:\{\/if\})/,/^(?:\{lang\})/,/^(?:\{\/lang\})/,/^(?:\{include )/,/^(?:\{implode )/,/^(?:\{plural )/,/^(?:\{\/implode\})/,/^(?:\{foreach )/,/^(?:\{foreachelse\})/,/^(?:\{\/foreach\})/,/^(?:\{(?!\s))/,/^(?:\})/,/^(?:\s+)/,/^(?:$)/,/^(?:[^{])/],conditions:{command:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],inclusive:!0},INITIAL:{rules:[0,1,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35],inclusive:!0}}};return R}();W.lexer=ge;function K(){this.yy={}}return K.prototype=W,W.Parser=K,new K}();typeof se<"u"&&typeof N<"u"&&(N.parser=Q,N.Parser=Q.Parser,N.parse=function(){return Q.parse.apply(Q,arguments)},N.main=!0,typeof re<"u"&&se.main===re&&N.main(process.argv.slice(1)))});var ne={};fe(ne,{getPhrase:()=>le,registerPhrase:()=>Ie});var he=Te(ce());var ie={};fe(ie,{add:()=>G,get:()=>le});var ue=new Map;function le(e,r={}){let l=ue.get(e);return l===void 0?e:l(r)}function G(e,r){ue.set(e,r)}function Ae(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function de(e){return Number(e).toLocaleString(document.documentElement.lang,{maximumFractionDigits:2}).replace("-","\u2212")}var qe=new Intl.PluralRules(document.documentElement.lang);function Se(e){if(!Object.hasOwn(e,"value"))throw new Error("Missing parameter value");if(!e.other)throw new Error("Missing parameter other");let r=e.value;Array.isArray(r)&&(r=r.length);let l=Object.keys(e).find(a=>a.toString()===parseInt(a).toString()&&a.toString()===r.toString());if(l)return l;let c=qe.select(r);e[c]===void 0&&(c="other");let t=e[c];return t.includes("#")?t.replace("#",de(r)):t}function Me(e){let r=`var tmp = {}; +Expecting `+Z.join(", ")+", got '"+(this.terminals_[E]||E)+"'":ae="Parse error on line "+(D+1)+": Unexpected "+(E==T?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(ae,{text:v.match,token:this.terminals_[E]||E,line:v.yylineno,loc:J,expected:Z})}if(A[0]instanceof Array&&A.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+E);switch(A[0]){case 1:u.push(E),m.push(v.yytext),s.push(v.yylloc),u.push(A[1]),E=null,$?(E=$,$=null):(B=v.yyleng,n=v.yytext,D=v.yylineno,J=v.yylloc,O>0&&O--);break;case 2:if(I=this.productions_[A[1]][1],F.$=m[m.length-I],F._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column},be&&(F._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]]),ee=this.performAction.apply(F,[n,B,D,j.yy,A[1],m,s].concat(me)),typeof ee<"u")return ee;I&&(u=u.slice(0,-1*I*2),m=m.slice(0,-1*I),s=s.slice(0,-1*I)),u.push(this.productions_[A[1]][0]),m.push(F.$),s.push(F._$),oe=U[u[u.length-2]][u[u.length-1]],u.push(oe);break;case 3:return!0}}return!0}},ge=function(){var R={EOF:1,parseError:function(c,u){if(this.yy.parser)this.yy.parser.parseError(c,u);else throw new Error(c)},setInput:function(o,c){return this.yy=c||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var c=o.match(/(?:\r\n?|\n).*/g);return c?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var c=o.length,u=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var m=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===w.length?this.yylloc.first_column:0)+w[w.length-u.length].length-u[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-c]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),c=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+c+"^"},test_match:function(o,c){var u,w,m;if(this.options.backtrack_lexer&&(m={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(m.yylloc.range=this.yylloc.range.slice(0))),w=o[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],u=this.performAction.call(this,this.yy,this,c,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u)return u;if(this._backtrack){for(var s in m)this[s]=m[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,c,u,w;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),s=0;sc[0].length)){if(c=u,w=s,this.options.backtrack_lexer){if(o=this.test_match(u,m[s]),o!==!1)return o;if(this._backtrack){c=!1;continue}else return!1}else if(!this.options.flex)break}return c?(o=this.test_match(c,m[w]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var c=this.next();return c||this.lex()},begin:function(c){this.conditionStack.push(c)},popState:function(){var c=this.conditionStack.length-1;return c>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(c){return c=this.conditionStack.length-1-Math.abs(c||0),c>=0?this.conditionStack[c]:"INITIAL"},pushState:function(c){this.begin(c)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(c,u,w,m){var s=m;switch(w){case 0:break;case 1:return u.yytext=u.yytext.substring(9,u.yytext.length-10),9;break;case 2:return 54;case 3:return 54;case 4:return 42;case 5:return 55;case 6:return 43;case 7:return 48;case 8:return 46;case 9:return 47;case 10:return 49;case 11:return 51;case 12:return 52;case 13:return 34;case 14:return 35;case 15:return this.begin("command"),32;break;case 16:return this.begin("command"),33;break;case 17:return this.begin("command"),13;break;case 18:return this.begin("command"),39;break;case 19:return this.begin("command"),39;break;case 20:return 37;case 21:return 18;case 22:return 28;case 23:return 29;case 24:return this.begin("command"),19;break;case 25:return this.begin("command"),21;break;case 26:return this.begin("command"),26;break;case 27:return 22;case 28:return this.begin("command"),23;break;case 29:return 41;case 30:return 25;case 31:return this.begin("command"),30;break;case 32:return this.popState(),15;break;case 33:return 12;case 34:return 5;case 35:return 11}},rules:[/^(?:\{\*[\s\S]*?\*\})/,/^(?:\{literal\}[\s\S]*?\{\/literal\})/,/^(?:"([^"]|\\\.)*")/,/^(?:'([^']|\\\.)*')/,/^(?:\$)/,/^(?:[0-9]+)/,/^(?:[_a-zA-Z][_a-zA-Z0-9]*)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:\()/,/^(?:\))/,/^(?:=)/,/^(?:\{ldelim\})/,/^(?:\{rdelim\})/,/^(?:\{#)/,/^(?:\{@)/,/^(?:\{if )/,/^(?:\{else if )/,/^(?:\{elseif )/,/^(?:\{else\})/,/^(?:\{\/if\})/,/^(?:\{lang\})/,/^(?:\{\/lang\})/,/^(?:\{include )/,/^(?:\{implode )/,/^(?:\{plural )/,/^(?:\{\/implode\})/,/^(?:\{foreach )/,/^(?:\{foreachelse\})/,/^(?:\{\/foreach\})/,/^(?:\{(?!\s))/,/^(?:\})/,/^(?:\s+)/,/^(?:$)/,/^(?:[^{])/],conditions:{command:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],inclusive:!0},INITIAL:{rules:[0,1,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35],inclusive:!0}}};return R}();W.lexer=ge;function K(){this.yy={}}return K.prototype=W,W.Parser=K,new K}();typeof se<"u"&&typeof N<"u"&&(N.parser=Q,N.Parser=Q.Parser,N.parse=function(){return Q.parse.apply(Q,arguments)},N.main=!0,typeof re<"u"&&se.main===re&&N.main(process.argv.slice(1)))});var ne={};fe(ne,{getPhrase:()=>le,registerPhrase:()=>Ie});var he=Te(ce());var ie={};fe(ie,{add:()=>G,get:()=>le});var ue=new Map;function le(e,l={}){let r=ue.get(e);return r===void 0?e:r(l)}function G(e,l){ue.set(e,l)}function Ae(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function de(e){return Number(e).toLocaleString(document.documentElement.lang,{maximumFractionDigits:2}).replace("-","\u2212")}var qe=new Intl.PluralRules(document.documentElement.lang);function Se(e){if(!Object.hasOwn(e,"value"))throw new Error("Missing parameter value");if(!e.other)throw new Error("Missing parameter other");let l=e.value;Array.isArray(l)&&(l=l.length);let r=Object.keys(e).find(a=>a.toString()===parseInt(a).toString()&&a.toString()===l.toString());if(r)return r;let f=qe.select(l);e[f]===void 0&&(f="other");let t=e[f];return t.includes("#")?t.replace("#",de(l)):t}function Me(e){let l=`var tmp = {}; for (var key in v) tmp[key] = v[key]; v = tmp; v.__wcf = window.WCF; v.__window = window; return ${he.parse(e)} - `;return new Function("Language","h","v",r)}var V=class{compiled;constructor(r){try{this.compiled=Me(r)}catch(l){throw l instanceof Error&&console.debug(l.message),l}}fetch(r){return this.compiled(ie,{selectPlural:Se,escapeHTML:Ae,formatNumeric:de},r)}};function Ie(e,r){typeof r=="string"?G(e,ze(r)):G(e,function(){return r})}function ze(e){if(!e.includes("{"))return function(){return e};try{let r=new V(e);return r.fetch.bind(r)}catch{return function(){return e}}}var Pe=(()=>{let e="DOMContentLoaded",r=new WeakMap,l=[],c=i=>{do if(i.nextSibling)return!0;while(i=i.parentNode);return!1},t=()=>{l.splice(0).forEach(i=>{r.get(i[0])!==!0&&(r.set(i[0],!0),i[0][i[1]]())})};document.addEventListener(e,t);class a extends HTMLElement{static withParsedCallback(d,b="parsed"){let{prototype:k}=d,{connectedCallback:q}=k,S=b+"Callback",z=(h,g,p,x)=>{g.disconnect(),p.removeEventListener(e,x),P(h)},P=h=>{l.length||requestAnimationFrame(t),l.push([h,S])};return Object.defineProperties(k,{connectedCallback:{configurable:!0,writable:!0,value(){if(q&&q.apply(this,arguments),S in this&&!r.has(this)){let h=this,{ownerDocument:g}=h;if(r.set(h,!1),g.readyState==="complete"||c(h))P(h);else{let p=()=>z(h,x,g,p);g.addEventListener(e,p);let x=new MutationObserver(()=>{c(h)&&z(h,x,g,p)});x.observe(h.parentNode,{childList:!0,subtree:!0})}}}},[b]:{configurable:!0,get(){return r.get(this)===!0}}}),d}}return a.withParsedCallback(a)})(),pe=Pe;(()=>{let e=new Map([["contact-book","address-book"],["contact-card","address-card"],["vcard","address-card"],["angle-double-down","angles-down"],["angle-double-left","angles-left"],["angle-double-right","angles-right"],["angle-double-up","angles-up"],["apple-alt","apple-whole"],["sort-numeric-asc","arrow-down-1-9"],["sort-numeric-down","arrow-down-1-9"],["sort-numeric-desc","arrow-down-9-1"],["sort-numeric-down-alt","arrow-down-9-1"],["sort-alpha-asc","arrow-down-a-z"],["sort-alpha-down","arrow-down-a-z"],["long-arrow-down","arrow-down-long"],["sort-amount-desc","arrow-down-short-wide"],["sort-amount-down-alt","arrow-down-short-wide"],["sort-amount-asc","arrow-down-wide-short"],["sort-amount-down","arrow-down-wide-short"],["sort-alpha-desc","arrow-down-z-a"],["sort-alpha-down-alt","arrow-down-z-a"],["long-arrow-left","arrow-left-long"],["mouse-pointer","arrow-pointer"],["exchange","arrow-right-arrow-left"],["sign-out","arrow-right-from-bracket"],["long-arrow-right","arrow-right-long"],["sign-in","arrow-right-to-bracket"],["arrow-left-rotate","arrow-rotate-left"],["arrow-rotate-back","arrow-rotate-left"],["arrow-rotate-backward","arrow-rotate-left"],["undo","arrow-rotate-left"],["arrow-right-rotate","arrow-rotate-right"],["arrow-rotate-forward","arrow-rotate-right"],["redo","arrow-rotate-right"],["level-down","arrow-turn-down"],["level-up","arrow-turn-up"],["sort-numeric-up","arrow-up-1-9"],["sort-numeric-up-alt","arrow-up-9-1"],["sort-alpha-up","arrow-up-a-z"],["long-arrow-up","arrow-up-long"],["external-link","arrow-up-right-from-square"],["sort-amount-up-alt","arrow-up-short-wide"],["sort-amount-up","arrow-up-wide-short"],["sort-alpha-up-alt","arrow-up-z-a"],["arrows-h","arrows-left-right"],["refresh","arrows-rotate"],["sync","arrows-rotate"],["arrows-v","arrows-up-down"],["arrows","arrows-up-down-left-right"],["carriage-baby","baby-carriage"],["fast-backward","backward-fast"],["step-backward","backward-step"],["shopping-bag","bag-shopping"],["haykal","bahai"],["cancel","ban"],["smoking-ban","ban-smoking"],["band-aid","bandage"],["navicon","bars"],["tasks-alt","bars-progress"],["reorder","bars-staggered"],["stream","bars-staggered"],["baseball-ball","baseball"],["shopping-basket","basket-shopping"],["basketball-ball","basketball"],["bathtub","bath"],["battery-0","battery-empty"],["battery","battery-full"],["battery-5","battery-full"],["battery-3","battery-half"],["battery-2","battery-quarter"],["battery-4","battery-three-quarters"],["procedures","bed-pulse"],["beer","beer-mug-empty"],["concierge-bell","bell-concierge"],["zap","bolt"],["atlas","book-atlas"],["bible","book-bible"],["journal-whills","book-journal-whills"],["book-reader","book-open-reader"],["quran","book-quran"],["book-dead","book-skull"],["tanakh","book-tanakh"],["border-style","border-top-left"],["archive","box-archive"],["boxes","boxes-stacked"],["boxes-alt","boxes-stacked"],["quidditch","broom-ball"],["quidditch-broom-ball","broom-ball"],["bank","building-columns"],["institution","building-columns"],["museum","building-columns"],["university","building-columns"],["hamburger","burger"],["bus-alt","bus-simple"],["briefcase-clock","business-time"],["tram","cable-car"],["birthday-cake","cake-candles"],["cake","cake-candles"],["calendar-alt","calendar-days"],["calendar-times","calendar-xmark"],["camera-alt","camera"],["automobile","car"],["battery-car","car-battery"],["car-crash","car-burst"],["car-alt","car-rear"],["dolly-flatbed","cart-flatbed"],["luggage-cart","cart-flatbed-suitcase"],["shopping-cart","cart-shopping"],["blackboard","chalkboard"],["chalkboard-teacher","chalkboard-user"],["glass-cheers","champagne-glasses"],["area-chart","chart-area"],["bar-chart","chart-bar"],["line-chart","chart-line"],["pie-chart","chart-pie"],["vote-yea","check-to-slot"],["child-rifle","child-combatant"],["arrow-circle-down","circle-arrow-down"],["arrow-circle-left","circle-arrow-left"],["arrow-circle-right","circle-arrow-right"],["arrow-circle-up","circle-arrow-up"],["check-circle","circle-check"],["chevron-circle-down","circle-chevron-down"],["chevron-circle-left","circle-chevron-left"],["chevron-circle-right","circle-chevron-right"],["chevron-circle-up","circle-chevron-up"],["donate","circle-dollar-to-slot"],["dot-circle","circle-dot"],["arrow-alt-circle-down","circle-down"],["exclamation-circle","circle-exclamation"],["hospital-symbol","circle-h"],["adjust","circle-half-stroke"],["info-circle","circle-info"],["arrow-alt-circle-left","circle-left"],["minus-circle","circle-minus"],["pause-circle","circle-pause"],["play-circle","circle-play"],["plus-circle","circle-plus"],["question-circle","circle-question"],["radiation-alt","circle-radiation"],["arrow-alt-circle-right","circle-right"],["stop-circle","circle-stop"],["arrow-alt-circle-up","circle-up"],["user-circle","circle-user"],["times-circle","circle-xmark"],["xmark-circle","circle-xmark"],["clock-four","clock"],["history","clock-rotate-left"],["cloud-download","cloud-arrow-down"],["cloud-download-alt","cloud-arrow-down"],["cloud-upload","cloud-arrow-up"],["cloud-upload-alt","cloud-arrow-up"],["thunderstorm","cloud-bolt"],["commenting","comment-dots"],["sms","comment-sms"],["drafting-compass","compass-drafting"],["mouse","computer-mouse"],["credit-card-alt","credit-card"],["crop-alt","crop-simple"],["backspace","delete-left"],["desktop-alt","desktop"],["project-diagram","diagram-project"],["directions","diamond-turn-right"],["dollar","dollar-sign"],["usd","dollar-sign"],["dolly-box","dolly"],["compress-alt","down-left-and-up-right-to-center"],["long-arrow-alt-down","down-long"],["tint","droplet"],["tint-slash","droplet-slash"],["deaf","ear-deaf"],["deafness","ear-deaf"],["hard-of-hearing","ear-deaf"],["assistive-listening-systems","ear-listen"],["globe-africa","earth-africa"],["earth","earth-americas"],["earth-america","earth-americas"],["globe-americas","earth-americas"],["globe-asia","earth-asia"],["globe-europe","earth-europe"],["globe-oceania","earth-oceania"],["ellipsis-h","ellipsis"],["ellipsis-v","ellipsis-vertical"],["mail-bulk","envelopes-bulk"],["eur","euro-sign"],["euro","euro-sign"],["eye-dropper-empty","eye-dropper"],["eyedropper","eye-dropper"],["low-vision","eye-low-vision"],["angry","face-angry"],["dizzy","face-dizzy"],["flushed","face-flushed"],["frown","face-frown"],["frown-open","face-frown-open"],["grimace","face-grimace"],["grin","face-grin"],["grin-beam","face-grin-beam"],["grin-beam-sweat","face-grin-beam-sweat"],["grin-hearts","face-grin-hearts"],["grin-squint","face-grin-squint"],["grin-squint-tears","face-grin-squint-tears"],["grin-stars","face-grin-stars"],["grin-tears","face-grin-tears"],["grin-tongue","face-grin-tongue"],["grin-tongue-squint","face-grin-tongue-squint"],["grin-tongue-wink","face-grin-tongue-wink"],["grin-alt","face-grin-wide"],["grin-wink","face-grin-wink"],["kiss","face-kiss"],["kiss-beam","face-kiss-beam"],["kiss-wink-heart","face-kiss-wink-heart"],["laugh","face-laugh"],["laugh-beam","face-laugh-beam"],["laugh-squint","face-laugh-squint"],["laugh-wink","face-laugh-wink"],["meh","face-meh"],["meh-blank","face-meh-blank"],["meh-rolling-eyes","face-rolling-eyes"],["sad-cry","face-sad-cry"],["sad-tear","face-sad-tear"],["smile","face-smile"],["smile-beam","face-smile-beam"],["smile-wink","face-smile-wink"],["surprise","face-surprise"],["tired","face-tired"],["feather-alt","feather-pointed"],["file-download","file-arrow-down"],["file-upload","file-arrow-up"],["arrow-right-from-file","file-export"],["arrow-right-to-file","file-import"],["file-alt","file-lines"],["file-text","file-lines"],["file-edit","file-pen"],["file-medical-alt","file-waveform"],["file-archive","file-zipper"],["funnel-dollar","filter-circle-dollar"],["fire-alt","fire-flame-curved"],["burn","fire-flame-simple"],["save","floppy-disk"],["folder-blank","folder"],["football-ball","football"],["fast-forward","forward-fast"],["step-forward","forward-step"],["futbol-ball","futbol"],["soccer-ball","futbol"],["dashboard","gauge"],["gauge-med","gauge"],["tachometer-alt-average","gauge"],["tachometer-alt","gauge-high"],["tachometer-alt-fast","gauge-high"],["gauge-simple-med","gauge-simple"],["tachometer-average","gauge-simple"],["tachometer","gauge-simple-high"],["tachometer-fast","gauge-simple-high"],["legal","gavel"],["cog","gear"],["cogs","gears"],["golf-ball","golf-ball-tee"],["mortar-board","graduation-cap"],["grip-horizontal","grip"],["hand-paper","hand"],["hand-rock","hand-back-fist"],["allergies","hand-dots"],["fist-raised","hand-fist"],["hand-holding-usd","hand-holding-dollar"],["hand-holding-water","hand-holding-droplet"],["sign-language","hands"],["signing","hands"],["american-sign-language-interpreting","hands-asl-interpreting"],["asl-interpreting","hands-asl-interpreting"],["hands-american-sign-language-interpreting","hands-asl-interpreting"],["hands-wash","hands-bubbles"],["praying-hands","hands-praying"],["hands-helping","handshake-angle"],["handshake-alt","handshake-simple"],["handshake-alt-slash","handshake-simple-slash"],["hdd","hard-drive"],["header","heading"],["headphones-alt","headphones-simple"],["heart-broken","heart-crack"],["heartbeat","heart-pulse"],["hard-hat","helmet-safety"],["hat-hard","helmet-safety"],["hospital-alt","hospital"],["hospital-wide","hospital"],["hot-tub","hot-tub-person"],["hourglass-empty","hourglass"],["hourglass-3","hourglass-end"],["hourglass-2","hourglass-half"],["hourglass-1","hourglass-start"],["home","house"],["home-alt","house"],["home-lg-alt","house"],["home-lg","house-chimney"],["house-damage","house-chimney-crack"],["clinic-medical","house-chimney-medical"],["laptop-house","house-laptop"],["home-user","house-user"],["hryvnia","hryvnia-sign"],["heart-music-camera-bolt","icons"],["drivers-license","id-card"],["id-card-alt","id-card-clip"],["portrait","image-portrait"],["indian-rupee","indian-rupee-sign"],["inr","indian-rupee-sign"],["fighter-jet","jet-fighter"],["first-aid","kit-medical"],["landmark-alt","landmark-dome"],["long-arrow-alt-left","left-long"],["arrows-alt-h","left-right"],["chain","link"],["chain-broken","link-slash"],["chain-slash","link-slash"],["unlink","link-slash"],["list-squares","list"],["tasks","list-check"],["list-1-2","list-ol"],["list-numeric","list-ol"],["list-dots","list-ul"],["location","location-crosshairs"],["map-marker-alt","location-dot"],["map-marker","location-pin"],["search","magnifying-glass"],["search-dollar","magnifying-glass-dollar"],["search-location","magnifying-glass-location"],["search-minus","magnifying-glass-minus"],["search-plus","magnifying-glass-plus"],["map-marked","map-location"],["map-marked-alt","map-location-dot"],["mars-stroke-h","mars-stroke-right"],["mars-stroke-v","mars-stroke-up"],["glass-martini-alt","martini-glass"],["cocktail","martini-glass-citrus"],["glass-martini","martini-glass-empty"],["theater-masks","masks-theater"],["expand-arrows-alt","maximize"],["comment-alt","message"],["microphone-alt","microphone-lines"],["microphone-alt-slash","microphone-lines-slash"],["compress-arrows-alt","minimize"],["subtract","minus"],["mobile-android","mobile"],["mobile-phone","mobile"],["mobile-android-alt","mobile-screen"],["mobile-alt","mobile-screen-button"],["money-bill-alt","money-bill-1"],["money-bill-wave-alt","money-bill-1-wave"],["money-check-alt","money-check-dollar"],["coffee","mug-saucer"],["sticky-note","note-sticky"],["dedent","outdent"],["paint-brush","paintbrush"],["file-clipboard","paste"],["pen-alt","pen-clip"],["pencil-ruler","pen-ruler"],["edit","pen-to-square"],["pencil-alt","pencil"],["people-arrows-left-right","people-arrows"],["people-carry","people-carry-box"],["percentage","percent"],["male","person"],["biking","person-biking"],["digging","person-digging"],["diagnoses","person-dots-from-line"],["female","person-dress"],["hiking","person-hiking"],["pray","person-praying"],["running","person-running"],["skating","person-skating"],["skiing","person-skiing"],["skiing-nordic","person-skiing-nordic"],["snowboarding","person-snowboarding"],["swimmer","person-swimming"],["walking","person-walking"],["blind","person-walking-with-cane"],["phone-alt","phone-flip"],["volume-control-phone","phone-volume"],["photo-video","photo-film"],["add","plus"],["poo-bolt","poo-storm"],["prescription-bottle-alt","prescription-bottle-medical"],["quote-left-alt","quote-left"],["quote-right-alt","quote-right"],["ad","rectangle-ad"],["list-alt","rectangle-list"],["rectangle-times","rectangle-xmark"],["times-rectangle","rectangle-xmark"],["window-close","rectangle-xmark"],["mail-reply","reply"],["mail-reply-all","reply-all"],["sign-out-alt","right-from-bracket"],["exchange-alt","right-left"],["long-arrow-alt-right","right-long"],["sign-in-alt","right-to-bracket"],["sync-alt","rotate"],["rotate-back","rotate-left"],["rotate-backward","rotate-left"],["undo-alt","rotate-left"],["redo-alt","rotate-right"],["rotate-forward","rotate-right"],["feed","rss"],["rouble","ruble-sign"],["rub","ruble-sign"],["ruble","ruble-sign"],["rupee","rupee-sign"],["balance-scale","scale-balanced"],["balance-scale-left","scale-unbalanced"],["balance-scale-right","scale-unbalanced-flip"],["cut","scissors"],["tools","screwdriver-wrench"],["torah","scroll-torah"],["sprout","seedling"],["triangle-circle-square","shapes"],["arrow-turn-right","share"],["mail-forward","share"],["share-square","share-from-square"],["share-alt","share-nodes"],["ils","shekel-sign"],["shekel","shekel-sign"],["sheqel","shekel-sign"],["sheqel-sign","shekel-sign"],["shield-blank","shield"],["shield-alt","shield-halved"],["t-shirt","shirt"],["tshirt","shirt"],["store-alt","shop"],["store-alt-slash","shop-slash"],["random","shuffle"],["space-shuttle","shuttle-space"],["sign","sign-hanging"],["signal-5","signal"],["signal-perfect","signal"],["map-signs","signs-post"],["sliders-h","sliders"],["unsorted","sort"],["sort-desc","sort-down"],["sort-asc","sort-up"],["pastafarianism","spaghetti-monster-flying"],["utensil-spoon","spoon"],["air-freshener","spray-can-sparkles"],["external-link-square","square-arrow-up-right"],["caret-square-down","square-caret-down"],["caret-square-left","square-caret-left"],["caret-square-right","square-caret-right"],["caret-square-up","square-caret-up"],["check-square","square-check"],["envelope-square","square-envelope"],["h-square","square-h"],["minus-square","square-minus"],["parking","square-parking"],["pen-square","square-pen"],["pencil-square","square-pen"],["phone-square","square-phone"],["phone-square-alt","square-phone-flip"],["plus-square","square-plus"],["poll-h","square-poll-horizontal"],["poll","square-poll-vertical"],["square-root-alt","square-root-variable"],["rss-square","square-rss"],["share-alt-square","square-share-nodes"],["external-link-square-alt","square-up-right"],["times-square","square-xmark"],["xmark-square","square-xmark"],["rod-asclepius","staff-snake"],["rod-snake","staff-snake"],["staff-aesculapius","staff-snake"],["star-half-alt","star-half-stroke"],["gbp","sterling-sign"],["pound-sign","sterling-sign"],["medkit","suitcase-medical"],["th","table-cells"],["th-large","table-cells-large"],["columns","table-columns"],["th-list","table-list"],["ping-pong-paddle-ball","table-tennis-paddle-ball"],["table-tennis","table-tennis-paddle-ball"],["tablet-android","tablet"],["tablet-alt","tablet-screen-button"],["digital-tachograph","tachograph-digital"],["cab","taxi"],["temperature-down","temperature-arrow-down"],["temperature-up","temperature-arrow-up"],["temperature-0","temperature-empty"],["thermometer-0","temperature-empty"],["thermometer-empty","temperature-empty"],["temperature-4","temperature-full"],["thermometer-4","temperature-full"],["thermometer-full","temperature-full"],["temperature-2","temperature-half"],["thermometer-2","temperature-half"],["thermometer-half","temperature-half"],["temperature-1","temperature-quarter"],["thermometer-1","temperature-quarter"],["thermometer-quarter","temperature-quarter"],["temperature-3","temperature-three-quarters"],["thermometer-3","temperature-three-quarters"],["thermometer-three-quarters","temperature-three-quarters"],["tenge","tenge-sign"],["remove-format","text-slash"],["thumb-tack","thumbtack"],["ticket-alt","ticket-simple"],["broadcast-tower","tower-broadcast"],["subway","train-subway"],["transgender-alt","transgender"],["trash-restore","trash-arrow-up"],["trash-alt","trash-can"],["trash-restore-alt","trash-can-arrow-up"],["exclamation-triangle","triangle-exclamation"],["warning","triangle-exclamation"],["shipping-fast","truck-fast"],["ambulance","truck-medical"],["truck-loading","truck-ramp-box"],["teletype","tty"],["try","turkish-lira-sign"],["turkish-lira","turkish-lira-sign"],["level-down-alt","turn-down"],["level-up-alt","turn-up"],["television","tv"],["tv-alt","tv"],["unlock-alt","unlock-keyhole"],["arrows-alt-v","up-down"],["arrows-alt","up-down-left-right"],["long-arrow-alt-up","up-long"],["expand-alt","up-right-and-down-left-from-center"],["external-link-alt","up-right-from-square"],["user-md","user-doctor"],["user-cog","user-gear"],["user-friends","user-group"],["user-alt","user-large"],["user-alt-slash","user-large-slash"],["user-edit","user-pen"],["user-times","user-xmark"],["users-cog","users-gear"],["cutlery","utensils"],["shuttle-van","van-shuttle"],["video-camera","video"],["volleyball-ball","volleyball"],["volume-up","volume-high"],["volume-down","volume-low"],["volume-mute","volume-xmark"],["volume-times","volume-xmark"],["magic","wand-magic"],["magic-wand-sparkles","wand-magic-sparkles"],["ladder-water","water-ladder"],["swimming-pool","water-ladder"],["weight","weight-scale"],["wheat-alt","wheat-awn"],["wheelchair-alt","wheelchair-move"],["glass-whiskey","whiskey-glass"],["wifi-3","wifi"],["wifi-strong","wifi"],["wine-glass-alt","wine-glass-empty"],["krw","won-sign"],["won","won-sign"],["close","xmark"],["multiply","xmark"],["remove","xmark"],["times","xmark"],["cny","yen-sign"],["jpy","yen-sign"],["rmb","yen-sign"],["yen","yen-sign"]]),r=new Map([["0",["0",!1]],["1",["1",!1]],["2",["2",!1]],["3",["3",!1]],["4",["4",!1]],["5",["5",!1]],["6",["6",!1]],["7",["7",!1]],["8",["8",!1]],["9",["9",!1]],["a",["A",!1]],["address-book",["\uF2B9",!0]],["address-card",["\uF2BB",!0]],["align-center",["\uF037",!1]],["align-justify",["\uF039",!1]],["align-left",["\uF036",!1]],["align-right",["\uF038",!1]],["anchor",["\uF13D",!1]],["anchor-circle-check",["\uE4AA",!1]],["anchor-circle-exclamation",["\uE4AB",!1]],["anchor-circle-xmark",["\uE4AC",!1]],["anchor-lock",["\uE4AD",!1]],["angle-down",["\uF107",!1]],["angle-left",["\uF104",!1]],["angle-right",["\uF105",!1]],["angle-up",["\uF106",!1]],["angles-down",["\uF103",!1]],["angles-left",["\uF100",!1]],["angles-right",["\uF101",!1]],["angles-up",["\uF102",!1]],["ankh",["\uF644",!1]],["apple-whole",["\uF5D1",!1]],["archway",["\uF557",!1]],["arrow-down",["\uF063",!1]],["arrow-down-1-9",["\uF162",!1]],["arrow-down-9-1",["\uF886",!1]],["arrow-down-a-z",["\uF15D",!1]],["arrow-down-long",["\uF175",!1]],["arrow-down-short-wide",["\uF884",!1]],["arrow-down-up-across-line",["\uE4AF",!1]],["arrow-down-up-lock",["\uE4B0",!1]],["arrow-down-wide-short",["\uF160",!1]],["arrow-down-z-a",["\uF881",!1]],["arrow-left",["\uF060",!1]],["arrow-left-long",["\uF177",!1]],["arrow-pointer",["\uF245",!1]],["arrow-right",["\uF061",!1]],["arrow-right-arrow-left",["\uF0EC",!1]],["arrow-right-from-bracket",["\uF08B",!1]],["arrow-right-long",["\uF178",!1]],["arrow-right-to-bracket",["\uF090",!1]],["arrow-right-to-city",["\uE4B3",!1]],["arrow-rotate-left",["\uF0E2",!1]],["arrow-rotate-right",["\uF01E",!1]],["arrow-trend-down",["\uE097",!1]],["arrow-trend-up",["\uE098",!1]],["arrow-turn-down",["\uF149",!1]],["arrow-turn-up",["\uF148",!1]],["arrow-up",["\uF062",!1]],["arrow-up-1-9",["\uF163",!1]],["arrow-up-9-1",["\uF887",!1]],["arrow-up-a-z",["\uF15E",!1]],["arrow-up-from-bracket",["\uE09A",!1]],["arrow-up-from-ground-water",["\uE4B5",!1]],["arrow-up-from-water-pump",["\uE4B6",!1]],["arrow-up-long",["\uF176",!1]],["arrow-up-right-dots",["\uE4B7",!1]],["arrow-up-right-from-square",["\uF08E",!1]],["arrow-up-short-wide",["\uF885",!1]],["arrow-up-wide-short",["\uF161",!1]],["arrow-up-z-a",["\uF882",!1]],["arrows-down-to-line",["\uE4B8",!1]],["arrows-down-to-people",["\uE4B9",!1]],["arrows-left-right",["\uF07E",!1]],["arrows-left-right-to-line",["\uE4BA",!1]],["arrows-rotate",["\uF021",!1]],["arrows-spin",["\uE4BB",!1]],["arrows-split-up-and-left",["\uE4BC",!1]],["arrows-to-circle",["\uE4BD",!1]],["arrows-to-dot",["\uE4BE",!1]],["arrows-to-eye",["\uE4BF",!1]],["arrows-turn-right",["\uE4C0",!1]],["arrows-turn-to-dots",["\uE4C1",!1]],["arrows-up-down",["\uF07D",!1]],["arrows-up-down-left-right",["\uF047",!1]],["arrows-up-to-line",["\uE4C2",!1]],["asterisk",["*",!1]],["at",["@",!1]],["atom",["\uF5D2",!1]],["audio-description",["\uF29E",!1]],["austral-sign",["\uE0A9",!1]],["award",["\uF559",!1]],["b",["B",!1]],["baby",["\uF77C",!1]],["baby-carriage",["\uF77D",!1]],["backward",["\uF04A",!1]],["backward-fast",["\uF049",!1]],["backward-step",["\uF048",!1]],["bacon",["\uF7E5",!1]],["bacteria",["\uE059",!1]],["bacterium",["\uE05A",!1]],["bag-shopping",["\uF290",!1]],["bahai",["\uF666",!1]],["baht-sign",["\uE0AC",!1]],["ban",["\uF05E",!1]],["ban-smoking",["\uF54D",!1]],["bandage",["\uF462",!1]],["bangladeshi-taka-sign",["\uE2E6",!1]],["barcode",["\uF02A",!1]],["bars",["\uF0C9",!1]],["bars-progress",["\uF828",!1]],["bars-staggered",["\uF550",!1]],["baseball",["\uF433",!1]],["baseball-bat-ball",["\uF432",!1]],["basket-shopping",["\uF291",!1]],["basketball",["\uF434",!1]],["bath",["\uF2CD",!1]],["battery-empty",["\uF244",!1]],["battery-full",["\uF240",!1]],["battery-half",["\uF242",!1]],["battery-quarter",["\uF243",!1]],["battery-three-quarters",["\uF241",!1]],["bed",["\uF236",!1]],["bed-pulse",["\uF487",!1]],["beer-mug-empty",["\uF0FC",!1]],["bell",["\uF0F3",!0]],["bell-concierge",["\uF562",!1]],["bell-slash",["\uF1F6",!0]],["bezier-curve",["\uF55B",!1]],["bicycle",["\uF206",!1]],["binoculars",["\uF1E5",!1]],["biohazard",["\uF780",!1]],["bitcoin-sign",["\uE0B4",!1]],["blender",["\uF517",!1]],["blender-phone",["\uF6B6",!1]],["blog",["\uF781",!1]],["bold",["\uF032",!1]],["bolt",["\uF0E7",!1]],["bolt-lightning",["\uE0B7",!1]],["bomb",["\uF1E2",!1]],["bone",["\uF5D7",!1]],["bong",["\uF55C",!1]],["book",["\uF02D",!1]],["book-atlas",["\uF558",!1]],["book-bible",["\uF647",!1]],["book-bookmark",["\uE0BB",!1]],["book-journal-whills",["\uF66A",!1]],["book-medical",["\uF7E6",!1]],["book-open",["\uF518",!1]],["book-open-reader",["\uF5DA",!1]],["book-quran",["\uF687",!1]],["book-skull",["\uF6B7",!1]],["book-tanakh",["\uF827",!1]],["bookmark",["\uF02E",!0]],["border-all",["\uF84C",!1]],["border-none",["\uF850",!1]],["border-top-left",["\uF853",!1]],["bore-hole",["\uE4C3",!1]],["bottle-droplet",["\uE4C4",!1]],["bottle-water",["\uE4C5",!1]],["bowl-food",["\uE4C6",!1]],["bowl-rice",["\uE2EB",!1]],["bowling-ball",["\uF436",!1]],["box",["\uF466",!1]],["box-archive",["\uF187",!1]],["box-open",["\uF49E",!1]],["box-tissue",["\uE05B",!1]],["boxes-packing",["\uE4C7",!1]],["boxes-stacked",["\uF468",!1]],["braille",["\uF2A1",!1]],["brain",["\uF5DC",!1]],["brazilian-real-sign",["\uE46C",!1]],["bread-slice",["\uF7EC",!1]],["bridge",["\uE4C8",!1]],["bridge-circle-check",["\uE4C9",!1]],["bridge-circle-exclamation",["\uE4CA",!1]],["bridge-circle-xmark",["\uE4CB",!1]],["bridge-lock",["\uE4CC",!1]],["bridge-water",["\uE4CE",!1]],["briefcase",["\uF0B1",!1]],["briefcase-medical",["\uF469",!1]],["broom",["\uF51A",!1]],["broom-ball",["\uF458",!1]],["brush",["\uF55D",!1]],["bucket",["\uE4CF",!1]],["bug",["\uF188",!1]],["bug-slash",["\uE490",!1]],["bugs",["\uE4D0",!1]],["building",["\uF1AD",!0]],["building-circle-arrow-right",["\uE4D1",!1]],["building-circle-check",["\uE4D2",!1]],["building-circle-exclamation",["\uE4D3",!1]],["building-circle-xmark",["\uE4D4",!1]],["building-columns",["\uF19C",!1]],["building-flag",["\uE4D5",!1]],["building-lock",["\uE4D6",!1]],["building-ngo",["\uE4D7",!1]],["building-shield",["\uE4D8",!1]],["building-un",["\uE4D9",!1]],["building-user",["\uE4DA",!1]],["building-wheat",["\uE4DB",!1]],["bullhorn",["\uF0A1",!1]],["bullseye",["\uF140",!1]],["burger",["\uF805",!1]],["burst",["\uE4DC",!1]],["bus",["\uF207",!1]],["bus-simple",["\uF55E",!1]],["business-time",["\uF64A",!1]],["c",["C",!1]],["cable-car",["\uF7DA",!1]],["cake-candles",["\uF1FD",!1]],["calculator",["\uF1EC",!1]],["calendar",["\uF133",!0]],["calendar-check",["\uF274",!0]],["calendar-day",["\uF783",!1]],["calendar-days",["\uF073",!0]],["calendar-minus",["\uF272",!0]],["calendar-plus",["\uF271",!0]],["calendar-week",["\uF784",!1]],["calendar-xmark",["\uF273",!0]],["camera",["\uF030",!1]],["camera-retro",["\uF083",!1]],["camera-rotate",["\uE0D8",!1]],["campground",["\uF6BB",!1]],["candy-cane",["\uF786",!1]],["cannabis",["\uF55F",!1]],["capsules",["\uF46B",!1]],["car",["\uF1B9",!1]],["car-battery",["\uF5DF",!1]],["car-burst",["\uF5E1",!1]],["car-on",["\uE4DD",!1]],["car-rear",["\uF5DE",!1]],["car-side",["\uF5E4",!1]],["car-tunnel",["\uE4DE",!1]],["caravan",["\uF8FF",!1]],["caret-down",["\uF0D7",!1]],["caret-left",["\uF0D9",!1]],["caret-right",["\uF0DA",!1]],["caret-up",["\uF0D8",!1]],["carrot",["\uF787",!1]],["cart-arrow-down",["\uF218",!1]],["cart-flatbed",["\uF474",!1]],["cart-flatbed-suitcase",["\uF59D",!1]],["cart-plus",["\uF217",!1]],["cart-shopping",["\uF07A",!1]],["cash-register",["\uF788",!1]],["cat",["\uF6BE",!1]],["cedi-sign",["\uE0DF",!1]],["cent-sign",["\uE3F5",!1]],["certificate",["\uF0A3",!1]],["chair",["\uF6C0",!1]],["chalkboard",["\uF51B",!1]],["chalkboard-user",["\uF51C",!1]],["champagne-glasses",["\uF79F",!1]],["charging-station",["\uF5E7",!1]],["chart-area",["\uF1FE",!1]],["chart-bar",["\uF080",!0]],["chart-column",["\uE0E3",!1]],["chart-gantt",["\uE0E4",!1]],["chart-line",["\uF201",!1]],["chart-pie",["\uF200",!1]],["chart-simple",["\uE473",!1]],["check",["\uF00C",!1]],["check-double",["\uF560",!1]],["check-to-slot",["\uF772",!1]],["cheese",["\uF7EF",!1]],["chess",["\uF439",!1]],["chess-bishop",["\uF43A",!0]],["chess-board",["\uF43C",!1]],["chess-king",["\uF43F",!0]],["chess-knight",["\uF441",!0]],["chess-pawn",["\uF443",!0]],["chess-queen",["\uF445",!0]],["chess-rook",["\uF447",!0]],["chevron-down",["\uF078",!1]],["chevron-left",["\uF053",!1]],["chevron-right",["\uF054",!1]],["chevron-up",["\uF077",!1]],["child",["\uF1AE",!1]],["child-combatant",["\uE4E0",!1]],["child-dress",["\uE59C",!1]],["child-reaching",["\uE59D",!1]],["children",["\uE4E1",!1]],["church",["\uF51D",!1]],["circle",["\uF111",!0]],["circle-arrow-down",["\uF0AB",!1]],["circle-arrow-left",["\uF0A8",!1]],["circle-arrow-right",["\uF0A9",!1]],["circle-arrow-up",["\uF0AA",!1]],["circle-check",["\uF058",!0]],["circle-chevron-down",["\uF13A",!1]],["circle-chevron-left",["\uF137",!1]],["circle-chevron-right",["\uF138",!1]],["circle-chevron-up",["\uF139",!1]],["circle-dollar-to-slot",["\uF4B9",!1]],["circle-dot",["\uF192",!0]],["circle-down",["\uF358",!0]],["circle-exclamation",["\uF06A",!1]],["circle-h",["\uF47E",!1]],["circle-half-stroke",["\uF042",!1]],["circle-info",["\uF05A",!1]],["circle-left",["\uF359",!0]],["circle-minus",["\uF056",!1]],["circle-nodes",["\uE4E2",!1]],["circle-notch",["\uF1CE",!1]],["circle-pause",["\uF28B",!0]],["circle-play",["\uF144",!0]],["circle-plus",["\uF055",!1]],["circle-question",["\uF059",!0]],["circle-radiation",["\uF7BA",!1]],["circle-right",["\uF35A",!0]],["circle-stop",["\uF28D",!0]],["circle-up",["\uF35B",!0]],["circle-user",["\uF2BD",!0]],["circle-xmark",["\uF057",!0]],["city",["\uF64F",!1]],["clapperboard",["\uE131",!1]],["clipboard",["\uF328",!0]],["clipboard-check",["\uF46C",!1]],["clipboard-list",["\uF46D",!1]],["clipboard-question",["\uE4E3",!1]],["clipboard-user",["\uF7F3",!1]],["clock",["\uF017",!0]],["clock-rotate-left",["\uF1DA",!1]],["clone",["\uF24D",!0]],["closed-captioning",["\uF20A",!0]],["cloud",["\uF0C2",!1]],["cloud-arrow-down",["\uF0ED",!1]],["cloud-arrow-up",["\uF0EE",!1]],["cloud-bolt",["\uF76C",!1]],["cloud-meatball",["\uF73B",!1]],["cloud-moon",["\uF6C3",!1]],["cloud-moon-rain",["\uF73C",!1]],["cloud-rain",["\uF73D",!1]],["cloud-showers-heavy",["\uF740",!1]],["cloud-showers-water",["\uE4E4",!1]],["cloud-sun",["\uF6C4",!1]],["cloud-sun-rain",["\uF743",!1]],["clover",["\uE139",!1]],["code",["\uF121",!1]],["code-branch",["\uF126",!1]],["code-commit",["\uF386",!1]],["code-compare",["\uE13A",!1]],["code-fork",["\uE13B",!1]],["code-merge",["\uF387",!1]],["code-pull-request",["\uE13C",!1]],["coins",["\uF51E",!1]],["colon-sign",["\uE140",!1]],["comment",["\uF075",!0]],["comment-dollar",["\uF651",!1]],["comment-dots",["\uF4AD",!0]],["comment-medical",["\uF7F5",!1]],["comment-slash",["\uF4B3",!1]],["comment-sms",["\uF7CD",!1]],["comments",["\uF086",!0]],["comments-dollar",["\uF653",!1]],["compact-disc",["\uF51F",!1]],["compass",["\uF14E",!0]],["compass-drafting",["\uF568",!1]],["compress",["\uF066",!1]],["computer",["\uE4E5",!1]],["computer-mouse",["\uF8CC",!1]],["cookie",["\uF563",!1]],["cookie-bite",["\uF564",!1]],["copy",["\uF0C5",!0]],["copyright",["\uF1F9",!0]],["couch",["\uF4B8",!1]],["cow",["\uF6C8",!1]],["credit-card",["\uF09D",!0]],["crop",["\uF125",!1]],["crop-simple",["\uF565",!1]],["cross",["\uF654",!1]],["crosshairs",["\uF05B",!1]],["crow",["\uF520",!1]],["crown",["\uF521",!1]],["crutch",["\uF7F7",!1]],["cruzeiro-sign",["\uE152",!1]],["cube",["\uF1B2",!1]],["cubes",["\uF1B3",!1]],["cubes-stacked",["\uE4E6",!1]],["d",["D",!1]],["database",["\uF1C0",!1]],["delete-left",["\uF55A",!1]],["democrat",["\uF747",!1]],["desktop",["\uF390",!1]],["dharmachakra",["\uF655",!1]],["diagram-next",["\uE476",!1]],["diagram-predecessor",["\uE477",!1]],["diagram-project",["\uF542",!1]],["diagram-successor",["\uE47A",!1]],["diamond",["\uF219",!1]],["diamond-turn-right",["\uF5EB",!1]],["dice",["\uF522",!1]],["dice-d20",["\uF6CF",!1]],["dice-d6",["\uF6D1",!1]],["dice-five",["\uF523",!1]],["dice-four",["\uF524",!1]],["dice-one",["\uF525",!1]],["dice-six",["\uF526",!1]],["dice-three",["\uF527",!1]],["dice-two",["\uF528",!1]],["disease",["\uF7FA",!1]],["display",["\uE163",!1]],["divide",["\uF529",!1]],["dna",["\uF471",!1]],["dog",["\uF6D3",!1]],["dollar-sign",["$",!1]],["dolly",["\uF472",!1]],["dong-sign",["\uE169",!1]],["door-closed",["\uF52A",!1]],["door-open",["\uF52B",!1]],["dove",["\uF4BA",!1]],["down-left-and-up-right-to-center",["\uF422",!1]],["down-long",["\uF309",!1]],["download",["\uF019",!1]],["dragon",["\uF6D5",!1]],["draw-polygon",["\uF5EE",!1]],["droplet",["\uF043",!1]],["droplet-slash",["\uF5C7",!1]],["drum",["\uF569",!1]],["drum-steelpan",["\uF56A",!1]],["drumstick-bite",["\uF6D7",!1]],["dumbbell",["\uF44B",!1]],["dumpster",["\uF793",!1]],["dumpster-fire",["\uF794",!1]],["dungeon",["\uF6D9",!1]],["e",["E",!1]],["ear-deaf",["\uF2A4",!1]],["ear-listen",["\uF2A2",!1]],["earth-africa",["\uF57C",!1]],["earth-americas",["\uF57D",!1]],["earth-asia",["\uF57E",!1]],["earth-europe",["\uF7A2",!1]],["earth-oceania",["\uE47B",!1]],["egg",["\uF7FB",!1]],["eject",["\uF052",!1]],["elevator",["\uE16D",!1]],["ellipsis",["\uF141",!1]],["ellipsis-vertical",["\uF142",!1]],["envelope",["\uF0E0",!0]],["envelope-circle-check",["\uE4E8",!1]],["envelope-open",["\uF2B6",!0]],["envelope-open-text",["\uF658",!1]],["envelopes-bulk",["\uF674",!1]],["equals",["=",!1]],["eraser",["\uF12D",!1]],["ethernet",["\uF796",!1]],["euro-sign",["\uF153",!1]],["exclamation",["!",!1]],["expand",["\uF065",!1]],["explosion",["\uE4E9",!1]],["eye",["\uF06E",!0]],["eye-dropper",["\uF1FB",!1]],["eye-low-vision",["\uF2A8",!1]],["eye-slash",["\uF070",!0]],["f",["F",!1]],["face-angry",["\uF556",!0]],["face-dizzy",["\uF567",!0]],["face-flushed",["\uF579",!0]],["face-frown",["\uF119",!0]],["face-frown-open",["\uF57A",!0]],["face-grimace",["\uF57F",!0]],["face-grin",["\uF580",!0]],["face-grin-beam",["\uF582",!0]],["face-grin-beam-sweat",["\uF583",!0]],["face-grin-hearts",["\uF584",!0]],["face-grin-squint",["\uF585",!0]],["face-grin-squint-tears",["\uF586",!0]],["face-grin-stars",["\uF587",!0]],["face-grin-tears",["\uF588",!0]],["face-grin-tongue",["\uF589",!0]],["face-grin-tongue-squint",["\uF58A",!0]],["face-grin-tongue-wink",["\uF58B",!0]],["face-grin-wide",["\uF581",!0]],["face-grin-wink",["\uF58C",!0]],["face-kiss",["\uF596",!0]],["face-kiss-beam",["\uF597",!0]],["face-kiss-wink-heart",["\uF598",!0]],["face-laugh",["\uF599",!0]],["face-laugh-beam",["\uF59A",!0]],["face-laugh-squint",["\uF59B",!0]],["face-laugh-wink",["\uF59C",!0]],["face-meh",["\uF11A",!0]],["face-meh-blank",["\uF5A4",!0]],["face-rolling-eyes",["\uF5A5",!0]],["face-sad-cry",["\uF5B3",!0]],["face-sad-tear",["\uF5B4",!0]],["face-smile",["\uF118",!0]],["face-smile-beam",["\uF5B8",!0]],["face-smile-wink",["\uF4DA",!0]],["face-surprise",["\uF5C2",!0]],["face-tired",["\uF5C8",!0]],["fan",["\uF863",!1]],["faucet",["\uE005",!1]],["faucet-drip",["\uE006",!1]],["fax",["\uF1AC",!1]],["feather",["\uF52D",!1]],["feather-pointed",["\uF56B",!1]],["ferry",["\uE4EA",!1]],["file",["\uF15B",!0]],["file-arrow-down",["\uF56D",!1]],["file-arrow-up",["\uF574",!1]],["file-audio",["\uF1C7",!0]],["file-circle-check",["\uE5A0",!1]],["file-circle-exclamation",["\uE4EB",!1]],["file-circle-minus",["\uE4ED",!1]],["file-circle-plus",["\uE494",!1]],["file-circle-question",["\uE4EF",!1]],["file-circle-xmark",["\uE5A1",!1]],["file-code",["\uF1C9",!0]],["file-contract",["\uF56C",!1]],["file-csv",["\uF6DD",!1]],["file-excel",["\uF1C3",!0]],["file-export",["\uF56E",!1]],["file-image",["\uF1C5",!0]],["file-import",["\uF56F",!1]],["file-invoice",["\uF570",!1]],["file-invoice-dollar",["\uF571",!1]],["file-lines",["\uF15C",!0]],["file-medical",["\uF477",!1]],["file-pdf",["\uF1C1",!0]],["file-pen",["\uF31C",!1]],["file-powerpoint",["\uF1C4",!0]],["file-prescription",["\uF572",!1]],["file-shield",["\uE4F0",!1]],["file-signature",["\uF573",!1]],["file-video",["\uF1C8",!0]],["file-waveform",["\uF478",!1]],["file-word",["\uF1C2",!0]],["file-zipper",["\uF1C6",!0]],["fill",["\uF575",!1]],["fill-drip",["\uF576",!1]],["film",["\uF008",!1]],["filter",["\uF0B0",!1]],["filter-circle-dollar",["\uF662",!1]],["filter-circle-xmark",["\uE17B",!1]],["fingerprint",["\uF577",!1]],["fire",["\uF06D",!1]],["fire-burner",["\uE4F1",!1]],["fire-extinguisher",["\uF134",!1]],["fire-flame-curved",["\uF7E4",!1]],["fire-flame-simple",["\uF46A",!1]],["fish",["\uF578",!1]],["fish-fins",["\uE4F2",!1]],["flag",["\uF024",!0]],["flag-checkered",["\uF11E",!1]],["flag-usa",["\uF74D",!1]],["flask",["\uF0C3",!1]],["flask-vial",["\uE4F3",!1]],["floppy-disk",["\uF0C7",!0]],["florin-sign",["\uE184",!1]],["folder",["\uF07B",!0]],["folder-closed",["\uE185",!0]],["folder-minus",["\uF65D",!1]],["folder-open",["\uF07C",!0]],["folder-plus",["\uF65E",!1]],["folder-tree",["\uF802",!1]],["font",["\uF031",!1]],["football",["\uF44E",!1]],["forward",["\uF04E",!1]],["forward-fast",["\uF050",!1]],["forward-step",["\uF051",!1]],["franc-sign",["\uE18F",!1]],["frog",["\uF52E",!1]],["futbol",["\uF1E3",!0]],["g",["G",!1]],["gamepad",["\uF11B",!1]],["gas-pump",["\uF52F",!1]],["gauge",["\uF624",!1]],["gauge-high",["\uF625",!1]],["gauge-simple",["\uF629",!1]],["gauge-simple-high",["\uF62A",!1]],["gavel",["\uF0E3",!1]],["gear",["\uF013",!1]],["gears",["\uF085",!1]],["gem",["\uF3A5",!0]],["genderless",["\uF22D",!1]],["ghost",["\uF6E2",!1]],["gift",["\uF06B",!1]],["gifts",["\uF79C",!1]],["glass-water",["\uE4F4",!1]],["glass-water-droplet",["\uE4F5",!1]],["glasses",["\uF530",!1]],["globe",["\uF0AC",!1]],["golf-ball-tee",["\uF450",!1]],["gopuram",["\uF664",!1]],["graduation-cap",["\uF19D",!1]],["greater-than",[">",!1]],["greater-than-equal",["\uF532",!1]],["grip",["\uF58D",!1]],["grip-lines",["\uF7A4",!1]],["grip-lines-vertical",["\uF7A5",!1]],["grip-vertical",["\uF58E",!1]],["group-arrows-rotate",["\uE4F6",!1]],["guarani-sign",["\uE19A",!1]],["guitar",["\uF7A6",!1]],["gun",["\uE19B",!1]],["h",["H",!1]],["hammer",["\uF6E3",!1]],["hamsa",["\uF665",!1]],["hand",["\uF256",!0]],["hand-back-fist",["\uF255",!0]],["hand-dots",["\uF461",!1]],["hand-fist",["\uF6DE",!1]],["hand-holding",["\uF4BD",!1]],["hand-holding-dollar",["\uF4C0",!1]],["hand-holding-droplet",["\uF4C1",!1]],["hand-holding-hand",["\uE4F7",!1]],["hand-holding-heart",["\uF4BE",!1]],["hand-holding-medical",["\uE05C",!1]],["hand-lizard",["\uF258",!0]],["hand-middle-finger",["\uF806",!1]],["hand-peace",["\uF25B",!0]],["hand-point-down",["\uF0A7",!0]],["hand-point-left",["\uF0A5",!0]],["hand-point-right",["\uF0A4",!0]],["hand-point-up",["\uF0A6",!0]],["hand-pointer",["\uF25A",!0]],["hand-scissors",["\uF257",!0]],["hand-sparkles",["\uE05D",!1]],["hand-spock",["\uF259",!0]],["handcuffs",["\uE4F8",!1]],["hands",["\uF2A7",!1]],["hands-asl-interpreting",["\uF2A3",!1]],["hands-bound",["\uE4F9",!1]],["hands-bubbles",["\uE05E",!1]],["hands-clapping",["\uE1A8",!1]],["hands-holding",["\uF4C2",!1]],["hands-holding-child",["\uE4FA",!1]],["hands-holding-circle",["\uE4FB",!1]],["hands-praying",["\uF684",!1]],["handshake",["\uF2B5",!0]],["handshake-angle",["\uF4C4",!1]],["handshake-simple",["\uF4C6",!1]],["handshake-simple-slash",["\uE05F",!1]],["handshake-slash",["\uE060",!1]],["hanukiah",["\uF6E6",!1]],["hard-drive",["\uF0A0",!0]],["hashtag",["#",!1]],["hat-cowboy",["\uF8C0",!1]],["hat-cowboy-side",["\uF8C1",!1]],["hat-wizard",["\uF6E8",!1]],["head-side-cough",["\uE061",!1]],["head-side-cough-slash",["\uE062",!1]],["head-side-mask",["\uE063",!1]],["head-side-virus",["\uE064",!1]],["heading",["\uF1DC",!1]],["headphones",["\uF025",!1]],["headphones-simple",["\uF58F",!1]],["headset",["\uF590",!1]],["heart",["\uF004",!0]],["heart-circle-bolt",["\uE4FC",!1]],["heart-circle-check",["\uE4FD",!1]],["heart-circle-exclamation",["\uE4FE",!1]],["heart-circle-minus",["\uE4FF",!1]],["heart-circle-plus",["\uE500",!1]],["heart-circle-xmark",["\uE501",!1]],["heart-crack",["\uF7A9",!1]],["heart-pulse",["\uF21E",!1]],["helicopter",["\uF533",!1]],["helicopter-symbol",["\uE502",!1]],["helmet-safety",["\uF807",!1]],["helmet-un",["\uE503",!1]],["highlighter",["\uF591",!1]],["hill-avalanche",["\uE507",!1]],["hill-rockslide",["\uE508",!1]],["hippo",["\uF6ED",!1]],["hockey-puck",["\uF453",!1]],["holly-berry",["\uF7AA",!1]],["horse",["\uF6F0",!1]],["horse-head",["\uF7AB",!1]],["hospital",["\uF0F8",!0]],["hospital-user",["\uF80D",!1]],["hot-tub-person",["\uF593",!1]],["hotdog",["\uF80F",!1]],["hotel",["\uF594",!1]],["hourglass",["\uF254",!0]],["hourglass-end",["\uF253",!1]],["hourglass-half",["\uF252",!0]],["hourglass-start",["\uF251",!1]],["house",["\uF015",!1]],["house-chimney",["\uE3AF",!1]],["house-chimney-crack",["\uF6F1",!1]],["house-chimney-medical",["\uF7F2",!1]],["house-chimney-user",["\uE065",!1]],["house-chimney-window",["\uE00D",!1]],["house-circle-check",["\uE509",!1]],["house-circle-exclamation",["\uE50A",!1]],["house-circle-xmark",["\uE50B",!1]],["house-crack",["\uE3B1",!1]],["house-fire",["\uE50C",!1]],["house-flag",["\uE50D",!1]],["house-flood-water",["\uE50E",!1]],["house-flood-water-circle-arrow-right",["\uE50F",!1]],["house-laptop",["\uE066",!1]],["house-lock",["\uE510",!1]],["house-medical",["\uE3B2",!1]],["house-medical-circle-check",["\uE511",!1]],["house-medical-circle-exclamation",["\uE512",!1]],["house-medical-circle-xmark",["\uE513",!1]],["house-medical-flag",["\uE514",!1]],["house-signal",["\uE012",!1]],["house-tsunami",["\uE515",!1]],["house-user",["\uE1B0",!1]],["hryvnia-sign",["\uF6F2",!1]],["hurricane",["\uF751",!1]],["i",["I",!1]],["i-cursor",["\uF246",!1]],["ice-cream",["\uF810",!1]],["icicles",["\uF7AD",!1]],["icons",["\uF86D",!1]],["id-badge",["\uF2C1",!0]],["id-card",["\uF2C2",!0]],["id-card-clip",["\uF47F",!1]],["igloo",["\uF7AE",!1]],["image",["\uF03E",!0]],["image-portrait",["\uF3E0",!1]],["images",["\uF302",!0]],["inbox",["\uF01C",!1]],["indent",["\uF03C",!1]],["indian-rupee-sign",["\uE1BC",!1]],["industry",["\uF275",!1]],["infinity",["\uF534",!1]],["info",["\uF129",!1]],["italic",["\uF033",!1]],["j",["J",!1]],["jar",["\uE516",!1]],["jar-wheat",["\uE517",!1]],["jedi",["\uF669",!1]],["jet-fighter",["\uF0FB",!1]],["jet-fighter-up",["\uE518",!1]],["joint",["\uF595",!1]],["jug-detergent",["\uE519",!1]],["k",["K",!1]],["kaaba",["\uF66B",!1]],["key",["\uF084",!1]],["keyboard",["\uF11C",!0]],["khanda",["\uF66D",!1]],["kip-sign",["\uE1C4",!1]],["kit-medical",["\uF479",!1]],["kitchen-set",["\uE51A",!1]],["kiwi-bird",["\uF535",!1]],["l",["L",!1]],["land-mine-on",["\uE51B",!1]],["landmark",["\uF66F",!1]],["landmark-dome",["\uF752",!1]],["landmark-flag",["\uE51C",!1]],["language",["\uF1AB",!1]],["laptop",["\uF109",!1]],["laptop-code",["\uF5FC",!1]],["laptop-file",["\uE51D",!1]],["laptop-medical",["\uF812",!1]],["lari-sign",["\uE1C8",!1]],["layer-group",["\uF5FD",!1]],["leaf",["\uF06C",!1]],["left-long",["\uF30A",!1]],["left-right",["\uF337",!1]],["lemon",["\uF094",!0]],["less-than",["<",!1]],["less-than-equal",["\uF537",!1]],["life-ring",["\uF1CD",!0]],["lightbulb",["\uF0EB",!0]],["lines-leaning",["\uE51E",!1]],["link",["\uF0C1",!1]],["link-slash",["\uF127",!1]],["lira-sign",["\uF195",!1]],["list",["\uF03A",!1]],["list-check",["\uF0AE",!1]],["list-ol",["\uF0CB",!1]],["list-ul",["\uF0CA",!1]],["litecoin-sign",["\uE1D3",!1]],["location-arrow",["\uF124",!1]],["location-crosshairs",["\uF601",!1]],["location-dot",["\uF3C5",!1]],["location-pin",["\uF041",!1]],["location-pin-lock",["\uE51F",!1]],["lock",["\uF023",!1]],["lock-open",["\uF3C1",!1]],["locust",["\uE520",!1]],["lungs",["\uF604",!1]],["lungs-virus",["\uE067",!1]],["m",["M",!1]],["magnet",["\uF076",!1]],["magnifying-glass",["\uF002",!1]],["magnifying-glass-arrow-right",["\uE521",!1]],["magnifying-glass-chart",["\uE522",!1]],["magnifying-glass-dollar",["\uF688",!1]],["magnifying-glass-location",["\uF689",!1]],["magnifying-glass-minus",["\uF010",!1]],["magnifying-glass-plus",["\uF00E",!1]],["manat-sign",["\uE1D5",!1]],["map",["\uF279",!0]],["map-location",["\uF59F",!1]],["map-location-dot",["\uF5A0",!1]],["map-pin",["\uF276",!1]],["marker",["\uF5A1",!1]],["mars",["\uF222",!1]],["mars-and-venus",["\uF224",!1]],["mars-and-venus-burst",["\uE523",!1]],["mars-double",["\uF227",!1]],["mars-stroke",["\uF229",!1]],["mars-stroke-right",["\uF22B",!1]],["mars-stroke-up",["\uF22A",!1]],["martini-glass",["\uF57B",!1]],["martini-glass-citrus",["\uF561",!1]],["martini-glass-empty",["\uF000",!1]],["mask",["\uF6FA",!1]],["mask-face",["\uE1D7",!1]],["mask-ventilator",["\uE524",!1]],["masks-theater",["\uF630",!1]],["mattress-pillow",["\uE525",!1]],["maximize",["\uF31E",!1]],["medal",["\uF5A2",!1]],["memory",["\uF538",!1]],["menorah",["\uF676",!1]],["mercury",["\uF223",!1]],["message",["\uF27A",!0]],["meteor",["\uF753",!1]],["microchip",["\uF2DB",!1]],["microphone",["\uF130",!1]],["microphone-lines",["\uF3C9",!1]],["microphone-lines-slash",["\uF539",!1]],["microphone-slash",["\uF131",!1]],["microscope",["\uF610",!1]],["mill-sign",["\uE1ED",!1]],["minimize",["\uF78C",!1]],["minus",["\uF068",!1]],["mitten",["\uF7B5",!1]],["mobile",["\uF3CE",!1]],["mobile-button",["\uF10B",!1]],["mobile-retro",["\uE527",!1]],["mobile-screen",["\uF3CF",!1]],["mobile-screen-button",["\uF3CD",!1]],["money-bill",["\uF0D6",!1]],["money-bill-1",["\uF3D1",!0]],["money-bill-1-wave",["\uF53B",!1]],["money-bill-transfer",["\uE528",!1]],["money-bill-trend-up",["\uE529",!1]],["money-bill-wave",["\uF53A",!1]],["money-bill-wheat",["\uE52A",!1]],["money-bills",["\uE1F3",!1]],["money-check",["\uF53C",!1]],["money-check-dollar",["\uF53D",!1]],["monument",["\uF5A6",!1]],["moon",["\uF186",!0]],["mortar-pestle",["\uF5A7",!1]],["mosque",["\uF678",!1]],["mosquito",["\uE52B",!1]],["mosquito-net",["\uE52C",!1]],["motorcycle",["\uF21C",!1]],["mound",["\uE52D",!1]],["mountain",["\uF6FC",!1]],["mountain-city",["\uE52E",!1]],["mountain-sun",["\uE52F",!1]],["mug-hot",["\uF7B6",!1]],["mug-saucer",["\uF0F4",!1]],["music",["\uF001",!1]],["n",["N",!1]],["naira-sign",["\uE1F6",!1]],["network-wired",["\uF6FF",!1]],["neuter",["\uF22C",!1]],["newspaper",["\uF1EA",!0]],["not-equal",["\uF53E",!1]],["notdef",["\uE1FE",!1]],["note-sticky",["\uF249",!0]],["notes-medical",["\uF481",!1]],["o",["O",!1]],["object-group",["\uF247",!0]],["object-ungroup",["\uF248",!0]],["oil-can",["\uF613",!1]],["oil-well",["\uE532",!1]],["om",["\uF679",!1]],["otter",["\uF700",!1]],["outdent",["\uF03B",!1]],["p",["P",!1]],["pager",["\uF815",!1]],["paint-roller",["\uF5AA",!1]],["paintbrush",["\uF1FC",!1]],["palette",["\uF53F",!1]],["pallet",["\uF482",!1]],["panorama",["\uE209",!1]],["paper-plane",["\uF1D8",!0]],["paperclip",["\uF0C6",!1]],["parachute-box",["\uF4CD",!1]],["paragraph",["\uF1DD",!1]],["passport",["\uF5AB",!1]],["paste",["\uF0EA",!0]],["pause",["\uF04C",!1]],["paw",["\uF1B0",!1]],["peace",["\uF67C",!1]],["pen",["\uF304",!1]],["pen-clip",["\uF305",!1]],["pen-fancy",["\uF5AC",!1]],["pen-nib",["\uF5AD",!1]],["pen-ruler",["\uF5AE",!1]],["pen-to-square",["\uF044",!0]],["pencil",["\uF303",!1]],["people-arrows",["\uE068",!1]],["people-carry-box",["\uF4CE",!1]],["people-group",["\uE533",!1]],["people-line",["\uE534",!1]],["people-pulling",["\uE535",!1]],["people-robbery",["\uE536",!1]],["people-roof",["\uE537",!1]],["pepper-hot",["\uF816",!1]],["percent",["%",!1]],["person",["\uF183",!1]],["person-arrow-down-to-line",["\uE538",!1]],["person-arrow-up-from-line",["\uE539",!1]],["person-biking",["\uF84A",!1]],["person-booth",["\uF756",!1]],["person-breastfeeding",["\uE53A",!1]],["person-burst",["\uE53B",!1]],["person-cane",["\uE53C",!1]],["person-chalkboard",["\uE53D",!1]],["person-circle-check",["\uE53E",!1]],["person-circle-exclamation",["\uE53F",!1]],["person-circle-minus",["\uE540",!1]],["person-circle-plus",["\uE541",!1]],["person-circle-question",["\uE542",!1]],["person-circle-xmark",["\uE543",!1]],["person-digging",["\uF85E",!1]],["person-dots-from-line",["\uF470",!1]],["person-dress",["\uF182",!1]],["person-dress-burst",["\uE544",!1]],["person-drowning",["\uE545",!1]],["person-falling",["\uE546",!1]],["person-falling-burst",["\uE547",!1]],["person-half-dress",["\uE548",!1]],["person-harassing",["\uE549",!1]],["person-hiking",["\uF6EC",!1]],["person-military-pointing",["\uE54A",!1]],["person-military-rifle",["\uE54B",!1]],["person-military-to-person",["\uE54C",!1]],["person-praying",["\uF683",!1]],["person-pregnant",["\uE31E",!1]],["person-rays",["\uE54D",!1]],["person-rifle",["\uE54E",!1]],["person-running",["\uF70C",!1]],["person-shelter",["\uE54F",!1]],["person-skating",["\uF7C5",!1]],["person-skiing",["\uF7C9",!1]],["person-skiing-nordic",["\uF7CA",!1]],["person-snowboarding",["\uF7CE",!1]],["person-swimming",["\uF5C4",!1]],["person-through-window",["\uE5A9",!1]],["person-walking",["\uF554",!1]],["person-walking-arrow-loop-left",["\uE551",!1]],["person-walking-arrow-right",["\uE552",!1]],["person-walking-dashed-line-arrow-right",["\uE553",!1]],["person-walking-luggage",["\uE554",!1]],["person-walking-with-cane",["\uF29D",!1]],["peseta-sign",["\uE221",!1]],["peso-sign",["\uE222",!1]],["phone",["\uF095",!1]],["phone-flip",["\uF879",!1]],["phone-slash",["\uF3DD",!1]],["phone-volume",["\uF2A0",!1]],["photo-film",["\uF87C",!1]],["piggy-bank",["\uF4D3",!1]],["pills",["\uF484",!1]],["pizza-slice",["\uF818",!1]],["place-of-worship",["\uF67F",!1]],["plane",["\uF072",!1]],["plane-arrival",["\uF5AF",!1]],["plane-circle-check",["\uE555",!1]],["plane-circle-exclamation",["\uE556",!1]],["plane-circle-xmark",["\uE557",!1]],["plane-departure",["\uF5B0",!1]],["plane-lock",["\uE558",!1]],["plane-slash",["\uE069",!1]],["plane-up",["\uE22D",!1]],["plant-wilt",["\uE5AA",!1]],["plate-wheat",["\uE55A",!1]],["play",["\uF04B",!1]],["plug",["\uF1E6",!1]],["plug-circle-bolt",["\uE55B",!1]],["plug-circle-check",["\uE55C",!1]],["plug-circle-exclamation",["\uE55D",!1]],["plug-circle-minus",["\uE55E",!1]],["plug-circle-plus",["\uE55F",!1]],["plug-circle-xmark",["\uE560",!1]],["plus",["+",!1]],["plus-minus",["\uE43C",!1]],["podcast",["\uF2CE",!1]],["poo",["\uF2FE",!1]],["poo-storm",["\uF75A",!1]],["poop",["\uF619",!1]],["power-off",["\uF011",!1]],["prescription",["\uF5B1",!1]],["prescription-bottle",["\uF485",!1]],["prescription-bottle-medical",["\uF486",!1]],["print",["\uF02F",!1]],["pump-medical",["\uE06A",!1]],["pump-soap",["\uE06B",!1]],["puzzle-piece",["\uF12E",!1]],["q",["Q",!1]],["qrcode",["\uF029",!1]],["question",["?",!1]],["quote-left",["\uF10D",!1]],["quote-right",["\uF10E",!1]],["r",["R",!1]],["radiation",["\uF7B9",!1]],["radio",["\uF8D7",!1]],["rainbow",["\uF75B",!1]],["ranking-star",["\uE561",!1]],["receipt",["\uF543",!1]],["record-vinyl",["\uF8D9",!1]],["rectangle-ad",["\uF641",!1]],["rectangle-list",["\uF022",!0]],["rectangle-xmark",["\uF410",!0]],["recycle",["\uF1B8",!1]],["registered",["\uF25D",!0]],["repeat",["\uF363",!1]],["reply",["\uF3E5",!1]],["reply-all",["\uF122",!1]],["republican",["\uF75E",!1]],["restroom",["\uF7BD",!1]],["retweet",["\uF079",!1]],["ribbon",["\uF4D6",!1]],["right-from-bracket",["\uF2F5",!1]],["right-left",["\uF362",!1]],["right-long",["\uF30B",!1]],["right-to-bracket",["\uF2F6",!1]],["ring",["\uF70B",!1]],["road",["\uF018",!1]],["road-barrier",["\uE562",!1]],["road-bridge",["\uE563",!1]],["road-circle-check",["\uE564",!1]],["road-circle-exclamation",["\uE565",!1]],["road-circle-xmark",["\uE566",!1]],["road-lock",["\uE567",!1]],["road-spikes",["\uE568",!1]],["robot",["\uF544",!1]],["rocket",["\uF135",!1]],["rotate",["\uF2F1",!1]],["rotate-left",["\uF2EA",!1]],["rotate-right",["\uF2F9",!1]],["route",["\uF4D7",!1]],["rss",["\uF09E",!1]],["ruble-sign",["\uF158",!1]],["rug",["\uE569",!1]],["ruler",["\uF545",!1]],["ruler-combined",["\uF546",!1]],["ruler-horizontal",["\uF547",!1]],["ruler-vertical",["\uF548",!1]],["rupee-sign",["\uF156",!1]],["rupiah-sign",["\uE23D",!1]],["s",["S",!1]],["sack-dollar",["\uF81D",!1]],["sack-xmark",["\uE56A",!1]],["sailboat",["\uE445",!1]],["satellite",["\uF7BF",!1]],["satellite-dish",["\uF7C0",!1]],["scale-balanced",["\uF24E",!1]],["scale-unbalanced",["\uF515",!1]],["scale-unbalanced-flip",["\uF516",!1]],["school",["\uF549",!1]],["school-circle-check",["\uE56B",!1]],["school-circle-exclamation",["\uE56C",!1]],["school-circle-xmark",["\uE56D",!1]],["school-flag",["\uE56E",!1]],["school-lock",["\uE56F",!1]],["scissors",["\uF0C4",!1]],["screwdriver",["\uF54A",!1]],["screwdriver-wrench",["\uF7D9",!1]],["scroll",["\uF70E",!1]],["scroll-torah",["\uF6A0",!1]],["sd-card",["\uF7C2",!1]],["section",["\uE447",!1]],["seedling",["\uF4D8",!1]],["server",["\uF233",!1]],["shapes",["\uF61F",!1]],["share",["\uF064",!1]],["share-from-square",["\uF14D",!0]],["share-nodes",["\uF1E0",!1]],["sheet-plastic",["\uE571",!1]],["shekel-sign",["\uF20B",!1]],["shield",["\uF132",!1]],["shield-cat",["\uE572",!1]],["shield-dog",["\uE573",!1]],["shield-halved",["\uF3ED",!1]],["shield-heart",["\uE574",!1]],["shield-virus",["\uE06C",!1]],["ship",["\uF21A",!1]],["shirt",["\uF553",!1]],["shoe-prints",["\uF54B",!1]],["shop",["\uF54F",!1]],["shop-lock",["\uE4A5",!1]],["shop-slash",["\uE070",!1]],["shower",["\uF2CC",!1]],["shrimp",["\uE448",!1]],["shuffle",["\uF074",!1]],["shuttle-space",["\uF197",!1]],["sign-hanging",["\uF4D9",!1]],["signal",["\uF012",!1]],["signature",["\uF5B7",!1]],["signs-post",["\uF277",!1]],["sim-card",["\uF7C4",!1]],["sink",["\uE06D",!1]],["sitemap",["\uF0E8",!1]],["skull",["\uF54C",!1]],["skull-crossbones",["\uF714",!1]],["slash",["\uF715",!1]],["sleigh",["\uF7CC",!1]],["sliders",["\uF1DE",!1]],["smog",["\uF75F",!1]],["smoking",["\uF48D",!1]],["snowflake",["\uF2DC",!0]],["snowman",["\uF7D0",!1]],["snowplow",["\uF7D2",!1]],["soap",["\uE06E",!1]],["socks",["\uF696",!1]],["solar-panel",["\uF5BA",!1]],["sort",["\uF0DC",!1]],["sort-down",["\uF0DD",!1]],["sort-up",["\uF0DE",!1]],["spa",["\uF5BB",!1]],["spaghetti-monster-flying",["\uF67B",!1]],["spell-check",["\uF891",!1]],["spider",["\uF717",!1]],["spinner",["\uF110",!1]],["splotch",["\uF5BC",!1]],["spoon",["\uF2E5",!1]],["spray-can",["\uF5BD",!1]],["spray-can-sparkles",["\uF5D0",!1]],["square",["\uF0C8",!0]],["square-arrow-up-right",["\uF14C",!1]],["square-caret-down",["\uF150",!0]],["square-caret-left",["\uF191",!0]],["square-caret-right",["\uF152",!0]],["square-caret-up",["\uF151",!0]],["square-check",["\uF14A",!0]],["square-envelope",["\uF199",!1]],["square-full",["\uF45C",!0]],["square-h",["\uF0FD",!1]],["square-minus",["\uF146",!0]],["square-nfi",["\uE576",!1]],["square-parking",["\uF540",!1]],["square-pen",["\uF14B",!1]],["square-person-confined",["\uE577",!1]],["square-phone",["\uF098",!1]],["square-phone-flip",["\uF87B",!1]],["square-plus",["\uF0FE",!0]],["square-poll-horizontal",["\uF682",!1]],["square-poll-vertical",["\uF681",!1]],["square-root-variable",["\uF698",!1]],["square-rss",["\uF143",!1]],["square-share-nodes",["\uF1E1",!1]],["square-up-right",["\uF360",!1]],["square-virus",["\uE578",!1]],["square-xmark",["\uF2D3",!1]],["staff-snake",["\uE579",!1]],["stairs",["\uE289",!1]],["stamp",["\uF5BF",!1]],["stapler",["\uE5AF",!1]],["star",["\uF005",!0]],["star-and-crescent",["\uF699",!1]],["star-half",["\uF089",!0]],["star-half-stroke",["\uF5C0",!0]],["star-of-david",["\uF69A",!1]],["star-of-life",["\uF621",!1]],["sterling-sign",["\uF154",!1]],["stethoscope",["\uF0F1",!1]],["stop",["\uF04D",!1]],["stopwatch",["\uF2F2",!1]],["stopwatch-20",["\uE06F",!1]],["store",["\uF54E",!1]],["store-slash",["\uE071",!1]],["street-view",["\uF21D",!1]],["strikethrough",["\uF0CC",!1]],["stroopwafel",["\uF551",!1]],["subscript",["\uF12C",!1]],["suitcase",["\uF0F2",!1]],["suitcase-medical",["\uF0FA",!1]],["suitcase-rolling",["\uF5C1",!1]],["sun",["\uF185",!0]],["sun-plant-wilt",["\uE57A",!1]],["superscript",["\uF12B",!1]],["swatchbook",["\uF5C3",!1]],["synagogue",["\uF69B",!1]],["syringe",["\uF48E",!1]],["t",["T",!1]],["table",["\uF0CE",!1]],["table-cells",["\uF00A",!1]],["table-cells-large",["\uF009",!1]],["table-columns",["\uF0DB",!1]],["table-list",["\uF00B",!1]],["table-tennis-paddle-ball",["\uF45D",!1]],["tablet",["\uF3FB",!1]],["tablet-button",["\uF10A",!1]],["tablet-screen-button",["\uF3FA",!1]],["tablets",["\uF490",!1]],["tachograph-digital",["\uF566",!1]],["tag",["\uF02B",!1]],["tags",["\uF02C",!1]],["tape",["\uF4DB",!1]],["tarp",["\uE57B",!1]],["tarp-droplet",["\uE57C",!1]],["taxi",["\uF1BA",!1]],["teeth",["\uF62E",!1]],["teeth-open",["\uF62F",!1]],["temperature-arrow-down",["\uE03F",!1]],["temperature-arrow-up",["\uE040",!1]],["temperature-empty",["\uF2CB",!1]],["temperature-full",["\uF2C7",!1]],["temperature-half",["\uF2C9",!1]],["temperature-high",["\uF769",!1]],["temperature-low",["\uF76B",!1]],["temperature-quarter",["\uF2CA",!1]],["temperature-three-quarters",["\uF2C8",!1]],["tenge-sign",["\uF7D7",!1]],["tent",["\uE57D",!1]],["tent-arrow-down-to-line",["\uE57E",!1]],["tent-arrow-left-right",["\uE57F",!1]],["tent-arrow-turn-left",["\uE580",!1]],["tent-arrows-down",["\uE581",!1]],["tents",["\uE582",!1]],["terminal",["\uF120",!1]],["text-height",["\uF034",!1]],["text-slash",["\uF87D",!1]],["text-width",["\uF035",!1]],["thermometer",["\uF491",!1]],["thumbs-down",["\uF165",!0]],["thumbs-up",["\uF164",!0]],["thumbtack",["\uF08D",!1]],["ticket",["\uF145",!1]],["ticket-simple",["\uF3FF",!1]],["timeline",["\uE29C",!1]],["toggle-off",["\uF204",!1]],["toggle-on",["\uF205",!1]],["toilet",["\uF7D8",!1]],["toilet-paper",["\uF71E",!1]],["toilet-paper-slash",["\uE072",!1]],["toilet-portable",["\uE583",!1]],["toilets-portable",["\uE584",!1]],["toolbox",["\uF552",!1]],["tooth",["\uF5C9",!1]],["torii-gate",["\uF6A1",!1]],["tornado",["\uF76F",!1]],["tower-broadcast",["\uF519",!1]],["tower-cell",["\uE585",!1]],["tower-observation",["\uE586",!1]],["tractor",["\uF722",!1]],["trademark",["\uF25C",!1]],["traffic-light",["\uF637",!1]],["trailer",["\uE041",!1]],["train",["\uF238",!1]],["train-subway",["\uF239",!1]],["train-tram",["\uE5B4",!1]],["transgender",["\uF225",!1]],["trash",["\uF1F8",!1]],["trash-arrow-up",["\uF829",!1]],["trash-can",["\uF2ED",!0]],["trash-can-arrow-up",["\uF82A",!1]],["tree",["\uF1BB",!1]],["tree-city",["\uE587",!1]],["triangle-exclamation",["\uF071",!1]],["trophy",["\uF091",!1]],["trowel",["\uE589",!1]],["trowel-bricks",["\uE58A",!1]],["truck",["\uF0D1",!1]],["truck-arrow-right",["\uE58B",!1]],["truck-droplet",["\uE58C",!1]],["truck-fast",["\uF48B",!1]],["truck-field",["\uE58D",!1]],["truck-field-un",["\uE58E",!1]],["truck-front",["\uE2B7",!1]],["truck-medical",["\uF0F9",!1]],["truck-monster",["\uF63B",!1]],["truck-moving",["\uF4DF",!1]],["truck-pickup",["\uF63C",!1]],["truck-plane",["\uE58F",!1]],["truck-ramp-box",["\uF4DE",!1]],["tty",["\uF1E4",!1]],["turkish-lira-sign",["\uE2BB",!1]],["turn-down",["\uF3BE",!1]],["turn-up",["\uF3BF",!1]],["tv",["\uF26C",!1]],["u",["U",!1]],["umbrella",["\uF0E9",!1]],["umbrella-beach",["\uF5CA",!1]],["underline",["\uF0CD",!1]],["universal-access",["\uF29A",!1]],["unlock",["\uF09C",!1]],["unlock-keyhole",["\uF13E",!1]],["up-down",["\uF338",!1]],["up-down-left-right",["\uF0B2",!1]],["up-long",["\uF30C",!1]],["up-right-and-down-left-from-center",["\uF424",!1]],["up-right-from-square",["\uF35D",!1]],["upload",["\uF093",!1]],["user",["\uF007",!0]],["user-astronaut",["\uF4FB",!1]],["user-check",["\uF4FC",!1]],["user-clock",["\uF4FD",!1]],["user-doctor",["\uF0F0",!1]],["user-gear",["\uF4FE",!1]],["user-graduate",["\uF501",!1]],["user-group",["\uF500",!1]],["user-injured",["\uF728",!1]],["user-large",["\uF406",!1]],["user-large-slash",["\uF4FA",!1]],["user-lock",["\uF502",!1]],["user-minus",["\uF503",!1]],["user-ninja",["\uF504",!1]],["user-nurse",["\uF82F",!1]],["user-pen",["\uF4FF",!1]],["user-plus",["\uF234",!1]],["user-secret",["\uF21B",!1]],["user-shield",["\uF505",!1]],["user-slash",["\uF506",!1]],["user-tag",["\uF507",!1]],["user-tie",["\uF508",!1]],["user-xmark",["\uF235",!1]],["users",["\uF0C0",!1]],["users-between-lines",["\uE591",!1]],["users-gear",["\uF509",!1]],["users-line",["\uE592",!1]],["users-rays",["\uE593",!1]],["users-rectangle",["\uE594",!1]],["users-slash",["\uE073",!1]],["users-viewfinder",["\uE595",!1]],["utensils",["\uF2E7",!1]],["v",["V",!1]],["van-shuttle",["\uF5B6",!1]],["vault",["\uE2C5",!1]],["vector-square",["\uF5CB",!1]],["venus",["\uF221",!1]],["venus-double",["\uF226",!1]],["venus-mars",["\uF228",!1]],["vest",["\uE085",!1]],["vest-patches",["\uE086",!1]],["vial",["\uF492",!1]],["vial-circle-check",["\uE596",!1]],["vial-virus",["\uE597",!1]],["vials",["\uF493",!1]],["video",["\uF03D",!1]],["video-slash",["\uF4E2",!1]],["vihara",["\uF6A7",!1]],["virus",["\uE074",!1]],["virus-covid",["\uE4A8",!1]],["virus-covid-slash",["\uE4A9",!1]],["virus-slash",["\uE075",!1]],["viruses",["\uE076",!1]],["voicemail",["\uF897",!1]],["volcano",["\uF770",!1]],["volleyball",["\uF45F",!1]],["volume-high",["\uF028",!1]],["volume-low",["\uF027",!1]],["volume-off",["\uF026",!1]],["volume-xmark",["\uF6A9",!1]],["vr-cardboard",["\uF729",!1]],["w",["W",!1]],["walkie-talkie",["\uF8EF",!1]],["wallet",["\uF555",!1]],["wand-magic",["\uF0D0",!1]],["wand-magic-sparkles",["\uE2CA",!1]],["wand-sparkles",["\uF72B",!1]],["warehouse",["\uF494",!1]],["water",["\uF773",!1]],["water-ladder",["\uF5C5",!1]],["wave-square",["\uF83E",!1]],["weight-hanging",["\uF5CD",!1]],["weight-scale",["\uF496",!1]],["wheat-awn",["\uE2CD",!1]],["wheat-awn-circle-exclamation",["\uE598",!1]],["wheelchair",["\uF193",!1]],["wheelchair-move",["\uE2CE",!1]],["whiskey-glass",["\uF7A0",!1]],["wifi",["\uF1EB",!1]],["wind",["\uF72E",!1]],["window-maximize",["\uF2D0",!0]],["window-minimize",["\uF2D1",!0]],["window-restore",["\uF2D2",!0]],["wine-bottle",["\uF72F",!1]],["wine-glass",["\uF4E3",!1]],["wine-glass-empty",["\uF5CE",!1]],["won-sign",["\uF159",!1]],["worm",["\uE599",!1]],["wrench",["\uF0AD",!1]],["x",["X",!1]],["x-ray",["\uF497",!1]],["xmark",["\uF00D",!1]],["xmarks-lines",["\uE59A",!1]],["y",["Y",!1]],["yen-sign",["\uF157",!1]],["yin-yang",["\uF6AD",!1]],["z",["Z",!1]]]);window.getFontAwesome6Metadata=()=>new Map(r),window.getFontAwesome6IconMetadata=l=>r.get(e.get(l)||l)})();(()=>{let e=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class r extends HTMLElement{root=void 0;svgStyle=document.createElement("style");connectedCallback(){this.validate();let c=this.getRoot(),t=document.createElement("slot");t.name="svg",c.append(t),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(this.size===0)throw new TypeError("Must provide an icon size.");if(!e.has(this.size))throw new TypeError("Must provide a valid icon size.")}getRoot(){return this.root===void 0&&(this.root=this.attachShadow({mode:"open"}),this.updateRenderSize(),this.root.append(this.svgStyle)),this.root}updateRenderSize(){let c=e.get(this.size);this.svgStyle.textContent=` + `;return new Function("Language","h","v",l)}var V=class{compiled;constructor(l){try{this.compiled=Me(l)}catch(r){throw r instanceof Error&&console.debug(r.message),r}}fetch(l){return this.compiled(ie,{selectPlural:Se,escapeHTML:Ae,formatNumeric:de},l)}};function Ie(e,l){typeof l=="string"?G(e,ze(l)):G(e,function(){return l})}function ze(e){if(!e.includes("{"))return function(){return e};try{let l=new V(e);return l.fetch.bind(l)}catch{return function(){return e}}}var Pe=(()=>{let e="DOMContentLoaded",l=new WeakMap,r=[],f=i=>{do if(i.nextSibling)return!0;while(i=i.parentNode);return!1},t=()=>{r.splice(0).forEach(i=>{l.get(i[0])!==!0&&(l.set(i[0],!0),i[0][i[1]]())})};document.addEventListener(e,t);class a extends HTMLElement{static withParsedCallback(d,b="parsed"){let{prototype:k}=d,{connectedCallback:q}=k,S=b+"Callback",z=(h,g,p,x)=>{g.disconnect(),p.removeEventListener(e,x),P(h)},P=h=>{r.length||requestAnimationFrame(t),r.push([h,S])};return Object.defineProperties(k,{connectedCallback:{configurable:!0,writable:!0,value(){if(q&&q.apply(this,arguments),S in this&&!l.has(this)){let h=this,{ownerDocument:g}=h;if(l.set(h,!1),g.readyState==="complete"||f(h))P(h);else{let p=()=>z(h,x,g,p);g.addEventListener(e,p);let x=new MutationObserver(()=>{f(h)&&z(h,x,g,p)});x.observe(h.parentNode,{childList:!0,subtree:!0})}}}},[b]:{configurable:!0,get(){return l.get(this)===!0}}}),d}}return a.withParsedCallback(a)})(),pe=Pe;(()=>{let e=new Map([["contact-book","address-book"],["contact-card","address-card"],["vcard","address-card"],["angle-double-down","angles-down"],["angle-double-left","angles-left"],["angle-double-right","angles-right"],["angle-double-up","angles-up"],["apple-alt","apple-whole"],["sort-numeric-asc","arrow-down-1-9"],["sort-numeric-down","arrow-down-1-9"],["sort-numeric-desc","arrow-down-9-1"],["sort-numeric-down-alt","arrow-down-9-1"],["sort-alpha-asc","arrow-down-a-z"],["sort-alpha-down","arrow-down-a-z"],["long-arrow-down","arrow-down-long"],["sort-amount-desc","arrow-down-short-wide"],["sort-amount-down-alt","arrow-down-short-wide"],["sort-amount-asc","arrow-down-wide-short"],["sort-amount-down","arrow-down-wide-short"],["sort-alpha-desc","arrow-down-z-a"],["sort-alpha-down-alt","arrow-down-z-a"],["long-arrow-left","arrow-left-long"],["mouse-pointer","arrow-pointer"],["exchange","arrow-right-arrow-left"],["sign-out","arrow-right-from-bracket"],["long-arrow-right","arrow-right-long"],["sign-in","arrow-right-to-bracket"],["arrow-left-rotate","arrow-rotate-left"],["arrow-rotate-back","arrow-rotate-left"],["arrow-rotate-backward","arrow-rotate-left"],["undo","arrow-rotate-left"],["arrow-right-rotate","arrow-rotate-right"],["arrow-rotate-forward","arrow-rotate-right"],["redo","arrow-rotate-right"],["level-down","arrow-turn-down"],["level-up","arrow-turn-up"],["sort-numeric-up","arrow-up-1-9"],["sort-numeric-up-alt","arrow-up-9-1"],["sort-alpha-up","arrow-up-a-z"],["long-arrow-up","arrow-up-long"],["external-link","arrow-up-right-from-square"],["sort-amount-up-alt","arrow-up-short-wide"],["sort-amount-up","arrow-up-wide-short"],["sort-alpha-up-alt","arrow-up-z-a"],["arrows-h","arrows-left-right"],["refresh","arrows-rotate"],["sync","arrows-rotate"],["arrows-v","arrows-up-down"],["arrows","arrows-up-down-left-right"],["carriage-baby","baby-carriage"],["fast-backward","backward-fast"],["step-backward","backward-step"],["shopping-bag","bag-shopping"],["haykal","bahai"],["cancel","ban"],["smoking-ban","ban-smoking"],["band-aid","bandage"],["navicon","bars"],["tasks-alt","bars-progress"],["reorder","bars-staggered"],["stream","bars-staggered"],["baseball-ball","baseball"],["shopping-basket","basket-shopping"],["basketball-ball","basketball"],["bathtub","bath"],["battery-0","battery-empty"],["battery","battery-full"],["battery-5","battery-full"],["battery-3","battery-half"],["battery-2","battery-quarter"],["battery-4","battery-three-quarters"],["procedures","bed-pulse"],["beer","beer-mug-empty"],["concierge-bell","bell-concierge"],["zap","bolt"],["atlas","book-atlas"],["bible","book-bible"],["journal-whills","book-journal-whills"],["book-reader","book-open-reader"],["quran","book-quran"],["book-dead","book-skull"],["tanakh","book-tanakh"],["border-style","border-top-left"],["archive","box-archive"],["boxes","boxes-stacked"],["boxes-alt","boxes-stacked"],["quidditch","broom-ball"],["quidditch-broom-ball","broom-ball"],["bank","building-columns"],["institution","building-columns"],["museum","building-columns"],["university","building-columns"],["hamburger","burger"],["bus-alt","bus-simple"],["briefcase-clock","business-time"],["tram","cable-car"],["birthday-cake","cake-candles"],["cake","cake-candles"],["calendar-alt","calendar-days"],["calendar-times","calendar-xmark"],["camera-alt","camera"],["automobile","car"],["battery-car","car-battery"],["car-crash","car-burst"],["car-alt","car-rear"],["dolly-flatbed","cart-flatbed"],["luggage-cart","cart-flatbed-suitcase"],["shopping-cart","cart-shopping"],["blackboard","chalkboard"],["chalkboard-teacher","chalkboard-user"],["glass-cheers","champagne-glasses"],["area-chart","chart-area"],["bar-chart","chart-bar"],["line-chart","chart-line"],["pie-chart","chart-pie"],["vote-yea","check-to-slot"],["child-rifle","child-combatant"],["arrow-circle-down","circle-arrow-down"],["arrow-circle-left","circle-arrow-left"],["arrow-circle-right","circle-arrow-right"],["arrow-circle-up","circle-arrow-up"],["check-circle","circle-check"],["chevron-circle-down","circle-chevron-down"],["chevron-circle-left","circle-chevron-left"],["chevron-circle-right","circle-chevron-right"],["chevron-circle-up","circle-chevron-up"],["donate","circle-dollar-to-slot"],["dot-circle","circle-dot"],["arrow-alt-circle-down","circle-down"],["exclamation-circle","circle-exclamation"],["hospital-symbol","circle-h"],["adjust","circle-half-stroke"],["info-circle","circle-info"],["arrow-alt-circle-left","circle-left"],["minus-circle","circle-minus"],["pause-circle","circle-pause"],["play-circle","circle-play"],["plus-circle","circle-plus"],["question-circle","circle-question"],["radiation-alt","circle-radiation"],["arrow-alt-circle-right","circle-right"],["stop-circle","circle-stop"],["arrow-alt-circle-up","circle-up"],["user-circle","circle-user"],["times-circle","circle-xmark"],["xmark-circle","circle-xmark"],["clock-four","clock"],["history","clock-rotate-left"],["cloud-download","cloud-arrow-down"],["cloud-download-alt","cloud-arrow-down"],["cloud-upload","cloud-arrow-up"],["cloud-upload-alt","cloud-arrow-up"],["thunderstorm","cloud-bolt"],["commenting","comment-dots"],["sms","comment-sms"],["drafting-compass","compass-drafting"],["mouse","computer-mouse"],["credit-card-alt","credit-card"],["crop-alt","crop-simple"],["backspace","delete-left"],["desktop-alt","desktop"],["project-diagram","diagram-project"],["directions","diamond-turn-right"],["dollar","dollar-sign"],["usd","dollar-sign"],["dolly-box","dolly"],["compress-alt","down-left-and-up-right-to-center"],["long-arrow-alt-down","down-long"],["tint","droplet"],["tint-slash","droplet-slash"],["deaf","ear-deaf"],["deafness","ear-deaf"],["hard-of-hearing","ear-deaf"],["assistive-listening-systems","ear-listen"],["globe-africa","earth-africa"],["earth","earth-americas"],["earth-america","earth-americas"],["globe-americas","earth-americas"],["globe-asia","earth-asia"],["globe-europe","earth-europe"],["globe-oceania","earth-oceania"],["ellipsis-h","ellipsis"],["ellipsis-v","ellipsis-vertical"],["mail-bulk","envelopes-bulk"],["eur","euro-sign"],["euro","euro-sign"],["eye-dropper-empty","eye-dropper"],["eyedropper","eye-dropper"],["low-vision","eye-low-vision"],["angry","face-angry"],["dizzy","face-dizzy"],["flushed","face-flushed"],["frown","face-frown"],["frown-open","face-frown-open"],["grimace","face-grimace"],["grin","face-grin"],["grin-beam","face-grin-beam"],["grin-beam-sweat","face-grin-beam-sweat"],["grin-hearts","face-grin-hearts"],["grin-squint","face-grin-squint"],["grin-squint-tears","face-grin-squint-tears"],["grin-stars","face-grin-stars"],["grin-tears","face-grin-tears"],["grin-tongue","face-grin-tongue"],["grin-tongue-squint","face-grin-tongue-squint"],["grin-tongue-wink","face-grin-tongue-wink"],["grin-alt","face-grin-wide"],["grin-wink","face-grin-wink"],["kiss","face-kiss"],["kiss-beam","face-kiss-beam"],["kiss-wink-heart","face-kiss-wink-heart"],["laugh","face-laugh"],["laugh-beam","face-laugh-beam"],["laugh-squint","face-laugh-squint"],["laugh-wink","face-laugh-wink"],["meh","face-meh"],["meh-blank","face-meh-blank"],["meh-rolling-eyes","face-rolling-eyes"],["sad-cry","face-sad-cry"],["sad-tear","face-sad-tear"],["smile","face-smile"],["smile-beam","face-smile-beam"],["smile-wink","face-smile-wink"],["surprise","face-surprise"],["tired","face-tired"],["feather-alt","feather-pointed"],["file-download","file-arrow-down"],["file-upload","file-arrow-up"],["arrow-right-from-file","file-export"],["arrow-right-to-file","file-import"],["file-alt","file-lines"],["file-text","file-lines"],["file-edit","file-pen"],["file-medical-alt","file-waveform"],["file-archive","file-zipper"],["funnel-dollar","filter-circle-dollar"],["fire-alt","fire-flame-curved"],["burn","fire-flame-simple"],["save","floppy-disk"],["folder-blank","folder"],["football-ball","football"],["fast-forward","forward-fast"],["step-forward","forward-step"],["futbol-ball","futbol"],["soccer-ball","futbol"],["dashboard","gauge"],["gauge-med","gauge"],["tachometer-alt-average","gauge"],["tachometer-alt","gauge-high"],["tachometer-alt-fast","gauge-high"],["gauge-simple-med","gauge-simple"],["tachometer-average","gauge-simple"],["tachometer","gauge-simple-high"],["tachometer-fast","gauge-simple-high"],["legal","gavel"],["cog","gear"],["cogs","gears"],["golf-ball","golf-ball-tee"],["mortar-board","graduation-cap"],["grip-horizontal","grip"],["hand-paper","hand"],["hand-rock","hand-back-fist"],["allergies","hand-dots"],["fist-raised","hand-fist"],["hand-holding-usd","hand-holding-dollar"],["hand-holding-water","hand-holding-droplet"],["sign-language","hands"],["signing","hands"],["american-sign-language-interpreting","hands-asl-interpreting"],["asl-interpreting","hands-asl-interpreting"],["hands-american-sign-language-interpreting","hands-asl-interpreting"],["hands-wash","hands-bubbles"],["praying-hands","hands-praying"],["hands-helping","handshake-angle"],["handshake-alt","handshake-simple"],["handshake-alt-slash","handshake-simple-slash"],["hdd","hard-drive"],["header","heading"],["headphones-alt","headphones-simple"],["heart-broken","heart-crack"],["heartbeat","heart-pulse"],["hard-hat","helmet-safety"],["hat-hard","helmet-safety"],["hospital-alt","hospital"],["hospital-wide","hospital"],["hot-tub","hot-tub-person"],["hourglass-empty","hourglass"],["hourglass-3","hourglass-end"],["hourglass-2","hourglass-half"],["hourglass-1","hourglass-start"],["home","house"],["home-alt","house"],["home-lg-alt","house"],["home-lg","house-chimney"],["house-damage","house-chimney-crack"],["clinic-medical","house-chimney-medical"],["laptop-house","house-laptop"],["home-user","house-user"],["hryvnia","hryvnia-sign"],["heart-music-camera-bolt","icons"],["drivers-license","id-card"],["id-card-alt","id-card-clip"],["portrait","image-portrait"],["indian-rupee","indian-rupee-sign"],["inr","indian-rupee-sign"],["fighter-jet","jet-fighter"],["first-aid","kit-medical"],["landmark-alt","landmark-dome"],["long-arrow-alt-left","left-long"],["arrows-alt-h","left-right"],["chain","link"],["chain-broken","link-slash"],["chain-slash","link-slash"],["unlink","link-slash"],["list-squares","list"],["tasks","list-check"],["list-1-2","list-ol"],["list-numeric","list-ol"],["list-dots","list-ul"],["location","location-crosshairs"],["map-marker-alt","location-dot"],["map-marker","location-pin"],["search","magnifying-glass"],["search-dollar","magnifying-glass-dollar"],["search-location","magnifying-glass-location"],["search-minus","magnifying-glass-minus"],["search-plus","magnifying-glass-plus"],["map-marked","map-location"],["map-marked-alt","map-location-dot"],["mars-stroke-h","mars-stroke-right"],["mars-stroke-v","mars-stroke-up"],["glass-martini-alt","martini-glass"],["cocktail","martini-glass-citrus"],["glass-martini","martini-glass-empty"],["theater-masks","masks-theater"],["expand-arrows-alt","maximize"],["comment-alt","message"],["microphone-alt","microphone-lines"],["microphone-alt-slash","microphone-lines-slash"],["compress-arrows-alt","minimize"],["subtract","minus"],["mobile-android","mobile"],["mobile-phone","mobile"],["mobile-android-alt","mobile-screen"],["mobile-alt","mobile-screen-button"],["money-bill-alt","money-bill-1"],["money-bill-wave-alt","money-bill-1-wave"],["money-check-alt","money-check-dollar"],["coffee","mug-saucer"],["sticky-note","note-sticky"],["dedent","outdent"],["paint-brush","paintbrush"],["file-clipboard","paste"],["pen-alt","pen-clip"],["pencil-ruler","pen-ruler"],["edit","pen-to-square"],["pencil-alt","pencil"],["people-arrows-left-right","people-arrows"],["people-carry","people-carry-box"],["percentage","percent"],["male","person"],["biking","person-biking"],["digging","person-digging"],["diagnoses","person-dots-from-line"],["female","person-dress"],["hiking","person-hiking"],["pray","person-praying"],["running","person-running"],["skating","person-skating"],["skiing","person-skiing"],["skiing-nordic","person-skiing-nordic"],["snowboarding","person-snowboarding"],["swimmer","person-swimming"],["walking","person-walking"],["blind","person-walking-with-cane"],["phone-alt","phone-flip"],["volume-control-phone","phone-volume"],["photo-video","photo-film"],["add","plus"],["poo-bolt","poo-storm"],["prescription-bottle-alt","prescription-bottle-medical"],["quote-left-alt","quote-left"],["quote-right-alt","quote-right"],["ad","rectangle-ad"],["list-alt","rectangle-list"],["rectangle-times","rectangle-xmark"],["times-rectangle","rectangle-xmark"],["window-close","rectangle-xmark"],["mail-reply","reply"],["mail-reply-all","reply-all"],["sign-out-alt","right-from-bracket"],["exchange-alt","right-left"],["long-arrow-alt-right","right-long"],["sign-in-alt","right-to-bracket"],["sync-alt","rotate"],["rotate-back","rotate-left"],["rotate-backward","rotate-left"],["undo-alt","rotate-left"],["redo-alt","rotate-right"],["rotate-forward","rotate-right"],["feed","rss"],["rouble","ruble-sign"],["rub","ruble-sign"],["ruble","ruble-sign"],["rupee","rupee-sign"],["balance-scale","scale-balanced"],["balance-scale-left","scale-unbalanced"],["balance-scale-right","scale-unbalanced-flip"],["cut","scissors"],["tools","screwdriver-wrench"],["torah","scroll-torah"],["sprout","seedling"],["triangle-circle-square","shapes"],["arrow-turn-right","share"],["mail-forward","share"],["share-square","share-from-square"],["share-alt","share-nodes"],["ils","shekel-sign"],["shekel","shekel-sign"],["sheqel","shekel-sign"],["sheqel-sign","shekel-sign"],["shield-blank","shield"],["shield-alt","shield-halved"],["t-shirt","shirt"],["tshirt","shirt"],["store-alt","shop"],["store-alt-slash","shop-slash"],["random","shuffle"],["space-shuttle","shuttle-space"],["sign","sign-hanging"],["signal-5","signal"],["signal-perfect","signal"],["map-signs","signs-post"],["sliders-h","sliders"],["unsorted","sort"],["sort-desc","sort-down"],["sort-asc","sort-up"],["pastafarianism","spaghetti-monster-flying"],["utensil-spoon","spoon"],["air-freshener","spray-can-sparkles"],["external-link-square","square-arrow-up-right"],["caret-square-down","square-caret-down"],["caret-square-left","square-caret-left"],["caret-square-right","square-caret-right"],["caret-square-up","square-caret-up"],["check-square","square-check"],["envelope-square","square-envelope"],["h-square","square-h"],["minus-square","square-minus"],["parking","square-parking"],["pen-square","square-pen"],["pencil-square","square-pen"],["phone-square","square-phone"],["phone-square-alt","square-phone-flip"],["plus-square","square-plus"],["poll-h","square-poll-horizontal"],["poll","square-poll-vertical"],["square-root-alt","square-root-variable"],["rss-square","square-rss"],["share-alt-square","square-share-nodes"],["external-link-square-alt","square-up-right"],["times-square","square-xmark"],["xmark-square","square-xmark"],["rod-asclepius","staff-snake"],["rod-snake","staff-snake"],["staff-aesculapius","staff-snake"],["star-half-alt","star-half-stroke"],["gbp","sterling-sign"],["pound-sign","sterling-sign"],["medkit","suitcase-medical"],["th","table-cells"],["th-large","table-cells-large"],["columns","table-columns"],["th-list","table-list"],["ping-pong-paddle-ball","table-tennis-paddle-ball"],["table-tennis","table-tennis-paddle-ball"],["tablet-android","tablet"],["tablet-alt","tablet-screen-button"],["digital-tachograph","tachograph-digital"],["cab","taxi"],["temperature-down","temperature-arrow-down"],["temperature-up","temperature-arrow-up"],["temperature-0","temperature-empty"],["thermometer-0","temperature-empty"],["thermometer-empty","temperature-empty"],["temperature-4","temperature-full"],["thermometer-4","temperature-full"],["thermometer-full","temperature-full"],["temperature-2","temperature-half"],["thermometer-2","temperature-half"],["thermometer-half","temperature-half"],["temperature-1","temperature-quarter"],["thermometer-1","temperature-quarter"],["thermometer-quarter","temperature-quarter"],["temperature-3","temperature-three-quarters"],["thermometer-3","temperature-three-quarters"],["thermometer-three-quarters","temperature-three-quarters"],["tenge","tenge-sign"],["remove-format","text-slash"],["thumb-tack","thumbtack"],["ticket-alt","ticket-simple"],["broadcast-tower","tower-broadcast"],["subway","train-subway"],["transgender-alt","transgender"],["trash-restore","trash-arrow-up"],["trash-alt","trash-can"],["trash-restore-alt","trash-can-arrow-up"],["exclamation-triangle","triangle-exclamation"],["warning","triangle-exclamation"],["shipping-fast","truck-fast"],["ambulance","truck-medical"],["truck-loading","truck-ramp-box"],["teletype","tty"],["try","turkish-lira-sign"],["turkish-lira","turkish-lira-sign"],["level-down-alt","turn-down"],["level-up-alt","turn-up"],["television","tv"],["tv-alt","tv"],["unlock-alt","unlock-keyhole"],["arrows-alt-v","up-down"],["arrows-alt","up-down-left-right"],["long-arrow-alt-up","up-long"],["expand-alt","up-right-and-down-left-from-center"],["external-link-alt","up-right-from-square"],["user-md","user-doctor"],["user-cog","user-gear"],["user-friends","user-group"],["user-alt","user-large"],["user-alt-slash","user-large-slash"],["user-edit","user-pen"],["user-times","user-xmark"],["users-cog","users-gear"],["cutlery","utensils"],["shuttle-van","van-shuttle"],["video-camera","video"],["volleyball-ball","volleyball"],["volume-up","volume-high"],["volume-down","volume-low"],["volume-mute","volume-xmark"],["volume-times","volume-xmark"],["magic","wand-magic"],["magic-wand-sparkles","wand-magic-sparkles"],["ladder-water","water-ladder"],["swimming-pool","water-ladder"],["weight","weight-scale"],["wheat-alt","wheat-awn"],["wheelchair-alt","wheelchair-move"],["glass-whiskey","whiskey-glass"],["wifi-3","wifi"],["wifi-strong","wifi"],["wine-glass-alt","wine-glass-empty"],["krw","won-sign"],["won","won-sign"],["close","xmark"],["multiply","xmark"],["remove","xmark"],["times","xmark"],["cny","yen-sign"],["jpy","yen-sign"],["rmb","yen-sign"],["yen","yen-sign"]]),l=new Map([["0",["0",!1]],["1",["1",!1]],["2",["2",!1]],["3",["3",!1]],["4",["4",!1]],["5",["5",!1]],["6",["6",!1]],["7",["7",!1]],["8",["8",!1]],["9",["9",!1]],["a",["A",!1]],["address-book",["\uF2B9",!0]],["address-card",["\uF2BB",!0]],["align-center",["\uF037",!1]],["align-justify",["\uF039",!1]],["align-left",["\uF036",!1]],["align-right",["\uF038",!1]],["anchor",["\uF13D",!1]],["anchor-circle-check",["\uE4AA",!1]],["anchor-circle-exclamation",["\uE4AB",!1]],["anchor-circle-xmark",["\uE4AC",!1]],["anchor-lock",["\uE4AD",!1]],["angle-down",["\uF107",!1]],["angle-left",["\uF104",!1]],["angle-right",["\uF105",!1]],["angle-up",["\uF106",!1]],["angles-down",["\uF103",!1]],["angles-left",["\uF100",!1]],["angles-right",["\uF101",!1]],["angles-up",["\uF102",!1]],["ankh",["\uF644",!1]],["apple-whole",["\uF5D1",!1]],["archway",["\uF557",!1]],["arrow-down",["\uF063",!1]],["arrow-down-1-9",["\uF162",!1]],["arrow-down-9-1",["\uF886",!1]],["arrow-down-a-z",["\uF15D",!1]],["arrow-down-long",["\uF175",!1]],["arrow-down-short-wide",["\uF884",!1]],["arrow-down-up-across-line",["\uE4AF",!1]],["arrow-down-up-lock",["\uE4B0",!1]],["arrow-down-wide-short",["\uF160",!1]],["arrow-down-z-a",["\uF881",!1]],["arrow-left",["\uF060",!1]],["arrow-left-long",["\uF177",!1]],["arrow-pointer",["\uF245",!1]],["arrow-right",["\uF061",!1]],["arrow-right-arrow-left",["\uF0EC",!1]],["arrow-right-from-bracket",["\uF08B",!1]],["arrow-right-long",["\uF178",!1]],["arrow-right-to-bracket",["\uF090",!1]],["arrow-right-to-city",["\uE4B3",!1]],["arrow-rotate-left",["\uF0E2",!1]],["arrow-rotate-right",["\uF01E",!1]],["arrow-trend-down",["\uE097",!1]],["arrow-trend-up",["\uE098",!1]],["arrow-turn-down",["\uF149",!1]],["arrow-turn-up",["\uF148",!1]],["arrow-up",["\uF062",!1]],["arrow-up-1-9",["\uF163",!1]],["arrow-up-9-1",["\uF887",!1]],["arrow-up-a-z",["\uF15E",!1]],["arrow-up-from-bracket",["\uE09A",!1]],["arrow-up-from-ground-water",["\uE4B5",!1]],["arrow-up-from-water-pump",["\uE4B6",!1]],["arrow-up-long",["\uF176",!1]],["arrow-up-right-dots",["\uE4B7",!1]],["arrow-up-right-from-square",["\uF08E",!1]],["arrow-up-short-wide",["\uF885",!1]],["arrow-up-wide-short",["\uF161",!1]],["arrow-up-z-a",["\uF882",!1]],["arrows-down-to-line",["\uE4B8",!1]],["arrows-down-to-people",["\uE4B9",!1]],["arrows-left-right",["\uF07E",!1]],["arrows-left-right-to-line",["\uE4BA",!1]],["arrows-rotate",["\uF021",!1]],["arrows-spin",["\uE4BB",!1]],["arrows-split-up-and-left",["\uE4BC",!1]],["arrows-to-circle",["\uE4BD",!1]],["arrows-to-dot",["\uE4BE",!1]],["arrows-to-eye",["\uE4BF",!1]],["arrows-turn-right",["\uE4C0",!1]],["arrows-turn-to-dots",["\uE4C1",!1]],["arrows-up-down",["\uF07D",!1]],["arrows-up-down-left-right",["\uF047",!1]],["arrows-up-to-line",["\uE4C2",!1]],["asterisk",["*",!1]],["at",["@",!1]],["atom",["\uF5D2",!1]],["audio-description",["\uF29E",!1]],["austral-sign",["\uE0A9",!1]],["award",["\uF559",!1]],["b",["B",!1]],["baby",["\uF77C",!1]],["baby-carriage",["\uF77D",!1]],["backward",["\uF04A",!1]],["backward-fast",["\uF049",!1]],["backward-step",["\uF048",!1]],["bacon",["\uF7E5",!1]],["bacteria",["\uE059",!1]],["bacterium",["\uE05A",!1]],["bag-shopping",["\uF290",!1]],["bahai",["\uF666",!1]],["baht-sign",["\uE0AC",!1]],["ban",["\uF05E",!1]],["ban-smoking",["\uF54D",!1]],["bandage",["\uF462",!1]],["bangladeshi-taka-sign",["\uE2E6",!1]],["barcode",["\uF02A",!1]],["bars",["\uF0C9",!1]],["bars-progress",["\uF828",!1]],["bars-staggered",["\uF550",!1]],["baseball",["\uF433",!1]],["baseball-bat-ball",["\uF432",!1]],["basket-shopping",["\uF291",!1]],["basketball",["\uF434",!1]],["bath",["\uF2CD",!1]],["battery-empty",["\uF244",!1]],["battery-full",["\uF240",!1]],["battery-half",["\uF242",!1]],["battery-quarter",["\uF243",!1]],["battery-three-quarters",["\uF241",!1]],["bed",["\uF236",!1]],["bed-pulse",["\uF487",!1]],["beer-mug-empty",["\uF0FC",!1]],["bell",["\uF0F3",!0]],["bell-concierge",["\uF562",!1]],["bell-slash",["\uF1F6",!0]],["bezier-curve",["\uF55B",!1]],["bicycle",["\uF206",!1]],["binoculars",["\uF1E5",!1]],["biohazard",["\uF780",!1]],["bitcoin-sign",["\uE0B4",!1]],["blender",["\uF517",!1]],["blender-phone",["\uF6B6",!1]],["blog",["\uF781",!1]],["bold",["\uF032",!1]],["bolt",["\uF0E7",!1]],["bolt-lightning",["\uE0B7",!1]],["bomb",["\uF1E2",!1]],["bone",["\uF5D7",!1]],["bong",["\uF55C",!1]],["book",["\uF02D",!1]],["book-atlas",["\uF558",!1]],["book-bible",["\uF647",!1]],["book-bookmark",["\uE0BB",!1]],["book-journal-whills",["\uF66A",!1]],["book-medical",["\uF7E6",!1]],["book-open",["\uF518",!1]],["book-open-reader",["\uF5DA",!1]],["book-quran",["\uF687",!1]],["book-skull",["\uF6B7",!1]],["book-tanakh",["\uF827",!1]],["bookmark",["\uF02E",!0]],["border-all",["\uF84C",!1]],["border-none",["\uF850",!1]],["border-top-left",["\uF853",!1]],["bore-hole",["\uE4C3",!1]],["bottle-droplet",["\uE4C4",!1]],["bottle-water",["\uE4C5",!1]],["bowl-food",["\uE4C6",!1]],["bowl-rice",["\uE2EB",!1]],["bowling-ball",["\uF436",!1]],["box",["\uF466",!1]],["box-archive",["\uF187",!1]],["box-open",["\uF49E",!1]],["box-tissue",["\uE05B",!1]],["boxes-packing",["\uE4C7",!1]],["boxes-stacked",["\uF468",!1]],["braille",["\uF2A1",!1]],["brain",["\uF5DC",!1]],["brazilian-real-sign",["\uE46C",!1]],["bread-slice",["\uF7EC",!1]],["bridge",["\uE4C8",!1]],["bridge-circle-check",["\uE4C9",!1]],["bridge-circle-exclamation",["\uE4CA",!1]],["bridge-circle-xmark",["\uE4CB",!1]],["bridge-lock",["\uE4CC",!1]],["bridge-water",["\uE4CE",!1]],["briefcase",["\uF0B1",!1]],["briefcase-medical",["\uF469",!1]],["broom",["\uF51A",!1]],["broom-ball",["\uF458",!1]],["brush",["\uF55D",!1]],["bucket",["\uE4CF",!1]],["bug",["\uF188",!1]],["bug-slash",["\uE490",!1]],["bugs",["\uE4D0",!1]],["building",["\uF1AD",!0]],["building-circle-arrow-right",["\uE4D1",!1]],["building-circle-check",["\uE4D2",!1]],["building-circle-exclamation",["\uE4D3",!1]],["building-circle-xmark",["\uE4D4",!1]],["building-columns",["\uF19C",!1]],["building-flag",["\uE4D5",!1]],["building-lock",["\uE4D6",!1]],["building-ngo",["\uE4D7",!1]],["building-shield",["\uE4D8",!1]],["building-un",["\uE4D9",!1]],["building-user",["\uE4DA",!1]],["building-wheat",["\uE4DB",!1]],["bullhorn",["\uF0A1",!1]],["bullseye",["\uF140",!1]],["burger",["\uF805",!1]],["burst",["\uE4DC",!1]],["bus",["\uF207",!1]],["bus-simple",["\uF55E",!1]],["business-time",["\uF64A",!1]],["c",["C",!1]],["cable-car",["\uF7DA",!1]],["cake-candles",["\uF1FD",!1]],["calculator",["\uF1EC",!1]],["calendar",["\uF133",!0]],["calendar-check",["\uF274",!0]],["calendar-day",["\uF783",!1]],["calendar-days",["\uF073",!0]],["calendar-minus",["\uF272",!0]],["calendar-plus",["\uF271",!0]],["calendar-week",["\uF784",!1]],["calendar-xmark",["\uF273",!0]],["camera",["\uF030",!1]],["camera-retro",["\uF083",!1]],["camera-rotate",["\uE0D8",!1]],["campground",["\uF6BB",!1]],["candy-cane",["\uF786",!1]],["cannabis",["\uF55F",!1]],["capsules",["\uF46B",!1]],["car",["\uF1B9",!1]],["car-battery",["\uF5DF",!1]],["car-burst",["\uF5E1",!1]],["car-on",["\uE4DD",!1]],["car-rear",["\uF5DE",!1]],["car-side",["\uF5E4",!1]],["car-tunnel",["\uE4DE",!1]],["caravan",["\uF8FF",!1]],["caret-down",["\uF0D7",!1]],["caret-left",["\uF0D9",!1]],["caret-right",["\uF0DA",!1]],["caret-up",["\uF0D8",!1]],["carrot",["\uF787",!1]],["cart-arrow-down",["\uF218",!1]],["cart-flatbed",["\uF474",!1]],["cart-flatbed-suitcase",["\uF59D",!1]],["cart-plus",["\uF217",!1]],["cart-shopping",["\uF07A",!1]],["cash-register",["\uF788",!1]],["cat",["\uF6BE",!1]],["cedi-sign",["\uE0DF",!1]],["cent-sign",["\uE3F5",!1]],["certificate",["\uF0A3",!1]],["chair",["\uF6C0",!1]],["chalkboard",["\uF51B",!1]],["chalkboard-user",["\uF51C",!1]],["champagne-glasses",["\uF79F",!1]],["charging-station",["\uF5E7",!1]],["chart-area",["\uF1FE",!1]],["chart-bar",["\uF080",!0]],["chart-column",["\uE0E3",!1]],["chart-gantt",["\uE0E4",!1]],["chart-line",["\uF201",!1]],["chart-pie",["\uF200",!1]],["chart-simple",["\uE473",!1]],["check",["\uF00C",!1]],["check-double",["\uF560",!1]],["check-to-slot",["\uF772",!1]],["cheese",["\uF7EF",!1]],["chess",["\uF439",!1]],["chess-bishop",["\uF43A",!0]],["chess-board",["\uF43C",!1]],["chess-king",["\uF43F",!0]],["chess-knight",["\uF441",!0]],["chess-pawn",["\uF443",!0]],["chess-queen",["\uF445",!0]],["chess-rook",["\uF447",!0]],["chevron-down",["\uF078",!1]],["chevron-left",["\uF053",!1]],["chevron-right",["\uF054",!1]],["chevron-up",["\uF077",!1]],["child",["\uF1AE",!1]],["child-combatant",["\uE4E0",!1]],["child-dress",["\uE59C",!1]],["child-reaching",["\uE59D",!1]],["children",["\uE4E1",!1]],["church",["\uF51D",!1]],["circle",["\uF111",!0]],["circle-arrow-down",["\uF0AB",!1]],["circle-arrow-left",["\uF0A8",!1]],["circle-arrow-right",["\uF0A9",!1]],["circle-arrow-up",["\uF0AA",!1]],["circle-check",["\uF058",!0]],["circle-chevron-down",["\uF13A",!1]],["circle-chevron-left",["\uF137",!1]],["circle-chevron-right",["\uF138",!1]],["circle-chevron-up",["\uF139",!1]],["circle-dollar-to-slot",["\uF4B9",!1]],["circle-dot",["\uF192",!0]],["circle-down",["\uF358",!0]],["circle-exclamation",["\uF06A",!1]],["circle-h",["\uF47E",!1]],["circle-half-stroke",["\uF042",!1]],["circle-info",["\uF05A",!1]],["circle-left",["\uF359",!0]],["circle-minus",["\uF056",!1]],["circle-nodes",["\uE4E2",!1]],["circle-notch",["\uF1CE",!1]],["circle-pause",["\uF28B",!0]],["circle-play",["\uF144",!0]],["circle-plus",["\uF055",!1]],["circle-question",["\uF059",!0]],["circle-radiation",["\uF7BA",!1]],["circle-right",["\uF35A",!0]],["circle-stop",["\uF28D",!0]],["circle-up",["\uF35B",!0]],["circle-user",["\uF2BD",!0]],["circle-xmark",["\uF057",!0]],["city",["\uF64F",!1]],["clapperboard",["\uE131",!1]],["clipboard",["\uF328",!0]],["clipboard-check",["\uF46C",!1]],["clipboard-list",["\uF46D",!1]],["clipboard-question",["\uE4E3",!1]],["clipboard-user",["\uF7F3",!1]],["clock",["\uF017",!0]],["clock-rotate-left",["\uF1DA",!1]],["clone",["\uF24D",!0]],["closed-captioning",["\uF20A",!0]],["cloud",["\uF0C2",!1]],["cloud-arrow-down",["\uF0ED",!1]],["cloud-arrow-up",["\uF0EE",!1]],["cloud-bolt",["\uF76C",!1]],["cloud-meatball",["\uF73B",!1]],["cloud-moon",["\uF6C3",!1]],["cloud-moon-rain",["\uF73C",!1]],["cloud-rain",["\uF73D",!1]],["cloud-showers-heavy",["\uF740",!1]],["cloud-showers-water",["\uE4E4",!1]],["cloud-sun",["\uF6C4",!1]],["cloud-sun-rain",["\uF743",!1]],["clover",["\uE139",!1]],["code",["\uF121",!1]],["code-branch",["\uF126",!1]],["code-commit",["\uF386",!1]],["code-compare",["\uE13A",!1]],["code-fork",["\uE13B",!1]],["code-merge",["\uF387",!1]],["code-pull-request",["\uE13C",!1]],["coins",["\uF51E",!1]],["colon-sign",["\uE140",!1]],["comment",["\uF075",!0]],["comment-dollar",["\uF651",!1]],["comment-dots",["\uF4AD",!0]],["comment-medical",["\uF7F5",!1]],["comment-slash",["\uF4B3",!1]],["comment-sms",["\uF7CD",!1]],["comments",["\uF086",!0]],["comments-dollar",["\uF653",!1]],["compact-disc",["\uF51F",!1]],["compass",["\uF14E",!0]],["compass-drafting",["\uF568",!1]],["compress",["\uF066",!1]],["computer",["\uE4E5",!1]],["computer-mouse",["\uF8CC",!1]],["cookie",["\uF563",!1]],["cookie-bite",["\uF564",!1]],["copy",["\uF0C5",!0]],["copyright",["\uF1F9",!0]],["couch",["\uF4B8",!1]],["cow",["\uF6C8",!1]],["credit-card",["\uF09D",!0]],["crop",["\uF125",!1]],["crop-simple",["\uF565",!1]],["cross",["\uF654",!1]],["crosshairs",["\uF05B",!1]],["crow",["\uF520",!1]],["crown",["\uF521",!1]],["crutch",["\uF7F7",!1]],["cruzeiro-sign",["\uE152",!1]],["cube",["\uF1B2",!1]],["cubes",["\uF1B3",!1]],["cubes-stacked",["\uE4E6",!1]],["d",["D",!1]],["database",["\uF1C0",!1]],["delete-left",["\uF55A",!1]],["democrat",["\uF747",!1]],["desktop",["\uF390",!1]],["dharmachakra",["\uF655",!1]],["diagram-next",["\uE476",!1]],["diagram-predecessor",["\uE477",!1]],["diagram-project",["\uF542",!1]],["diagram-successor",["\uE47A",!1]],["diamond",["\uF219",!1]],["diamond-turn-right",["\uF5EB",!1]],["dice",["\uF522",!1]],["dice-d20",["\uF6CF",!1]],["dice-d6",["\uF6D1",!1]],["dice-five",["\uF523",!1]],["dice-four",["\uF524",!1]],["dice-one",["\uF525",!1]],["dice-six",["\uF526",!1]],["dice-three",["\uF527",!1]],["dice-two",["\uF528",!1]],["disease",["\uF7FA",!1]],["display",["\uE163",!1]],["divide",["\uF529",!1]],["dna",["\uF471",!1]],["dog",["\uF6D3",!1]],["dollar-sign",["$",!1]],["dolly",["\uF472",!1]],["dong-sign",["\uE169",!1]],["door-closed",["\uF52A",!1]],["door-open",["\uF52B",!1]],["dove",["\uF4BA",!1]],["down-left-and-up-right-to-center",["\uF422",!1]],["down-long",["\uF309",!1]],["download",["\uF019",!1]],["dragon",["\uF6D5",!1]],["draw-polygon",["\uF5EE",!1]],["droplet",["\uF043",!1]],["droplet-slash",["\uF5C7",!1]],["drum",["\uF569",!1]],["drum-steelpan",["\uF56A",!1]],["drumstick-bite",["\uF6D7",!1]],["dumbbell",["\uF44B",!1]],["dumpster",["\uF793",!1]],["dumpster-fire",["\uF794",!1]],["dungeon",["\uF6D9",!1]],["e",["E",!1]],["ear-deaf",["\uF2A4",!1]],["ear-listen",["\uF2A2",!1]],["earth-africa",["\uF57C",!1]],["earth-americas",["\uF57D",!1]],["earth-asia",["\uF57E",!1]],["earth-europe",["\uF7A2",!1]],["earth-oceania",["\uE47B",!1]],["egg",["\uF7FB",!1]],["eject",["\uF052",!1]],["elevator",["\uE16D",!1]],["ellipsis",["\uF141",!1]],["ellipsis-vertical",["\uF142",!1]],["envelope",["\uF0E0",!0]],["envelope-circle-check",["\uE4E8",!1]],["envelope-open",["\uF2B6",!0]],["envelope-open-text",["\uF658",!1]],["envelopes-bulk",["\uF674",!1]],["equals",["=",!1]],["eraser",["\uF12D",!1]],["ethernet",["\uF796",!1]],["euro-sign",["\uF153",!1]],["exclamation",["!",!1]],["expand",["\uF065",!1]],["explosion",["\uE4E9",!1]],["eye",["\uF06E",!0]],["eye-dropper",["\uF1FB",!1]],["eye-low-vision",["\uF2A8",!1]],["eye-slash",["\uF070",!0]],["f",["F",!1]],["face-angry",["\uF556",!0]],["face-dizzy",["\uF567",!0]],["face-flushed",["\uF579",!0]],["face-frown",["\uF119",!0]],["face-frown-open",["\uF57A",!0]],["face-grimace",["\uF57F",!0]],["face-grin",["\uF580",!0]],["face-grin-beam",["\uF582",!0]],["face-grin-beam-sweat",["\uF583",!0]],["face-grin-hearts",["\uF584",!0]],["face-grin-squint",["\uF585",!0]],["face-grin-squint-tears",["\uF586",!0]],["face-grin-stars",["\uF587",!0]],["face-grin-tears",["\uF588",!0]],["face-grin-tongue",["\uF589",!0]],["face-grin-tongue-squint",["\uF58A",!0]],["face-grin-tongue-wink",["\uF58B",!0]],["face-grin-wide",["\uF581",!0]],["face-grin-wink",["\uF58C",!0]],["face-kiss",["\uF596",!0]],["face-kiss-beam",["\uF597",!0]],["face-kiss-wink-heart",["\uF598",!0]],["face-laugh",["\uF599",!0]],["face-laugh-beam",["\uF59A",!0]],["face-laugh-squint",["\uF59B",!0]],["face-laugh-wink",["\uF59C",!0]],["face-meh",["\uF11A",!0]],["face-meh-blank",["\uF5A4",!0]],["face-rolling-eyes",["\uF5A5",!0]],["face-sad-cry",["\uF5B3",!0]],["face-sad-tear",["\uF5B4",!0]],["face-smile",["\uF118",!0]],["face-smile-beam",["\uF5B8",!0]],["face-smile-wink",["\uF4DA",!0]],["face-surprise",["\uF5C2",!0]],["face-tired",["\uF5C8",!0]],["fan",["\uF863",!1]],["faucet",["\uE005",!1]],["faucet-drip",["\uE006",!1]],["fax",["\uF1AC",!1]],["feather",["\uF52D",!1]],["feather-pointed",["\uF56B",!1]],["ferry",["\uE4EA",!1]],["file",["\uF15B",!0]],["file-arrow-down",["\uF56D",!1]],["file-arrow-up",["\uF574",!1]],["file-audio",["\uF1C7",!0]],["file-circle-check",["\uE5A0",!1]],["file-circle-exclamation",["\uE4EB",!1]],["file-circle-minus",["\uE4ED",!1]],["file-circle-plus",["\uE494",!1]],["file-circle-question",["\uE4EF",!1]],["file-circle-xmark",["\uE5A1",!1]],["file-code",["\uF1C9",!0]],["file-contract",["\uF56C",!1]],["file-csv",["\uF6DD",!1]],["file-excel",["\uF1C3",!0]],["file-export",["\uF56E",!1]],["file-image",["\uF1C5",!0]],["file-import",["\uF56F",!1]],["file-invoice",["\uF570",!1]],["file-invoice-dollar",["\uF571",!1]],["file-lines",["\uF15C",!0]],["file-medical",["\uF477",!1]],["file-pdf",["\uF1C1",!0]],["file-pen",["\uF31C",!1]],["file-powerpoint",["\uF1C4",!0]],["file-prescription",["\uF572",!1]],["file-shield",["\uE4F0",!1]],["file-signature",["\uF573",!1]],["file-video",["\uF1C8",!0]],["file-waveform",["\uF478",!1]],["file-word",["\uF1C2",!0]],["file-zipper",["\uF1C6",!0]],["fill",["\uF575",!1]],["fill-drip",["\uF576",!1]],["film",["\uF008",!1]],["filter",["\uF0B0",!1]],["filter-circle-dollar",["\uF662",!1]],["filter-circle-xmark",["\uE17B",!1]],["fingerprint",["\uF577",!1]],["fire",["\uF06D",!1]],["fire-burner",["\uE4F1",!1]],["fire-extinguisher",["\uF134",!1]],["fire-flame-curved",["\uF7E4",!1]],["fire-flame-simple",["\uF46A",!1]],["fish",["\uF578",!1]],["fish-fins",["\uE4F2",!1]],["flag",["\uF024",!0]],["flag-checkered",["\uF11E",!1]],["flag-usa",["\uF74D",!1]],["flask",["\uF0C3",!1]],["flask-vial",["\uE4F3",!1]],["floppy-disk",["\uF0C7",!0]],["florin-sign",["\uE184",!1]],["folder",["\uF07B",!0]],["folder-closed",["\uE185",!0]],["folder-minus",["\uF65D",!1]],["folder-open",["\uF07C",!0]],["folder-plus",["\uF65E",!1]],["folder-tree",["\uF802",!1]],["font",["\uF031",!1]],["football",["\uF44E",!1]],["forward",["\uF04E",!1]],["forward-fast",["\uF050",!1]],["forward-step",["\uF051",!1]],["franc-sign",["\uE18F",!1]],["frog",["\uF52E",!1]],["futbol",["\uF1E3",!0]],["g",["G",!1]],["gamepad",["\uF11B",!1]],["gas-pump",["\uF52F",!1]],["gauge",["\uF624",!1]],["gauge-high",["\uF625",!1]],["gauge-simple",["\uF629",!1]],["gauge-simple-high",["\uF62A",!1]],["gavel",["\uF0E3",!1]],["gear",["\uF013",!1]],["gears",["\uF085",!1]],["gem",["\uF3A5",!0]],["genderless",["\uF22D",!1]],["ghost",["\uF6E2",!1]],["gift",["\uF06B",!1]],["gifts",["\uF79C",!1]],["glass-water",["\uE4F4",!1]],["glass-water-droplet",["\uE4F5",!1]],["glasses",["\uF530",!1]],["globe",["\uF0AC",!1]],["golf-ball-tee",["\uF450",!1]],["gopuram",["\uF664",!1]],["graduation-cap",["\uF19D",!1]],["greater-than",[">",!1]],["greater-than-equal",["\uF532",!1]],["grip",["\uF58D",!1]],["grip-lines",["\uF7A4",!1]],["grip-lines-vertical",["\uF7A5",!1]],["grip-vertical",["\uF58E",!1]],["group-arrows-rotate",["\uE4F6",!1]],["guarani-sign",["\uE19A",!1]],["guitar",["\uF7A6",!1]],["gun",["\uE19B",!1]],["h",["H",!1]],["hammer",["\uF6E3",!1]],["hamsa",["\uF665",!1]],["hand",["\uF256",!0]],["hand-back-fist",["\uF255",!0]],["hand-dots",["\uF461",!1]],["hand-fist",["\uF6DE",!1]],["hand-holding",["\uF4BD",!1]],["hand-holding-dollar",["\uF4C0",!1]],["hand-holding-droplet",["\uF4C1",!1]],["hand-holding-hand",["\uE4F7",!1]],["hand-holding-heart",["\uF4BE",!1]],["hand-holding-medical",["\uE05C",!1]],["hand-lizard",["\uF258",!0]],["hand-middle-finger",["\uF806",!1]],["hand-peace",["\uF25B",!0]],["hand-point-down",["\uF0A7",!0]],["hand-point-left",["\uF0A5",!0]],["hand-point-right",["\uF0A4",!0]],["hand-point-up",["\uF0A6",!0]],["hand-pointer",["\uF25A",!0]],["hand-scissors",["\uF257",!0]],["hand-sparkles",["\uE05D",!1]],["hand-spock",["\uF259",!0]],["handcuffs",["\uE4F8",!1]],["hands",["\uF2A7",!1]],["hands-asl-interpreting",["\uF2A3",!1]],["hands-bound",["\uE4F9",!1]],["hands-bubbles",["\uE05E",!1]],["hands-clapping",["\uE1A8",!1]],["hands-holding",["\uF4C2",!1]],["hands-holding-child",["\uE4FA",!1]],["hands-holding-circle",["\uE4FB",!1]],["hands-praying",["\uF684",!1]],["handshake",["\uF2B5",!0]],["handshake-angle",["\uF4C4",!1]],["handshake-simple",["\uF4C6",!1]],["handshake-simple-slash",["\uE05F",!1]],["handshake-slash",["\uE060",!1]],["hanukiah",["\uF6E6",!1]],["hard-drive",["\uF0A0",!0]],["hashtag",["#",!1]],["hat-cowboy",["\uF8C0",!1]],["hat-cowboy-side",["\uF8C1",!1]],["hat-wizard",["\uF6E8",!1]],["head-side-cough",["\uE061",!1]],["head-side-cough-slash",["\uE062",!1]],["head-side-mask",["\uE063",!1]],["head-side-virus",["\uE064",!1]],["heading",["\uF1DC",!1]],["headphones",["\uF025",!1]],["headphones-simple",["\uF58F",!1]],["headset",["\uF590",!1]],["heart",["\uF004",!0]],["heart-circle-bolt",["\uE4FC",!1]],["heart-circle-check",["\uE4FD",!1]],["heart-circle-exclamation",["\uE4FE",!1]],["heart-circle-minus",["\uE4FF",!1]],["heart-circle-plus",["\uE500",!1]],["heart-circle-xmark",["\uE501",!1]],["heart-crack",["\uF7A9",!1]],["heart-pulse",["\uF21E",!1]],["helicopter",["\uF533",!1]],["helicopter-symbol",["\uE502",!1]],["helmet-safety",["\uF807",!1]],["helmet-un",["\uE503",!1]],["highlighter",["\uF591",!1]],["hill-avalanche",["\uE507",!1]],["hill-rockslide",["\uE508",!1]],["hippo",["\uF6ED",!1]],["hockey-puck",["\uF453",!1]],["holly-berry",["\uF7AA",!1]],["horse",["\uF6F0",!1]],["horse-head",["\uF7AB",!1]],["hospital",["\uF0F8",!0]],["hospital-user",["\uF80D",!1]],["hot-tub-person",["\uF593",!1]],["hotdog",["\uF80F",!1]],["hotel",["\uF594",!1]],["hourglass",["\uF254",!0]],["hourglass-end",["\uF253",!1]],["hourglass-half",["\uF252",!0]],["hourglass-start",["\uF251",!1]],["house",["\uF015",!1]],["house-chimney",["\uE3AF",!1]],["house-chimney-crack",["\uF6F1",!1]],["house-chimney-medical",["\uF7F2",!1]],["house-chimney-user",["\uE065",!1]],["house-chimney-window",["\uE00D",!1]],["house-circle-check",["\uE509",!1]],["house-circle-exclamation",["\uE50A",!1]],["house-circle-xmark",["\uE50B",!1]],["house-crack",["\uE3B1",!1]],["house-fire",["\uE50C",!1]],["house-flag",["\uE50D",!1]],["house-flood-water",["\uE50E",!1]],["house-flood-water-circle-arrow-right",["\uE50F",!1]],["house-laptop",["\uE066",!1]],["house-lock",["\uE510",!1]],["house-medical",["\uE3B2",!1]],["house-medical-circle-check",["\uE511",!1]],["house-medical-circle-exclamation",["\uE512",!1]],["house-medical-circle-xmark",["\uE513",!1]],["house-medical-flag",["\uE514",!1]],["house-signal",["\uE012",!1]],["house-tsunami",["\uE515",!1]],["house-user",["\uE1B0",!1]],["hryvnia-sign",["\uF6F2",!1]],["hurricane",["\uF751",!1]],["i",["I",!1]],["i-cursor",["\uF246",!1]],["ice-cream",["\uF810",!1]],["icicles",["\uF7AD",!1]],["icons",["\uF86D",!1]],["id-badge",["\uF2C1",!0]],["id-card",["\uF2C2",!0]],["id-card-clip",["\uF47F",!1]],["igloo",["\uF7AE",!1]],["image",["\uF03E",!0]],["image-portrait",["\uF3E0",!1]],["images",["\uF302",!0]],["inbox",["\uF01C",!1]],["indent",["\uF03C",!1]],["indian-rupee-sign",["\uE1BC",!1]],["industry",["\uF275",!1]],["infinity",["\uF534",!1]],["info",["\uF129",!1]],["italic",["\uF033",!1]],["j",["J",!1]],["jar",["\uE516",!1]],["jar-wheat",["\uE517",!1]],["jedi",["\uF669",!1]],["jet-fighter",["\uF0FB",!1]],["jet-fighter-up",["\uE518",!1]],["joint",["\uF595",!1]],["jug-detergent",["\uE519",!1]],["k",["K",!1]],["kaaba",["\uF66B",!1]],["key",["\uF084",!1]],["keyboard",["\uF11C",!0]],["khanda",["\uF66D",!1]],["kip-sign",["\uE1C4",!1]],["kit-medical",["\uF479",!1]],["kitchen-set",["\uE51A",!1]],["kiwi-bird",["\uF535",!1]],["l",["L",!1]],["land-mine-on",["\uE51B",!1]],["landmark",["\uF66F",!1]],["landmark-dome",["\uF752",!1]],["landmark-flag",["\uE51C",!1]],["language",["\uF1AB",!1]],["laptop",["\uF109",!1]],["laptop-code",["\uF5FC",!1]],["laptop-file",["\uE51D",!1]],["laptop-medical",["\uF812",!1]],["lari-sign",["\uE1C8",!1]],["layer-group",["\uF5FD",!1]],["leaf",["\uF06C",!1]],["left-long",["\uF30A",!1]],["left-right",["\uF337",!1]],["lemon",["\uF094",!0]],["less-than",["<",!1]],["less-than-equal",["\uF537",!1]],["life-ring",["\uF1CD",!0]],["lightbulb",["\uF0EB",!0]],["lines-leaning",["\uE51E",!1]],["link",["\uF0C1",!1]],["link-slash",["\uF127",!1]],["lira-sign",["\uF195",!1]],["list",["\uF03A",!1]],["list-check",["\uF0AE",!1]],["list-ol",["\uF0CB",!1]],["list-ul",["\uF0CA",!1]],["litecoin-sign",["\uE1D3",!1]],["location-arrow",["\uF124",!1]],["location-crosshairs",["\uF601",!1]],["location-dot",["\uF3C5",!1]],["location-pin",["\uF041",!1]],["location-pin-lock",["\uE51F",!1]],["lock",["\uF023",!1]],["lock-open",["\uF3C1",!1]],["locust",["\uE520",!1]],["lungs",["\uF604",!1]],["lungs-virus",["\uE067",!1]],["m",["M",!1]],["magnet",["\uF076",!1]],["magnifying-glass",["\uF002",!1]],["magnifying-glass-arrow-right",["\uE521",!1]],["magnifying-glass-chart",["\uE522",!1]],["magnifying-glass-dollar",["\uF688",!1]],["magnifying-glass-location",["\uF689",!1]],["magnifying-glass-minus",["\uF010",!1]],["magnifying-glass-plus",["\uF00E",!1]],["manat-sign",["\uE1D5",!1]],["map",["\uF279",!0]],["map-location",["\uF59F",!1]],["map-location-dot",["\uF5A0",!1]],["map-pin",["\uF276",!1]],["marker",["\uF5A1",!1]],["mars",["\uF222",!1]],["mars-and-venus",["\uF224",!1]],["mars-and-venus-burst",["\uE523",!1]],["mars-double",["\uF227",!1]],["mars-stroke",["\uF229",!1]],["mars-stroke-right",["\uF22B",!1]],["mars-stroke-up",["\uF22A",!1]],["martini-glass",["\uF57B",!1]],["martini-glass-citrus",["\uF561",!1]],["martini-glass-empty",["\uF000",!1]],["mask",["\uF6FA",!1]],["mask-face",["\uE1D7",!1]],["mask-ventilator",["\uE524",!1]],["masks-theater",["\uF630",!1]],["mattress-pillow",["\uE525",!1]],["maximize",["\uF31E",!1]],["medal",["\uF5A2",!1]],["memory",["\uF538",!1]],["menorah",["\uF676",!1]],["mercury",["\uF223",!1]],["message",["\uF27A",!0]],["meteor",["\uF753",!1]],["microchip",["\uF2DB",!1]],["microphone",["\uF130",!1]],["microphone-lines",["\uF3C9",!1]],["microphone-lines-slash",["\uF539",!1]],["microphone-slash",["\uF131",!1]],["microscope",["\uF610",!1]],["mill-sign",["\uE1ED",!1]],["minimize",["\uF78C",!1]],["minus",["\uF068",!1]],["mitten",["\uF7B5",!1]],["mobile",["\uF3CE",!1]],["mobile-button",["\uF10B",!1]],["mobile-retro",["\uE527",!1]],["mobile-screen",["\uF3CF",!1]],["mobile-screen-button",["\uF3CD",!1]],["money-bill",["\uF0D6",!1]],["money-bill-1",["\uF3D1",!0]],["money-bill-1-wave",["\uF53B",!1]],["money-bill-transfer",["\uE528",!1]],["money-bill-trend-up",["\uE529",!1]],["money-bill-wave",["\uF53A",!1]],["money-bill-wheat",["\uE52A",!1]],["money-bills",["\uE1F3",!1]],["money-check",["\uF53C",!1]],["money-check-dollar",["\uF53D",!1]],["monument",["\uF5A6",!1]],["moon",["\uF186",!0]],["mortar-pestle",["\uF5A7",!1]],["mosque",["\uF678",!1]],["mosquito",["\uE52B",!1]],["mosquito-net",["\uE52C",!1]],["motorcycle",["\uF21C",!1]],["mound",["\uE52D",!1]],["mountain",["\uF6FC",!1]],["mountain-city",["\uE52E",!1]],["mountain-sun",["\uE52F",!1]],["mug-hot",["\uF7B6",!1]],["mug-saucer",["\uF0F4",!1]],["music",["\uF001",!1]],["n",["N",!1]],["naira-sign",["\uE1F6",!1]],["network-wired",["\uF6FF",!1]],["neuter",["\uF22C",!1]],["newspaper",["\uF1EA",!0]],["not-equal",["\uF53E",!1]],["notdef",["\uE1FE",!1]],["note-sticky",["\uF249",!0]],["notes-medical",["\uF481",!1]],["o",["O",!1]],["object-group",["\uF247",!0]],["object-ungroup",["\uF248",!0]],["oil-can",["\uF613",!1]],["oil-well",["\uE532",!1]],["om",["\uF679",!1]],["otter",["\uF700",!1]],["outdent",["\uF03B",!1]],["p",["P",!1]],["pager",["\uF815",!1]],["paint-roller",["\uF5AA",!1]],["paintbrush",["\uF1FC",!1]],["palette",["\uF53F",!1]],["pallet",["\uF482",!1]],["panorama",["\uE209",!1]],["paper-plane",["\uF1D8",!0]],["paperclip",["\uF0C6",!1]],["parachute-box",["\uF4CD",!1]],["paragraph",["\uF1DD",!1]],["passport",["\uF5AB",!1]],["paste",["\uF0EA",!0]],["pause",["\uF04C",!1]],["paw",["\uF1B0",!1]],["peace",["\uF67C",!1]],["pen",["\uF304",!1]],["pen-clip",["\uF305",!1]],["pen-fancy",["\uF5AC",!1]],["pen-nib",["\uF5AD",!1]],["pen-ruler",["\uF5AE",!1]],["pen-to-square",["\uF044",!0]],["pencil",["\uF303",!1]],["people-arrows",["\uE068",!1]],["people-carry-box",["\uF4CE",!1]],["people-group",["\uE533",!1]],["people-line",["\uE534",!1]],["people-pulling",["\uE535",!1]],["people-robbery",["\uE536",!1]],["people-roof",["\uE537",!1]],["pepper-hot",["\uF816",!1]],["percent",["%",!1]],["person",["\uF183",!1]],["person-arrow-down-to-line",["\uE538",!1]],["person-arrow-up-from-line",["\uE539",!1]],["person-biking",["\uF84A",!1]],["person-booth",["\uF756",!1]],["person-breastfeeding",["\uE53A",!1]],["person-burst",["\uE53B",!1]],["person-cane",["\uE53C",!1]],["person-chalkboard",["\uE53D",!1]],["person-circle-check",["\uE53E",!1]],["person-circle-exclamation",["\uE53F",!1]],["person-circle-minus",["\uE540",!1]],["person-circle-plus",["\uE541",!1]],["person-circle-question",["\uE542",!1]],["person-circle-xmark",["\uE543",!1]],["person-digging",["\uF85E",!1]],["person-dots-from-line",["\uF470",!1]],["person-dress",["\uF182",!1]],["person-dress-burst",["\uE544",!1]],["person-drowning",["\uE545",!1]],["person-falling",["\uE546",!1]],["person-falling-burst",["\uE547",!1]],["person-half-dress",["\uE548",!1]],["person-harassing",["\uE549",!1]],["person-hiking",["\uF6EC",!1]],["person-military-pointing",["\uE54A",!1]],["person-military-rifle",["\uE54B",!1]],["person-military-to-person",["\uE54C",!1]],["person-praying",["\uF683",!1]],["person-pregnant",["\uE31E",!1]],["person-rays",["\uE54D",!1]],["person-rifle",["\uE54E",!1]],["person-running",["\uF70C",!1]],["person-shelter",["\uE54F",!1]],["person-skating",["\uF7C5",!1]],["person-skiing",["\uF7C9",!1]],["person-skiing-nordic",["\uF7CA",!1]],["person-snowboarding",["\uF7CE",!1]],["person-swimming",["\uF5C4",!1]],["person-through-window",["\uE5A9",!1]],["person-walking",["\uF554",!1]],["person-walking-arrow-loop-left",["\uE551",!1]],["person-walking-arrow-right",["\uE552",!1]],["person-walking-dashed-line-arrow-right",["\uE553",!1]],["person-walking-luggage",["\uE554",!1]],["person-walking-with-cane",["\uF29D",!1]],["peseta-sign",["\uE221",!1]],["peso-sign",["\uE222",!1]],["phone",["\uF095",!1]],["phone-flip",["\uF879",!1]],["phone-slash",["\uF3DD",!1]],["phone-volume",["\uF2A0",!1]],["photo-film",["\uF87C",!1]],["piggy-bank",["\uF4D3",!1]],["pills",["\uF484",!1]],["pizza-slice",["\uF818",!1]],["place-of-worship",["\uF67F",!1]],["plane",["\uF072",!1]],["plane-arrival",["\uF5AF",!1]],["plane-circle-check",["\uE555",!1]],["plane-circle-exclamation",["\uE556",!1]],["plane-circle-xmark",["\uE557",!1]],["plane-departure",["\uF5B0",!1]],["plane-lock",["\uE558",!1]],["plane-slash",["\uE069",!1]],["plane-up",["\uE22D",!1]],["plant-wilt",["\uE5AA",!1]],["plate-wheat",["\uE55A",!1]],["play",["\uF04B",!1]],["plug",["\uF1E6",!1]],["plug-circle-bolt",["\uE55B",!1]],["plug-circle-check",["\uE55C",!1]],["plug-circle-exclamation",["\uE55D",!1]],["plug-circle-minus",["\uE55E",!1]],["plug-circle-plus",["\uE55F",!1]],["plug-circle-xmark",["\uE560",!1]],["plus",["+",!1]],["plus-minus",["\uE43C",!1]],["podcast",["\uF2CE",!1]],["poo",["\uF2FE",!1]],["poo-storm",["\uF75A",!1]],["poop",["\uF619",!1]],["power-off",["\uF011",!1]],["prescription",["\uF5B1",!1]],["prescription-bottle",["\uF485",!1]],["prescription-bottle-medical",["\uF486",!1]],["print",["\uF02F",!1]],["pump-medical",["\uE06A",!1]],["pump-soap",["\uE06B",!1]],["puzzle-piece",["\uF12E",!1]],["q",["Q",!1]],["qrcode",["\uF029",!1]],["question",["?",!1]],["quote-left",["\uF10D",!1]],["quote-right",["\uF10E",!1]],["r",["R",!1]],["radiation",["\uF7B9",!1]],["radio",["\uF8D7",!1]],["rainbow",["\uF75B",!1]],["ranking-star",["\uE561",!1]],["receipt",["\uF543",!1]],["record-vinyl",["\uF8D9",!1]],["rectangle-ad",["\uF641",!1]],["rectangle-list",["\uF022",!0]],["rectangle-xmark",["\uF410",!0]],["recycle",["\uF1B8",!1]],["registered",["\uF25D",!0]],["repeat",["\uF363",!1]],["reply",["\uF3E5",!1]],["reply-all",["\uF122",!1]],["republican",["\uF75E",!1]],["restroom",["\uF7BD",!1]],["retweet",["\uF079",!1]],["ribbon",["\uF4D6",!1]],["right-from-bracket",["\uF2F5",!1]],["right-left",["\uF362",!1]],["right-long",["\uF30B",!1]],["right-to-bracket",["\uF2F6",!1]],["ring",["\uF70B",!1]],["road",["\uF018",!1]],["road-barrier",["\uE562",!1]],["road-bridge",["\uE563",!1]],["road-circle-check",["\uE564",!1]],["road-circle-exclamation",["\uE565",!1]],["road-circle-xmark",["\uE566",!1]],["road-lock",["\uE567",!1]],["road-spikes",["\uE568",!1]],["robot",["\uF544",!1]],["rocket",["\uF135",!1]],["rotate",["\uF2F1",!1]],["rotate-left",["\uF2EA",!1]],["rotate-right",["\uF2F9",!1]],["route",["\uF4D7",!1]],["rss",["\uF09E",!1]],["ruble-sign",["\uF158",!1]],["rug",["\uE569",!1]],["ruler",["\uF545",!1]],["ruler-combined",["\uF546",!1]],["ruler-horizontal",["\uF547",!1]],["ruler-vertical",["\uF548",!1]],["rupee-sign",["\uF156",!1]],["rupiah-sign",["\uE23D",!1]],["s",["S",!1]],["sack-dollar",["\uF81D",!1]],["sack-xmark",["\uE56A",!1]],["sailboat",["\uE445",!1]],["satellite",["\uF7BF",!1]],["satellite-dish",["\uF7C0",!1]],["scale-balanced",["\uF24E",!1]],["scale-unbalanced",["\uF515",!1]],["scale-unbalanced-flip",["\uF516",!1]],["school",["\uF549",!1]],["school-circle-check",["\uE56B",!1]],["school-circle-exclamation",["\uE56C",!1]],["school-circle-xmark",["\uE56D",!1]],["school-flag",["\uE56E",!1]],["school-lock",["\uE56F",!1]],["scissors",["\uF0C4",!1]],["screwdriver",["\uF54A",!1]],["screwdriver-wrench",["\uF7D9",!1]],["scroll",["\uF70E",!1]],["scroll-torah",["\uF6A0",!1]],["sd-card",["\uF7C2",!1]],["section",["\uE447",!1]],["seedling",["\uF4D8",!1]],["server",["\uF233",!1]],["shapes",["\uF61F",!1]],["share",["\uF064",!1]],["share-from-square",["\uF14D",!0]],["share-nodes",["\uF1E0",!1]],["sheet-plastic",["\uE571",!1]],["shekel-sign",["\uF20B",!1]],["shield",["\uF132",!1]],["shield-cat",["\uE572",!1]],["shield-dog",["\uE573",!1]],["shield-halved",["\uF3ED",!1]],["shield-heart",["\uE574",!1]],["shield-virus",["\uE06C",!1]],["ship",["\uF21A",!1]],["shirt",["\uF553",!1]],["shoe-prints",["\uF54B",!1]],["shop",["\uF54F",!1]],["shop-lock",["\uE4A5",!1]],["shop-slash",["\uE070",!1]],["shower",["\uF2CC",!1]],["shrimp",["\uE448",!1]],["shuffle",["\uF074",!1]],["shuttle-space",["\uF197",!1]],["sign-hanging",["\uF4D9",!1]],["signal",["\uF012",!1]],["signature",["\uF5B7",!1]],["signs-post",["\uF277",!1]],["sim-card",["\uF7C4",!1]],["sink",["\uE06D",!1]],["sitemap",["\uF0E8",!1]],["skull",["\uF54C",!1]],["skull-crossbones",["\uF714",!1]],["slash",["\uF715",!1]],["sleigh",["\uF7CC",!1]],["sliders",["\uF1DE",!1]],["smog",["\uF75F",!1]],["smoking",["\uF48D",!1]],["snowflake",["\uF2DC",!0]],["snowman",["\uF7D0",!1]],["snowplow",["\uF7D2",!1]],["soap",["\uE06E",!1]],["socks",["\uF696",!1]],["solar-panel",["\uF5BA",!1]],["sort",["\uF0DC",!1]],["sort-down",["\uF0DD",!1]],["sort-up",["\uF0DE",!1]],["spa",["\uF5BB",!1]],["spaghetti-monster-flying",["\uF67B",!1]],["spell-check",["\uF891",!1]],["spider",["\uF717",!1]],["spinner",["\uF110",!1]],["splotch",["\uF5BC",!1]],["spoon",["\uF2E5",!1]],["spray-can",["\uF5BD",!1]],["spray-can-sparkles",["\uF5D0",!1]],["square",["\uF0C8",!0]],["square-arrow-up-right",["\uF14C",!1]],["square-caret-down",["\uF150",!0]],["square-caret-left",["\uF191",!0]],["square-caret-right",["\uF152",!0]],["square-caret-up",["\uF151",!0]],["square-check",["\uF14A",!0]],["square-envelope",["\uF199",!1]],["square-full",["\uF45C",!0]],["square-h",["\uF0FD",!1]],["square-minus",["\uF146",!0]],["square-nfi",["\uE576",!1]],["square-parking",["\uF540",!1]],["square-pen",["\uF14B",!1]],["square-person-confined",["\uE577",!1]],["square-phone",["\uF098",!1]],["square-phone-flip",["\uF87B",!1]],["square-plus",["\uF0FE",!0]],["square-poll-horizontal",["\uF682",!1]],["square-poll-vertical",["\uF681",!1]],["square-root-variable",["\uF698",!1]],["square-rss",["\uF143",!1]],["square-share-nodes",["\uF1E1",!1]],["square-up-right",["\uF360",!1]],["square-virus",["\uE578",!1]],["square-xmark",["\uF2D3",!1]],["staff-snake",["\uE579",!1]],["stairs",["\uE289",!1]],["stamp",["\uF5BF",!1]],["stapler",["\uE5AF",!1]],["star",["\uF005",!0]],["star-and-crescent",["\uF699",!1]],["star-half",["\uF089",!0]],["star-half-stroke",["\uF5C0",!0]],["star-of-david",["\uF69A",!1]],["star-of-life",["\uF621",!1]],["sterling-sign",["\uF154",!1]],["stethoscope",["\uF0F1",!1]],["stop",["\uF04D",!1]],["stopwatch",["\uF2F2",!1]],["stopwatch-20",["\uE06F",!1]],["store",["\uF54E",!1]],["store-slash",["\uE071",!1]],["street-view",["\uF21D",!1]],["strikethrough",["\uF0CC",!1]],["stroopwafel",["\uF551",!1]],["subscript",["\uF12C",!1]],["suitcase",["\uF0F2",!1]],["suitcase-medical",["\uF0FA",!1]],["suitcase-rolling",["\uF5C1",!1]],["sun",["\uF185",!0]],["sun-plant-wilt",["\uE57A",!1]],["superscript",["\uF12B",!1]],["swatchbook",["\uF5C3",!1]],["synagogue",["\uF69B",!1]],["syringe",["\uF48E",!1]],["t",["T",!1]],["table",["\uF0CE",!1]],["table-cells",["\uF00A",!1]],["table-cells-large",["\uF009",!1]],["table-columns",["\uF0DB",!1]],["table-list",["\uF00B",!1]],["table-tennis-paddle-ball",["\uF45D",!1]],["tablet",["\uF3FB",!1]],["tablet-button",["\uF10A",!1]],["tablet-screen-button",["\uF3FA",!1]],["tablets",["\uF490",!1]],["tachograph-digital",["\uF566",!1]],["tag",["\uF02B",!1]],["tags",["\uF02C",!1]],["tape",["\uF4DB",!1]],["tarp",["\uE57B",!1]],["tarp-droplet",["\uE57C",!1]],["taxi",["\uF1BA",!1]],["teeth",["\uF62E",!1]],["teeth-open",["\uF62F",!1]],["temperature-arrow-down",["\uE03F",!1]],["temperature-arrow-up",["\uE040",!1]],["temperature-empty",["\uF2CB",!1]],["temperature-full",["\uF2C7",!1]],["temperature-half",["\uF2C9",!1]],["temperature-high",["\uF769",!1]],["temperature-low",["\uF76B",!1]],["temperature-quarter",["\uF2CA",!1]],["temperature-three-quarters",["\uF2C8",!1]],["tenge-sign",["\uF7D7",!1]],["tent",["\uE57D",!1]],["tent-arrow-down-to-line",["\uE57E",!1]],["tent-arrow-left-right",["\uE57F",!1]],["tent-arrow-turn-left",["\uE580",!1]],["tent-arrows-down",["\uE581",!1]],["tents",["\uE582",!1]],["terminal",["\uF120",!1]],["text-height",["\uF034",!1]],["text-slash",["\uF87D",!1]],["text-width",["\uF035",!1]],["thermometer",["\uF491",!1]],["thumbs-down",["\uF165",!0]],["thumbs-up",["\uF164",!0]],["thumbtack",["\uF08D",!1]],["ticket",["\uF145",!1]],["ticket-simple",["\uF3FF",!1]],["timeline",["\uE29C",!1]],["toggle-off",["\uF204",!1]],["toggle-on",["\uF205",!1]],["toilet",["\uF7D8",!1]],["toilet-paper",["\uF71E",!1]],["toilet-paper-slash",["\uE072",!1]],["toilet-portable",["\uE583",!1]],["toilets-portable",["\uE584",!1]],["toolbox",["\uF552",!1]],["tooth",["\uF5C9",!1]],["torii-gate",["\uF6A1",!1]],["tornado",["\uF76F",!1]],["tower-broadcast",["\uF519",!1]],["tower-cell",["\uE585",!1]],["tower-observation",["\uE586",!1]],["tractor",["\uF722",!1]],["trademark",["\uF25C",!1]],["traffic-light",["\uF637",!1]],["trailer",["\uE041",!1]],["train",["\uF238",!1]],["train-subway",["\uF239",!1]],["train-tram",["\uE5B4",!1]],["transgender",["\uF225",!1]],["trash",["\uF1F8",!1]],["trash-arrow-up",["\uF829",!1]],["trash-can",["\uF2ED",!0]],["trash-can-arrow-up",["\uF82A",!1]],["tree",["\uF1BB",!1]],["tree-city",["\uE587",!1]],["triangle-exclamation",["\uF071",!1]],["trophy",["\uF091",!1]],["trowel",["\uE589",!1]],["trowel-bricks",["\uE58A",!1]],["truck",["\uF0D1",!1]],["truck-arrow-right",["\uE58B",!1]],["truck-droplet",["\uE58C",!1]],["truck-fast",["\uF48B",!1]],["truck-field",["\uE58D",!1]],["truck-field-un",["\uE58E",!1]],["truck-front",["\uE2B7",!1]],["truck-medical",["\uF0F9",!1]],["truck-monster",["\uF63B",!1]],["truck-moving",["\uF4DF",!1]],["truck-pickup",["\uF63C",!1]],["truck-plane",["\uE58F",!1]],["truck-ramp-box",["\uF4DE",!1]],["tty",["\uF1E4",!1]],["turkish-lira-sign",["\uE2BB",!1]],["turn-down",["\uF3BE",!1]],["turn-up",["\uF3BF",!1]],["tv",["\uF26C",!1]],["u",["U",!1]],["umbrella",["\uF0E9",!1]],["umbrella-beach",["\uF5CA",!1]],["underline",["\uF0CD",!1]],["universal-access",["\uF29A",!1]],["unlock",["\uF09C",!1]],["unlock-keyhole",["\uF13E",!1]],["up-down",["\uF338",!1]],["up-down-left-right",["\uF0B2",!1]],["up-long",["\uF30C",!1]],["up-right-and-down-left-from-center",["\uF424",!1]],["up-right-from-square",["\uF35D",!1]],["upload",["\uF093",!1]],["user",["\uF007",!0]],["user-astronaut",["\uF4FB",!1]],["user-check",["\uF4FC",!1]],["user-clock",["\uF4FD",!1]],["user-doctor",["\uF0F0",!1]],["user-gear",["\uF4FE",!1]],["user-graduate",["\uF501",!1]],["user-group",["\uF500",!1]],["user-injured",["\uF728",!1]],["user-large",["\uF406",!1]],["user-large-slash",["\uF4FA",!1]],["user-lock",["\uF502",!1]],["user-minus",["\uF503",!1]],["user-ninja",["\uF504",!1]],["user-nurse",["\uF82F",!1]],["user-pen",["\uF4FF",!1]],["user-plus",["\uF234",!1]],["user-secret",["\uF21B",!1]],["user-shield",["\uF505",!1]],["user-slash",["\uF506",!1]],["user-tag",["\uF507",!1]],["user-tie",["\uF508",!1]],["user-xmark",["\uF235",!1]],["users",["\uF0C0",!1]],["users-between-lines",["\uE591",!1]],["users-gear",["\uF509",!1]],["users-line",["\uE592",!1]],["users-rays",["\uE593",!1]],["users-rectangle",["\uE594",!1]],["users-slash",["\uE073",!1]],["users-viewfinder",["\uE595",!1]],["utensils",["\uF2E7",!1]],["v",["V",!1]],["van-shuttle",["\uF5B6",!1]],["vault",["\uE2C5",!1]],["vector-square",["\uF5CB",!1]],["venus",["\uF221",!1]],["venus-double",["\uF226",!1]],["venus-mars",["\uF228",!1]],["vest",["\uE085",!1]],["vest-patches",["\uE086",!1]],["vial",["\uF492",!1]],["vial-circle-check",["\uE596",!1]],["vial-virus",["\uE597",!1]],["vials",["\uF493",!1]],["video",["\uF03D",!1]],["video-slash",["\uF4E2",!1]],["vihara",["\uF6A7",!1]],["virus",["\uE074",!1]],["virus-covid",["\uE4A8",!1]],["virus-covid-slash",["\uE4A9",!1]],["virus-slash",["\uE075",!1]],["viruses",["\uE076",!1]],["voicemail",["\uF897",!1]],["volcano",["\uF770",!1]],["volleyball",["\uF45F",!1]],["volume-high",["\uF028",!1]],["volume-low",["\uF027",!1]],["volume-off",["\uF026",!1]],["volume-xmark",["\uF6A9",!1]],["vr-cardboard",["\uF729",!1]],["w",["W",!1]],["walkie-talkie",["\uF8EF",!1]],["wallet",["\uF555",!1]],["wand-magic",["\uF0D0",!1]],["wand-magic-sparkles",["\uE2CA",!1]],["wand-sparkles",["\uF72B",!1]],["warehouse",["\uF494",!1]],["water",["\uF773",!1]],["water-ladder",["\uF5C5",!1]],["wave-square",["\uF83E",!1]],["weight-hanging",["\uF5CD",!1]],["weight-scale",["\uF496",!1]],["wheat-awn",["\uE2CD",!1]],["wheat-awn-circle-exclamation",["\uE598",!1]],["wheelchair",["\uF193",!1]],["wheelchair-move",["\uE2CE",!1]],["whiskey-glass",["\uF7A0",!1]],["wifi",["\uF1EB",!1]],["wind",["\uF72E",!1]],["window-maximize",["\uF2D0",!0]],["window-minimize",["\uF2D1",!0]],["window-restore",["\uF2D2",!0]],["wine-bottle",["\uF72F",!1]],["wine-glass",["\uF4E3",!1]],["wine-glass-empty",["\uF5CE",!1]],["won-sign",["\uF159",!1]],["worm",["\uE599",!1]],["wrench",["\uF0AD",!1]],["x",["X",!1]],["x-ray",["\uF497",!1]],["xmark",["\uF00D",!1]],["xmarks-lines",["\uE59A",!1]],["y",["Y",!1]],["yen-sign",["\uF157",!1]],["yin-yang",["\uF6AD",!1]],["z",["Z",!1]]]);window.getFontAwesome6Metadata=()=>new Map(l),window.getFontAwesome6IconMetadata=r=>l.get(e.get(r)||r)})();(()=>{let e=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class l extends HTMLElement{root=void 0;svgStyle=document.createElement("style");connectedCallback(){this.validate();let f=this.getRoot(),t=document.createElement("slot");t.name="svg",f.append(t),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(this.size===0)throw new TypeError("Must provide an icon size.");if(!e.has(this.size))throw new TypeError("Must provide a valid icon size.")}getRoot(){return this.root===void 0&&(this.root=this.attachShadow({mode:"open"}),this.updateRenderSize(),this.root.append(this.svgStyle)),this.root}updateRenderSize(){let f=e.get(this.size);this.svgStyle.textContent=` ::slotted(svg) { fill: currentColor; - height: ${c}px; + height: ${f}px; shape-rendering: geometricprecision; } - `}get size(){let c=this.getAttribute("size");return c===null?0:parseInt(c)}set size(c){if(!e.has(c))throw new Error(`Refused to set the invalid icon size '${c}'.`);this.setAttribute("size",c.toString()),this.updateRenderSize()}}window.customElements.define("fa-brand",r)})();(()=>{let e;function r(){return e===void 0&&(e=!0,window.getComputedStyle(document.documentElement).getPropertyValue("--fa-font-family")==="Font Awesome 6 Pro"&&(e=!1)),e}let l=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class c extends HTMLElement{connectedCallback(){this.hasAttribute("size")||this.setAttribute("size","16"),this.validate(),this.setIcon(this.name,this.solid),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(!l.has(this.size))throw new TypeError("Must provide a valid icon size.");if(this.name==="")throw new TypeError("Must provide the name of the icon.");if(!this.isValidIconName(this.name))throw new TypeError(`The icon '${this.name}' is unknown or unsupported.`)}setIcon(a,i=!1){if(!this.isValidIconName(a))throw new TypeError(`The icon '${a}' is unknown or unsupported.`);!i&&!this.hasNonSolidStyle(a)&&(i=!0),!(a===this.name&&i===this.solid&&this.shadowRoot!==null)&&(i?this.setAttribute("solid",""):this.removeAttribute("solid"),this.setAttribute("name",a),this.updateIcon())}isValidIconName(a){return a!==null&&window.getFontAwesome6IconMetadata(a)!==void 0}hasNonSolidStyle(a){if(r()){let[,i]=window.getFontAwesome6IconMetadata(a);if(!i)return!1}return!0}getShadowRoot(){return this.shadowRoot===null?this.attachShadow({mode:"open"}):this.shadowRoot}updateIcon(){let a=this.getShadowRoot();if(a.childNodes[0]?.remove(),this.name==="spinner")a.append(this.createSpinner());else{let[i]=window.getFontAwesome6IconMetadata(this.name);a.append(i)}}createSpinner(){let a=document.createElement("div");a.innerHTML=` + `}get size(){let f=this.getAttribute("size");return f===null?0:parseInt(f)}set size(f){if(!e.has(f))throw new Error(`Refused to set the invalid icon size '${f}'.`);this.setAttribute("size",f.toString()),this.updateRenderSize()}}window.customElements.define("fa-brand",l)})();(()=>{let e;function l(){return e===void 0&&(e=!0,window.getComputedStyle(document.documentElement).getPropertyValue("--fa-font-family")==="Font Awesome 6 Pro"&&(e=!1)),e}let r=new Map([[16,14],[24,18],[32,28],[48,42],[64,56],[96,84],[128,112],[144,130]]);class f extends HTMLElement{connectedCallback(){this.hasAttribute("size")||this.setAttribute("size","16"),this.validate(),this.setIcon(this.name,this.solid),this.setAttribute("aria-hidden","true"),this.translate=!1}validate(){if(!r.has(this.size))throw new TypeError("Must provide a valid icon size.");if(this.name==="")throw new TypeError("Must provide the name of the icon.");if(!this.isValidIconName(this.name))throw new TypeError(`The icon '${this.name}' is unknown or unsupported.`)}setIcon(a,i=!1){if(!this.isValidIconName(a))throw new TypeError(`The icon '${a}' is unknown or unsupported.`);!i&&!this.hasNonSolidStyle(a)&&(i=!0),!(a===this.name&&i===this.solid&&this.shadowRoot!==null)&&(i?this.setAttribute("solid",""):this.removeAttribute("solid"),this.setAttribute("name",a),this.updateIcon())}isValidIconName(a){return a!==null&&window.getFontAwesome6IconMetadata(a)!==void 0}hasNonSolidStyle(a){if(l()){let[,i]=window.getFontAwesome6IconMetadata(a);if(!i)return!1}return!0}getShadowRoot(){return this.shadowRoot===null?this.attachShadow({mode:"open"}):this.shadowRoot}updateIcon(){let a=this.getShadowRoot();if(a.childNodes[0]?.remove(),this.name==="spinner")a.append(this.createSpinner());else{let[i]=window.getFontAwesome6IconMetadata(this.name);a.append(i)}}createSpinner(){let a=document.createElement("div");a.innerHTML=` @@ -55,12 +55,12 @@ Expecting `+Z.join(", ")+", got '"+(this.terminals_[E]||E)+"'":ae="Parse error o stroke-dashoffset: -124; } } - `,a.append(i),a}get solid(){return this.hasAttribute("solid")}get name(){return this.getAttribute("name")||""}get size(){let a=this.getAttribute("size");return a===null?0:parseInt(a)}set size(a){if(!l.has(a))throw new Error(`Refused to set the invalid icon size '${a}'.`);this.setAttribute("size",a.toString())}}window.customElements.define("fa-icon",c)})();{let e=Date.now()-window.TIME_NOW*1e3,r=document.documentElement.lang,c=(()=>{let h="",g=document.querySelector('meta[name="timezone"]');if(g){h=g.content;try{Intl.DateTimeFormat(void 0,{timeZone:h})}catch{h=""}}return h||(h=Intl.DateTimeFormat().resolvedOptions().timeZone),h})(),t,a,i=()=>{let h=new Date,g=new Date(h.getFullYear(),h.getMonth(),h.getDate());t!==g.getTime()&&(t=g.getTime(),a=new Date(h.getFullYear(),h.getMonth(),h.getDate()-1).getTime())};i();let d;(p=>(p[p.Today=0]="Today",p[p.Yesterday=-1]="Yesterday"))(d||={});let b={Date:new Intl.DateTimeFormat(r,{dateStyle:"long",timeZone:c}),DateAndTime:new Intl.DateTimeFormat(r,{dateStyle:"long",timeStyle:"short",timeZone:c}),DayOfWeekAndTime:new Intl.DateTimeFormat(r,{weekday:"long",hour:"2-digit",minute:"2-digit",timeZone:c}),Minutes:new Intl.RelativeTimeFormat(r),TodayOrYesterday:new Intl.RelativeTimeFormat(r,{numeric:"auto"})},k={OneMinute:60,OneHour:3600,OneDay:86400,SixDays:86400*6};class q extends HTMLElement{#a;#e;get date(){if(this.#a===void 0){let g=this.getAttribute("date");if(!g)throw new Error("The 'date' attribute is missing.");this.#a=new Date(g)}return this.#a}set date(g){this.setAttribute("date",g.toISOString()),this.refresh(!0)}get static(){return this.hasAttribute("static")}set static(g){g===!0?this.setAttribute("static",""):this.removeAttribute("static")}connectedCallback(){this.refresh(!0)}refresh(g){let p=this.date,x=Math.trunc((Date.now()-p.getTime()-e)/1e3);if(this.#e===void 0){this.#e=document.createElement("time");let L=this.attachShadow({mode:"open"});L.append(this.#e);let C=document.createElement("style");C.textContent=` + `,a.append(i),a}get solid(){return this.hasAttribute("solid")}get name(){return this.getAttribute("name")||""}get size(){let a=this.getAttribute("size");return a===null?0:parseInt(a)}set size(a){if(!r.has(a))throw new Error(`Refused to set the invalid icon size '${a}'.`);this.setAttribute("size",a.toString())}}window.customElements.define("fa-icon",f)})();{let e=Date.now()-window.TIME_NOW*1e3,l=document.documentElement.lang,f=(()=>{let h="",g=document.querySelector('meta[name="timezone"]');if(g){h=g.content;try{Intl.DateTimeFormat(void 0,{timeZone:h})}catch{h=""}}return h||(h=Intl.DateTimeFormat().resolvedOptions().timeZone),h})(),t,a,i=()=>{let h=new Date,g=new Date(h.getFullYear(),h.getMonth(),h.getDate());t!==g.getTime()&&(t=g.getTime(),a=new Date(h.getFullYear(),h.getMonth(),h.getDate()-1).getTime())};i();let d;(p=>(p[p.Today=0]="Today",p[p.Yesterday=-1]="Yesterday"))(d||={});let b={Date:new Intl.DateTimeFormat(l,{dateStyle:"long",timeZone:f}),DateAndTime:new Intl.DateTimeFormat(l,{dateStyle:"long",timeStyle:"short",timeZone:f}),DayOfWeekAndTime:new Intl.DateTimeFormat(l,{weekday:"long",hour:"2-digit",minute:"2-digit",timeZone:f}),Minutes:new Intl.RelativeTimeFormat(l),TodayOrYesterday:new Intl.RelativeTimeFormat(l,{numeric:"auto"})},k={OneMinute:60,OneHour:3600,OneDay:86400,SixDays:86400*6};class q extends HTMLElement{#a;#e;get date(){if(this.#a===void 0){let g=this.getAttribute("date");if(!g)throw new Error("The 'date' attribute is missing.");this.#a=new Date(g)}return this.#a}set date(g){this.setAttribute("date",g.toISOString()),this.refresh(!0)}get static(){return this.hasAttribute("static")}set static(g){g===!0?this.setAttribute("static",""):this.removeAttribute("static")}connectedCallback(){this.refresh(!0)}refresh(g){let p=this.date,x=Math.trunc((Date.now()-p.getTime()-e)/1e3);if(this.#e===void 0){this.#e=document.createElement("time");let L=this.attachShadow({mode:"open"});L.append(this.#e);let C=document.createElement("style");C.textContent=` @media print { time::after { content: " (" attr(title) ")"; } - }`,L.append(C)}g&&(this.#e.dateTime=p.toISOString(),this.#e.title=b.DateAndTime.format(p));let y;if(this.static)y=this.#e.title;else if(xt?y=this.#t(L,0):p.getTime()>a?y=this.#t(L,-1):y=L.map(W=>W.value).join(""):y=b.DateAndTime.format(p)}else y=b.Date.format(p);y=y.charAt(0).toUpperCase()+y.slice(1),this.#e.textContent=y}#t(g,p){return g.map(y=>y.type==="weekday"?b.TodayOrYesterday.format(p,"day"):y.value).join("")}}window.customElements.define("woltlab-core-date-time",q);let S=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(h=>h.refresh(!1))},z,P=()=>{z=window.setInterval(()=>{i(),S()},6e4)};document.addEventListener("DOMContentLoaded",()=>P(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(z):(S(),P())})}{class e extends HTMLElement{#a;#e;#t=new Map;constructor(){super(),this.#a=document.createElement("button")}connectedCallback(){if(this.hasAttribute("labels")&&(this.#t=new Map(JSON.parse(this.getAttribute("labels"))),this.removeAttribute("labels")),this.#t.size===0)throw new Error("Expected a non empty list of labels.");let l=this.#l();this.#a.type="button",this.#a.classList.add("dropdownToggle"),this.#a.innerHTML=l,this.#a.addEventListener("click",a=>{a.preventDefault();let i=new CustomEvent("showPicker");this.dispatchEvent(i)}),this.#a.id=this.id,this.removeAttribute("id"),this.append(this.#a);let c=document.createElement("ul");c.classList.add("scrollableDropdownMenu");for(let[a,i]of this.#t)c.append(this.#r(a,i));if(!this.required){let a=document.createElement("li");a.classList.add("dropdownDivider"),c.append(a,this.#r(0,l))}let t=document.createElement("ul");t.classList.add("dropdownMenu"),t.append(c),this.append(t),this.classList.add("dropdown"),this.closest("form")!==null?(this.#e===void 0&&(this.#e=document.createElement("input"),this.#e.type="hidden",this.#e.name=`labelIDs[${this.dataset.groupId}]`,this.append(this.#e)),this.#e.value=(this.selected||0).toString()):this.#e?.remove(),this.selected&&this.#s(this.selected)}#r(l,c){let t=document.createElement("button");t.type="button",t.dataset.labelId=l.toString(),t.innerHTML=c,t.addEventListener("click",()=>{this.selected=l});let a=document.createElement("li");return a.append(t),a}set selected(l){this.setAttribute("selected",l.toString()),this.#s(l)}get selected(){let l=parseInt(this.getAttribute("selected"));if(!Number.isNaN(l))return l}set disabled(l){l?this.setAttribute("disabled",""):this.removeAttribute("disabled"),this.#a.disabled=l,this.#e&&(this.#e.disabled=l)}get disabled(){return this.hasAttribute("disabled")}set required(l){l?this.setAttribute("required",""):this.removeAttribute("required")}get required(){return this.hasAttribute("required")}#l(){return`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`}#s(l){this.#a.innerHTML=this.#t.get(l)||this.#l(),this.#e!==void 0&&(this.#e.value=l.toString())}}window.customElements.define("woltlab-core-label-picker",e)}{let r=[24,48,96];class l extends HTMLElement{#a;#e;connectedCallback(){this.#a===void 0&&this.#t()}attributeChangedCallback(t,a,i){if(t==="size"){let d=parseInt(i||"");if(!r.includes(d)){let b=parseInt(a||"");r.includes(b)||(b=24),this.setAttribute(t,b.toString())}}}#t(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size",24 .toString()),this.#a=document.createElement("fa-icon"),this.#a.size=this.size,this.#a.setIcon("spinner"),this.#e=document.createElement("span"),this.#e.classList.add("loading-indicator__text"),this.#e.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#e.hidden=this.hideText;let t=document.createElement("div");t.classList.add("loading-indicator__wrapper"),t.append(this.#a,this.#e),this.append(t)}get size(){return parseInt(this.getAttribute("size"))}set size(t){if(!r.includes(t))throw new TypeError(`The size ${t} is unrecognized, permitted values are ${r.join(", ")}.`);this.setAttribute("size",t.toString()),this.#a&&(this.#a.size=t)}get hideText(){return this.hasAttribute("hide-text")}set hideText(t){t?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#e&&(this.#e.hidden=t)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",l)}{let e,r=()=>(e===void 0&&(e=window.matchMedia("(max-width: 544px)")),e);class l extends HTMLElement{#a="pagination";connectedCallback(){this.#e(),r().addEventListener("change",()=>this.#e())}#e(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#a}__wrapper`);let t=this.#t();this.append(t);let a=this.#r();a&&t.append(a);let i=document.createElement("ul");i.classList.add(`${this.#a}__list`),t.append(i),i.append(this.#i(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#n()),this.#f().forEach(b=>{i.append(b)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#n()),i.append(this.#i(this.count));let d=this.#l();d&&t.append(d)}#t(){let t=document.createElement("nav");return t.setAttribute("role","navigation"),t.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),t.classList.add(this.#a),t}#r(){if(this.page===1)return;let t=document.createElement("div");t.classList.add(`${this.#a}__prev`);let a=this.#s(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),t}#l(){if(this.page===this.count)return;let t=document.createElement("div");t.classList.add(`${this.#a}__next`);let a=this.#s(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),t}#s(t){let a,i=this.getLinkUrl(t);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===t?a.disabled=!0:a.addEventListener("click",()=>{this.#o(t)})),a.classList.add(`${this.#a}__link`),a}#i(t){let a=document.createElement("li");a.classList.add(`${this.#a}__item`);let i=this.#s(t);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:t})),t===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#a}__link--current`)),i.textContent=t.toLocaleString(document.documentElement.lang),a.append(i),a}#f(){let t=[],a,i;r().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let d=a;d<=i;d++)d<=1||d>=this.count||t.push(this.#i(d));return t}#n(){let t=document.createElement("li");t.classList.add(`${this.#a}__item`,`${this.#a}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),t.append(a),t}get thresholdForEllipsis(){return r().matches?1:3}getLinkUrl(t){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",t.toString()]]).toString(),a.toString()}jumpToPage(t){let a=this.getLinkUrl(t);a?window.location.href=a:this.#o(t)}#o(t){let a=new CustomEvent("switchPage",{cancelable:!0,detail:t});this.dispatchEvent(a),a.defaultPrevented||(this.page=t)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(t){this.setAttribute("count",t.toString()),this.#e()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(t){this.setAttribute("page",t.toString()),this.#e()}get url(){return this.getAttribute("url")}set url(t){this.setAttribute("url",t),this.#e()}}window.customElements.define("woltlab-core-pagination",l)}{class e extends HTMLElement{connectedCallback(){this.setData(this.#e(),this.#t())}setData(l,c){this.#a(l,c)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#a(l,c){if(this.innerHTML="",!l.size)return;let t=document.createElement("button");t.classList.add("reactionSummary","jsTooltip"),t.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),t.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(t),l.forEach((a,i)=>{let d=document.createElement("span");d.classList.add("reactionCountButton"),i===c&&d.classList.add("selected");let b=document.createElement("span");b.innerHTML=window.REACTION_TYPES[i].renderedIcon,d.append(b);let k=document.createElement("span");k.classList.add("reactionCount"),k.textContent=a.toString(),d.append(k),t.append(d)})}#e(){let l=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(l)}#t(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",e)}window.WoltLabLanguage=ne;window.WoltLabTemplate=V;window.HTMLParsedElement=pe;})(); + }`,L.append(C)}g&&(this.#e.dateTime=p.toISOString(),this.#e.title=b.DateAndTime.format(p));let y;if(this.static)y=this.#e.title;else if(xt?y=this.#t(L,0):p.getTime()>a?y=this.#t(L,-1):y=L.map(W=>W.value).join(""):y=b.DateAndTime.format(p)}else y=b.Date.format(p);y=y.charAt(0).toUpperCase()+y.slice(1),this.#e.textContent=y}#t(g,p){return g.map(y=>y.type==="weekday"?b.TodayOrYesterday.format(p,"day"):y.value).join("")}}window.customElements.define("woltlab-core-date-time",q);let S=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(h=>h.refresh(!1))},z,P=()=>{z=window.setInterval(()=>{i(),S()},6e4)};document.addEventListener("DOMContentLoaded",()=>P(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(z):(S(),P())})}{class e extends HTMLElement{#a;#e;#t=new Map;constructor(){super(),this.#a=document.createElement("button")}connectedCallback(){if(this.hasAttribute("labels")&&(this.#t=new Map(JSON.parse(this.getAttribute("labels"))),this.removeAttribute("labels")),this.#t.size===0)throw new Error("Expected a non empty list of labels.");let r=this.#i();this.#a.type="button",this.#a.classList.add("dropdownToggle"),this.#a.innerHTML=r,this.#a.addEventListener("click",a=>{a.preventDefault();let i=new CustomEvent("showPicker");this.dispatchEvent(i)}),this.#a.id=this.id,this.removeAttribute("id"),this.append(this.#a);let f=document.createElement("ul");f.classList.add("scrollableDropdownMenu");for(let[a,i]of this.#t)f.append(this.#l(a,i));if(!this.required){let a=document.createElement("li");if(a.classList.add("dropdownDivider"),f.append(a),this.invertible){let i=this.#l(-1,this.#s());f.append(i)}f.append(this.#l(0,r))}let t=document.createElement("ul");t.classList.add("dropdownMenu"),t.append(f),this.append(t),this.classList.add("dropdown"),this.closest("form")!==null?(this.#e===void 0&&(this.#e=document.createElement("input"),this.#e.type="hidden",this.#e.name=`labelIDs[${this.dataset.groupId}]`,this.append(this.#e)),this.#e.value=(this.selected||0).toString()):this.#e?.remove(),this.selected&&this.#r(this.selected)}#l(r,f){let t=document.createElement("button");t.type="button",t.dataset.labelId=r.toString(),t.innerHTML=f,t.addEventListener("click",()=>{this.selected=r});let a=document.createElement("li");return a.append(t),a}set selected(r){this.setAttribute("selected",r.toString()),this.#r(r)}get selected(){let r=parseInt(this.getAttribute("selected"));if(!Number.isNaN(r))return r}set disabled(r){r?this.setAttribute("disabled",""):this.removeAttribute("disabled"),this.#a.disabled=r,this.#e&&(this.#e.disabled=r)}get disabled(){return this.hasAttribute("disabled")}set required(r){r?this.setAttribute("required",""):this.removeAttribute("required")}get required(){return this.hasAttribute("required")}get invertible(){return this.hasAttribute("invertible")}#i(){return`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`}#s(){return`${window.WoltLabLanguage.getPhrase("wcf.label.withoutSelection")}`}#r(r){let f="";this.#t.has(r)?f=this.#t.get(r):r===-1&&this.invertible&&(f=this.#s()),this.#a.innerHTML=f||this.#i(),this.#e!==void 0&&(this.#e.value=r.toString())}}window.customElements.define("woltlab-core-label-picker",e)}{let l=[24,48,96];class r extends HTMLElement{#a;#e;connectedCallback(){this.#a===void 0&&this.#t()}attributeChangedCallback(t,a,i){if(t==="size"){let d=parseInt(i||"");if(!l.includes(d)){let b=parseInt(a||"");l.includes(b)||(b=24),this.setAttribute(t,b.toString())}}}#t(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size",24 .toString()),this.#a=document.createElement("fa-icon"),this.#a.size=this.size,this.#a.setIcon("spinner"),this.#e=document.createElement("span"),this.#e.classList.add("loading-indicator__text"),this.#e.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#e.hidden=this.hideText;let t=document.createElement("div");t.classList.add("loading-indicator__wrapper"),t.append(this.#a,this.#e),this.append(t)}get size(){return parseInt(this.getAttribute("size"))}set size(t){if(!l.includes(t))throw new TypeError(`The size ${t} is unrecognized, permitted values are ${l.join(", ")}.`);this.setAttribute("size",t.toString()),this.#a&&(this.#a.size=t)}get hideText(){return this.hasAttribute("hide-text")}set hideText(t){t?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#e&&(this.#e.hidden=t)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",r)}{let e,l=()=>(e===void 0&&(e=window.matchMedia("(max-width: 544px)")),e);class r extends HTMLElement{#a="pagination";connectedCallback(){this.#e(),l().addEventListener("change",()=>this.#e())}#e(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#a}__wrapper`);let t=this.#t();this.append(t);let a=this.#l();a&&t.append(a);let i=document.createElement("ul");i.classList.add(`${this.#a}__list`),t.append(i),i.append(this.#r(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#n()),this.#f().forEach(b=>{i.append(b)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#n()),i.append(this.#r(this.count));let d=this.#i();d&&t.append(d)}#t(){let t=document.createElement("nav");return t.setAttribute("role","navigation"),t.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),t.classList.add(this.#a),t}#l(){if(this.page===1)return;let t=document.createElement("div");t.classList.add(`${this.#a}__prev`);let a=this.#s(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),t}#i(){if(this.page===this.count)return;let t=document.createElement("div");t.classList.add(`${this.#a}__next`);let a=this.#s(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),t}#s(t){let a,i=this.getLinkUrl(t);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===t?a.disabled=!0:a.addEventListener("click",()=>{this.#o(t)})),a.classList.add(`${this.#a}__link`),a}#r(t){let a=document.createElement("li");a.classList.add(`${this.#a}__item`);let i=this.#s(t);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:t})),t===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#a}__link--current`)),i.textContent=t.toLocaleString(document.documentElement.lang),a.append(i),a}#f(){let t=[],a,i;l().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let d=a;d<=i;d++)d<=1||d>=this.count||t.push(this.#r(d));return t}#n(){let t=document.createElement("li");t.classList.add(`${this.#a}__item`,`${this.#a}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),t.append(a),t}get thresholdForEllipsis(){return l().matches?1:3}getLinkUrl(t){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",t.toString()]]).toString(),a.toString()}jumpToPage(t){let a=this.getLinkUrl(t);a?window.location.href=a:this.#o(t)}#o(t){let a=new CustomEvent("switchPage",{cancelable:!0,detail:t});this.dispatchEvent(a),a.defaultPrevented||(this.page=t)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(t){this.setAttribute("count",t.toString()),this.#e()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(t){this.setAttribute("page",t.toString()),this.#e()}get url(){return this.getAttribute("url")}set url(t){this.setAttribute("url",t),this.#e()}}window.customElements.define("woltlab-core-pagination",r)}{class e extends HTMLElement{connectedCallback(){this.setData(this.#e(),this.#t())}setData(r,f){this.#a(r,f)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#a(r,f){if(this.innerHTML="",!r.size)return;let t=document.createElement("button");t.classList.add("reactionSummary","jsTooltip"),t.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),t.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(t),r.forEach((a,i)=>{let d=document.createElement("span");d.classList.add("reactionCountButton"),i===f&&d.classList.add("selected");let b=document.createElement("span");b.innerHTML=window.REACTION_TYPES[i].renderedIcon,d.append(b);let k=document.createElement("span");k.classList.add("reactionCount"),k.textContent=a.toString(),d.append(k),t.append(d)})}#e(){let r=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(r)}#t(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",e)}window.WoltLabLanguage=ne;window.WoltLabTemplate=V;window.HTMLParsedElement=pe;})(); /** * Handles the low level management of language items. * diff --git a/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php b/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php index c39dd244506..83895e7a330 100644 --- a/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php @@ -16,7 +16,7 @@ use wcf\system\cache\builder\ArticleCategoryLabelCacheBuilder; use wcf\system\exception\UserInputException; use wcf\system\html\input\HtmlInputProcessor; -use wcf\system\label\LabelPicker; +use wcf\system\label\LabelPickerGroup; use wcf\system\label\object\ArticleLabelObjectHandler; use wcf\system\language\LanguageFactory; use wcf\system\request\LinkHandler; @@ -187,16 +187,9 @@ class ArticleAddForm extends AbstractForm public $availableLanguages = []; /** - * @var LabelPicker[] * @since 6.1 */ - public array $labelPickers = []; - - /** - * list of label ids - * @var int[] - */ - public $labelIDs = []; + public LabelPickerGroup $labelPickerGroup; /** * maps the label group ids to the article category ids @@ -242,7 +235,7 @@ public function readParameters() // labels ArticleLabelObjectHandler::getInstance()->setCategoryIDs(ArticleCategory::getAccessibleCategoryIDs()); - $this->labelPickers = ArticleCategory::getLabelPickers(); + $this->labelPickerGroup = ArticleCategory::getLabelPickerGroup(); if (isset($_REQUEST['tmpHash'])) { $this->tmpHash = $_REQUEST['tmpHash']; @@ -285,7 +278,7 @@ public function readFormParameters() $this->enableComments = 0; if (isset($_POST['labelIDs']) && \is_array($_POST['labelIDs'])) { - $this->labelIDs = $_POST['labelIDs']; + $this->labelPickerGroup->setSelectedLabels($_POST['labelIDs']); } if (isset($_POST['username'])) { $this->username = StringUtil::trim($_POST['username']); @@ -469,7 +462,7 @@ protected function validateLabelIDs() ArticleLabelObjectHandler::getInstance()->setCategoryIDs([$this->categoryID]); $validationResult = ArticleLabelObjectHandler::getInstance()->validateLabelIDs( - $this->labelIDs, + $this->labelPickerGroup->toLabelIDs(), 'canSetLabel', false ); @@ -477,14 +470,6 @@ protected function validateLabelIDs() // reset category ids to accessible category ids ArticleLabelObjectHandler::getInstance()->setCategoryIDs(ArticleCategory::getAccessibleCategoryIDs()); - foreach ($this->labelIDs as $groupID => $labelID) { - foreach ($this->labelPickers as $labelPicker) { - if ($labelPicker->labelGroup->groupID == $groupID) { - $labelPicker->selected = $labelID; - } - } - } - if (!empty($validationResult[0])) { throw new UserInputException('labelIDs'); } @@ -539,7 +524,7 @@ public function save() 'userID' => $this->author->userID, 'username' => $this->author->username, 'isMultilingual' => $this->isMultilingual, - 'hasLabels' => empty($this->labelIDs) ? 0 : 1, + 'hasLabels' => (int)$this->labelPickerGroup->hasSelection(), ]; $this->objectAction = new ArticleAction( @@ -553,9 +538,10 @@ public function save() ); /** @var Article $article */ $article = $this->objectAction->executeAction()['returnValues']; - // save labels - if (!empty($this->labelIDs)) { - ArticleLabelObjectHandler::getInstance()->setLabels($this->labelIDs, $article->articleID); + + $labelIDs = $this->labelPickerGroup->toLabelIDs(); + if ($labelIDs !== []) { + ArticleLabelObjectHandler::getInstance()->setLabels($labelIDs, $article->articleID); } // mark published article as read @@ -669,7 +655,7 @@ public function assignVariables() 'categoryNodeList' => (new CategoryNodeTree('com.woltlab.wcf.article.category'))->getIterator(), 'accessibleCategoryIDs' => ArticleCategory::getAccessibleCategoryIDs(), 'labelGroupsToCategories' => $this->labelGroupsToCategories, - 'labelPickers' => $this->labelPickers, + 'labelPickerGroup' => $this->labelPickerGroup, 'attachmentHandler' => $this->attachmentHandler, 'attachmentObjectID' => $this->attachmentObjectID, 'attachmentObjectType' => $this->attachmentObjectType, diff --git a/wcfsetup/install/files/lib/acp/form/ArticleEditForm.class.php b/wcfsetup/install/files/lib/acp/form/ArticleEditForm.class.php index 901b60eaac9..3050bef17b0 100644 --- a/wcfsetup/install/files/lib/acp/form/ArticleEditForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ArticleEditForm.class.php @@ -86,8 +86,7 @@ public function save() { AbstractForm::save(); - // save labels - ArticleLabelObjectHandler::getInstance()->setLabels($this->labelIDs, $this->article->articleID); + ArticleLabelObjectHandler::getInstance()->setLabels($this->labelPickerGroup->toLabelIDs(), $this->article->articleID); $labelIDs = ArticleLabelObjectHandler::getInstance()->getAssignedLabels([$this->article->articleID], false); $content = []; @@ -205,14 +204,7 @@ public function readData() true ); if (isset($assignedLabels[$this->article->articleID])) { - foreach ($assignedLabels[$this->article->articleID] as $label) { - foreach ($this->labelPickers as $labelPicker) { - if ($labelPicker->labelGroup->groupID === $label->groupID) { - $labelPicker->selected = $label->labelID; - break; - } - } - } + $this->labelPickerGroup->setSelectedLabelsFromAssignedLabels($assignedLabels[$this->article->articleID]); } } } diff --git a/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php b/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php index bb54373887f..40a4ead2262 100644 --- a/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php +++ b/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php @@ -12,7 +12,7 @@ use wcf\system\category\CategoryHandler; use wcf\system\category\CategoryPermissionHandler; use wcf\system\label\LabelHandler; -use wcf\system\label\LabelPicker; +use wcf\system\label\LabelPickerGroup; use wcf\system\request\LinkHandler; use wcf\system\user\object\watch\UserObjectWatchHandler; use wcf\system\user\storage\UserStorageHandler; @@ -197,13 +197,12 @@ public function getLabelGroups(string $permission = 'canSetLabel'): array } /** - * Returns all label pickers that have been assigned to one or more - * accessible category. + * Returns the group of all label pickers that have been assigned to one or + * more accessible categories. * - * @return LabelPicker[] * @since 6.1 */ - public static function getLabelPickers(): array + public static function getLabelPickerGroup(): LabelPickerGroup { $labelGroupsToCategories = ArticleCategoryLabelCacheBuilder::getInstance()->getData(); $accessibleCategoryIDs = self::getAccessibleCategoryIDs(); @@ -214,11 +213,8 @@ public static function getLabelPickers(): array $groupIDs = \array_merge($groupIDs, $__groupIDs); } } - if (empty($groupIDs)) { - return []; - } - return LabelHandler::getInstance()->getLabelPickers(\array_unique($groupIDs)); + return LabelPickerGroup::fromGroupIDs(\array_unique($groupIDs), false); } /** diff --git a/wcfsetup/install/files/lib/page/ArticleListPage.class.php b/wcfsetup/install/files/lib/page/ArticleListPage.class.php index e7106405864..73a5944141b 100644 --- a/wcfsetup/install/files/lib/page/ArticleListPage.class.php +++ b/wcfsetup/install/files/lib/page/ArticleListPage.class.php @@ -5,10 +5,9 @@ use wcf\data\article\AccessibleArticleList; use wcf\data\article\category\ArticleCategory; use wcf\data\label\group\ViewableLabelGroup; -use wcf\data\object\type\ObjectTypeCache; use wcf\data\user\User; use wcf\system\exception\IllegalLinkException; -use wcf\system\label\LabelHandler; +use wcf\system\label\LabelPickerGroup; use wcf\system\language\LanguageFactory; use wcf\system\request\LinkHandler; use wcf\system\WCF; @@ -50,16 +49,9 @@ class ArticleListPage extends SortablePage public $objectListClassName = AccessibleArticleList::class; /** - * label filter - * @var int[] + * @since 6.1 */ - public $labelIDs = []; - - /** - * list of available label groups - * @var ViewableLabelGroup[] - */ - public $labelGroups = []; + public LabelPickerGroup $labelPickerGroup; /** * controller name @@ -111,25 +103,10 @@ public function readParameters() $this->showArticleAddDialog = 1; } - // read available label groups - $this->labelGroups = $this->getLabelGroups(); - if (!empty($this->labelGroups) && isset($_REQUEST['labelIDs']) && \is_array($_REQUEST['labelIDs'])) { - $this->labelIDs = $_REQUEST['labelIDs']; - - foreach ($this->labelIDs as $groupID => $labelID) { - $isValid = false; - - // ignore zero-values - if (!\is_array($labelID) && $labelID) { - if (isset($this->labelGroups[$groupID]) && ($labelID == -1 || $this->labelGroups[$groupID]->isValid($labelID))) { - $isValid = true; - } - } - - if (!$isValid) { - unset($this->labelIDs[$groupID]); - } - } + $this->labelPickerGroup = LabelPickerGroup::fromViewableLabelGroups($this->getLabelGroups(), true); + $labelIDs = $_REQUEST['labelIDs'] ?? []; + if (\is_array($labelIDs)) { + $this->labelPickerGroup->setSelectedLabels($labelIDs); } if (!empty($_GET['userID'])) { @@ -141,18 +118,11 @@ public function readParameters() $this->controllerParameters['userID'] = $this->user->userID; } - if (!empty($_POST)) { - $labelParameters = ''; - if (!empty($this->labelIDs)) { - foreach ($this->labelIDs as $groupID => $labelID) { - $labelParameters .= 'labelIDs[' . $groupID . ']=' . $labelID . '&'; - } - } - + if ($_POST !== []) { HeaderUtil::redirect(LinkHandler::getInstance()->getLink( $this->controllerName, $this->controllerParameters, - \rtrim($labelParameters, '&') + $this->labelPickerGroup->toUrlQueryString(), )); exit; @@ -208,46 +178,12 @@ protected function applyFilters() $this->objectList->getConditionBuilder()->add("article.userID = ?", [$this->user->userID]); } - // filter by label - if (!empty($this->labelIDs)) { - $objectTypeID = ObjectTypeCache::getInstance()->getObjectTypeByName( - 'com.woltlab.wcf.label.object', - 'com.woltlab.wcf.article' - )->objectTypeID; - - foreach ($this->labelIDs as $groupID => $labelID) { - if ($labelID == -1) { - $groupLabelIDs = LabelHandler::getInstance()->getLabelGroup($groupID)->getLabelIDs(); - - if (!empty($groupLabelIDs)) { - $this->objectList->getConditionBuilder()->add( - 'article.articleID NOT IN ( - SELECT objectID - FROM wcf' . WCF_N . '_label_object - WHERE objectTypeID = ? - AND labelID IN (?) - )', - [ - $objectTypeID, - $groupLabelIDs, - ] - ); - } - } else { - $this->objectList->getConditionBuilder()->add( - 'article.articleID IN ( - SELECT objectID - FROM wcf' . WCF_N . '_label_object - WHERE objectTypeID = ? - AND labelID = ? - )', - [ - $objectTypeID, - $labelID, - ] - ); - } - } + if (\count($this->labelPickerGroup)) { + $this->labelPickerGroup->applyFilter( + 'com.woltlab.wcf.article', + 'article.articleID', + $this->objectList->getConditionBuilder(), + ); } } @@ -259,14 +195,18 @@ public function assignVariables() parent::assignVariables(); WCF::getTPL()->assign([ - 'labelGroups' => $this->labelGroups, - 'labelIDs' => $this->labelIDs, + 'labelPickerGroup' => $this->labelPickerGroup, 'controllerName' => $this->controllerName, 'controllerObject' => null, 'user' => $this->user, 'categoryID' => 0, 'showArticleAddDialog' => $this->showArticleAddDialog, 'availableLanguages' => LanguageFactory::getInstance()->getLanguages(), + + // @deprecated 6.1 The variable is kept for backwards compatibility only. + 'labelGroups' => [], + // @deprecated 6.1 The variable is kept for backwards compatibility only. + 'labelIDs' => [], ]); } } diff --git a/wcfsetup/install/files/lib/system/event/listener/PreloadPhrasesCollectingListener.class.php b/wcfsetup/install/files/lib/system/event/listener/PreloadPhrasesCollectingListener.class.php index bf7001fbaea..008ef826786 100644 --- a/wcfsetup/install/files/lib/system/event/listener/PreloadPhrasesCollectingListener.class.php +++ b/wcfsetup/install/files/lib/system/event/listener/PreloadPhrasesCollectingListener.class.php @@ -115,6 +115,7 @@ public function __invoke(PreloadPhrasesCollecting $event): void $event->preload('wcf.global.rss.withAccessToken'); $event->preload('wcf.label.none'); + $event->preload('wcf.label.withoutSelection'); $event->preload('wcf.like.button.dislike'); $event->preload('wcf.like.button.like'); diff --git a/wcfsetup/install/files/lib/system/label/LabelHandler.class.php b/wcfsetup/install/files/lib/system/label/LabelHandler.class.php index 7be01a71708..af48316eb18 100644 --- a/wcfsetup/install/files/lib/system/label/LabelHandler.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelHandler.class.php @@ -426,7 +426,13 @@ public function removeLabels($objectTypeID, array $objectIDs) $statement->execute($conditions->getParameters()); } - public function getLabelPickers(array $groupIDs): array + /** + * @param int[] $groupIDs + * @param bool $invertible + * @return LabelPicker[] + * @since 6.0 + */ + public function getLabelPickers(array $groupIDs, bool $invertible): array { $labelGroups = \array_filter( $this->labelGroups['groups'], @@ -435,8 +441,21 @@ public function getLabelPickers(array $groupIDs): array ); return \array_map( - fn (ViewableLabelGroup $viewableLabelGroup) => new LabelPicker($viewableLabelGroup), + fn (ViewableLabelGroup $viewableLabelGroup) => new LabelPicker($viewableLabelGroup, $invertible), $labelGroups ); } + + /** + * @param LabelPicker[] $labelPickers + * @param int[] $labelIDs + * @since 6.1 + */ + public function setSelectedLabels(array $labelPickers, array $labelIDs): void + { + foreach ($labelPickers as $labelPicker) { + $labelID = $labelIDs[$labelPicker->labelGroup->groupID] ?? 0; + $labelPicker->setSelectedValue($labelID); + } + } } diff --git a/wcfsetup/install/files/lib/system/label/LabelPicker.class.php b/wcfsetup/install/files/lib/system/label/LabelPicker.class.php index 60322c603ab..ea874bbae2c 100644 --- a/wcfsetup/install/files/lib/system/label/LabelPicker.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelPicker.class.php @@ -7,12 +7,51 @@ use wcf\util\JSON; use wcf\util\StringUtil; +/** + * Provides helper methods to interact with the label group. + * + * @author Alexander Ebert + * @copyright 2001-2023 WoltLab GmbH + * @license GNU Lesser General Public License + * @since 6.1 + */ final class LabelPicker { - public int $selected = 0; + /** + * Controls the availability of the inverted selection, allowing to filter + * for items that are not assigned any label of a label group. + */ + public readonly bool $invertible; - public function __construct(public readonly ViewableLabelGroup $labelGroup) + public readonly ViewableLabelGroup $labelGroup; + + private int $selected = 0; + + public function __construct(ViewableLabelGroup $labelGroup, bool $invertible) + { + $this->labelGroup = $labelGroup; + $this->invertible = $invertible; + } + + public function setSelectedValue(int $selected): void + { + if ($selected === 0) { + $this->selected = 0; + } else if ($selected === -1) { + $this->selected = $this->invertible ? -1 : 0; + } else { + $this->selected = $this->labelGroup->isValid($selected) ? $selected : 0; + } + } + + public function getSelectedValue(): int + { + return $this->selected; + } + + public function hasSelection(): bool { + return $this->selected !== 0; } public function toHtml(): string @@ -32,6 +71,7 @@ public function toHtml(): string title="%s" labels="%s" data-group-id="%d" + %s > EOT, $this->selected, @@ -39,6 +79,7 @@ public function toHtml(): string $this->labelGroup->getTitle(), StringUtil::encodeHTML(JSON::encode($labels)), $this->labelGroup->groupID, + $this->invertible ? 'invertible' : '', ); } diff --git a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php new file mode 100644 index 00000000000..f26d5d10066 --- /dev/null +++ b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php @@ -0,0 +1,249 @@ + + * @since 6.1 + */ +final class LabelPickerGroup implements \Countable, \Iterator +{ + /** + * @var LabelPicker[] + */ + private readonly array $labelPickers; + + /** + * @var list + */ + private readonly array $positionToGroupID; + + private int $position = 0; + + /** + * @param LabelPicker[] $labelPickers + */ + private function __construct(array $labelPickers) + { + $pickers = []; + foreach ($labelPickers as $labelPicker) { + // Skip label pickers without any attached labels. + if (\count($labelPicker->labelGroup) === 0) { + continue; + } + + $pickers[$labelPicker->labelGroup->groupID] = $labelPicker; + } + + $this->labelPickers = $pickers; + $this->positionToGroupID = \array_keys($labelPickers); + } + + /** + * Sets the selected label per label picker. + * + * @param int[] $labelIDs + */ + public function setSelectedLabels(array $labelIDs): void + { + foreach ($this->labelPickers as $groupID => $labelPicker) { + $labelID = $labelIDs[$groupID] ?? 0; + $labelPicker->setSelectedValue($labelID); + } + } + + /** + * Sets the selected label based on the assigned labels. + * + * @param Label[] $assignedLabels + */ + public function setSelectedLabelsFromAssignedLabels(array $assignedLabels): void + { + // Reset all label pickers each because there may be no explicit value + // set for one or more of them. + foreach ($this->labelPickers as $labelPicker) { + $labelPicker->setSelectedValue(0); + } + + foreach ($assignedLabels as $label) { + if (isset($this->labelPickers[$label->groupID])) { + $this->labelPickers[$label->groupID]->setSelectedValue($label->labelID); + } + } + } + + /** + * Returns true if any label picker has a selection. + */ + public function hasSelection(): bool + { + foreach ($this->labelPickers as $labelPicker) { + if ($labelPicker->hasSelection()) { + return true; + } + } + + return false; + } + + /** + * Returns an unencoded query string for `labelIDs` for use in the LinkHandler. + * + * @return string + */ + public function toUrlQueryString(): string + { + return \implode( + '&', + \array_filter( + \array_map(static function (LabelPicker $labelPicker) { + if (!$labelPicker->hasSelection()) { + return ''; + } + + return \sprintf( + 'labelIDs[%d]=%d', + $labelPicker->labelGroup->groupID, + $labelPicker->getSelectedValue(), + ); + }, $this->labelPickers) + ) + ); + } + + /** + * Returns the list of selected label ids per label group id. + * + * @return int[] + */ + public function toLabelIDs(): array + { + return \array_filter( + \array_map( + fn (LabelPicker $labelPicker) => $labelPicker->getSelectedValue(), + $this->labelPickers + ), + ); + } + + /** + * Applies the filter based on the selected label ids to the condition builder. + */ + public function applyFilter(string $objectType, string $fieldName, PreparedStatementConditionBuilder $conditionBuilder): void + { + $objectTypeID = ObjectTypeCache::getInstance()->getObjectTypeByName( + 'com.woltlab.wcf.label.object', + $objectType + )->objectTypeID; + + foreach ($this->labelPickers as $labelPicker) { + $selected = $labelPicker->getSelectedValue(); + if ($selected === 0) { + continue; + } + + if ($selected === -1) { + $conditionBuilder->add( + \sprintf( + <<<'EOT' + %s NOT IN ( + SELECT objectID + FROM wcf%s_label_object + WHERE objectTypeID = ? + AND labelID IN (?) + ) + EOT, + $fieldName, + \WCF_N, + ), + [ + $objectTypeID, + $labelPicker->labelGroup->getLabelIDs(), + ] + ); + } else { + $conditionBuilder->add( + \sprintf( + <<<'EOT' + %s IN ( + SELECT objectID + FROM wcf%s_label_object + WHERE objectTypeID = ? + AND labelID = ? + ) + EOT, + $fieldName, + \WCF_N, + ), + [ + $objectTypeID, + $selected, + ] + ); + } + } + } + + public function count(): int + { + return \count($this->labelPickers); + } + + public function current(): LabelPicker + { + $groupID = $this->positionToGroupID[$this->position]; + return $this->labelPickers[$groupID]; + } + + public function key(): int + { + return $this->position; + } + + public function next(): void + { + $this->position++; + } + + public function rewind(): void + { + $this->position = 0; + } + + public function valid(): bool + { + return isset($this->positionToGroupID[$this->position]); + } + + /** + * @param int[] $groupIDs + */ + public static function fromGroupIDs(array $groupIDs, bool $invertible): self + { + $labelPickers = LabelHandler::getInstance()->getLabelPickers($groupIDs, $invertible); + + return new self($labelPickers); + } + + /** + * @param ViewableLabelGroup[] $viewableLabelGroups + */ + public static function fromViewableLabelGroups(array $viewableLabelGroups, bool $invertible): self + { + $labelPickers = \array_map( + fn (ViewableLabelGroup $viewableLabelGroup) => new LabelPicker($viewableLabelGroup, $invertible), + $viewableLabelGroups + ); + + return new self($labelPickers); + } +} From 9b5f921eeb2ad02b8ef9019526f31842f854e13b Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Sat, 7 Oct 2023 18:16:26 +0200 Subject: [PATCH 12/18] Add support for custom field names and ids --- .../WebComponent/woltlab-core-label-picker.ts | 6 +- .../files/js/WoltLabSuite/WebComponent.min.js | 2 +- .../lib/system/label/LabelPicker.class.php | 55 ++++++++++++++++++- .../system/label/LabelPickerGroup.class.php | 12 +++- 4 files changed, 70 insertions(+), 5 deletions(-) diff --git a/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts b/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts index 916de3453b7..f65813a5b72 100644 --- a/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts +++ b/ts/WoltLabSuite/WebComponent/woltlab-core-label-picker.ts @@ -80,7 +80,7 @@ if (this.#formValue === undefined) { this.#formValue = document.createElement("input"); this.#formValue.type = "hidden"; - this.#formValue.name = `labelIDs[${this.dataset.groupId}]`; + this.#formValue.name = `${this.name}[${this.dataset.groupId}]`; this.append(this.#formValue); } @@ -157,6 +157,10 @@ return this.hasAttribute("invertible"); } + get name(): string { + return this.getAttribute("name")!; + } + #getHtmlForNoneLabel(): string { return `${window.WoltLabLanguage.getPhrase("wcf.label.none")}`; } diff --git a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js index ec6d87726db..8e6f7226a2d 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js +++ b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js @@ -60,7 +60,7 @@ Expecting `+Z.join(", ")+", got '"+(this.terminals_[E]||E)+"'":ae="Parse error o time::after { content: " (" attr(title) ")"; } - }`,L.append(C)}g&&(this.#e.dateTime=p.toISOString(),this.#e.title=b.DateAndTime.format(p));let y;if(this.static)y=this.#e.title;else if(xt?y=this.#t(L,0):p.getTime()>a?y=this.#t(L,-1):y=L.map(W=>W.value).join(""):y=b.DateAndTime.format(p)}else y=b.Date.format(p);y=y.charAt(0).toUpperCase()+y.slice(1),this.#e.textContent=y}#t(g,p){return g.map(y=>y.type==="weekday"?b.TodayOrYesterday.format(p,"day"):y.value).join("")}}window.customElements.define("woltlab-core-date-time",q);let S=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(h=>h.refresh(!1))},z,P=()=>{z=window.setInterval(()=>{i(),S()},6e4)};document.addEventListener("DOMContentLoaded",()=>P(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(z):(S(),P())})}{class e extends HTMLElement{#a;#e;#t=new Map;constructor(){super(),this.#a=document.createElement("button")}connectedCallback(){if(this.hasAttribute("labels")&&(this.#t=new Map(JSON.parse(this.getAttribute("labels"))),this.removeAttribute("labels")),this.#t.size===0)throw new Error("Expected a non empty list of labels.");let r=this.#i();this.#a.type="button",this.#a.classList.add("dropdownToggle"),this.#a.innerHTML=r,this.#a.addEventListener("click",a=>{a.preventDefault();let i=new CustomEvent("showPicker");this.dispatchEvent(i)}),this.#a.id=this.id,this.removeAttribute("id"),this.append(this.#a);let f=document.createElement("ul");f.classList.add("scrollableDropdownMenu");for(let[a,i]of this.#t)f.append(this.#l(a,i));if(!this.required){let a=document.createElement("li");if(a.classList.add("dropdownDivider"),f.append(a),this.invertible){let i=this.#l(-1,this.#s());f.append(i)}f.append(this.#l(0,r))}let t=document.createElement("ul");t.classList.add("dropdownMenu"),t.append(f),this.append(t),this.classList.add("dropdown"),this.closest("form")!==null?(this.#e===void 0&&(this.#e=document.createElement("input"),this.#e.type="hidden",this.#e.name=`labelIDs[${this.dataset.groupId}]`,this.append(this.#e)),this.#e.value=(this.selected||0).toString()):this.#e?.remove(),this.selected&&this.#r(this.selected)}#l(r,f){let t=document.createElement("button");t.type="button",t.dataset.labelId=r.toString(),t.innerHTML=f,t.addEventListener("click",()=>{this.selected=r});let a=document.createElement("li");return a.append(t),a}set selected(r){this.setAttribute("selected",r.toString()),this.#r(r)}get selected(){let r=parseInt(this.getAttribute("selected"));if(!Number.isNaN(r))return r}set disabled(r){r?this.setAttribute("disabled",""):this.removeAttribute("disabled"),this.#a.disabled=r,this.#e&&(this.#e.disabled=r)}get disabled(){return this.hasAttribute("disabled")}set required(r){r?this.setAttribute("required",""):this.removeAttribute("required")}get required(){return this.hasAttribute("required")}get invertible(){return this.hasAttribute("invertible")}#i(){return`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`}#s(){return`${window.WoltLabLanguage.getPhrase("wcf.label.withoutSelection")}`}#r(r){let f="";this.#t.has(r)?f=this.#t.get(r):r===-1&&this.invertible&&(f=this.#s()),this.#a.innerHTML=f||this.#i(),this.#e!==void 0&&(this.#e.value=r.toString())}}window.customElements.define("woltlab-core-label-picker",e)}{let l=[24,48,96];class r extends HTMLElement{#a;#e;connectedCallback(){this.#a===void 0&&this.#t()}attributeChangedCallback(t,a,i){if(t==="size"){let d=parseInt(i||"");if(!l.includes(d)){let b=parseInt(a||"");l.includes(b)||(b=24),this.setAttribute(t,b.toString())}}}#t(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size",24 .toString()),this.#a=document.createElement("fa-icon"),this.#a.size=this.size,this.#a.setIcon("spinner"),this.#e=document.createElement("span"),this.#e.classList.add("loading-indicator__text"),this.#e.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#e.hidden=this.hideText;let t=document.createElement("div");t.classList.add("loading-indicator__wrapper"),t.append(this.#a,this.#e),this.append(t)}get size(){return parseInt(this.getAttribute("size"))}set size(t){if(!l.includes(t))throw new TypeError(`The size ${t} is unrecognized, permitted values are ${l.join(", ")}.`);this.setAttribute("size",t.toString()),this.#a&&(this.#a.size=t)}get hideText(){return this.hasAttribute("hide-text")}set hideText(t){t?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#e&&(this.#e.hidden=t)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",r)}{let e,l=()=>(e===void 0&&(e=window.matchMedia("(max-width: 544px)")),e);class r extends HTMLElement{#a="pagination";connectedCallback(){this.#e(),l().addEventListener("change",()=>this.#e())}#e(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#a}__wrapper`);let t=this.#t();this.append(t);let a=this.#l();a&&t.append(a);let i=document.createElement("ul");i.classList.add(`${this.#a}__list`),t.append(i),i.append(this.#r(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#n()),this.#f().forEach(b=>{i.append(b)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#n()),i.append(this.#r(this.count));let d=this.#i();d&&t.append(d)}#t(){let t=document.createElement("nav");return t.setAttribute("role","navigation"),t.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),t.classList.add(this.#a),t}#l(){if(this.page===1)return;let t=document.createElement("div");t.classList.add(`${this.#a}__prev`);let a=this.#s(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),t}#i(){if(this.page===this.count)return;let t=document.createElement("div");t.classList.add(`${this.#a}__next`);let a=this.#s(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),t}#s(t){let a,i=this.getLinkUrl(t);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===t?a.disabled=!0:a.addEventListener("click",()=>{this.#o(t)})),a.classList.add(`${this.#a}__link`),a}#r(t){let a=document.createElement("li");a.classList.add(`${this.#a}__item`);let i=this.#s(t);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:t})),t===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#a}__link--current`)),i.textContent=t.toLocaleString(document.documentElement.lang),a.append(i),a}#f(){let t=[],a,i;l().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let d=a;d<=i;d++)d<=1||d>=this.count||t.push(this.#r(d));return t}#n(){let t=document.createElement("li");t.classList.add(`${this.#a}__item`,`${this.#a}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),t.append(a),t}get thresholdForEllipsis(){return l().matches?1:3}getLinkUrl(t){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",t.toString()]]).toString(),a.toString()}jumpToPage(t){let a=this.getLinkUrl(t);a?window.location.href=a:this.#o(t)}#o(t){let a=new CustomEvent("switchPage",{cancelable:!0,detail:t});this.dispatchEvent(a),a.defaultPrevented||(this.page=t)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(t){this.setAttribute("count",t.toString()),this.#e()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(t){this.setAttribute("page",t.toString()),this.#e()}get url(){return this.getAttribute("url")}set url(t){this.setAttribute("url",t),this.#e()}}window.customElements.define("woltlab-core-pagination",r)}{class e extends HTMLElement{connectedCallback(){this.setData(this.#e(),this.#t())}setData(r,f){this.#a(r,f)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#a(r,f){if(this.innerHTML="",!r.size)return;let t=document.createElement("button");t.classList.add("reactionSummary","jsTooltip"),t.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),t.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(t),r.forEach((a,i)=>{let d=document.createElement("span");d.classList.add("reactionCountButton"),i===f&&d.classList.add("selected");let b=document.createElement("span");b.innerHTML=window.REACTION_TYPES[i].renderedIcon,d.append(b);let k=document.createElement("span");k.classList.add("reactionCount"),k.textContent=a.toString(),d.append(k),t.append(d)})}#e(){let r=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(r)}#t(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",e)}window.WoltLabLanguage=ne;window.WoltLabTemplate=V;window.HTMLParsedElement=pe;})(); + }`,L.append(C)}g&&(this.#e.dateTime=p.toISOString(),this.#e.title=b.DateAndTime.format(p));let y;if(this.static)y=this.#e.title;else if(xt?y=this.#t(L,0):p.getTime()>a?y=this.#t(L,-1):y=L.map(W=>W.value).join(""):y=b.DateAndTime.format(p)}else y=b.Date.format(p);y=y.charAt(0).toUpperCase()+y.slice(1),this.#e.textContent=y}#t(g,p){return g.map(y=>y.type==="weekday"?b.TodayOrYesterday.format(p,"day"):y.value).join("")}}window.customElements.define("woltlab-core-date-time",q);let S=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(h=>h.refresh(!1))},z,P=()=>{z=window.setInterval(()=>{i(),S()},6e4)};document.addEventListener("DOMContentLoaded",()=>P(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(z):(S(),P())})}{class e extends HTMLElement{#a;#e;#t=new Map;constructor(){super(),this.#a=document.createElement("button")}connectedCallback(){if(this.hasAttribute("labels")&&(this.#t=new Map(JSON.parse(this.getAttribute("labels"))),this.removeAttribute("labels")),this.#t.size===0)throw new Error("Expected a non empty list of labels.");let r=this.#i();this.#a.type="button",this.#a.classList.add("dropdownToggle"),this.#a.innerHTML=r,this.#a.addEventListener("click",a=>{a.preventDefault();let i=new CustomEvent("showPicker");this.dispatchEvent(i)}),this.#a.id=this.id,this.removeAttribute("id"),this.append(this.#a);let f=document.createElement("ul");f.classList.add("scrollableDropdownMenu");for(let[a,i]of this.#t)f.append(this.#l(a,i));if(!this.required){let a=document.createElement("li");if(a.classList.add("dropdownDivider"),f.append(a),this.invertible){let i=this.#l(-1,this.#s());f.append(i)}f.append(this.#l(0,r))}let t=document.createElement("ul");t.classList.add("dropdownMenu"),t.append(f),this.append(t),this.classList.add("dropdown"),this.closest("form")!==null?(this.#e===void 0&&(this.#e=document.createElement("input"),this.#e.type="hidden",this.#e.name=`${this.name}[${this.dataset.groupId}]`,this.append(this.#e)),this.#e.value=(this.selected||0).toString()):this.#e?.remove(),this.selected&&this.#r(this.selected)}#l(r,f){let t=document.createElement("button");t.type="button",t.dataset.labelId=r.toString(),t.innerHTML=f,t.addEventListener("click",()=>{this.selected=r});let a=document.createElement("li");return a.append(t),a}set selected(r){this.setAttribute("selected",r.toString()),this.#r(r)}get selected(){let r=parseInt(this.getAttribute("selected"));if(!Number.isNaN(r))return r}set disabled(r){r?this.setAttribute("disabled",""):this.removeAttribute("disabled"),this.#a.disabled=r,this.#e&&(this.#e.disabled=r)}get disabled(){return this.hasAttribute("disabled")}set required(r){r?this.setAttribute("required",""):this.removeAttribute("required")}get required(){return this.hasAttribute("required")}get invertible(){return this.hasAttribute("invertible")}get name(){return this.getAttribute("name")}#i(){return`${window.WoltLabLanguage.getPhrase("wcf.label.none")}`}#s(){return`${window.WoltLabLanguage.getPhrase("wcf.label.withoutSelection")}`}#r(r){let f="";this.#t.has(r)?f=this.#t.get(r):r===-1&&this.invertible&&(f=this.#s()),this.#a.innerHTML=f||this.#i(),this.#e!==void 0&&(this.#e.value=r.toString())}}window.customElements.define("woltlab-core-label-picker",e)}{let l=[24,48,96];class r extends HTMLElement{#a;#e;connectedCallback(){this.#a===void 0&&this.#t()}attributeChangedCallback(t,a,i){if(t==="size"){let d=parseInt(i||"");if(!l.includes(d)){let b=parseInt(a||"");l.includes(b)||(b=24),this.setAttribute(t,b.toString())}}}#t(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size",24 .toString()),this.#a=document.createElement("fa-icon"),this.#a.size=this.size,this.#a.setIcon("spinner"),this.#e=document.createElement("span"),this.#e.classList.add("loading-indicator__text"),this.#e.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#e.hidden=this.hideText;let t=document.createElement("div");t.classList.add("loading-indicator__wrapper"),t.append(this.#a,this.#e),this.append(t)}get size(){return parseInt(this.getAttribute("size"))}set size(t){if(!l.includes(t))throw new TypeError(`The size ${t} is unrecognized, permitted values are ${l.join(", ")}.`);this.setAttribute("size",t.toString()),this.#a&&(this.#a.size=t)}get hideText(){return this.hasAttribute("hide-text")}set hideText(t){t?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#e&&(this.#e.hidden=t)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",r)}{let e,l=()=>(e===void 0&&(e=window.matchMedia("(max-width: 544px)")),e);class r extends HTMLElement{#a="pagination";connectedCallback(){this.#e(),l().addEventListener("change",()=>this.#e())}#e(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#a}__wrapper`);let t=this.#t();this.append(t);let a=this.#l();a&&t.append(a);let i=document.createElement("ul");i.classList.add(`${this.#a}__list`),t.append(i),i.append(this.#r(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#n()),this.#f().forEach(b=>{i.append(b)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#n()),i.append(this.#r(this.count));let d=this.#i();d&&t.append(d)}#t(){let t=document.createElement("nav");return t.setAttribute("role","navigation"),t.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),t.classList.add(this.#a),t}#l(){if(this.page===1)return;let t=document.createElement("div");t.classList.add(`${this.#a}__prev`);let a=this.#s(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),t}#i(){if(this.page===this.count)return;let t=document.createElement("div");t.classList.add(`${this.#a}__next`);let a=this.#s(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),t.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),t}#s(t){let a,i=this.getLinkUrl(t);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===t?a.disabled=!0:a.addEventListener("click",()=>{this.#o(t)})),a.classList.add(`${this.#a}__link`),a}#r(t){let a=document.createElement("li");a.classList.add(`${this.#a}__item`);let i=this.#s(t);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:t})),t===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#a}__link--current`)),i.textContent=t.toLocaleString(document.documentElement.lang),a.append(i),a}#f(){let t=[],a,i;l().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let d=a;d<=i;d++)d<=1||d>=this.count||t.push(this.#r(d));return t}#n(){let t=document.createElement("li");t.classList.add(`${this.#a}__item`,`${this.#a}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),t.append(a),t}get thresholdForEllipsis(){return l().matches?1:3}getLinkUrl(t){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",t.toString()]]).toString(),a.toString()}jumpToPage(t){let a=this.getLinkUrl(t);a?window.location.href=a:this.#o(t)}#o(t){let a=new CustomEvent("switchPage",{cancelable:!0,detail:t});this.dispatchEvent(a),a.defaultPrevented||(this.page=t)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(t){this.setAttribute("count",t.toString()),this.#e()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(t){this.setAttribute("page",t.toString()),this.#e()}get url(){return this.getAttribute("url")}set url(t){this.setAttribute("url",t),this.#e()}}window.customElements.define("woltlab-core-pagination",r)}{class e extends HTMLElement{connectedCallback(){this.setData(this.#e(),this.#t())}setData(r,f){this.#a(r,f)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#a(r,f){if(this.innerHTML="",!r.size)return;let t=document.createElement("button");t.classList.add("reactionSummary","jsTooltip"),t.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),t.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(t),r.forEach((a,i)=>{let d=document.createElement("span");d.classList.add("reactionCountButton"),i===f&&d.classList.add("selected");let b=document.createElement("span");b.innerHTML=window.REACTION_TYPES[i].renderedIcon,d.append(b);let k=document.createElement("span");k.classList.add("reactionCount"),k.textContent=a.toString(),d.append(k),t.append(d)})}#e(){let r=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(r)}#t(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",e)}window.WoltLabLanguage=ne;window.WoltLabTemplate=V;window.HTMLParsedElement=pe;})(); /** * Handles the low level management of language items. * diff --git a/wcfsetup/install/files/lib/system/label/LabelPicker.class.php b/wcfsetup/install/files/lib/system/label/LabelPicker.class.php index ea874bbae2c..52b19aada08 100644 --- a/wcfsetup/install/files/lib/system/label/LabelPicker.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelPicker.class.php @@ -23,8 +23,15 @@ final class LabelPicker */ public readonly bool $invertible; + /** + * Name of the hidden input field. + */ + public string $name = 'labelIDs'; + public readonly ViewableLabelGroup $labelGroup; + private string $elementID; + private int $selected = 0; public function __construct(ViewableLabelGroup $labelGroup, bool $invertible) @@ -33,6 +40,11 @@ public function __construct(ViewableLabelGroup $labelGroup, bool $invertible) $this->invertible = $invertible; } + /** + * Sets the selected label of this label picker by providing its id. The + * value `0` indicates that no selection is to be made and `-1` inverts the + * selection of the labels. + */ public function setSelectedValue(int $selected): void { if ($selected === 0) { @@ -44,16 +56,28 @@ public function setSelectedValue(int $selected): void } } + /** + * The returned value can be `0` to indicate that no selection has been + * made, `-1` to indicate that the selection should be inverted or the id + * of the selected label. + */ public function getSelectedValue(): int { return $this->selected; } + /** + * Returns true if a label has been selected or if the selection has been + * inverted. + */ public function hasSelection(): bool { return $this->selected !== 0; } + /** + * Generates the HTML element for the label picker. + */ public function toHtml(): string { $labels = []; @@ -70,21 +94,48 @@ public function toHtml(): string id="%s" title="%s" labels="%s" + name="%s" data-group-id="%d" %s > EOT, $this->selected, $this->getElementID(), - $this->labelGroup->getTitle(), + StringUtil::encodeHTML($this->labelGroup->getTitle()), StringUtil::encodeHTML(JSON::encode($labels)), + StringUtil::encodeHTML($this->name), $this->labelGroup->groupID, $this->invertible ? 'invertible' : '', ); } + /** + * Returns the unique element id of this label picker. + */ public function getElementID(): string { - return "labelGroup{$this->labelGroup->groupID}"; + if (!isset($this->elementID)) { + $this->elementID = \sprintf( + '%s_labelGroup%d', + \substr(\md5($this->name), 0, 8), + $this->labelGroup->groupID, + ); + } + + return $this->elementID; + } + + /** + * Sets the unique element id of this label picker. Must be set before + * attempting to read the element id which is implicitly done by calling + * `toHtml()`. + */ + public function setElementID(string $elementID): void + { + if (isset($this->elementID)) { + throw new \RuntimeException("Cannot set the element id, already set."); + } + + $this->elementID = $elementID; } } diff --git a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php index f26d5d10066..273a6daf114 100644 --- a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php @@ -45,7 +45,7 @@ private function __construct(array $labelPickers) } $this->labelPickers = $pickers; - $this->positionToGroupID = \array_keys($labelPickers); + $this->positionToGroupID = \array_keys($pickers); } /** @@ -193,6 +193,16 @@ public function applyFilter(string $objectType, string $fieldName, PreparedState } } + /** + * Set the name of the hidden input field for the label ids. + */ + public function setName(string $name): void + { + foreach ($this->labelPickers as $labelPicker) { + $labelPicker->name = $name; + } + } + public function count(): int { return \count($this->labelPickers); From d650252913db675975f719b9bf719cf29d289b04 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Sat, 7 Oct 2023 18:17:09 +0200 Subject: [PATCH 13/18] Upgrade the `LabelFormField` to use the new picker --- .../templates/__labelFormField.tpl | 42 +----- .../Form/Builder/Field/Controller/Label.ts | 129 ------------------ .../files/acp/templates/__labelFormField.tpl | 42 +----- .../Form/Builder/Field/Controller/Label.js | 105 -------------- .../field/label/LabelFormField.class.php | 53 +++++-- 5 files changed, 42 insertions(+), 329 deletions(-) delete mode 100644 ts/WoltLabSuite/Core/Form/Builder/Field/Controller/Label.ts delete mode 100644 wcfsetup/install/files/js/WoltLabSuite/Core/Form/Builder/Field/Controller/Label.js diff --git a/com.woltlab.wcf/templates/__labelFormField.tpl b/com.woltlab.wcf/templates/__labelFormField.tpl index fe67833766f..3f1037818b9 100644 --- a/com.woltlab.wcf/templates/__labelFormField.tpl +++ b/com.woltlab.wcf/templates/__labelFormField.tpl @@ -1,41 +1 @@ -
    - -
- - - - +{@$field->getLabelPicker()->toHtml()} diff --git a/ts/WoltLabSuite/Core/Form/Builder/Field/Controller/Label.ts b/ts/WoltLabSuite/Core/Form/Builder/Field/Controller/Label.ts deleted file mode 100644 index 17ae26ab315..00000000000 --- a/ts/WoltLabSuite/Core/Form/Builder/Field/Controller/Label.ts +++ /dev/null @@ -1,129 +0,0 @@ -/** - * Handles the JavaScript part of the label form field. - * - * @author Alexander Ebert, Matthias Schmidt - * @copyright 2001-2020 WoltLab GmbH - * @license GNU Lesser General Public License - * @since 5.2 - */ - -import * as Core from "../../../../Core"; -import * as DomUtil from "../../../../Dom/Util"; -import * as Language from "../../../../Language"; -import UiDropdownSimple from "../../../../Ui/Dropdown/Simple"; -import { LabelFormFieldOptions } from "../../Data"; - -class Label { - protected readonly _formFieldContainer: HTMLElement; - protected readonly _input: HTMLInputElement; - protected readonly _labelChooser: HTMLElement; - protected readonly _options: LabelFormFieldOptions; - - constructor(fieldId: string, labelId: string, options: Partial) { - this._formFieldContainer = document.getElementById(fieldId + "Container")!; - this._labelChooser = this._formFieldContainer.getElementsByClassName("labelChooser")[0] as HTMLElement; - this._options = Core.extend( - { - forceSelection: false, - showWithoutSelection: false, - }, - options, - ) as LabelFormFieldOptions; - - this._input = document.createElement("input"); - this._input.type = "hidden"; - this._input.id = fieldId; - this._input.name = fieldId; - this._input.value = labelId; - this._formFieldContainer.appendChild(this._input); - - const labelChooserId = DomUtil.identify(this._labelChooser); - - // init dropdown - let dropdownMenu = UiDropdownSimple.getDropdownMenu(labelChooserId)!; - if (dropdownMenu === null) { - UiDropdownSimple.init(this._labelChooser.getElementsByClassName("dropdownToggle")[0] as HTMLElement); - dropdownMenu = UiDropdownSimple.getDropdownMenu(labelChooserId)!; - } - - let additionalOptionList: HTMLUListElement | null = null; - if (this._options.showWithoutSelection || !this._options.forceSelection) { - additionalOptionList = document.createElement("ul"); - dropdownMenu.appendChild(additionalOptionList); - - const dropdownDivider = document.createElement("li"); - dropdownDivider.classList.add("dropdownDivider"); - additionalOptionList.appendChild(dropdownDivider); - } - - if (this._options.showWithoutSelection) { - const listItem = document.createElement("li"); - listItem.dataset.labelId = "-1"; - this._blockScroll(listItem); - additionalOptionList!.appendChild(listItem); - - const span = document.createElement("span"); - listItem.appendChild(span); - - const label = document.createElement("span"); - label.classList.add("badge", "label"); - label.innerHTML = Language.get("wcf.label.withoutSelection"); - span.appendChild(label); - } - - if (!this._options.forceSelection) { - const listItem = document.createElement("li"); - listItem.dataset.labelId = "0"; - this._blockScroll(listItem); - additionalOptionList!.appendChild(listItem); - - const span = document.createElement("span"); - listItem.appendChild(span); - - const label = document.createElement("span"); - label.classList.add("badge", "label"); - label.innerHTML = Language.get("wcf.label.none"); - span.appendChild(label); - } - - dropdownMenu.querySelectorAll("li:not(.dropdownDivider)").forEach((listItem: HTMLElement) => { - listItem.addEventListener("click", (ev) => this._click(ev)); - - if (labelId) { - if (listItem.dataset.labelId === labelId) { - this._selectLabel(listItem); - } - } - }); - } - - _blockScroll(element: HTMLElement): void { - element.addEventListener("wheel", (ev) => ev.preventDefault(), { - passive: false, - }); - } - - _click(event: Event): void { - event.preventDefault(); - - this._selectLabel(event.currentTarget as HTMLElement); - } - - _selectLabel(label: HTMLElement): void { - // save label - let labelId = label.dataset.labelId; - if (!labelId) { - labelId = "0"; - } - - // replace button with currently selected label - const displayLabel = label.querySelector("span > span")!; - const button = this._labelChooser.querySelector(".dropdownToggle > span")!; - button.className = displayLabel.className; - button.textContent = displayLabel.textContent; - - this._input.value = labelId; - } -} - -export = Label; diff --git a/wcfsetup/install/files/acp/templates/__labelFormField.tpl b/wcfsetup/install/files/acp/templates/__labelFormField.tpl index fe67833766f..3f1037818b9 100644 --- a/wcfsetup/install/files/acp/templates/__labelFormField.tpl +++ b/wcfsetup/install/files/acp/templates/__labelFormField.tpl @@ -1,41 +1 @@ -
    - -
- - - - +{@$field->getLabelPicker()->toHtml()} diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Form/Builder/Field/Controller/Label.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Form/Builder/Field/Controller/Label.js deleted file mode 100644 index 747cb984126..00000000000 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Form/Builder/Field/Controller/Label.js +++ /dev/null @@ -1,105 +0,0 @@ -/** - * Handles the JavaScript part of the label form field. - * - * @author Alexander Ebert, Matthias Schmidt - * @copyright 2001-2020 WoltLab GmbH - * @license GNU Lesser General Public License - * @since 5.2 - */ -define(["require", "exports", "tslib", "../../../../Core", "../../../../Dom/Util", "../../../../Language", "../../../../Ui/Dropdown/Simple"], function (require, exports, tslib_1, Core, DomUtil, Language, Simple_1) { - "use strict"; - Core = tslib_1.__importStar(Core); - DomUtil = tslib_1.__importStar(DomUtil); - Language = tslib_1.__importStar(Language); - Simple_1 = tslib_1.__importDefault(Simple_1); - class Label { - _formFieldContainer; - _input; - _labelChooser; - _options; - constructor(fieldId, labelId, options) { - this._formFieldContainer = document.getElementById(fieldId + "Container"); - this._labelChooser = this._formFieldContainer.getElementsByClassName("labelChooser")[0]; - this._options = Core.extend({ - forceSelection: false, - showWithoutSelection: false, - }, options); - this._input = document.createElement("input"); - this._input.type = "hidden"; - this._input.id = fieldId; - this._input.name = fieldId; - this._input.value = labelId; - this._formFieldContainer.appendChild(this._input); - const labelChooserId = DomUtil.identify(this._labelChooser); - // init dropdown - let dropdownMenu = Simple_1.default.getDropdownMenu(labelChooserId); - if (dropdownMenu === null) { - Simple_1.default.init(this._labelChooser.getElementsByClassName("dropdownToggle")[0]); - dropdownMenu = Simple_1.default.getDropdownMenu(labelChooserId); - } - let additionalOptionList = null; - if (this._options.showWithoutSelection || !this._options.forceSelection) { - additionalOptionList = document.createElement("ul"); - dropdownMenu.appendChild(additionalOptionList); - const dropdownDivider = document.createElement("li"); - dropdownDivider.classList.add("dropdownDivider"); - additionalOptionList.appendChild(dropdownDivider); - } - if (this._options.showWithoutSelection) { - const listItem = document.createElement("li"); - listItem.dataset.labelId = "-1"; - this._blockScroll(listItem); - additionalOptionList.appendChild(listItem); - const span = document.createElement("span"); - listItem.appendChild(span); - const label = document.createElement("span"); - label.classList.add("badge", "label"); - label.innerHTML = Language.get("wcf.label.withoutSelection"); - span.appendChild(label); - } - if (!this._options.forceSelection) { - const listItem = document.createElement("li"); - listItem.dataset.labelId = "0"; - this._blockScroll(listItem); - additionalOptionList.appendChild(listItem); - const span = document.createElement("span"); - listItem.appendChild(span); - const label = document.createElement("span"); - label.classList.add("badge", "label"); - label.innerHTML = Language.get("wcf.label.none"); - span.appendChild(label); - } - dropdownMenu.querySelectorAll("li:not(.dropdownDivider)").forEach((listItem) => { - listItem.addEventListener("click", (ev) => this._click(ev)); - if (labelId) { - if (listItem.dataset.labelId === labelId) { - this._selectLabel(listItem); - } - } - }); - } - _blockScroll(element) { - element.addEventListener("wheel", (ev) => ev.preventDefault(), { - passive: false, - }); - } - _click(event) { - event.preventDefault(); - this._selectLabel(event.currentTarget); - } - _selectLabel(label) { - // save label - let labelId = label.dataset.labelId; - if (!labelId) { - labelId = "0"; - } - // replace button with currently selected label - const displayLabel = label.querySelector("span > span"); - const button = this._labelChooser.querySelector(".dropdownToggle > span"); - button.className = displayLabel.className; - button.textContent = displayLabel.textContent; - this._input.value = labelId; - } - } - return Label; -}); diff --git a/wcfsetup/install/files/lib/system/form/builder/field/label/LabelFormField.class.php b/wcfsetup/install/files/lib/system/form/builder/field/label/LabelFormField.class.php index 3f4ff07017a..b5502a463b5 100644 --- a/wcfsetup/install/files/lib/system/form/builder/field/label/LabelFormField.class.php +++ b/wcfsetup/install/files/lib/system/form/builder/field/label/LabelFormField.class.php @@ -12,6 +12,8 @@ use wcf\system\form\builder\IObjectTypeFormNode; use wcf\system\form\builder\TObjectTypeFormNode; use wcf\system\label\LabelHandler; +use wcf\system\label\LabelPicker; +use wcf\system\label\LabelPickerGroup; /** * Implementation of a form field to select labels. @@ -36,6 +38,8 @@ final class LabelFormField extends AbstractFormField implements IObjectTypeFormN */ protected $labelGroup; + protected LabelPickerGroup $labelPickerGroup; + /** * @inheritDoc */ @@ -44,23 +48,43 @@ final class LabelFormField extends AbstractFormField implements IObjectTypeFormN /** * loaded labels grouped by label object type and object id to avoid loading the same labels * over and over again for the same object and different label groups - * @var Label[][] + * @var Label[][][] */ protected static $loadedLabels = []; /** * Returns the label group whose labels can be selected via this form field. + */ + public function getLabelGroup(): ViewableLabelGroup + { + return $this->getLabelPicker()->labelGroup; + } + + /** + * Returns the label picker for this field. * - * @return ViewableLabelGroup label group whose labels can be selected - * @throws \BadMethodCallException if no label has been set + * @since 6.1 */ - public function getLabelGroup() + public function getLabelPicker(): LabelPicker { - if ($this->labelGroup === null) { + if (!isset($this->labelPickerGroup)) { throw new \BadMethodCallException("No label group has been set for field '{$this->getId()}'."); } - return $this->labelGroup; + foreach ($this->labelPickerGroup as $labelPicker) { + return $labelPicker; + } + + throw new \RuntimeException("Unreachable"); + } + + #[\Override] + public function getFieldHtml() + { + $this->labelPickerGroup->setName($this->getPrefixedId()); + $this->getLabelPicker()->setElementID($this->getPrefixedId()); + + return parent::getFieldHtml(); } /** @@ -91,6 +115,10 @@ public function hasSaveValue() public function labelGroup(ViewableLabelGroup $labelGroup) { $this->labelGroup = $labelGroup; + $this->labelPickerGroup = LabelPickerGroup::fromViewableLabelGroups( + [$this->labelGroup], + false, + ); if ($this->label === null) { $this->label($this->getLabelGroup()->getTitle()); @@ -119,12 +147,10 @@ public function updatedObject(array $data, IStorableObject $object, $loadValues static::$loadedLabels[$objectTypeID][$objectID] = $assignedLabels[$objectID] ?? []; } - $labelIDs = $this->getLabelGroup()->getLabelIDs(); - /** @var Label $label */ - foreach (static::$loadedLabels[$objectTypeID][$objectID] as $label) { - if (\in_array($label->labelID, $labelIDs)) { - $this->value($label->labelID); - } + $this->labelPickerGroup->setSelectedLabelsFromAssignedLabels(self::$loadedLabels[$objectTypeID][$objectID]); + foreach ($this->labelPickerGroup as $labelPicker) { + $this->value($labelPicker->getSelectedValue()); + break; } } @@ -163,7 +189,8 @@ function (IFormDocument $document, array $parameters) { public function readValue() { if ($this->getDocument()->hasRequestData($this->getPrefixedId())) { - $this->value = \intval($this->getDocument()->getRequestData($this->getPrefixedId())); + $this->labelPickerGroup->setSelectedLabels($this->getDocument()->getRequestData($this->getPrefixedId())); + $this->value = $this->getLabelPicker()->getSelectedValue(); } return $this; From bb84eed009324fb907c4b13c4c21005a8eaa7e9e Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Sun, 8 Oct 2023 17:58:56 +0200 Subject: [PATCH 14/18] Deprecate the legacy label chooser --- com.woltlab.wcf/templates/__labelSelection.tpl | 1 + com.woltlab.wcf/templates/categoryArticleList.tpl | 13 +------------ com.woltlab.wcf/templates/unreadArticleList.tpl | 13 +------------ com.woltlab.wcf/templates/watchedArticleList.tpl | 13 +------------ wcfsetup/install/files/js/WCF.Label.js | 1 + 5 files changed, 5 insertions(+), 36 deletions(-) diff --git a/com.woltlab.wcf/templates/__labelSelection.tpl b/com.woltlab.wcf/templates/__labelSelection.tpl index 89fbb841d2e..6e06afe13ad 100644 --- a/com.woltlab.wcf/templates/__labelSelection.tpl +++ b/com.woltlab.wcf/templates/__labelSelection.tpl @@ -1,3 +1,4 @@ +{* @deprecated 6.1 Use the new `__labelPickerGroup` template instead. *} {foreach from=$labelGroups item=labelGroup} {if $labelGroup|count}
diff --git a/com.woltlab.wcf/templates/categoryArticleList.tpl b/com.woltlab.wcf/templates/categoryArticleList.tpl index 12411e94f4a..f41a7f9ca76 100644 --- a/com.woltlab.wcf/templates/categoryArticleList.tpl +++ b/com.woltlab.wcf/templates/categoryArticleList.tpl @@ -36,7 +36,7 @@
- {include file='__labelSelection'} + {include file='__labelPickerGroup'}
@@ -44,17 +44,6 @@
- - {/if} {/capture} diff --git a/com.woltlab.wcf/templates/unreadArticleList.tpl b/com.woltlab.wcf/templates/unreadArticleList.tpl index 140321095b1..0377ded7824 100644 --- a/com.woltlab.wcf/templates/unreadArticleList.tpl +++ b/com.woltlab.wcf/templates/unreadArticleList.tpl @@ -17,7 +17,7 @@
- {include file='__labelSelection'} + {include file='__labelPickerGroup'}
@@ -25,17 +25,6 @@
- - {/if} {/capture} diff --git a/com.woltlab.wcf/templates/watchedArticleList.tpl b/com.woltlab.wcf/templates/watchedArticleList.tpl index 179cf697587..4c622eb302e 100644 --- a/com.woltlab.wcf/templates/watchedArticleList.tpl +++ b/com.woltlab.wcf/templates/watchedArticleList.tpl @@ -15,7 +15,7 @@
- {include file='__labelSelection'} + {include file='__labelPickerGroup'}
@@ -23,17 +23,6 @@
- - {/if} {/capture} diff --git a/wcfsetup/install/files/js/WCF.Label.js b/wcfsetup/install/files/js/WCF.Label.js index d62a2ad5940..cd8c2c83af2 100644 --- a/wcfsetup/install/files/js/WCF.Label.js +++ b/wcfsetup/install/files/js/WCF.Label.js @@ -12,6 +12,7 @@ WCF.Label = {}; * @param string containerSelector * @param string submitButtonSelector * @param boolean showWithoutSelection + * @deprecated 6.1 Use the new `LabelPicker` PHP API */ WCF.Label.Chooser = Class.extend({ /** From 21514e37b3c99fa69a15051e3108efeacf17283d Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Mon, 9 Oct 2023 18:05:53 +0200 Subject: [PATCH 15/18] Improve the code logic --- .../category/ArticleCategory.class.php | 2 +- .../lib/system/label/LabelHandler.class.php | 1 - .../lib/system/label/LabelPicker.class.php | 4 +- .../system/label/LabelPickerGroup.class.php | 38 +++++++++---------- 4 files changed, 20 insertions(+), 25 deletions(-) diff --git a/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php b/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php index 40a4ead2262..0a6361b84a7 100644 --- a/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php +++ b/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php @@ -214,7 +214,7 @@ public static function getLabelPickerGroup(): LabelPickerGroup } } - return LabelPickerGroup::fromGroupIDs(\array_unique($groupIDs), false); + return LabelPickerGroup::fromGroupIDs($groupIDs, false); } /** diff --git a/wcfsetup/install/files/lib/system/label/LabelHandler.class.php b/wcfsetup/install/files/lib/system/label/LabelHandler.class.php index af48316eb18..a7219a93676 100644 --- a/wcfsetup/install/files/lib/system/label/LabelHandler.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelHandler.class.php @@ -428,7 +428,6 @@ public function removeLabels($objectTypeID, array $objectIDs) /** * @param int[] $groupIDs - * @param bool $invertible * @return LabelPicker[] * @since 6.0 */ diff --git a/wcfsetup/install/files/lib/system/label/LabelPicker.class.php b/wcfsetup/install/files/lib/system/label/LabelPicker.class.php index 52b19aada08..fb37ea03d90 100644 --- a/wcfsetup/install/files/lib/system/label/LabelPicker.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelPicker.class.php @@ -8,7 +8,7 @@ use wcf\util\StringUtil; /** - * Provides helper methods to interact with the label group. + * Manages the state of a label picker and renders the component. * * @author Alexander Ebert * @copyright 2001-2023 WoltLab GmbH @@ -117,7 +117,7 @@ public function getElementID(): string if (!isset($this->elementID)) { $this->elementID = \sprintf( '%s_labelGroup%d', - \substr(\md5($this->name), 0, 8), + \bin2hex(\random_bytes(16)), $this->labelGroup->groupID, ); } diff --git a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php index 273a6daf114..15984d64476 100644 --- a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php @@ -97,26 +97,21 @@ public function hasSelection(): bool /** * Returns an unencoded query string for `labelIDs` for use in the LinkHandler. - * - * @return string */ public function toUrlQueryString(): string { return \implode( '&', - \array_filter( - \array_map(static function (LabelPicker $labelPicker) { - if (!$labelPicker->hasSelection()) { - return ''; - } - - return \sprintf( - 'labelIDs[%d]=%d', - $labelPicker->labelGroup->groupID, - $labelPicker->getSelectedValue(), - ); - }, $this->labelPickers) - ) + \array_map(static function (LabelPicker $labelPicker) { + return \sprintf( + 'labelIDs[%d]=%d', + $labelPicker->labelGroup->groupID, + $labelPicker->getSelectedValue(), + ); + }, \array_filter( + $this->labelPickers, + static fn (LabelPicker $labelPicker) => $labelPicker->hasSelection() + )) ); } @@ -127,11 +122,12 @@ public function toUrlQueryString(): string */ public function toLabelIDs(): array { - return \array_filter( - \array_map( - fn (LabelPicker $labelPicker) => $labelPicker->getSelectedValue(), - $this->labelPickers - ), + return \array_map( + static fn (LabelPicker $labelPicker) => $labelPicker->getSelectedValue(), + \array_filter( + $this->labelPickers, + static fn (LabelPicker $labelPicker) => $labelPicker->hasSelection() + ) ); } @@ -250,7 +246,7 @@ public static function fromGroupIDs(array $groupIDs, bool $invertible): self public static function fromViewableLabelGroups(array $viewableLabelGroups, bool $invertible): self { $labelPickers = \array_map( - fn (ViewableLabelGroup $viewableLabelGroup) => new LabelPicker($viewableLabelGroup, $invertible), + static fn (ViewableLabelGroup $viewableLabelGroup) => new LabelPicker($viewableLabelGroup, $invertible), $viewableLabelGroups ); From ac4f51f66d1804296e08bada2565eade2a720fce Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Mon, 9 Oct 2023 18:10:27 +0200 Subject: [PATCH 16/18] Implement `IteratorAggregate` to delegate iteration of the available label pickers --- .../system/label/LabelPickerGroup.class.php | 29 ++----------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php index 15984d64476..2df533ef870 100644 --- a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php @@ -15,7 +15,7 @@ * @license GNU Lesser General Public License * @since 6.1 */ -final class LabelPickerGroup implements \Countable, \Iterator +final class LabelPickerGroup implements \Countable, \IteratorAggregate { /** * @var LabelPicker[] @@ -27,8 +27,6 @@ final class LabelPickerGroup implements \Countable, \Iterator */ private readonly array $positionToGroupID; - private int $position = 0; - /** * @param LabelPicker[] $labelPickers */ @@ -204,30 +202,9 @@ public function count(): int return \count($this->labelPickers); } - public function current(): LabelPicker - { - $groupID = $this->positionToGroupID[$this->position]; - return $this->labelPickers[$groupID]; - } - - public function key(): int - { - return $this->position; - } - - public function next(): void - { - $this->position++; - } - - public function rewind(): void - { - $this->position = 0; - } - - public function valid(): bool + public function getIterator(): \Traversable { - return isset($this->positionToGroupID[$this->position]); + return new \ArrayIterator($this->labelPickers); } /** From 3689b707ecd132368019b5f4075a51502ba88158 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Fri, 13 Oct 2023 15:39:49 +0200 Subject: [PATCH 17/18] Use `\http_build_query()` and the proper name to build the query string --- .../system/label/LabelPickerGroup.class.php | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php index 2df533ef870..8851232d10e 100644 --- a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php @@ -23,9 +23,9 @@ final class LabelPickerGroup implements \Countable, \IteratorAggregate private readonly array $labelPickers; /** - * @var list + * Field name of the selected values. */ - private readonly array $positionToGroupID; + private string $name = 'labelIDs'; /** * @param LabelPicker[] $labelPickers @@ -43,7 +43,6 @@ private function __construct(array $labelPickers) } $this->labelPickers = $pickers; - $this->positionToGroupID = \array_keys($pickers); } /** @@ -98,19 +97,15 @@ public function hasSelection(): bool */ public function toUrlQueryString(): string { - return \implode( - '&', - \array_map(static function (LabelPicker $labelPicker) { - return \sprintf( - 'labelIDs[%d]=%d', - $labelPicker->labelGroup->groupID, - $labelPicker->getSelectedValue(), - ); - }, \array_filter( + $mapping = \array_map( + static fn (LabelPicker $labelPicker) => $labelPicker->getSelectedValue(), + \array_filter( $this->labelPickers, static fn (LabelPicker $labelPicker) => $labelPicker->hasSelection() - )) + ) ); + + return \http_build_query([$this->name => $mapping], '', '&'); } /** @@ -192,6 +187,8 @@ public function applyFilter(string $objectType, string $fieldName, PreparedState */ public function setName(string $name): void { + $this->name = $name; + foreach ($this->labelPickers as $labelPicker) { $labelPicker->name = $name; } From 58d93fee8d924690e49288cf79a4d2a226a39b12 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Fri, 13 Oct 2023 15:40:33 +0200 Subject: [PATCH 18/18] Use the proper format for the instance number --- .../install/files/lib/system/label/LabelPickerGroup.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php index 8851232d10e..01324b7b743 100644 --- a/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php +++ b/wcfsetup/install/files/lib/system/label/LabelPickerGroup.class.php @@ -146,7 +146,7 @@ public function applyFilter(string $objectType, string $fieldName, PreparedState <<<'EOT' %s NOT IN ( SELECT objectID - FROM wcf%s_label_object + FROM wcf%d_label_object WHERE objectTypeID = ? AND labelID IN (?) ) @@ -165,7 +165,7 @@ public function applyFilter(string $objectType, string $fieldName, PreparedState <<<'EOT' %s IN ( SELECT objectID - FROM wcf%s_label_object + FROM wcf%d_label_object WHERE objectTypeID = ? AND labelID = ? )